Commit Graph

62 Commits

Author SHA1 Message Date
julianwels
6bc43a95a4 Bug 1653026 - Added HTTPS-Only Mode upgrade info to browser UI state. r=mattwoodrow,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D86566
2020-10-03 01:22:19 +00:00
Emilio Cobos Álvarez
56cd679ea1 Bug 1668156 - Fix some IntersectionObserver edge cases, and enable the assertion for good. r=hiro
This patch fixes two issues, described below:

First, the GetTopLevelDocument function was looking at the browsing
context tree. It should look at the window context tree, as looking at
the browsing context tree means that if you're in a discarded or
about-to-get-discarded document, you can end up with a document from a
different tree. Computing intersections between those of course makes no
sense and triggers the assertion we're enabling.

Second, this patch fixes an issue when you have fission enabled, and a
setup such as:

  A1 -> B1 -> A2

If you try to use IntersectionObserver from A2 with the implicit root,
we'd end up with:

  * rootRect: A1's root scrollport rect (this is fine, because it's only
              used to compute the root margin and bounds and so on, not
              to compute geometry).

  * rootFrame: A1's root scroll frame (this is _not_ fine, see below).

Then, we'd try to map rects from A2's target to A1's viewport, and we
can't really do that sensibly with the existing nsLayoutUtils functions,
because we're not accounting for all the OOP iframe transforms that may
be going on. This also triggers the assertion that this patch enables in
same-origin-grand-child-iframe.sub.html.

To fix it, for the A2 case, use the same code that we have for other OOP
iframes. The test tweaks fails with fission enabled without the patch
(because we don't account for the OOP iframe clip).

Differential Revision: https://phabricator.services.mozilla.com/D92089
2020-10-01 22:41:55 +00:00
alwu
dec4bc83f9 Bug 1652108 - part2 : modify page_had_media_count to in_page_count r=nika,bryce
We would like to remove `page_had_media_count` and use a new probe `in_page_count` to record the total number of top level content documents using media.

Therefore, we would rename WindowContext's `DocTreeHadAudibleMedia` to `DocTreeHadMedia` in order to support the new usage.

In the future, if we want to know something like "the percentage of media element is being used for MSE/EME?", then this scalar can be the base and used to calculate the answser.

Differential Revision: https://phabricator.services.mozilla.com/D83225
2020-09-24 21:41:10 +00:00
Kris Maglione
68b5de8e0a Bug 1646573: Part 1 - Fix GetInProcessParent usage in WindowShouldMatchActiveTab. r=zombie,nika
Differential Revision: https://phabricator.services.mozilla.com/D90334
2020-09-22 17:41:34 +00:00
Kris Maglione
8f2c0afdfb Bug 1655866: Part 2 - Move HasBeforeUnload flag to WindowContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D88315
2020-09-21 22:40:51 +00:00
Kris Maglione
2b7cbb7b51 Bug 1650257: Part 3 - Remove obsolete diagnostic crash annotations and assertions. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87487
2020-08-31 18:51:54 +00:00
alwu
04b2b09c40 Bug 1634494 - part1 : store the active media session context Id on WindowContext. r=chunmin,farre
We determine which media session is active media session in chrome process, but the media session in content process doesn't know the detail.

This patch would store the active session context Id on the top level WindowContext, so that media session in content process can know if it's an active context or not, which helps to trigger the action handler only on active media session, after changing our propagation mechanism in following patches.

Differential Revision: https://phabricator.services.mozilla.com/D88106
2020-08-27 14:11:05 +00:00
Andrew McCreight
8cc409db82 Bug 1659825 - Null check gWindowContexts in WindowContext::Discard(). r=nika
If we're after shutdown, then this variable will have been cleared.
This is the remaining use that was failing to do a null check, and
it was manifesting as a very low-volume crash.

Differential Revision: https://phabricator.services.mozilla.com/D87503
2020-08-18 21:46:07 +00:00
Edgar Chen
6fed29e010 Bug 1611961 - Move UserActivationState from BrowsingContext to WindowContext; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D83126
2020-08-17 11:02:34 +00:00
Kris Maglione
259243dd40 Bug 1650257: Also set NewWindowBCIsTop annotation in parent. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87111
2020-08-14 19:16:45 +00:00
Jean-Yves Avenard
000e0e2b3b Bug 1646539 - Part 3. Fix compilation. r=farre
BrowserContext is only fast declared here.
To avoid having to include the full header, move it out of the header.

Differential Revision: https://phabricator.services.mozilla.com/D86904
2020-08-13 07:16:11 +00:00
Andreas Farre
aaac927be9 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
bee2074499 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
f0696974a8 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
1d46598d45 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
ef727eb50f 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
d7da8e490f 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
Nika Layzell
940efa8968 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
alwu
6967ad6a00 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
528024684f 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
20011935ee Backed out changeset 6d882a42cfbe (bug 1646519) for causing failure on WindowContext.cpp. CLOSED TREE 2020-07-01 01:11:52 +03:00
Kris Maglione
d54f97f4df 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
08e7a3e543 Backed out changeset d9608e8bff0c (bug 1633338) on request by dev. a=backout 2020-06-16 12:05:54 +03:00
Tim Huang
9cc7d8cf65 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
Christoph Kerschbaumer
5c173974fe 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
ef60c889a8 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
Bogdan Tara
f92848aa00 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
b4186ecdce 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
Csoregi Natalia
745eeeb892 Bug 1597450 - Fix trailing whitespace. r=fix 2020-05-16 01:20:45 +03:00
alwu
68c8d0c608 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
b4cf42aef8 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
Christoph Kerschbaumer
d9925a9900 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
13d0d72591 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
9468b0b112 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
d661f16c0d Backed out changeset ef394674c1b8 (bug 1636186) for bustages at WindowContext.h. CLOSED TREE 2020-05-08 21:42:46 +03:00
Nika Layzell
041bc49d12 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
59c71bb77b 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
658994043e 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
0f37cecf5e 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
37cb3e8ba1 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
49b533ec9e 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
8f6a1a167e 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
Jonathan Watt
c48344c63e Bug 1634370. Make docshell/ buildable outside of unified-build environment. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D73255
2020-05-04 14:53:34 +00:00
Nika Layzell
5a1aef112b 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
Nika Layzell
4f1391ffaa Bug 1633204 - Live WindowContexts should keep BrowsingContextGroup alive, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D72893
2020-04-29 18:49:10 +00:00
Nika Layzell
1cc482023e 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
f160c77a9f 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
0d1361bf28 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
Dimi Lee
8231ed1337 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
8cd16cba50 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