Commit Graph

261 Commits

Author SHA1 Message Date
Noemi Erli
dec3cca55f Backed out 7 changesets (bug 1650089) foe causing bustages in ProcessIsolation.cpp
Backed out changeset 4e73beb8872c (bug 1650089)
Backed out changeset 092451e931ce (bug 1650089)
Backed out changeset ca9ba60010c6 (bug 1650089)
Backed out changeset ee61b69ba556 (bug 1650089)
Backed out changeset 091c4efa36a7 (bug 1650089)
Backed out changeset dbdee40ef8a0 (bug 1650089)
Backed out changeset 54d12a4333a0 (bug 1650089)
2021-08-03 20:15:54 +03:00
Nika Layzell
0c2e579295 Bug 1650089 - Part 1: Add a remoteTypeOverride option for about:blank loads triggered by chrome, r=annyG,kmag
After the changes in this bug, about:blank loads triggered by chrome will
finish in a "web" content process, as they have an untrusted null principal
without a precursor. In a few places throughout the codebase, however, we
perform about:blank loads with the explicit expectation that they do not change
processes. This new remoteTypeOverride option allows the intended final process
to be explicitly specified in this situation.

For security & simplicity reasons, this new attribute is limited to only be
usable on system-principal triggered loads of about:blank in toplevel browsing
contexts.

Differential Revision: https://phabricator.services.mozilla.com/D120671
2021-08-03 15:39:33 +00:00
Kashav Madan
c0d5ad5101 Bug 1718761 - Move {Start,Stop}ApzAutoscroll to CanonicalBrowsingContext, r=Gijs,hiro
This accomplishes 2 things:

1. Allows us to directly fetch the layersId of the process that is
   autoscrolling, which avoids having to fetch it in AutoScrollChild and pass it
   around. This fixes autoscrolling out-of-process frames with Fission enabled.
2. Makes it easier to handle autoscrolling of in-process documents, since that
   can't happen through PBrowser.

Differential Revision: https://phabricator.services.mozilla.com/D120766
2021-07-31 01:39:09 +00:00
Sandor Molnar
c7d3e34ed3 Backed out changeset 4593c3d66951 (bug 1718761) for causing clang build bustages. CLOSED TREE 2021-07-31 03:44:56 +03:00
Kashav Madan
a6591ec2c9 Bug 1718761 - Move {Start,Stop}ApzAutoscroll to CanonicalBrowsingContext, r=Gijs,hiro
This accomplishes 2 things:

1. Allows us to directly fetch the layersId of the process that is
   autoscrolling, which avoids having to fetch it in AutoScrollChild and pass it
   around. This fixes autoscrolling out-of-process frames with Fission enabled.
2. Makes it easier to handle autoscrolling of in-process documents, since that
   can't happen through PBrowser.

Differential Revision: https://phabricator.services.mozilla.com/D120766
2021-07-30 23:39:32 +00:00
Dorel Luca
0ec812b2f0 Backed out 5 changesets (bug 1650089) for Browser-chrome failures in browser/components/originattributes/test/browser/browser_firstPartyIsolation_aboutPages.js. CLOSED TREE
Backed out changeset 26ddad079ad3 (bug 1650089)
Backed out changeset 5ae2b2641484 (bug 1650089)
Backed out changeset c5d267a1907c (bug 1650089)
Backed out changeset d9eeca699dec (bug 1650089)
Backed out changeset 8bb303f6831a (bug 1650089)
2021-07-29 05:53:31 +03:00
Nika Layzell
9e235a6989 Bug 1650089 - Part 1: Add a remoteTypeOverride option for about:blank loads triggered by chrome, r=annyG,kmag
After the changes in this bug, about:blank loads triggered by chrome will
finish in a "web" content process, as they have an untrusted null principal
without a precursor. In a few places throughout the codebase, however, we
perform about:blank loads with the explicit expectation that they do not change
processes. This new remoteTypeOverride option allows the intended final process
to be explicitly specified in this situation.

For security & simplicity reasons, this new attribute is limited to only be
usable on system-principal triggered loads of about:blank in toplevel browsing
contexts.

Differential Revision: https://phabricator.services.mozilla.com/D120671
2021-07-29 01:40:19 +00:00
Henri Sivonen
497eba31f2 Bug 1713627 - Remove code obsoleted by the replacing the Text Encoding menu with one item. r=jaws,emk
Differential Revision: https://phabricator.services.mozilla.com/D116391
2021-06-21 12:09:01 +00:00
Dorel Luca
48f1cd991c Backed out changeset 4891a17c55e2 (bug 1713627) for Browser-chrome failures in docshell/test/browser/browser_bug673087-1.js. CLOSED TREE 2021-06-21 12:10:54 +03:00
Henri Sivonen
f97066009d Bug 1713627 - Remove code obsoleted by the replacing the Text Encoding menu with one item. r=jaws,emk
Differential Revision: https://phabricator.services.mozilla.com/D116391
2021-06-21 08:09:43 +00:00
Nika Layzell
6b91b8893e Bug 1708256 - Remove the browser-child.js frame script, r=mconley,perftest-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D114790
2021-05-20 16:30:08 +00:00
Nika Layzell
3db01aa76c Bug 1708254 - Move CreateAboutBlankContentViewer logic into platform, r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D114789
2021-05-12 20:01:17 +00:00
Anny Gakhokidze
f97d657a0f Bug 1703326 - Stop relying on ContentSessionStore for SessionStore:crashedTabRevived, r=kashav
Differential Revision: https://phabricator.services.mozilla.com/D113425
2021-05-12 19:33:47 +00:00
Emilio Cobos Álvarez
0e55bca38f Bug 1705757 - Move FrameLoader.print to BrowsingContext.print. r=nika,remote-protocol-reviewers,marionette-reviewers,extension-reviewers,zombie
This makes it trivial to choose the right BrowserParent to print a
browsing context, by removing the OuterWindowID / FrameLoader
indirections.

Differential Revision: https://phabricator.services.mozilla.com/D112412
2021-04-17 18:41:11 +00:00
Masayuki Nakano
168a8fcddd Bug 1528289 - part 2: Dispatch same events on the web contents when autoscroll is canceled with a click r=Gijs,edgar
Chrome behaves like this:

1. When user starts autoscroll with a middle click, `mousedown` and `mouseup`
   are fired, but `auxclick` nor `paste` event is not fired.
2. When user ends autoscroll with a left click, only `mouseup` event is fired.
   I.e, `mousedown` nor `click` event is not fired.
3. When user ends autoscroll with a middle click, only `mouseup` event is fired.
   I.e., `mousedown`, `auxclick` nor `paste` events is not fired.
4. When user ends autoscroll with a right click, `mouseup` and `contextmenu`
   events are fired, but `mousedown` and `auxclick` events are not fired.

This patch emulates these Chrome's behavior as far as possible.  However,
unfortunately, we cannot do exactly same behavior without some big patches
because each widget (`nsWindow` or `nsChildView`) discards a mouse event
which rolled up a widget before dispatching it into the DOM.  Therefore,
for now, this patch does not fix the following issues:

1. `mousedown` event is not fired in content when clicking outside the
   autoscroller to close it except when pressing the secondary button or on any
   buttons on Linux.
2. `mouseup` event is not fired in content when clicking outside the
   autoscroller to close it except when pressing the primary button macOS.
3. `click` event and `auxclick` events are fired when clicking outside the
   autoscroller with the secondary button.

So, the middle button `click`/`auxclick` events and `paste` event which is
reported to the bug won't be fired with this patch.  I'll file follow up bugs.

Differential Revision: https://phabricator.services.mozilla.com/D104652
2021-03-23 19:22:48 +00:00
Jens Stutte
7c53006078 Bug 1696397: Move SpinEventLoopUntilOrShutdown to -Quit and move the current shutdown state logic from nsThreadManager to AppShutdown; r=kmag,xpcom-reviewers
The SpinEventLoopUntilOrShutdown is interrupted in the main process only at stage "xpcom-shutdown", which is too late. In a content process instead we interrupt it early enough, at "content-child-will-shutdown".

