-
Notifications
You must be signed in to change notification settings - Fork 9.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Review and inject all DOM API and global dependencies #14003
Comments
Should we merge #13646 into this? I think saving |
Yeah, definitely seems like this should be step 1. We've been talking about doing that for years, just haven't gotten around to it. Gatherers should be safe from alterations by default unless they know they need access to the non-isolated space and can then opt out.
I don't think there's any general fix, unfortunately. There's always some site that will change something. We cache lighthouse/lighthouse-core/gather/driver/execution-context.js Lines 218 to 224 in 4e5d5d1
(if you ever want to confuse the DevTools console repl, just override On top of all this, caching doesn't happen in timespans because it only works on load of a new document. ShadowRealms could help, but that will be a pain and would only help with a subset of DOM APIs (and is behind So, default isolation seems like the best first step, and after that I think we just have to draw a line somewhere, dividing how much we're willing to take on for sites doing destructive things to their execution environment vs just replying to issues, sorry, looks like your sites overrides X, and Lighthouse can't complete that audit if it's overridden. |
From the eng sync today:
Follow up:
|
Merging #13646 into this one |
Similar to #14001, #6387 and #6283, there are more dependencies on DOM APIs that might make sense to inject, like this and this and more. This issue to track if we want to review and convert these into injected references in some generic way vs. whack-a-mole each time a conflict occurs?
The text was updated successfully, but these errors were encountered: