Commit graph

59 commits

Author SHA1 Message Date
Geoff Lankow
35d3be0fc3 Bug 1646539 follow-up - Add missing #include to un-break the Thunderbird build. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D86871
2020-08-12 23:47:09 +00:00
Andreas Farre
2f88f75c98 Bug 1646539 - Part 2: Add field on WindowContext tracking popup permission. r=nika
Popup permissions initialized with the result of checking if the
constructing WindowContext's principal is allowed to open a popup. The
field is updated for all WindowContexts sharing a principal whenever
the popup permission for that nsIPrincipal changes.

Differential Revision: https://phabricator.services.mozilla.com/D86378
2020-08-12 15:38:12 +00:00
Steven MacLeod
b329c4ff4c Bug 1646547 - fix ScriptLoader::ReadyToExecuteParserBlockingScripts stopping at OOP ancestors. r=kmag
`ReadyToExecuteParserBlockingScripts` was walking the ancestor chain but
would stop if it hit an OOP ancestor. With this change we walk the
`WindowContext` tree instead, so that we may skip over OOP ancestors
and continue checking all in process ancestors.

Differential Revision: https://phabricator.services.mozilla.com/D86436
2020-08-09 23:50:35 +00:00
Kris Maglione
6dc4123fea Bug 1646519: Fix GetInProcessTopInternal usage in GetZone. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80092
2020-08-07 22:02:02 +00:00
Csoregi Natalia
8fa5e9e957 Backed out 3 changesets (bug 1648887, bug 1611961) for assertion failures on WindowContext.cpp. CLOSED TREE
Backed out changeset 3719f7db339d (bug 1648887)
Backed out changeset b7c7fcb5df37 (bug 1648887)
Backed out changeset ab82a9c613f8 (bug 1611961)
2020-08-06 17:43:51 +03:00
Edgar Chen
d2c2f39bd2 Bug 1611961 - Move UserActivationState from BrowsingContext to WindowContext; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D83126
2020-08-06 10:25:00 +00:00
Steven MacLeod
baee2f562d Bug 1587418 - cache shortcuts permission on WindowContext. r=farre
We now cache the shortcuts permission in a synced field on
`WindowContext`. This will allow checking the permission quickly and
without IPC when Fission is enabled and the top-level document is
in another process.

Differential Revision: https://phabricator.services.mozilla.com/D84182
2020-07-30 12:26:24 +00:00
Simon Giesecke
e443211b53 Bug 1653229 - Remove unnecessary includes for BindingUtils.h. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D83771
2020-07-22 15:12:10 +00:00
Nika Layzell
dc09e15686 Bug 1653000 - Part 1: Switch away from tuples in SyncedContext, r=farre,sg
This should help reduce the overhead of template instantiation in C++ code.

Differential Revision: https://phabricator.services.mozilla.com/D84063
2020-07-22 14:07:26 +00:00
Simon Giesecke
3d27322bc3 Bug 1653000 - Declare WindowGlobalInit and SyncedContextInitializer uncomparable and remove unused equality operators. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D84299
2020-07-22 11:48:11 +00:00
alwu
37f08f36a0 Bug 1647430 - part2 : store DocTreeHadAudibleMedia in WindowContext. r=nika
After we enable Fissions, we can't always access the top level document because it might be in another process.

Therefore, we should move `mDocTreeHadAudibleMedia` from document to the top window context, which can ensure that we set the value correctly even if setting `mDocTreeHadAudibleMedia` happens in a different process which is different from the process where the top level document exists.