This patch removes the current observer logic in nsThreadManager in favor of a current shutdown phase state machinery in AppShutdown and renames SpinEventLoopUntilOrShutdown to SpinEventLoopUntilOrQuit. It also ensures that SpinEventLoopUntilOrQuit breaks early (at "quit-application" in the main process).

For a further possible cleanup around shutdown state in child and parent process please refer to bug 1697745.

We have no automated test for this edge case, but we have diagnostic telemetry that will tell us if it helps.

Differential Revision: https://phabricator.services.mozilla.com/D107619
2021-03-17 08:07:48 +00:00
Sebastian Hengst
139551ac5f Backed out 2 changesets (bug 1528289) for breaking navigation with clicks after user scrolled by clicking with middle mouse button. a=backout
Backed out changeset 33c7b633ada2 (bug 1528289)
Backed out changeset be5cf87707f9 (bug 1528289)
2021-03-03 14:29:12 +01:00
Jens Stutte
9a46720c62 Bug 1678330: Ensure nested SpinEventLoopUntil(OrShutdown) calls are traceable to the originating source in case of crash. r=nika,extension-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D106839
2021-03-02 22:11:58 +00:00
Cosmin Sabou
8ec6cda9d8 Backed out changeset 03cae7800b41 (bug 1678330) for mochitest plain failures on test_window_open_discarded_bc.html. CLOSED TREE 2021-03-02 20:18:21 +02:00
Jens Stutte
7ef53cdaed Bug 1678330: Ensure nested SpinEventLoopUntil(OrShutdown) calls are traceable to the originating source in case of crash. r=nika,extension-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D106839
2021-03-02 15:15:20 +00:00
Masayuki Nakano
5dd41d115f Bug 1528289 - part 2: Dispatch same events on the web contents when autoscroll is canceled with a click r=Gijs,edgar
Chrome behaves like this:

1. When user starts autoscroll with a middle click, `mousedown` and `mouseup`
   are fired, but `auxclick` nor `paste` event is not fired.
2. When user ends autoscroll with a left click, only `mouseup` event is fired.
   I.e, `mousedown` nor `click` event is not fired.
3. When user ends autoscroll with a middle click, only `mouseup` event is fired.
   I.e., `mousedown`, `auxclick` nor `paste` events is not fired.
4. When user ends autoscroll with a right click, `mouseup` and `contextmenu`
   events are fired, but `mousedown` and `auxclick` events are not fired.

This patch emulates these Chrome's behavior as far as possible.  However,
unfortunately, we cannot do exactly same behavior without some big patches
because each widget (`nsWindow` or `nsChildView`) discards a mouse event
which rolled up a widget before dispatching it into the DOM.  Therefore,
for now, this patch does not fix the following issues:

1. `mousedown` event is not fired in content when clicking outside the
   autoscroller to close it except when pressing the secondary button or on any
   buttons on Linux.
2. `mouseup` event is not fired in content when clicking outside the
   autoscroller to close it except when pressing the primary button macOS.
3. `click` event and `auxclick` events are fired when clicking outside the
   autoscroller with the secondary button.

So, the middle button `click`/`auxclick` events and `paste` event which is
reported to the bug won't be fired with this patch.  I'll file follow up bugs.

Differential Revision: https://phabricator.services.mozilla.com/D104652
2021-03-01 22:57:07 +00:00
Gijs Kruitbosch
aeacc9134a Bug 1689462 - don't check for beforeunload on hung content processes, r=florian
Differential Revision: https://phabricator.services.mozilla.com/D104043
2021-02-08 23:50:20 +00:00
Paul Zuehlcke
c1c045dd0d Bug 1679512 - Move contentBlockingAllowListPrincipal to WindowGlobalParent. r=timhuang,nika
We only use the contentBlockingAllowListPrincipal for excluding sites from content
blocking for top level documents. We don't need it in the content process and should
not compute it for every document.

Differential Revision: https://phabricator.services.mozilla.com/D100781
2021-01-14 20:37:35 +00:00
Emilio Cobos Álvarez
136e604164 Bug 1635914 - Move active flag handling explicitly to BrowsingContext. r=nika
And have it mirror in the parent process more automatically.

