Commit Graph

514 Commits

Author SHA1 Message Date
David Teller
4c332afa00 Bug 1605072 - Make CanonicalBrowsingContext::ChangeFrameRemoteness use async process launching;r=kmag,nika
Differential Revision: https://phabricator.services.mozilla.com/D57775
2020-02-18 14:03:09 +00:00
Henri Sivonen
0bb6ff45eb Bug 1556627 - Make nsFocusManager::SetFocus work in Fission. r=NeilDeakin,farre,masayuki
Differential Revision: https://phabricator.services.mozilla.com/D55651
2020-02-18 13:30:04 +00:00
shindli
ce5bebbc3d Backed out 2 changesets (bug 1605072) for causing reftest failures in layout/reftests/selection/splitText-normalize-ref.html CLOSED TREE
Backed out changeset 973f1e5baebf (bug 1605072)
Backed out changeset 038b50303733 (bug 1605072)
2020-02-17 21:39:58 +02:00
David Teller
4fd17acadf Bug 1605072 - Make CanonicalBrowsingContext::ChangeFrameRemoteness use async process launching;r=kmag,nika
Differential Revision: https://phabricator.services.mozilla.com/D57775
2020-02-17 17:31:39 +00:00
Simon Giesecke
9bcfd47601 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-13 14:38:48 +00:00
shindli
6bb3487209 Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke
d45525793f Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-12 17:24:41 +00:00
Kris Maglione
d7e4043bb8 Bug 1582832: Part 1 - Make FrameLoader owner rather than DocShell responsible for discarding a BC. r=nika
There are all sorts of lifecycle issues which arise from making DocShell
responsible for discarding BrowsingContexts. In this particular bug, we tend
to run into them in cases where we create a BrowsingContext for a FrameLoader,
and then never create a DocShell for it, leading to it never being destroyed.
But there are myriad other issues as well.

This patch moves the responsibility for BrowsingContext lifecycle management
to the FrameLoader/FrameLoaderOwner, rather than the DocShell, which makes
things more consistent, and more closely aligns with spec-defined behavior.

Differential Revision: https://phabricator.services.mozilla.com/D59008
2020-02-06 19:07:56 +00:00
Andreas Farre
ab078dadbb Bug 1583863 - Part 3: WindowContext using SyncedContext, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D56743
2020-01-20 14:58:52 +00:00
Andreas Farre
8333415e36 Bug 1583863 - Part 2: BrowsingContext moved to SyncedContext, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D56742
2020-01-20 14:57:47 +00:00
alwu
933c5b76fa Bug 1606782 - part2 : create media controller via canonical browsing context. r=chunmin,nika
As each media controller corresponds to a tab (a browsing context tree), so the controller's life cycle should be equal to the tab. Currently we use the top-level browsing context to represent a tab, so when that browsing context is being destroyed, we should also destroy the corresponding media controller.

Therefore, `MediaControlService` don't need to have methods to access media controller anymore, we should access media controller directly from the top-level canonical browsing context.

Differential Revision: https://phabricator.services.mozilla.com/D58591
2020-01-16 18:05:14 +00:00
Andreea Pavel
ccc0e8ac2d Backed out changeset d04e34978e0b (bug 1605072) for test crashes e.g [@ mozilla::PreallocatedProcessManagerImpl::AddBlocker(mozilla::dom::ContentParent*)] on a CLOSED TREE 2020-01-06 13:56:03 +02:00
David Teller
595705d3f4 Bug 1605072 - Make CanonicalBrowsingContext::ChangeFrameRemoteness use async process launching;r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D57775
2019-12-20 19:56:31 +00:00
Alastor Wu
20769506d5 Bug 1601144 - use 'MediaControlKeysEvent' to replace 'MediaControlActions'. r=chunmin
They are all used to control media, so we could unify them to one type.

Differential Revision: https://phabricator.services.mozilla.com/D57351
2019-12-18 22:37:39 +00:00
Sean Feng
6dd38ab051 Bug 1589700 - Record the number of unique site origins across all tabs r=smaug,agi,Dexter
Differential Revision: https://phabricator.services.mozilla.com/D54027
2019-12-05 23:13:24 +00:00
Razvan Maries
48f4b7d07a Backed out changeset 52af8765cb21 (bug 1589700) for perma fails on browser_Telemetry_numberOfSiteOrigins.js. CLOSED TREE 2019-12-04 23:48:27 +02:00
Sean Feng
09c076a534 Bug 1589700 - Record the number of unique site origins across all tabs r=smaug,agi,Dexter
Differential Revision: https://phabricator.services.mozilla.com/D54027
2019-12-04 19:39:18 +00:00
Olli Pettay
e19d8a2dfa Bug 1595900 - CanonicalBrowsingContext::GetSessionHistory should be able to deal with in-process case too, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D52738
2019-11-13 15:21:25 +00:00
alwu
c66b837d2e Bug 1592461 - part2 : use 'MediaActionHandler' to handle 'MediaControlActions'. r=bzbarsky
Instead of letting the outer window to process `MediaControlActions`, it would be better to handle those actions all in `MediaActionHandler`.

Differential Revision: https://phabricator.services.mozilla.com/D51029
2019-10-31 21:22:33 +00:00
Peter Van der Beken
a4eb5a6223 Bug 1560940 - Change tests that use session history listeners to listen in the parent process. r=nika
Expose SHistory object from CanonicalBrowsingContext.

Differential Revision: https://phabricator.services.mozilla.com/D35654
2019-06-19 21:09:28 +02:00
Nika Layzell
c42f4426d0 Bug 1590908 - Part 1: Move parent-only LoadURI method to CanonicalBrowsingContext, r=kmag
These methods are only callable from the parent process, so it doesn't make
sense to have the method available driectly on BrowsingContext.

Differential Revision: https://phabricator.services.mozilla.com/D50854
2019-11-04 15:05:47 +00:00
Nika Layzell
101fcd48d0 Bug 1589342 - Ensure BrowsingContext is not discarded after new process spawn, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D50991
2019-10-30 17:43:15 +00:00
Tim Huang
44d8da2272 Bug 1590032 - Propagate the first party domain when creating new browser in Fission. r=smaug
In this patch, we add the propagation of the first party domain through
the tabContext while creating OOP browsers. In the window.open() case,
we will propagate the first party domain from the opener's browser parent.
And in the frame case, we will propagate it from the manager of the
browserBridgeParent of the OOP frame.

Differential Revision: https://phabricator.services.mozilla.com/D49886
2019-10-24 08:51:06 +00:00
Nika Layzell
2653b16f9a Bug 1576714 - Part 3: Initiate subframe process switches from the parent, r=kmag
This flips the direction in which the BrowserBridge actor is generally created
such that it is generally created in the parent and sent down to a child
process.

This is done by making the decision about what kind of switch to perform in the
parent, and sending messages down to child processes async to orchestrate these
process changes.

Process launching is changed to use an async `MozPromise`-returning API in this
patch, though the actual process launching still occurs synchronously. A future
patch will enable performing async process launching through the
NewOrUsedBrowserProcess mechanism.

I know of at least a few timing issues which exist with the new logic,
especially around the state of the BrowsingContext during the process
transition. I decided to not try to fix all of these issues in this patch, as
many are complex and will require changing how we manage the lifecycle of
BrowsingContext substantially. I do, however, think that the new logic is more
reliable and has fewer timing issues than the previous logic.

Differential Revision: https://phabricator.services.mozilla.com/D47310
2019-10-15 16:19:16 +00:00
Csoregi Natalia
107c11ccab Backed out 7 changesets (bug 1576714) for fission permafailures on test_bug590812.html. a=backout
Backed out changeset d0c49f00eb91 (bug 1576714)
Backed out changeset faecc9f35b49 (bug 1576714)
Backed out changeset 2e156655c31e (bug 1576714)
Backed out changeset eece722082c7 (bug 1576714)
Backed out changeset ebda40f96884 (bug 1576714)
Backed out changeset 7dce423417d8 (bug 1576714)
Backed out changeset 9a5072019168 (bug 1576714)
2019-10-05 00:08:33 +03:00
Nika Layzell
59a927155f Bug 1576714 - Part 3: Initiate subframe process switches from the parent, r=kmag
This flips the direction in which the BrowserBridge actor is generally created
such that it is generally created in the parent and sent down to a child
process.

This is done by making the decision about what kind of switch to perform in the
parent, and sending messages down to child processes async to orchestrate these
process changes.

Process launching is changed to use an async `MozPromise`-returning API in this
patch, though the actual process launching still occurs synchronously. A future
patch will enable performing async process launching through the
NewOrUsedBrowserProcess mechanism.

I know of at least a few timing issues which exist with the new logic,
especially around the state of the BrowsingContext during the process
transition. I decided to not try to fix all of these issues in this patch, as
many are complex and will require changing how we manage the lifecycle of
BrowsingContext substantially. I do, however, think that the new logic is more
reliable and has fewer timing issues than the previous logic.

Differential Revision: https://phabricator.services.mozilla.com/D47310
2019-10-03 21:40:24 +00:00
Brindusan Cristian
f5f4823217 Backed out 6 changesets (bug 1576714) for build bustages at nsFrameLoaderOwner.cpp. CLOSED TREE
Backed out changeset 083967e704d2 (bug 1576714)
Backed out changeset b3467f1bdde7 (bug 1576714)
Backed out changeset 88e3b4b7fbaf (bug 1576714)
Backed out changeset b91221da32c7 (bug 1576714)
Backed out changeset 6996b7705f06 (bug 1576714)
Backed out changeset a303fc193f60 (bug 1576714)
2019-10-02 04:14:53 +03:00
Nika Layzell
eb7940e4be Bug 1576714 - Part 3: Initiate subframe process switches from the parent, r=kmag
This flips the direction in which the BrowserBridge actor is generally created
such that it is generally created in the parent and sent down to a child
process.

This is done by making the decision about what kind of switch to perform in the
parent, and sending messages down to child processes async to orchestrate these
process changes.

Process launching is changed to use an async `MozPromise`-returning API in this
patch, though the actual process launching still occurs synchronously. A future
patch will enable performing async process launching through the
NewOrUsedBrowserProcess mechanism.

I know of at least a few timing issues which exist with the new logic,
especially around the state of the BrowsingContext during the process
transition. I decided to not try to fix all of these issues in this patch, as
many are complex and will require changing how we manage the lifecycle of
BrowsingContext substantially. I do, however, think that the new logic is more
reliable and has fewer timing issues than the previous logic.

Differential Revision: https://phabricator.services.mozilla.com/D47310
2019-10-01 18:09:03 +00:00
Nika Layzell
ba08b2ed0b Bug 1582237 - Expose embedder inner window ID on BrowsingContext in all processes, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D46802
2019-09-26 16:16:32 +00:00
Kris Maglione
3df0215e6c Bug 1542415: Part 2 - Treat in-flight messages from incorrect owner as warnings. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D44736
2019-09-09 11:50:35 +00:00
Abdoulaye O. Ly
dfe95e81d9 Bug 1562990 - [Fission] Make AudioPlayback work with JSWindowActor. r=NeilDeakin,farre
Differential Revision: https://phabricator.services.mozilla.com/D36648
2019-08-19 21:17:21 +00:00
Nika Layzell
a090090326 Bug 1571063 - Simplify BrowsingContext field sync logic, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D40524
2019-08-09 14:51:30 +00:00
alwu
4ff15382f7 Bug 1565689 - part5 : control media from chrome process. r=farre,baku
This patch implements how to use MediaController to control corresponding media in content processes.

Differential Revision: https://phabricator.services.mozilla.com/D38145
2019-08-07 01:46:03 +00:00
Daniel Varga
7076f626c1 Backed out changeset 14e11bbc0dd3 (bug 1571063) for geckoview-web-platform-tests failures at /html/cross-origin/anonymous.tentative.html 2019-08-09 00:02:18 +03:00
Nika Layzell
c942bb4df9 Bug 1571063 - Simplify BrowsingContext field sync logic, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D40524
2019-08-07 17:07:19 +00:00
Andreea Pavel
402570769a Backed out 7 changesets (bug 1565689) for assertion failures at MediaControlUtils.h on a CLOSED TREE
Backed out changeset 9ebf6f8a4fda (bug 1565689)
Backed out changeset 49c41a9238f9 (bug 1565689)
Backed out changeset 9014276e070a (bug 1565689)
Backed out changeset d9f7fcbef3ee (bug 1565689)
Backed out changeset d3db3285e933 (bug 1565689)
Backed out changeset 1ca26f550f4b (bug 1565689)
Backed out changeset 1d27d083e974 (bug 1565689)
2019-08-07 04:40:52 +03:00
alwu
0dc5070a72 Bug 1565689 - part5 : control media from chrome process. r=farre,baku
This patch implements how to use MediaController to control corresponding media in content processes.