Differential Revision: https://phabricator.services.mozilla.com/D83162
2020-07-16 19:53:49 +00:00
Olli Pettay
58ab7096a2 Bug 1647431, make ReportShadowDOMUsage Fission compatible, r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D83471
2020-07-14 11:22:20 +00:00
Butkovits Atila
e01165cdfc Backed out changeset 6d882a42cfbe (bug 1646519) for causing failure on WindowContext.cpp. CLOSED TREE 2020-07-01 01:11:52 +03:00
Kris Maglione
6f9317a061 Bug 1646519: Fix GetInProcessTopInternal usage in GetZone. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80092
2020-06-25 21:13:10 +00:00
Butkovits Atila
9e85a224ef Backed out changeset d9608e8bff0c (bug 1633338) on request by dev. a=backout 2020-06-16 12:05:54 +03:00
Tim Huang
eab7aa2b87 Bug 1587743 - Part 1: Pre-compute the delegated permissions for the top-level content and store it in the WindowContext. r=baku,nika
In order to delegate the permission to the top-level window, in this
patch, we pre-compute the permissions of the top-level context and set
them to the top-level WindowContext. So, the cross-origin iframe can
know the permission of the top-level window through the WindowContext.
Thus, the permission can be delegated in Fission.

Differential Revision: https://phabricator.services.mozilla.com/D79132
2020-06-12 16:31:49 +00:00
Johann Hofmann
2121e27531 Bug 1515073 - Part 1 - Add nsISHEntry::hasUserInteraction. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D27585
2020-06-09 14:48:38 +00:00
Christoph Kerschbaumer
fbce1c6145 Bug 1633338: Use IsPotentiallyTrustworthy to indicate top level window is secure for mixed content blocker. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D75939
2020-06-08 07:05:16 +00:00
Matt Woodrow
e060a86c42 Bug 1631405 - Move nsISecureBrowserUI to be owned by the canonical browsing context instead of docshell. r=nika,ckerschb,Gijs,webcompat-reviewers,twisniewski
This removes all docshell nsISecureBrowserUI and mixed content properties, and moves them into CanonicalBrowsingContext/WindowGlobalParent. It makes the mixed content blocker just compute the state for the current load, and then send the results to the parent process, where we update the security state accordingly.

I think we could in the future remove onSecurityChange entirely, and instead just fire an event to the <browser> element notifying it of changes to the queryable securityUI.

Unfortunately we have a lot of existing code that depends on specific ordering between onSecurityChange and onLocationChange, so I had to hook into the RemoteWebProgress implementation in BrowserParent to mimic the same timings.

Differential Revision: https://phabricator.services.mozilla.com/D75447
2020-05-27 00:28:59 +00:00
Matt Woodrow
2083b054bd Bug 1631405 - Make sure we initialize all fields of WindowGlobalParent in the constructor. r=nika
Previously we only set some fields as part of WindowGlobalInit, but WindowGlobalParent sets itself as the current window global on the CanonicalBrowsingContext.

This exposes a period of time where only part of the document state was set, and this was observable to consumers.

This makes OnNewDocument only run when there is a new Document for the same WindowGlobal.

Differential Revision: https://phabricator.services.mozilla.com/D75446
2020-05-27 00:27:30 +00:00
Bogdan Tara
a54ec3073f Backed out 4 changesets (bug 1631405) for multiple mochitest failures CLOSED TREE
Backed out changeset 9963cc0b23cb (bug 1631405)
Backed out changeset 469ac933ed7c (bug 1631405)
Backed out changeset 0c5f55864268 (bug 1631405)
Backed out changeset 20dcbcc2f3b8 (bug 1631405)
2020-05-27 01:30:20 +03:00
Matt Woodrow
240d417eb6 Bug 1631405 - Move nsISecureBrowserUI to be owned by the canonical browsing context instead of docshell. r=nika,ckerschb,Gijs,webcompat-reviewers,twisniewski
This removes all docshell nsISecureBrowserUI and mixed content properties, and moves them into CanonicalBrowsingContext/WindowGlobalParent. It makes the mixed content blocker just compute the state for the current load, and then send the results to the parent process, where we update the security state accordingly.

I think we could in the future remove onSecurityChange entirely, and instead just fire an event to the <browser> element notifying it of changes to the queryable securityUI.

Unfortunately we have a lot of existing code that depends on specific ordering between onSecurityChange and onLocationChange, so I had to hook into the RemoteWebProgress implementation in BrowserParent to mimic the same timings.

Differential Revision: https://phabricator.services.mozilla.com/D75447
2020-05-26 21:17:01 +00:00
Matt Woodrow
5b64e9bae2 Bug 1631405 - Make sure we initialize all fields of WindowGlobalParent in the constructor. r=nika
Previously we only set some fields as part of WindowGlobalInit, but WindowGlobalParent sets itself as the current window global on the CanonicalBrowsingContext.

This exposes a period of time where only part of the document state was set, and this was observable to consumers.

This makes OnNewDocument only run when there is a new Document for the same WindowGlobal.

Differential Revision: https://phabricator.services.mozilla.com/D75446
2020-05-26 21:15:42 +00:00
alwu
f9e89ee7ae Bug 1597450 - part1 : store autoplay permission on the WindowContext. r=nika
This patch will do :
- create a sync field `AutoplayPermission` on WindowContext
- update the field whenever site's the autoplay permission changes

The advantage of doing so :
- to help determine the result of the blocking autoplay correctly.

More details :
As the field would be automatically synced between processes, then we can know the correct site's autoplay permission for the whole page even if we're in the different process if the iframe is in different origin after we enable Fission.

Differential Revision: https://phabricator.services.mozilla.com/D74511
2020-05-15 21:18:07 +00:00
Matt Woodrow
3a20271225 Bug 1570243 - Support checking IsSecureContext on OOP ancestors. r=kmag,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D73998
2020-05-13 21:52:39 +00:00
Valentin Gosu
db062a7e3b Bug 1572513 - Set the embedder policy when intializing the Document object r=nika
This patch persists the CrossOriginEmbedderPolicy on the Document and
WindowContext.
The WindowContext's embedder policy is set in
WindowGlobalActor::BaseInitializer by either adopting the policy of the HTTP
channel that loaded the document, or in WindowGlobalChild::OnNewDocument
by inheriting the one from the browsingContext's windowContext.

Differential Revision: https://phabricator.services.mozilla.com/D46903
2020-05-11 18:41:16 +00:00
Christoph Kerschbaumer
c65e97cd1c Bug 1635365: Move field mixed content IsSecure from BrowsingContext to WindowContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D74269
2020-05-11 08:11:17 +00:00
Nika Layzell
136a1ffa7a Bug 1636279 - Part 1: Streamline WindowContext initialization, r=farre
This should make the flow of how data gets into the initial WindowContext state
more clear, and allows the setting of initial synced WindowContext fields.

Differential Revision: https://phabricator.services.mozilla.com/D74324
2020-05-08 20:44:12 +00:00
Nika Layzell
2b70befb83 Bug 1636186 - Remove unnecessary CookieJarSettingsArgs data from WindowContext, r=timhuang
The entire CookieJarSettingsArgs is currently being synced into every content
process, when only two fields of that structure are actually needed.

Those two fields are extracted from the CookieJarSettingsArgs and synchronized
separately to avoid leaking information such as principals into every content
process.

Differential Revision: https://phabricator.services.mozilla.com/D74258
2020-05-08 20:10:56 +00:00
Brindusan Cristian
dbbdb12921 Backed out changeset ef394674c1b8 (bug 1636186) for bustages at WindowContext.h. CLOSED TREE 2020-05-08 21:42:46 +03:00
Nika Layzell
6995af532e Bug 1636186 - Remove unnecessary CookieJarSettingsArgs data from WindowContext, r=timhuang
The entire CookieJarSettingsArgs is currently being synced into every content
process, when only two fields of that structure are actually needed.

Those two fields are extracted from the CookieJarSettingsArgs and synchronized
separately to avoid leaking information such as principals into every content
process.

Differential Revision: https://phabricator.services.mozilla.com/D74258
2020-05-08 18:05:11 +00:00
Csoregi Natalia
cd28d94be1 Backed out changeset 59a45d8c0fbb (bug 1635365) for browser-chrome failures on browser_bug902156.js. CLOSED TREE 2020-05-08 19:09:20 +03:00
Christoph Kerschbaumer
1470386f05 Bug 1635365: Move field mixed content IsSecure from BrowsingContext to WindowContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D74269
2020-05-08 14:05:18 +00:00
Matt Woodrow
ab7bcd098f Bug 1570243 - Make WindowContext CanSet functions check if the WindowContext is owned by the setting process, not the BrowsingContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D73997
2020-05-08 01:38:02 +00:00
Christoph Kerschbaumer
43baaddaab Bug 1632160: Remove GetAllowMixedContentAndConnectionData from nsIDocShell and expose similar functionality on BrowsingContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D72901
2020-05-07 07:22:17 +00:00
Narcis Beleuzu
d262ef72aa Backed out changeset 9da3ff68132f (bug 1632160) for bc failures on browser_bug1045809.js . CLOSED TREE 2020-05-06 12:12:59 +03:00
Christoph Kerschbaumer
3bf440d570 Bug 1632160: Remove GetAllowMixedContentAndConnectionData from nsIDocShell and expose similar functionality on BrowsingContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D72901
2020-05-06 07:15:40 +00:00
Nika Layzell
573962fe33 Bug 1634764 - Add helpers for Top/Parent WindowContext, r=farre
There are various times when it would be useful to get the toplevel or parent
WindowContext from a window or browsing context. While this is already possible,
it's currently somewhat inconvenient.

Differential Revision: https://phabricator.services.mozilla.com/D73500
2020-05-04 14:26:34 +00:00
Dimi Lee
f0e37815cd Bug 1612376 - P5. Remove HasStoragePermission from WindowContext r=timhuang,baku
We don't access HasStoragePermission across process, so we don't need to
store the permission in WindowContext.

After this patch, HasStoragePermission will only be stored in the
channel's LoadInfo, which is set when a channel is created in the parent
and it won't be updated.

Depends on D71985

Differential Revision: https://phabricator.services.mozilla.com/D72305
2020-04-29 14:48:39 +00:00
Nika Layzell
cc54537c86 Bug 1580565 - Part 4: Use WindowContext to manage BrowsingContext cached status, r=farre
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.

Differential Revision: https://phabricator.services.mozilla.com/D71238
2020-04-24 18:33:04 +00:00
Narcis Beleuzu
fffdcb0203 Backed out 7 changesets (bug 1580565) for bustages on nsDocShell.cpp . CLOSED TREE
Backed out changeset 8237f9a307f8 (bug 1580565)
Backed out changeset 47f5698d6c72 (bug 1580565)
Backed out changeset e1802670dcc4 (bug 1580565)
Backed out changeset 0a44c410b59b (bug 1580565)
Backed out changeset 20dbcfc9eacc (bug 1580565)
Backed out changeset cdf2b600e779 (bug 1580565)
Backed out changeset a421d33d03ce (bug 1580565)
2020-04-24 05:31:55 +03:00
Nika Layzell
8f2ceafb38 Bug 1580565 - Part 4: Use WindowContext to manage BrowsingContext cached status, r=farre
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.

Differential Revision: https://phabricator.services.mozilla.com/D71238
2020-04-23 21:52:47 +00:00
Emilio Cobos Álvarez
d36c96ab4c Bug 1612068 - Move zoom from the content viewer to the browsing context. r=nika
We need it to live in BrowsingContext instead of WindowContext, because
we need to preserve the zoom level across same-origin navigation.

It'd be nice if it only lived in the top BC, but that's not possible at
the moment because a lot of tests rely on zooming only iframes. Some of
them can be adjusted for scaling the top instead, but not sure it's
worth it's worth fixing them and moving the zoom to be top-only, as it'd
be a bunch of effort, and the complexity and overhead of propagating the
zoom is not so big.