The docShellIsActive setter in the browser-custom-element side needs to
be there rather than in the usual DidSet() calls because the
AsyncTabSwitcher code relies on getting an exact amount of notifications
as response to that specific setter. Not pretty, but...

BrowserChild no longer sets IsActive() on the docshell itself for OOP
iframes. This fixes bug 1679521. PresShell activeness is used to
throttle rAF as well, which handles OOP iframes nicely as well.

Differential Revision: https://phabricator.services.mozilla.com/D96072
2020-12-11 15:43:19 +00:00
Tim Huang
99fe5050b1 Bug 1679489 - Fixing the issue that cookieJarSettings cannot be fetched from the browser. r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D98053
2020-11-30 11:59:58 +00:00
Tim Huang
b993c613e6 Bug 1641270 - Part 4: Expose the cookieJarSettings to the browser object. r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D95614
2020-11-11 11:14:14 +00:00
Mihai Alexandru Michis
a232075e0f Backed out 9 changesets (bug 1641270) for causing dt failures in browser_jsonview_save_json.js
CLOSED TREE

Backed out changeset 89a6dab92f1a (bug 1641270)
Backed out changeset 5f9c5af66b77 (bug 1641270)
Backed out changeset dfeb879f4131 (bug 1641270)
Backed out changeset 143728b1b1ab (bug 1641270)
Backed out changeset 265ae2953416 (bug 1641270)
Backed out changeset 55ea7810c160 (bug 1641270)
Backed out changeset 7bef9112f296 (bug 1641270)
Backed out changeset 2663dc1e9a3e (bug 1641270)
Backed out changeset fcba6dba3649 (bug 1641270)
2020-11-11 13:10:11 +02:00
Tim Huang
2ac378c27b Bug 1641270 - Part 4: Expose the cookieJarSettings to the browser object. r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D95614
2020-11-11 08:38:59 +00:00
Emilio Cobos Álvarez
8529bb07b8 Bug 1673707 - Simplify handling of the suspendMediaWhenInactive flag. r=nika
Make it a synced field on the top browsing context. This handling the
propagation right and is much simpler.

This should fix cases where we don't look at the top level docshell to
figure out if we should suspend media.

Differential Revision: https://phabricator.services.mozilla.com/D94878
2020-10-27 19:55:47 +00:00
alwu
3d2a913d12 Bug 1670841 - part1 : revert the change from D89390. r=geckoview-reviewers,esawin
D89390 introduced a new mechanism which avoids tab with playing audio from being suspended when they are in background. However, it causes some unsatisfying regression such as bug 1670066 and bug 1670069.

In addition, according to what D89390 did, we change tab's docshell active state, which would also affect visibility event [1], and doing that would make tab always visible that would probably cause some bad effect. IIRC, some API like canvas would slow down its performance when it's in background in order to reduce the power consumption.

Therfore, reverting those change first and would use another way to fix the problem.