Differential Revision: https://phabricator.services.mozilla.com/D38145
2019-08-06 01:13:07 +00:00
Bogdan Tara
288c163e6d Backed out 7 changesets (bug 1565689) for browser chrome failures CLOSED TREE
Backed out changeset 36ea91bf28f7 (bug 1565689)
Backed out changeset 278340adf69c (bug 1565689)
Backed out changeset 4f508252b015 (bug 1565689)
Backed out changeset faaa4e9ba8d3 (bug 1565689)
Backed out changeset 177f2b26c892 (bug 1565689)
Backed out changeset ba665f96330d (bug 1565689)
Backed out changeset 0de7b1db3ef9 (bug 1565689)
2019-08-06 04:09:19 +03:00
alwu
f1b7fc45b1 Bug 1565689 - part5 : control media from chrome process. r=farre,baku
This patch implements how to use MediaController to control corresponding media in content processes.

Differential Revision: https://phabricator.services.mozilla.com/D38145
2019-08-05 17:32:27 +00:00
Nika Layzell
37f417b0ae Bug 1559460 - Support subframe process switches into embedder process, r=mccr8
This change comes in two parts. First, the code in WindowGlobalChild was changed
to detect the in-process case, and instruct the nsFrameLoader to become a
non-remote nsFrameLoader, and second the logic in WindowGlobalParent was updated
to ensure that the OwnerProcessID is updated after the change.

Differential Revision: https://phabricator.services.mozilla.com/D35060
2019-06-21 16:34:30 +00:00
Alastor Wu
0a30e7b17a Bug 1553328 - use browsing context to notify tab mute/unmute media. r=baku,farre
This bug will use the browsing context to notify content tab to mute/unmute media, instead of using MessageManager. We would use the top level canonical browsing context to
set the media mute property for the top level window and propagate it to other top level windows in other processes.

If we don't do so, we're not able to mute/unmute media in the different process when we we enable Fission, because the current way we use can only notify one process and would cause the media on other process can't be muted/unmuted.

Differential Revision: https://phabricator.services.mozilla.com/D32077
2019-05-22 12:19:49 +00:00
Andreas Farre
341b4d4af9 Bug 1547219 - Add helper for iterating ContentParents in BCG. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D29152
2019-04-30 08:45:41 +00:00
Nika Layzell
847115980f Bug 1542790 - Part 5: Relax toplevel BC requirements, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D27516
2019-04-17 00:53:20 +00:00
Nika Layzell
aac7e782f2 Bug 1525427 - Part 1: Expose WindowGlobalParent & Element on BrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D25181
2019-04-17 00:51:36 +00:00
Nika Layzell
40450cd16c Bug 1542782 - Expose currentRemoteType on CanonicalBrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D26550
2019-04-08 16:29:08 +00:00
Gurzau Raul
a31d364d9b Backed out 4 changesets (bug 1525427) for failing at /browser_browsingContext-embedder.js on a CLOSED TREE.
Backed out changeset 0227a59eba8e (bug 1525427)
Backed out changeset 18fba79d8671 (bug 1525427)
Backed out changeset f7c82615ea05 (bug 1525427)
Backed out changeset 4a210c9266ed (bug 1525427)
2019-03-28 20:54:28 +02:00
Nika Layzell
527af262b0 Bug 1525427 - Part 1: Expose WindowGlobalParent & Element on BrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D25181
2019-03-28 15:03:54 +00:00
Nika Layzell
afb9031e34 Bug 1539069 - Part 2: Use field epochs to avoid racy field interactions, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D24976
2019-03-27 09:19:29 +00:00
Nika Layzell
88d73c4472 Bug 1539069 - Part 1: Allow BC fields to be racy, and not have ProcessID validated, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D24975
2019-03-27 13:46:01 +00:00
Alastor Wu
4f26766702 Bug 1524065 - part1 : implement the way to resume delayed autoplay media via browsing context. r=farre
After enable Fission, we're not able to resume media in the different process, because the current way we use can only notify one process and would cause the media on other process can't be resumed.

Therefore, we should use the browsing context to notify the web content which might be on different processes.

Differential Revision: https://phabricator.services.mozilla.com/D18136
2019-03-20 03:15:36 +00:00