The print-preview-specific code in nsContentViewer is from before we did
the document cloning setup, and it seems useless. I've tested print
preview scaling before and after my patch and both behave the same.

The rest is just various test changes to use the SpecialPowers APIs or
BrowsingContext as needed instead of directly poking at the content
viewer.

I named the pres context hook RecomputeBrowsingContextDependentData, as
more stuff should move there like overrideDPPX and other media emulation
shenanigans.

I also have some ideas to simplify or even remove ZoomChild and such,
but that's followup work.

Differential Revision: https://phabricator.services.mozilla.com/D71969
2020-04-22 19:32:52 +00:00
Dimi Lee
c52ca9c7d5 Bug 1616775 - P1. Add IsThirdPartyWindow and IsThirdPartyTrackingResourceWindow fields to WindowContext. r=timhuang,baku,farre
We have to add "IsThirdPartyWindow" in WindowContext because we need to know if
a BrowsingContext is third-party (The browsing context may be not
in-process).

Differential Revision: https://phabricator.services.mozilla.com/D71010
2020-04-23 14:24:56 +00:00
Andreea Pavel
b74d860d87 Backed out 7 changesets (bug 1580565) for bc failures on a CLOSED TREE
Backed out changeset e44e0a6366f8 (bug 1580565)
Backed out changeset c0849928f934 (bug 1580565)
Backed out changeset 3d4f155096be (bug 1580565)
Backed out changeset 108d5fb4418e (bug 1580565)
Backed out changeset d8dea951a032 (bug 1580565)
Backed out changeset f9ab41f29552 (bug 1580565)
Backed out changeset fd5d76304c09 (bug 1580565)
2020-04-22 21:51:17 +03:00
Nika Layzell
7a75edbe29 Bug 1580565 - Part 4: Use WindowContext to manage BrowsingContext cached status, r=farre
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.

Differential Revision: https://phabricator.services.mozilla.com/D71238
2020-04-22 15:48:17 +00:00
Dorel Luca
7daa9a6695 Backed out 7 changesets (bug 1580565) for Gecko-view failures in Test.crashParent. CLOSED TREE
Backed out changeset 7da9785ebb06 (bug 1580565)
Backed out changeset a80e177a91b2 (bug 1580565)
Backed out changeset 2cf821f2a6ea (bug 1580565)
Backed out changeset a30f158eba45 (bug 1580565)
Backed out changeset 276b131190a8 (bug 1580565)
Backed out changeset 3c15e4c600c4 (bug 1580565)
Backed out changeset bf8877cdb10f (bug 1580565)
2020-04-22 18:42:24 +03:00
Nika Layzell
60ee58560f Bug 1580565 - Part 4: Use WindowContext to manage BrowsingContext cached status, r=farre
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.

Differential Revision: https://phabricator.services.mozilla.com/D71238
2020-04-22 06:05:41 +00:00
Bogdan Tara
4bd759fa8e Backed out 7 changesets (bug 1580565) for browser_entry_point_telemetry.js failures CLOSED TREE
Backed out changeset 12a4f3de76a8 (bug 1580565)
Backed out changeset 81d537df2dc1 (bug 1580565)
Backed out changeset b182e872c9d4 (bug 1580565)
Backed out changeset 0b4595b2c153 (bug 1580565)
Backed out changeset 4363e3a3d799 (bug 1580565)
Backed out changeset cbb14b2c7b33 (bug 1580565)
Backed out changeset 46b251848297 (bug 1580565)
2020-04-22 06:15:43 +03:00
Nika Layzell
88b3fbe306 Bug 1580565 - Part 4: Use WindowContext to manage BrowsingContext cached status, r=farre
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.

Differential Revision: https://phabricator.services.mozilla.com/D71238
2020-04-22 01:37:55 +00:00