зеркало из https://github.com/mozilla/gecko-dev.git
f665b313f3
This patch makes several changes to the kinds of URLs where we can cancel content JS when navigating between them: 1) When navigating directly to a URL (e.g. by typing something into the location bar and hitting Enter), we allow canceling content JS if the URLs differ in any way *except* their ref ("#"). To help with this, we also attempt to fix up the URL (e.g. by prepending "http://" to it). 2) When navigating through history, we allow canceling content JS if the `prePath` part of the URLs differ. Most notably, this allows canceling content JS when one of the URLs is an `about:` page (e.g. when hitting the Home button). 3) We explicitly disallow cancelling content JS if the currently-running JS is trusted or if the page being navigated away from is anything but http(s): or file:. 4) We also disallow cancelling content JS for windows that are still being created (e.g. when creating a new tab or window via `window.open`). For more background on this, see the comments about `mCreatingWindow` in dom/ipc/BrowserParent.h. 5) We ensure that, when attempting to cancel JS, the tab ID of the currently-running script matches the original tab that requested the cancellation. This avoids a race condition in which a particular JSContext has already moved on to executing another tab's JS by the time we hit our interrupt callback. Differential Revision: https://phabricator.services.mozilla.com/D31875 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
base | ||
build | ||
resources/content | ||
shistory | ||
test | ||
moz.build |