Commit Graph

682 Commits

Author SHA1 Message Date
Nika Layzell
32a9a739a7 Bug 1615403 - Part 9: Remove old BrowsingContext & WindowContext serializers, r=farre
These serializers have been superceded by the new
MaybeDiscarded<BrowsingContext> and MaybeDiscarded<WindowContext> serializers
added in earlier parts.

Differential Revision: https://phabricator.services.mozilla.com/D62838
2020-02-20 23:30:56 +00:00
Nika Layzell
f596d846f3 Bug 1615403 - Part 5: Use MaybeDiscarded for RestoreBrowsingContextChildren, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D62836
2020-02-20 23:30:47 +00:00
Nika Layzell
3a735eb297 Bug 1615403 - Part 1: Introduce a new MaybeDiscarded type, r=farre
Adds a new MaybeDiscarded wrapper type which allows sending a maybe-discarded
BrowsingContext over IPC to another process which must be explicitly checked for
nullness and discarded status before being used.

Differential Revision: https://phabricator.services.mozilla.com/D62832
2020-02-20 23:30:33 +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
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
3af7a24cdd Bug 1582832: Part 3 - Correctly handle windowless BCs created for printing. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D61006
2020-02-06 19:08:06 +00:00
Kris Maglione
c48e9854bb Bug 1582832: Part 2 - Don't attach a BrowsingContext before a FrameLoader is initialized. r=nika
There are cases where the initial BrowsingContext that we create for a
FrameLoader will never have a DocShell created for it. In the particular case
when the frame it belongs to is part of an inactive document, trying to
eagerly attach the BrowsingContext ends up attaching it as an active child of
its parent BrowsingContext, when it should be either cached or detached. Which
causes no end of problems.

This patch delays attaching the BrowsingContext until the FrameLoader is
initialized, which solves most of these problems.

Differential Revision: https://phabricator.services.mozilla.com/D59009
2020-02-06 19:08:04 +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
Andrea Marchesini
8dcb4fe84b Bug 1611855 - Worklet must be part of the same parent's agentCluster - part 2 - CloneDataPolicy in writing, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61182
2020-02-06 13:46:25 +00:00
Narcis Beleuzu
f00579517d Backed out 13 changesets (bug 1611855) for wpt failures on /audioworklet-postmessage-sharedarraybuffer.https.html . CLOSED TREE
Backed out changeset 2b661d588f96 (bug 1611855)
Backed out changeset 16094fc92bc9 (bug 1611855)
Backed out changeset 3f89bbcaff92 (bug 1611855)
Backed out changeset a906501b6d92 (bug 1611855)
Backed out changeset 54738b88425d (bug 1611855)
Backed out changeset d27de910a6c0 (bug 1611855)
Backed out changeset 261902f6336d (bug 1611855)
Backed out changeset 380d83b61e62 (bug 1611855)
Backed out changeset 39aac60ebf5e (bug 1611855)
Backed out changeset 5ea099787376 (bug 1611855)
Backed out changeset d0f58871f838 (bug 1611855)
Backed out changeset e1be102310a9 (bug 1611855)
Backed out changeset 633357835540 (bug 1611855)
2020-02-06 12:31:36 +02:00
Andrea Marchesini
b87fea304b Bug 1611855 - Worklet must be part of the same parent's agentCluster - part 2 - CloneDataPolicy in writing, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D61182
2020-02-05 22:07:34 +00:00
Kris Maglione
04adf714ef Bug 1595936: Part 2 - Refresh feature policy when attaching browsing context. r=farre,baku
We go to great lengths to try to avoid initializing FrameLoaders during
document updates. That means that when `BindToTree` is called, the element's
FrameLoader is not initialized, and it has no BrowsingContext. Calling
`GetBrowsingContext()` (which happens as a side-effect of
`HTMLIFrameElement::RefreshFeaturePolicy`), however, forces eager
initialization, which can cause any number of problems.

This patch moves that logic from being triggered by `BindToTree` to being
triggered by `BrowsingContext::Embed`, which happens as soon as the
BrowsingContext is bound to the element, but does not force it to be created
early.

Differential Revision: https://phabricator.services.mozilla.com/D55872
2020-01-24 19:03:10 +00:00
Tetsuharu OHZEKI
660e0491c4 Bug 1594280 - Fix uses of nsIDocShellTreeItem in nsIDocShellTreeItem in nsDocShell::ValidateOrigin. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D58447
2020-01-23 18:14:42 +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
Julian Descottes
52566e4239 Bug 1585747 - Remove devtools-specific workaround in BrowsingContext.cpp r=nika
Depends on D47963

This workaround was only used by DevTools when using a chrome frame. DevTools toolbox now always uses frame type=content, so the workaround can be removed.

Differential Revision: https://phabricator.services.mozilla.com/D47964
2020-01-14 14:47:17 +00:00
pbz
9ca53ea171 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
2020-01-16 14:38:40 +00:00
Anny Gakhokidze
1934b9d89d Bug 1574017 - Fix console error reporting for postMessage, r=peterv
1. Rename mCallerDocumentURI field of PostMessageEvent to mCallerURI as we
might not always have a document, e.g. when we have a sandbox.
2. When we neither have caller's inner window (and thus we have no caller's
window ID) nor caller's URI, use script location as a source name for the error
object when reporting errors to console.
3. When the caller of postMessage has its window in a different process, pass along
the caller's window ID so that the error can be reported correctly.

Differential Revision: https://phabricator.services.mozilla.com/D59526
2020-01-15 20:20:31 +00:00
Narcis Beleuzu
4723d54743 Backed out changeset ea7d48958f2f (bug 1594280) for mochitest failures on nsDocShell.cpp . CLOSED TREE 2020-01-15 05:50:28 +02:00
Tetsuharu OHZEKI
abbe92b5c8 Bug 1594280 - Fix uses of nsIDocShellTreeItem in nsIDocShellTreeItem in nsDocShell::ValidateOrigin. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D58447
2020-01-14 21:03:52 +00:00
Nika Layzell
cf88c3bd1a Bug 1605514 - Avoid hard-crashing on malformed data while fuzzing, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D58986
2020-01-07 18:58:06 +00:00
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