Commit Graph

408 Commits

Author SHA1 Message Date
Tetsuharu OHZEKI
423370c334 Bug 1606528 - part 2: Replace idioms with BrowsingContext::IsTop(). r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D58481
2020-01-06 19:13:38 +00:00
Kris Maglione
b709d4b8cc Bug 1588259: Part 2 - Prevent URI loads in partially-initialized BrowsingContexts. r=smaug
When we open a new window from a content process, we create a nested event
loop to wait for it to be initialized by the parent. The problem with this is
that the OpenWindow code which calls the window provider expects the window to
be in-process and uninitialized, so that it can load its own initial URI into
it, and correctly fulfil the spec-codified contract of window.open(). If
another caller initiates a load in the new window during the nested event
loop, those invariants are broken, and any manner of undefined behavior can
occur.

This patch adds a new flag to the BrowsingContext, marking it as uninitialized
until the end of the nested event loop, and blocking any attempts to load a
new URI into it in the meantime.

Differential Revision: https://phabricator.services.mozilla.com/D57667
2019-12-19 22:05:19 +00:00
Razvan Maries
8e52fd1919 Backed out 2 changesets (bug 1588259) for perma fais on 1588259.html. CLOSED TREE
Backed out changeset 62fb499df45a (bug 1588259)
Backed out changeset 34716f07e8cb (bug 1588259)
2019-12-19 23:34:57 +02:00
Kris Maglione
8fdd007e40 Bug 1588259: Part 2 - Prevent URI loads in partially-initialized BrowsingContexts. r=smaug
When we open a new window from a content process, we create a nested event
loop to wait for it to be initialized by the parent. The problem with this is
that the OpenWindow code which calls the window provider expects the window to
be in-process and uninitialized, so that it can load its own initial URI into
it, and correctly fulfil the spec-codified contract of window.open(). If
another caller initiates a load in the new window during the nested event
loop, those invariants are broken, and any manner of undefined behavior can
occur.

This patch adds a new flag to the BrowsingContext, marking it as uninitialized
until the end of the nested event loop, and blocking any attempts to load a
new URI into it in the meantime.

Differential Revision: https://phabricator.services.mozilla.com/D57667
2019-12-19 19:53:24 +00:00
Oana Pop Rus
2fa2ebf69d Backed out 7 changesets (bug 1432856) for build bustages failures in nsWindow.h on a CLOSED TREE
Backed out changeset 3d08c3cce533 (bug 1432856)
Backed out changeset 49d03dd89b17 (bug 1432856)
Backed out changeset 62fc84c8ce99 (bug 1432856)
Backed out changeset a8a4fa63f5b2 (bug 1432856)
Backed out changeset c81f3d5b9bf3 (bug 1432856)
Backed out changeset 8351a8b1d96a (bug 1432856)
Backed out changeset a303b775a51b (bug 1432856)
2019-12-16 23:53:35 +02:00
pbz
29a2e0c4e4 Bug 1432856 - Extended focus methods in Window.webidl, Client.webidl and Element.webidl to pass CallerType. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D55811
2019-12-16 21:06:11 +00:00
Randell Jesup
f2dea5f17a Bug 1596784: Support SetTimeout deferral during load under Fission r=smaug
Fission puts subdocuments (potentially) in separate processes, so we can't
just EnumerateSubDocuments and poke the TimeoutManagers for each one.

Differential Revision: https://phabricator.services.mozilla.com/D56547
2019-12-13 17:09:33 +00:00
Andrew McCreight
75188deaac Bug 1601423 - Don't send a postMessage IPC message if the source BC has been discarded. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D56615
2019-12-12 13:42:47 +00:00
Matt Woodrow
dd18b7c877 Bug 1602366 - Don't try to close if we're already discarded. r=mccr8
Depends on D56820

Differential Revision: https://phabricator.services.mozilla.com/D56821
2019-12-12 02:31:55 +00:00
Matt Woodrow
ac589f56c9 Bug 1589123 - Do BrowsingContext::LoadURI messages via PContent, not PWindowGlobal since we might not have a current global. r=kmag
Depends on D56818

Differential Revision: https://phabricator.services.mozilla.com/D56820
2019-12-12 02:32:00 +00:00
Yaron Tausky
f2ac96b49b Bug 1593246 - Part 2: Give SessionStorageManager a reference to BrowsingContext r=sg
This reference is necessary when sending session storage data for
all browsing context to the parent process. Note that it entails
making SessionStorageManager a cycle collection participant, since
adding this reference creates a cycle.

Differential Revision: https://phabricator.services.mozilla.com/D55659
2019-12-10 12:12:32 +00:00
Yaron Tausky
d902a7d422 Bug 1593246 - Part 1: Move SessionStorageManager to BrowsingContext r=dom-workers-and-storage-reviewers,sg,smaug
With Fission enabled we do not necessarily have access to the
nsDocShell that holds the top-level browsing context, so the
BrowsingContext is a better place to store information that needs
to be accessible to nested browsing contexts.

Differential Revision: https://phabricator.services.mozilla.com/D55276
2019-12-10 12:12:25 +00:00
Razvan Maries
3aec015044 Backed out 3 changesets (bug 1593246) for build bustages on BrowsingContext.h. CLOSED TREE
Backed out changeset fd389138a684 (bug 1593246)
Backed out changeset 2663311a1b62 (bug 1593246)
Backed out changeset d9f0d827e28d (bug 1593246)
2019-12-09 20:32:18 +02:00
Yaron Tausky
ebf3de1ac6 Bug 1593246 - Part 2: Give SessionStorageManager a reference to BrowsingContext r=sg
This reference is necessary when sending session storage data for
all browsing context to the parent process. Note that it entails
making SessionStorageManager a cycle collection participant, since
adding this reference creates a cycle.

Depends on D55276

Differential Revision: https://phabricator.services.mozilla.com/D55659
2019-12-05 17:51:59 +00:00
Yaron Tausky
af3113e2f9 Bug 1593246 - Part 1: Move SessionStorageManager to BrowsingContext r=dom-workers-and-storage-reviewers,sg,smaug
With Fission enabled we do not necessarily have access to the
nsDocShell that holds the top-level browsing context, so the
BrowsingContext is a better place to store information that needs
to be accessible to nested browsing contexts.

Differential Revision: https://phabricator.services.mozilla.com/D55276
2019-12-09 13:04:51 +00:00
Micah Tigley
fe3c8f9837 Bug 1595800 - Part 1: Move screen orientation attributes from Document to BrowsingContext r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D54999
2019-12-04 00:44:27 +00:00
Gurzau Raul
b34e3d1096 Backed out 4 changesets (bug 1595800) for failing at browser_orientationchange_event.js on a CLOSED TREE.
Backed out changeset c78cb9bbddb9 (bug 1595800)
Backed out changeset 558449ce7d0a (bug 1595800)
Backed out changeset ef7f9e251137 (bug 1595800)
Backed out changeset 2167343f5bd3 (bug 1595800)
2019-12-04 02:27:04 +02:00
Micah Tigley
1b7b1b7e0f Bug 1595800 - Part 1: Move screen orientation attributes from Document to BrowsingContext r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D54999
2019-12-03 17:49:07 +00:00
Brindusan Cristian
81dd96364c Backed out 4 changesets (bug 1595800) for devtools failures at browser_contextual_identity.js. CLOSED TREE
Backed out changeset 7d6f51331aed (bug 1595800)
Backed out changeset d44c8dde04be (bug 1595800)
Backed out changeset 2f607bbc19b9 (bug 1595800)
Backed out changeset 196ca9fefb06 (bug 1595800)
2019-12-03 19:44:37 +02:00
Micah Tigley
a84d6f03c8 Bug 1595800 - Part 1: Move screen orientation attributes from Document to BrowsingContext r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D54999
2019-12-03 15:55:33 +00:00
Olli Pettay
1870f57250 Bug 1598775 - Ensure postMessage related optimizations during page load work also in Fission, r=farre
Bug 1534012 added a test for postMessage during load and that revealed that mLoading flag isn't always updated
soon enough, so add BrowsingContext::IsLoading which checks also possible local loading status.

Depends on D54754

Differential Revision: https://phabricator.services.mozilla.com/D54836
2019-11-30 21:13:54 +00:00
Olli Pettay
c26c2348f4 Bug 1599467 - Make XHR and Fetch to use deprioritized loading while the top level page is loading in Fission, r=farre
The patch moves DeprioritizedLoadRunner handling from top level inner window to top level browsing context.

Differential Revision: https://phabricator.services.mozilla.com/D54754
2019-11-30 21:13:24 +00:00
alwu
e7ec94da6a Bug 1593843 - part3 : store the request status in top-level browsing context. r=farre
If the page has already had same type pending request, then we don't want to send another request. If the page has already got the response from the request, we also don't want to send another request again.

In order to achieve that, we decide to store the request's staus on the top-browsing context to make sure that all media elements in the same browsing context tree can share the same status. Thereforw, we could avoid sending redudant request when there is a pending request, and reuse the previous request's result.

Differential Revision: https://phabricator.services.mozilla.com/D52431
2019-11-25 11:00:13 +00:00
Noemi Erli
044fdbe916 Backed out 13 changesets (bug 1593843) for bustages in Logging.h CLOSED TREE
Backed out changeset b6e3fa6363bd (bug 1593843)
Backed out changeset 3db512256b0d (bug 1593843)
Backed out changeset f67081ea84ee (bug 1593843)
Backed out changeset ad02bb934459 (bug 1593843)
Backed out changeset 1a79176d3f7b (bug 1593843)
Backed out changeset 486c8562b816 (bug 1593843)
Backed out changeset 0d4313c436c5 (bug 1593843)
Backed out changeset 0c7e831d11bf (bug 1593843)
Backed out changeset 02ac8c39f46d (bug 1593843)
Backed out changeset 80895462dddf (bug 1593843)
Backed out changeset 4ab855869725 (bug 1593843)
Backed out changeset 5a24fc933cd6 (bug 1593843)
Backed out changeset f1c50ee60a78 (bug 1593843)
2019-11-23 05:18:17 +02:00
alwu
931738187c Bug 1593843 - part3 : store the request status in top-level browsing context. r=farre
If the page has already had same type pending request, then we don't want to send another request. If the page has already got the response from the request, we also don't want to send another request again.

In order to achieve that, we decide to store the request's staus on the top-browsing context to make sure that all media elements in the same browsing context tree can share the same status. Thereforw, we could avoid sending redudant request when there is a pending request, and reuse the previous request's result.

Differential Revision: https://phabricator.services.mozilla.com/D52431
2019-11-22 09:17:35 +00:00
Andreas Farre
2fb0a6c70f Bug 1590782 - Switch process when InternalLoad finds oop BrowsingContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D50945
2019-11-12 21:52:18 +00:00
Matt Woodrow
1068719a1b Bug 1589270 - Part 3: Convert nsExternalHelperApp to use BrowsingContext instead of nsIInterfaceRequestor. r=bzbarsky
This also converts MaybeCloseWindowHelper, and results in the window close operations being always run in the parent (even without DocumentChannel).

Differential Revision: https://phabricator.services.mozilla.com/D49528
2019-11-08 04:35:05 +00:00
Peter Van der Beken
d39c3601d1 Bug 1438272 - Part 1: move HistoryID to BrowsingContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D25766
2019-03-05 10:33:42 +01: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
Kashav Madan
73ab800670 Bug 1590239 - Send a "browsing-context-discarded" notification when detaching, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D50520
2019-10-29 17:15:29 +00:00
Andreas Farre
a737baed0b Bug 1575051 - Part 4: Expose JS stack access check control on FindWithName. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D49286
2019-10-25 15:34:30 +00:00
Andreas Farre
22d88214fc Bug 1575051 - Part 2: Look in chrome browsing context group when docshell is missing. r=kmag
Also some minor cleanup in nsWindowWatcher, as well as a small fix,
where GetWindowByName forgot to addref its return value (as changed in
Part 1).

Differential Revision: https://phabricator.services.mozilla.com/D48976
2019-10-24 14:53:07 +00:00
Andreas Farre
3262edc078 Bug 1575051 - Part 1: Remove nsIDocShellTreeItem.findItemWithName. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D46285
2019-10-24 14:53:07 +00:00
Tom Tung
5753ad84f4 Bug 1583251 - P1 - Propagate the targetAgentClusterId to PostMessageEvent::Run(); r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48347
2019-10-23 07:19:48 +00:00
Kashav Madan
271a90b578 Bug 1589399 - Make BrowsingContext implement nsISupports, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49786
2019-10-18 18:58:30 +00:00
Razvan Maries
495feee7f1 Backed out 5 changesets (bug 1583251) for rust build bustages. CLOSED TREE
Backed out changeset bfe390ad771b (bug 1583251)
Backed out changeset 0113c698b44d (bug 1583251)
Backed out changeset 248ad59168dd (bug 1583251)
Backed out changeset 5d5e3dc17118 (bug 1583251)
Backed out changeset 9e9eaa78c436 (bug 1583251)
2019-10-18 17:59:20 +03:00
Tom Tung
c8be3733be Bug 1583251 - P1 - Propagate the targetAgentClusterId to PostMessageEvent::Run(); r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48347
2019-10-17 19:29:54 +00:00
Edgar Chen
b2d6793250 Bug 1588720 - Part 2: Track number of popup spam through BrowsingContext; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D49276
2019-10-18 03:04:55 +00:00
Narcis Beleuzu
8b503ffdd0 Backed out 3 changesets (bug 1575051) for bc failures on browser_browsingContext-getWindowByName.js . CLOSED TREE
Backed out changeset 67aaf4a157af (bug 1575051)
Backed out changeset e01256038537 (bug 1575051)
Backed out changeset 0c8f70f9328b (bug 1575051)
2019-10-14 19:19:05 +03:00
Andreas Farre
c48483dcae Bug 1575051 - Part 2: Look in chrome browsing context group when docshell is missing. r=kmag
Also some minor cleanup in nsWindowWatcher, as well as a small fix,
where GetWindowByName forgot to addref its return value (as changed in
Part 1).

