gecko-dev/docshell
Jim Porter f665b313f3 Bug 1552017 - Expand the kinds of URLs that can cancel content JS when navigating; r=smaug
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
2019-06-04 16:19:27 +00:00
..
base Bug 1552017 - Expand the kinds of URLs that can cancel content JS when navigating; r=smaug 2019-06-04 16:19:27 +00:00
build Bug 1553498 - Inserts an empty page for about:certviewer and redirects to it when the user put that URL in the browser. r=johannh,smaug 2019-05-23 22:12:30 +00:00
resources/content Bug 1546501 - Remove unnecessary type attributes (i.e. [type="application/javascript"]) on non-test script tags r=mossop 2019-04-24 19:43:57 +00:00
shistory Bug 1525720, part 7 - Use getter methods to access mBrowserParent and mBrowserBridgeChild. r=farre 2019-04-25 12:36:16 -05:00
test Merge mozilla-inbound to mozilla-central. a=merge 2019-06-03 19:01:53 +03:00
moz.build Bug 1529088 - Hold the HTML-based about:config to Nightly until we get Product sign-off. r=florian,paolo 2019-02-27 21:54:57 +00:00