Differential Revision: https://phabricator.services.mozilla.com/D93444
2020-10-15 16:29:25 +00:00
Agi Sferro
180bc8b697 Bug 1646810 - Remove unused restoreProgressListeners. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D94190
2020-10-20 21:14:51 +00:00
Agi Sferro
e54ae3c3af Bug 1646810 - Expose browser-custom-element::afterChangeRemoteness. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D93864
2020-10-19 17:25:25 +00:00
Gijs Kruitbosch
f55c50df74 Bug 1668586 - stop messing with web progress listeners when changing remoteness, r=mattwoodrow,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D92514
2020-10-07 20:39:33 +00:00
Bogdan Tara
cbb23999d2 Backed out changeset dca68a64b04c (bug 1668586) for test_ext_tabs failures CLOSED TREE 2020-10-06 13:48:35 +03:00
Gijs Kruitbosch
7e32fe1371 Bug 1668586 - stop messing with web progress listeners when changing remoteness, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D92514
2020-10-05 22:19:52 +00:00
Kris Maglione
18bfb781e8 Bug 1667485: Fix inifinite nested event loop spinning in corner cases. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D91886
2020-10-05 17:57:48 +00:00
Kris Maglione
6bf578af12 Bug 1666670: Fix beforeunload timeout handling to ignore prompt. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D91351
2020-10-01 02:46:45 +00:00
Narcis Beleuzu
7825cf6d5a Backed out changeset 6cf959e2de7b (bug 1666670) for wpt failures on scroll-behavior-smooth.html . CLOSED TREE 2020-10-01 05:20:54 +03:00
Kris Maglione
b48a04ab82 Bug 1666670: Fix beforeunload timeout handling to ignore prompt. r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D91351
2020-09-30 19:39:56 +00:00
Olli Pettay
517a59e62b Bug 1667449 - Hide fission.sessionHistoryInParent pref getter behind a function r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91462
2020-09-28 12:01:12 +00:00
Kris Maglione
ba1b105e2a Bug 1655866: Part 5 - Use native PermitUnload implementation from front-end code. r=nika,mconley
Differential Revision: https://phabricator.services.mozilla.com/D88318
2020-09-21 22:41:04 +00:00
Andreas Farre
4589444b55 Bug 1662410 - Part 1: Fix usage of ChildSHistory.legacySHistory . r=peterv
ChildSHistory.legacySHistory isn't valid for content processes when
session history in the parent is enabled. We try to fix this by either
delegating to the parent by IPC or move the implementation partially
or as a whole to the parent.

Differential Revision: https://phabricator.services.mozilla.com/D89353
2020-09-16 14:51:01 +00:00
Paul Adenot
5be61b92b1 Bug 1662805 - Don't freeze a tab when it's playing back audio. r=geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D89390
2020-09-15 09:00:05 +00:00
Cristina Coroiu
1619e5ae5b Backed out 5 changesets (bug 1662805) for multiple failures, e.g. bc failures at dom/media/mediacontrol/tests/browser_media_control_non_eligible_media.js on a CLOSED TREE
Backed out changeset 820eb655de3d (bug 1662805)
Backed out changeset 23c90dd335b1 (bug 1662805)
Backed out changeset eff66444dc68 (bug 1662805)
Backed out changeset caeffea29d80 (bug 1662805)
Backed out changeset 2f8f9799d1f3 (bug 1662805)
2020-09-14 14:44:34 +03:00
Paul Adenot
240e83c97b Bug 1662805 - Don't freeze a tab when it's playing back audio. r=geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D89390
2020-09-14 09:40:18 +00:00
Peter Van der Beken
e4761f543a Bug 1663485 - Make RemoteWebNavigation::canGoBack/Forward use history in the parent if it's enabled. r=mconley
When session history is in the parent we can read state directly from it,
instead of waiting for the child process to send a message with the updated
state. The old mechanism (BrowserParent::RecvOnLocationChange calling
UpdateWebNavigationForLocationChange) is still needed for when session history
in the parent is turned off. We'll remove it eventually, once session history in
the parent sticks.

Differential Revision: https://phabricator.services.mozilla.com/D89418
2020-09-09 17:00:40 +00:00
Emilio Cobos Álvarez
2869a6b995 Bug 1660501 - Fix a typo in browser-custom-element.js. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D87883
2020-08-21 16:20:54 +00:00
Olli Pettay
8f8e5bf5f8 Bug 1656997 - When session history runs in the parent process, SessionStore should not modify the session history when doing process switches, r=nika,mconley
Differential Revision: https://phabricator.services.mozilla.com/D86073
2020-08-14 15:27:26 +00:00
Csoregi Natalia
568e94a5b4 Backed out 2 changesets (bug 1656997, bug 1656996) for fission failures on browser_preferences_usage.js. CLOSED TREE
Backed out changeset c3aaa4f191e6 (bug 1656997)
Backed out changeset e41977f9608f (bug 1656996)
2020-08-14 00:47:56 +03:00
Olli Pettay
d682314b8e Bug 1656997 - When session history runs in the parent process, SessionStore should not modify the session history when doing process switches, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D86073
2020-08-13 19:17:21 +00:00