Differential Revision: https://phabricator.services.mozilla.com/D48976
2019-10-14 12:32:08 +00:00
Andreas Farre
967275c308 Bug 1575051 - Part 1: Remove nsIDocShellTreeItem.findItemWithName. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D46285
2019-10-14 12:07:14 +00:00
Kris Maglione
3678333d88 Bug 1586887: Return WindowProxyHolder rather than BrowsingContext from Window WebIDL getters. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48429
2019-10-11 19:32:09 +00:00
Kris Maglione
a401db1ae2 Bug 1586926 - Add necessary caller access checks for cross-process Location navigations. r=nika
We attempt to enforce the same (approximate) access checks to Location-based
navigation that we use for loads that use named targeting (e.g., via
window.open), so that a frame that can't be navigated via, e.g., window.open,
also can't be navigated via, e.g., window.parent[1].location = url. For the
in-process case, this is handled by a somewhat hidden call to
CheckLoadingPermissions() in nsDocShell::InternalLoad, where the former checks
whether the principal of whatever JS context happens to be on the stack
subsumes the principal of the target DocShell or any of its ancestors, and
blocks the load if it doesn't.

Since there is no JS context on the stack when we call into the DocShell
loading code in the cross-process case, the check is simply ignored.

So we need to instead do the check in BrowsingContext::LoadURI, where we
already have an explicit accessor, and can simply use the standard access
checks that we use elsewhere.

Differential Revision: https://phabricator.services.mozilla.com/D48443
2019-10-10 19:36:23 +00:00
Matt Woodrow
c2f9b65aa6 Bug 1578624 - P6: Add LoadURI to BrowsingContext's webidl. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D44762
2019-10-11 02:27:14 +00:00
Matt Woodrow
205943b591 Bug 1578624 - P5: Add DisplayLoadError to BrowsingContext. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D44761
2019-10-11 02:27:07 +00:00
Matt Woodrow
72d26be23d Bug 1578624 - P4: Add an option to set mIsNavigating on the docshell when loading using BrowsingContext. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D44760
2019-10-11 02:27:05 +00:00
Nika Layzell
0b173c83d8 Bug 1575163 - Dont send PostMessage events to a discarded BrowsingContext, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D48418
2019-10-09 14:20:23 +00:00
Brindusan Cristian
170d6fb93f Backed out 11 changesets (bug 1578624) for build bustages. CLOSED TREE
Backed out changeset b22733eb880f (bug 1578624)
Backed out changeset cb5e15489635 (bug 1578624)
Backed out changeset f1746b2f9dec (bug 1578624)
Backed out changeset d08a099a22ff (bug 1578624)
Backed out changeset 8ebd563c72a8 (bug 1578624)
Backed out changeset d8bfec2dc9b6 (bug 1578624)
Backed out changeset 591664928bce (bug 1578624)
Backed out changeset 63f5a619b9ef (bug 1578624)
Backed out changeset ff67cc13cdf3 (bug 1578624)
Backed out changeset 43556c937a09 (bug 1578624)
Backed out changeset 49065a55694d (bug 1578624)
2019-10-09 11:50:37 +03:00
Matt Woodrow
7360fbed91 Bug 1578624 - P6: Add LoadURI to BrowsingContext's webidl. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D44762
2019-10-09 06:37:51 +00:00
Matt Woodrow
accaa04356 Bug 1578624 - P5: Add DisplayLoadError to BrowsingContext. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D44761
2019-10-09 06:58:34 +00:00