Commit Graph

248 Commits

Author SHA1 Message Date
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
Nika Layzell
e9a2f4801a Bug 1589517 - Part 4: Remove sameProcessAsFrameLoader, r=zombie,mconley,farre,smacleod
The functionality has been fully subsumed by the new
initialBrowsingContextGroupId attribute, so it is no longer necessary.

Differential Revision: https://phabricator.services.mozilla.com/D85653
2020-08-06 17:01:13 +00:00
Jonathan Watt
19bf28a23f Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy
(Instead of requiring callers to pass an nsIWebProgressListener.)

Differential Revision: https://phabricator.services.mozilla.com/D83249
2020-07-22 23:17:45 +00:00
Narcis Beleuzu
25bcd488ae Backed out changeset f95c19e45ab2 (bug 1652270) for reftest failures on test-text.html . CLOSED TREE 2020-07-22 20:36:53 +03:00
Jonathan Watt
2a0f138ef8 Bug 1652270. Convert nsFrameLoader::Print to return a Promise. r=farre,remote-protocol-reviewers,marionette-reviewers,jgraham,whimboo,mixedpuppy
(Instead of requiring callers to pass an nsIWebProgressListener.)

Differential Revision: https://phabricator.services.mozilla.com/D83249
2020-07-22 15:54:01 +00:00
Neil Deakin
59041c6253 Bug 1654124, switch to get the remote type from the browsing context rather than the message manager in a few places, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D84269
2020-07-21 17:16:50 +00:00
Kris Maglione
9bddbcfdd1 Bug 1649221: Update ChromeUtils.generateQI callers to pass strings. r=mccr8,remote-protocol-reviewers,marionette-reviewers,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,preferences-reviewers,agi,whimboo,Bebe,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D81594
2020-07-10 23:58:28 +00:00
Matt Woodrow
e243995bb0 Bug 1646582 - Pull the inner window id from the WindowGlobalParent, rather than passing it across PBrowser for updateForLocationChange. r=nika,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D80131
2020-06-24 19:59:32 +00:00
Matt Woodrow
f257c0ed7a Bug 1646582 - Remove RemoteWebProgressManager. r=nika,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D80129
2020-06-24 19:59:04 +00:00
Dorel Luca
cbf0f75a5d Backed out 4 changesets (bug 1646582) for Browser-chrome failures on nsIWebProgress.addProgressListener. CLOSED TREE
Backed out changeset 2111dd0d6dc0 (bug 1646582)
Backed out changeset e6c496c5a4b1 (bug 1646582)
Backed out changeset 49b4ae8c8be0 (bug 1646582)
Backed out changeset 9d42ec89240c (bug 1646582)
2020-06-24 07:50:07 +03:00
Matt Woodrow
c8b4ec4628 Bug 1646582 - Pull the inner window id from the WindowGlobalParent, rather than passing it across PBrowser for updateForLocationChange. r=nika,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D80131
2020-06-24 03:25:35 +00:00
Matt Woodrow
2615b902c5 Bug 1646582 - Remove RemoteWebProgressManager. r=nika,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D80129
2020-06-24 03:25:09 +00:00
Narcis Beleuzu
80ce4752a3 Backed out 4 changesets (bug 1646582) for mochitest failures on test_ext_tabs_create.html . CLOSED TREE
Backed out changeset ce5cdfc5d7cf (bug 1646582)
Backed out changeset 2ac69a2b6708 (bug 1646582)
Backed out changeset 74d89cb24414 (bug 1646582)
Backed out changeset 7de0ff1af560 (bug 1646582)
2020-06-23 06:30:03 +03:00
Matt Woodrow
0dbbcec124 Bug 1646582 - Pull the inner window id from the WindowGlobalParent, rather than passing it across PBrowser for updateForLocationChange. r=nika,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D80131
2020-06-23 01:24:17 +00:00