Граф коммитов

7337 Коммитов

Автор SHA1 Сообщение Дата
Nika Layzell 824c8da580 Bug 1599579 - Part 1: Add the ability to specify a specific BrowsingContextGroup during process switch, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D80254
2020-06-30 16:52:53 +00:00
Matt Woodrow c056aaf0b8 Bug 1623461 - Clear nsDocShell::mBlankTiming when providing an existing timing object from a process switch. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D81636
2020-06-30 03:32:43 +00:00
Matt Woodrow 7d65de1298 Bug 1647557 - Add preffed-off code for controlling document loads directly from CanonicalBrowsingContext. r=nika,jya,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D70629
2020-06-30 01:19:15 +00:00
Matt Woodrow 751fe6358b Bug 1647557 - Implement RemoteWebProgress using CanonicalBrowsingContext instead of MessageManager. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70626
2020-06-30 01:18:47 +00:00
Peter Van der Beken 1bbd172984 Bug 1649133 - Remove unused nsISHEntry.expirationStatus. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D81518
2020-06-29 15:41:31 +00:00
Marco Bonardo d606440481 Bug 1646928 - Bogus scheme typo correction in URIFixup. r=harry
Differential Revision: https://phabricator.services.mozilla.com/D81329
2020-06-29 14:06:06 +00:00
Matt Woodrow 269822540c Bug 1646892 - Disable DocumentChannel process switching into the parent process when the old-RDM is running, since we don't support switching out of a nested <iframe mozbrowser>. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D81262
2020-06-27 04:10:48 +00:00
Matt Woodrow 213fab51e4 Bug 1646892 - Allow DocumentChannel process switches into the parent process. r=jya,nika
Differential Revision: https://phabricator.services.mozilla.com/D80327
2020-06-27 04:10:23 +00:00
Gabriel Luong bcf1de6e49 Bug 1647972 - Add a new PlatformOverride field onto BrowsingContext r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D81285
2020-06-26 14:17:08 +00:00
Kris Maglione c04b0a1b46 Bug 1648270: Get rid of unused ContentParent 'opener' field. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80971
2020-06-26 16:26:50 +00:00
Peter Van der Beken 26e71bd99d Bug 1648033 - Call session history listener for reload in the parent process if session history in the parent is on. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80882
2020-06-26 14:34:12 +00:00
Dorel Luca 88ce7f0c92 Backed out changeset c6d8b979af47 (bug 1644140) for causing Bug 1644213 to regress 2020-06-26 14:21:41 +03:00
Butkovits Atila f47ca94618 Backed out changeset 840d3dc313f1 (bug 1648270) for causing build bustages on ProtocolFuzzer.cpp. CLOSED TREE 2020-06-26 01:57:49 +03:00
Matt Woodrow 8fa4e5c092 Bug 1626362 - Make mOriginalUriString available in DocumentLoadListener and docshell. r=nika,necko-reviewers,valentin
This also fixes a bug where we were setting mOriginalUriString in docshell before InternalLoad (which clears it), instead of after.

Differential Revision: https://phabricator.services.mozilla.com/D80110
2020-06-25 04:33:14 +00:00
Matt Woodrow f0b769ce30 Bug 1626362 - Move nsDocShell::mUserErrorPages to BrowsingContext. r=nika
This is only used by Thunderbird, and is always true for Firefox. I've made CanSet only allow the embedder process, which is the desired behaviour, and should work for non-e10s.

Differential Revision: https://phabricator.services.mozilla.com/D80109
2020-06-25 04:32:51 +00:00
Matt Woodrow 19c4b43cba Bug 1626362 - Move url classifier notifications to parent process. r=nika,necko-reviewers,JuniorHsu
We shouldn't need to handle this with an early return in docshell, since the classifier failure codes won't display an error page anyway.

Differential Revision: https://phabricator.services.mozilla.com/D80108
2020-06-25 04:32:28 +00:00
Matt Woodrow 5f0218a196 Bug 1626362 - Combine two load error page functions into one. r=nika
I don't think we need these to be done at different times, since the set of checks that happen before uri fixup are error codes that won't be affected by fixup.

Differential Revision: https://phabricator.services.mozilla.com/D80107
2020-06-25 04:32:06 +00:00
Matt Woodrow 0f894bda06 Bug 1626362 - Move checks for deciding if we should load an error page into helpers. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80106
2020-06-25 04:32:04 +00:00
Matt Woodrow d545a61edb Bug 1626362 - Move docshell uri fixup code into a static helper. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80104
2020-06-25 04:32:01 +00:00
Kris Maglione f1d85755a8 Bug 1648270: Get rid of unused ContentParent 'opener' field. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80971
2020-06-25 20:30:33 +00:00
Butkovits Atila 366cbc5518 Backed out changeset 3468660179b1 (bug 1648270) for bustages at ContentParent.h. CLOSED TREE 2020-06-25 22:06:46 +03:00
Olli Pettay e7b1c3e32f Bug 1647307 - Simplify SessionHistoryInfo ID handling, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D80553
2020-06-25 16:20:32 +00:00
Kris Maglione f465a90bb0 Bug 1648270: Get rid of unused ContentParent 'opener' field. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80971
2020-06-25 17:53:39 +00:00
Peter Van der Beken 60dc2308c9 Bug 1648096 - All calls to nsSHistory::LoadDifferingEntries are infallible, stop returning nsresult. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80892
2020-06-25 07:53:09 +00:00
Peter Van der Beken d41eb8ad49 Bug 1648096 - All calls to nsSHistory::InitiateLoad are infallible, stop returning nsresult. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80891
2020-06-24 16:49:21 +00:00
Henri Sivonen 2d63627ce0 Bug 1647728 - Unify kCharsetFromUserForced and kCharsetFromParentForced. r=m_kato
For making further changes less messy.

Differential Revision: https://phabricator.services.mozilla.com/D80813
2020-06-25 03:25:03 +00:00
Eden Chuang a383fd6b63 Bug 1637035 - Do not inherit COEP from opener for non-http or non-initial-about:blank documents r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80414
2020-06-25 02:14:29 +00:00
Csoregi Natalia e67ceab432 Backed out 9 changesets (bug 1626362) for failures on a-download-click-404.html. CLOSED TREE
Backed out changeset d29ac651a4fd (bug 1626362)
Backed out changeset 5ba5cf98a95d (bug 1626362)
Backed out changeset 69b5b01da9c1 (bug 1626362)
Backed out changeset 1d31061f4421 (bug 1626362)
Backed out changeset a627870e35fb (bug 1626362)
Backed out changeset 5f3ee46032b6 (bug 1626362)
Backed out changeset 5b170666991e (bug 1626362)
Backed out changeset 4d31c2ede058 (bug 1626362)
Backed out changeset 66a9ba0f87cb (bug 1626362)
2020-06-25 02:45:52 +03:00
Matt Woodrow e9d06799ca Bug 1626362 - Make mOriginalUriString available in DocumentLoadListener and docshell. r=nika,necko-reviewers,valentin
This also fixes a bug where we were setting mOriginalUriString in docshell before InternalLoad (which clears it), instead of after.

Differential Revision: https://phabricator.services.mozilla.com/D80110
2020-06-24 22:03:39 +00:00
Matt Woodrow 3eda9e7d73 Bug 1626362 - Move nsDocShell::mUserErrorPages to BrowsingContext. r=nika
This is only used by Thunderbird, and is always true for Firefox. I've made CanSet only allow the embedder process, which is the desired behaviour, and should work for non-e10s.

Differential Revision: https://phabricator.services.mozilla.com/D80109
2020-06-24 22:03:16 +00:00
Matt Woodrow 87cdbac816 Bug 1626362 - Move url classifier notifications to parent process. r=nika,necko-reviewers,JuniorHsu
We shouldn't need to handle this with an early return in docshell, since the classifier failure codes won't display an error page anyway.

Differential Revision: https://phabricator.services.mozilla.com/D80108
2020-06-24 22:03:04 +00:00
Matt Woodrow 55f60f13b9 Bug 1626362 - Combine two load error page functions into one. r=nika
I don't think we need these to be done at different times, since the set of checks that happen before uri fixup are error codes that won't be affected by fixup.

Differential Revision: https://phabricator.services.mozilla.com/D80107
2020-06-24 22:02:56 +00:00
Matt Woodrow 89307a1e82 Bug 1626362 - Move checks for deciding if we should load an error page into helpers. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80106
2020-06-24 22:01:55 +00:00
Matt Woodrow 28c5ddf563 Bug 1626362 - Move docshell uri fixup code into a static helper. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80104
2020-06-24 22:01:43 +00:00
Matt Woodrow 00dc8d3d73 Bug 1646582 - Remove DOM(Inner)WindowID from nsIWebProgress. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80128
2020-06-24 19:58:15 +00:00
Jared Wein 7639e4f712 Bug 1643093 - Remove references to 'whitelist' in browser/components/urlbar. r=jaws
Depends on D78124

Differential Revision: https://phabricator.services.mozilla.com/D78122
2020-06-24 15:59:04 +00:00
Dorel Luca 90a64f0da1 Backed out 4 changesets (bug 1646582) for Browser-chrome failures on nsIWebProgress.addProgressListener. CLOSED TREE
Backed out changeset 2111dd0d6dc0 (bug 1646582)
Backed out changeset e6c496c5a4b1 (bug 1646582)
Backed out changeset 49b4ae8c8be0 (bug 1646582)
Backed out changeset 9d42ec89240c (bug 1646582)
2020-06-24 07:50:07 +03:00
Matt Woodrow 21ac707a3b Bug 1646582 - Remove DOM(Inner)WindowID from nsIWebProgress. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80128
2020-06-24 03:24:21 +00:00
Andreas Farre 78dfb0a991 Bug 1590762 - Part 3: Keep track of current loads in BrowsingContext. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D75110
2020-06-23 13:01:37 +00:00
Andreas Farre ca5db92916 Bug 1590762 - Part 2: Bump the id for channel registration to uint64_t. r=mattwoodrow,necko-reviewers,valentin
This patch also makes the identifier for channels global, in the sense
that the generated identifier is generated outside of and passed to
the nsIRedirectChannelRegistrar.

Differential Revision: https://phabricator.services.mozilla.com/D79820
2020-06-23 13:18:56 +00:00
Andreas Farre d36c42d2e0 Bug 1590762 - Part 1: Test that we don't double submit forms. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79145
2020-06-23 13:41:27 +00:00
Jean-Yves Avenard 87438519f0 Bug 1637500 - P2. Rename methods as they are not always dealing with "threads". r=froydnj
Before P1, GetCurrentThreadSerialEventTarget would have always returned the same data as NS_GetCurrentThread, making the comment incorrect Now it will properly return the running TaskQueue if any.

This change of name more clearly exposes what they are doing, as we aren't always dealing with threads directly; but a nsISerialEventTarget

Differential Revision: https://phabricator.services.mozilla.com/D80354
2020-06-23 05:05:36 +00:00
Narcis Beleuzu b894acb874 Backed out 4 changesets (bug 1646582) for mochitest failures on test_ext_tabs_create.html . CLOSED TREE
Backed out changeset ce5cdfc5d7cf (bug 1646582)
Backed out changeset 2ac69a2b6708 (bug 1646582)
Backed out changeset 74d89cb24414 (bug 1646582)
Backed out changeset 7de0ff1af560 (bug 1646582)
2020-06-23 06:30:03 +03:00
Matt Woodrow 79562a2ca1 Bug 1646582 - Remove DOM(Inner)WindowID from nsIWebProgress. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D80128
2020-06-23 01:23:57 +00:00
Kashav Madan 960bd54cfd Bug 1646563 - Remove BrowserId from nsFrameLoaderOwner, r=nika
We can just use BrowsingContext::BrowserId directly, so it's unnecessary to have
the field on nsFrameLoaderOwner as well.

This also makes it so that we only ever generate browser IDs in
BrowsingContext::CreatedDetached.

Differential Revision: https://phabricator.services.mozilla.com/D80121
2020-06-22 21:46:03 +00:00
Narcis Beleuzu 46e3b1ce2c Backed out 5 changesets (bug 1599579) for twinopen failures. CLOSED TREE
Backed out changeset 053229a30ef1 (bug 1599579)
Backed out changeset c2828aec4caf (bug 1599579)
Backed out changeset 085558fe56dc (bug 1599579)
Backed out changeset a4e7334f8ce6 (bug 1599579)
Backed out changeset 9ebd2eb155da (bug 1599579)
2020-06-23 02:23:48 +03:00
Nika Layzell 59e9c1cfcc Bug 1599579 - Part 1: Add the ability to specify a specific BrowsingContextGroup during process switch, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D80254
2020-06-22 20:43:14 +00:00
tkhan 6ccabd4784 Bug 1602668 - M(1) manifest and test changes. r=kmag,karlt,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D70362
2020-06-22 19:09:49 +00:00
Nika Layzell 7c209a23b1 Bug 1646088 - Part 1: Keep processes alive during process switches, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79888
2020-06-18 18:51:54 +00:00
Christoph Kerschbaumer c5a159437b Bug 1586686: Enable test_triggeringprincipal_iframe_iframe_window_open.html for fission. r=cpeterson
Differential Revision: https://phabricator.services.mozilla.com/D79995
2020-06-18 08:22:28 +00:00
Henri Sivonen a9061bdcce Bug 1646484 - Remove nsIDocShell::forcedCharset. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D80072
2020-06-18 01:18:11 +00:00
Mihai Alexandru Michis 287d6c29db Backed out 3 changesets (bug 1646088) for causing failures in test_multiple_nav_process_switches.
CLOSED TREE

Backed out changeset 8c4a24b91c88 (bug 1646088)
Backed out changeset ef746bdcbaf6 (bug 1646088)
Backed out changeset 77d15266af3c (bug 1646088)
2020-06-17 23:47:15 +03:00
Nika Layzell 05df8f2a96 Bug 1646088 - Part 1: Keep processes alive during process switches, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D79888
2020-06-17 15:43:35 +00:00
Kris Maglione 316de88922 Bug 1642425: Part 2 - Remove IsFrame() from GlobalWindow(Inner|Outer). r=smaug
It does not return sensible values under Fission.

Differential Revision: https://phabricator.services.mozilla.com/D77701
2020-06-17 18:01:02 +00:00
Kris Maglione 3bda67deab Bug 1638153: Part 2 - Fix uses of .rootTreeItem to get top browser window. r=geckoview-reviewers,nika,snorp
Differential Revision: https://phabricator.services.mozilla.com/D75429
2020-06-17 17:17:16 +00:00
Kris Maglione 85c4e84fc5 Bug 1638153: Part 1 - Add topChromeWindow getter to CanonicalBrowsingContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D75431
2020-06-17 17:17:09 +00:00
Kris Maglione 394e6d02d5 Bug 1638153: Part 0 - Add Window.browsingContext getter. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D75430
2020-06-17 17:17:01 +00:00
Matt Woodrow d3e50c8f76 Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-17 02:59:29 +00:00
Razvan Maries c350ad5bd6 Backed out changeset f56d5efc5e43 (bug 1644943) for build bustages on nsFrameLoaderOwner.cpp. CLOSED TREE 2020-06-17 02:55:01 +03:00
Nicholas Nethercote a8f5f49b8a Bug 1645982 - Rename some service getters in `Services.py` to better match the types. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79791
2020-06-16 23:32:21 +00:00
Matt Woodrow 645b2bc301 Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-16 23:24:49 +00:00
Kashav Madan 1a71fed80e Bug 1580766 - Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
This adds a `browserId` property to all browsing contexts. This ID is the same
for the entire tree of contexts inside a frame element. Each new top-level
context created for a given frame also inherits this ID. This allows identifying
the frame element for a given browsing context.

Originally authored by :mossop in D56245.

Differential Revision: https://phabricator.services.mozilla.com/D77911
2020-06-16 18:12:46 +00:00
Razvan Maries 73dfe9d277 Backed out changeset 585e0230b2d5 (bug 1580766) as requested. CLOSED TREE 2020-06-16 21:01:26 +03:00
Dave Townsend 7a5ade2788 Bug 1580766 - Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
This adds a `browserId` property to all browsing contexts. This ID is the same
for the entire tree of contexts inside a frame element. Each new top-level
context created for a given frame also inherits this ID. This allows identifying
the frame element for a given browsing context.

Originally authored by :mossop in D56245.

Differential Revision: https://phabricator.services.mozilla.com/D77911
2020-06-16 17:25:16 +00:00
Simon Giesecke 5bf5787445 Bug 1645339 - Use range-based for with nsTObserverArray in docshell. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D79493
2020-06-16 10:14:24 +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
Simon Giesecke 1e42310e51 Bug 1645450 - Remove elements by index rather than searching in docshell. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D79513
2020-06-15 17:04:20 +00:00
Nika Layzell cde53b3bec Bug 1508306 - Part 1: Migate the Large-Allocation handler to DocumentLoadListener, r=mattwoodrow,necko-reviewers,geckoview-reviewers,agi,valentin
This removes the diagnostic warnings which used to be logged when the
Large-Allocation header was present, but failed to switch into a
Large-Allocation process. Due to the low adoption of the header, this shouldn't
be too large of a problem, but we can look into re-adding the diagnostics if
needed in the future.

The new codepath no longer performs multiple network requests for
Large-Allocation resources, and now relies on the battle-tested
DocumentLoadListener codepath for process switching.

Differential Revision: https://phabricator.services.mozilla.com/D78998
2020-06-15 23:24:07 +00:00
Nika Layzell 025dcf4a90 Bug 1640019 - Part 3: Also allow switching between remote and non-remote, r=mattwoodrow,necko-reviewers,valentin
Due to the PPDC process switching changes, we also handle switching between
remote and non-remote browsers with DocumentLoadListener. Adds support to
CanonicalBrowsingContext::ChangeFrameRemoteness to allow it to handle non-remote
browsers as well.

Differential Revision: https://phabricator.services.mozilla.com/D78971
2020-06-15 23:23:53 +00:00
Nika Layzell 0e74912c80 Bug 1640019 - Part 2: Use new process switch logic in tabbrowser, r=mattwoodrow,Gijs
Add a series of extra hooks and methods to allow tabbrowser to use the new
process switching codepath. This duplicates some of the logic from
`updateBrowserRemoteness` into event handlers.

Differential Revision: https://phabricator.services.mozilla.com/D78970
2020-06-15 23:23:46 +00:00
Nika Layzell 212943c862 Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-15 23:23:43 +00:00
Bogdan Tara 74ca6cc819 Backed out changeset 26231891f004 (bug 1644943) for browser_backforward_userinteraction.js and browser_sessionHistory.js failures CLOSED TREE 2020-06-16 02:46:15 +03:00
Matt Woodrow d075fa7e08 Bug 1644943 - Create single webprogress for CanonicalBrowsingContext, regardless of process the browser element contents are in. r=nika,kmag,Gijs
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.

Differential Revision: https://phabricator.services.mozilla.com/D79240
2020-06-15 22:01:34 +00:00
julianwels 68d7c6ffa2 Bug 1640853 - Using PermissionManager for HTTPS Only Mode upgrade exceptions. r=ckerschb,nhnt11,nika,johannh,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D77040
2020-06-15 11:19:39 +00:00
Emilio Cobos Álvarez ffec6f608b Bug 1643656 - Remove prefers-color-scheme: no-preference. r=gl,remote-protocol-reviewers,hiro,whimboo
It was removed from the spec.

Differential Revision: https://phabricator.services.mozilla.com/D78834
2020-06-14 23:26:04 +00:00
Logan Smyth 25d491b792 Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug
The 'asyncStack' flag on JS execution contexts is used as a general switch
to enable async stack capture across all locations in SpiderMonkey, but
this causes problems because it can at times be too much of a performance
burden to general and track all of these stacks.

Since the introduction of this option, we have only enabled it on Nightly
and DevEdition for non-mobile builds, which has left a lot of users unable
to take advantage of this data while debugging.

This patch enables async stack traces across all of Firefox, but introduces
a new pref to toggle the scope of the actual expensive part of async stacks,
which is _capturing_ them and keeping them alive in memory. The new pref
limits the capturing of async stack traces to only debuggees, unless an
explicit pref is flipped to capture async traces for all cases.

This means that while async stacks are technically enabled, and code could
manually capture a stack and pass it back to SpiderMonkey and see that stack
reflected in later captured stacks, SpiderMonkey itself and related async
DOM APIs, among others, will not capture stacks or pass them to SpiderMonkey,
so there should be no general change in performance by enabling the broader
feature itself, unless the user is actively debugging the page.

One effect of this patch is that if you have the debugger open and then close
it, objects that have async stacks associated with them will retain those
stacks and they will continue to show up in stack traces, no _new_ stacks
will be captured. jorendorff and I have decided that this is okay because
the expectation that the debugger fully revert every possible effect that it
could have on a page is a nice goal but not a strict requirement.

Differential Revision: https://phabricator.services.mozilla.com/D68503
2020-06-14 02:41:45 +00:00
Olli Pettay 3b7865f462 Bug 1644119 - Pass loadingEntry to the docshell also when load is similar origin, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D78814
2020-06-12 20:53:11 +00:00
Narcis Beleuzu a8dde16e58 Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE
Backed out changeset 8844170ff408 (bug 1508306)
Backed out changeset b750f1d873cf (bug 1508306)
Backed out changeset c7170e76e676 (bug 1640019)
Backed out changeset 5905995e4815 (bug 1640019)
Backed out changeset 7bf86513348e (bug 1640019)
Backed out changeset f7d0605295f7 (bug 1640019)
Backed out changeset 521b4d5a9a89 (bug 1640019)
Backed out changeset 8542edc564bc (bug 1640019)
Backed out changeset 4f6a03152526 (bug 1640019)
Backed out changeset 30d2bf04719b (bug 1640019)
2020-06-12 22:47:50 +03:00
Nika Layzell 47c0aeb539 Bug 1508306 - Part 1: Migate the Large-Allocation handler to DocumentLoadListener, r=mattwoodrow,necko-reviewers,geckoview-reviewers,agi,valentin
This removes the diagnostic warnings which used to be logged when the
Large-Allocation header was present, but failed to switch into a
Large-Allocation process. Due to the low adoption of the header, this shouldn't
be too large of a problem, but we can look into re-adding the diagnostics if
needed in the future.

The new codepath no longer performs multiple network requests for
Large-Allocation resources, and now relies on the battle-tested
DocumentLoadListener codepath for process switching.

Differential Revision: https://phabricator.services.mozilla.com/D78998
2020-06-12 16:52:13 +00:00
Nika Layzell a97cf42257 Bug 1640019 - Part 3: Also allow switching between remote and non-remote, r=mattwoodrow,necko-reviewers,valentin
Due to the PPDC process switching changes, we also handle switching between
remote and non-remote browsers with DocumentLoadListener. Adds support to
CanonicalBrowsingContext::ChangeFrameRemoteness to allow it to handle non-remote
browsers as well.

Differential Revision: https://phabricator.services.mozilla.com/D78971
2020-06-12 16:52:01 +00:00
Nika Layzell aaf6c3a006 Bug 1640019 - Part 2: Use new process switch logic in tabbrowser, r=mattwoodrow,Gijs
Add a series of extra hooks and methods to allow tabbrowser to use the new
process switching codepath. This duplicates some of the logic from
`updateBrowserRemoteness` into event handlers.

Differential Revision: https://phabricator.services.mozilla.com/D78970
2020-06-12 16:52:01 +00:00
Nika Layzell e999957c00 Bug 1640019 - Part 1: Support toplevel process switches outside of tabbrowser, r=mattwoodrow
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.

The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D78969
2020-06-12 16:52:00 +00: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
Kartikaya Gupta 65e2a40d98 Bug 1531971 - Make the test wait for the second page to actually paint before attempting to restore the first page from bfcache. r=smaug
The first page's content viewer is only saved in the bfcache when the second
page is painted. This can happen after the load event is fired, and in that
scenario, attempting to go back to the first page will reload it rather than
restore it from the bfcache. So for the test to work properly it needs to
wait until the second page is actually painted before it attempts go back.

Differential Revision: https://phabricator.services.mozilla.com/D79347
2020-06-11 21:19:10 +00:00
Emilio Cobos Álvarez ef3d21048d Bug 1640623 - Use enum classes for LookAndFeel int and float IDs. r=jmathies,geckoview-reviewers,esawin
Differential Revision: https://phabricator.services.mozilla.com/D76694
2020-06-11 11:27:43 +00:00
Johann Hofmann 20b1b77919 Bug 1515073 - Part 5 - Disable browser.navigation.requireUserInteraction in tests. r=Gijs
Depends on D27588

Differential Revision: https://phabricator.services.mozilla.com/D31604
2020-06-09 14:51:06 +00:00
Johann Hofmann 157f7e64a5 Bug 1515073 - Part 4 - Add test for skipping pages without user interaction on back-forward. r=Gijs
Depends on D27587

Differential Revision: https://phabricator.services.mozilla.com/D27588
2020-06-09 14:50:25 +00:00
Johann Hofmann 2133bb8e2c Bug 1515073 - Part 2 - Allow nsIWebNavigation::{goBack,goForward} to skip entries without user interaction. r=Gijs,peterv
Depends on D27585

Differential Revision: https://phabricator.services.mozilla.com/D27586
2020-06-09 14:50:14 +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
Razvan Maries f761608e79 Backed out changeset bca9f7459a16 (bug 1643656) for reftests perma failures. CLOSED TREE 2020-06-09 18:24:48 +03:00
Emilio Cobos Álvarez 6b86e22f72 Bug 1643656 - Remove prefers-color-scheme: no-preference. r=gl,remote-protocol-reviewers,hiro,whimboo
It was removed from the spec. Bug 1643934 updates the WPT tests.

Differential Revision: https://phabricator.services.mozilla.com/D78834
2020-06-09 13:21:54 +00:00
Tom Tung 492794a250 Bug 1641874 - Make the pref unchangeable at runtime; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D78282
2020-06-09 08:10:42 +00:00
Razvan Maries d6cd2e480b Backed out 2 changesets (bug 1641874) for perma failures on test_audioWorklet_WASM.html. CLOSED TREE
Backed out changeset df279d4082d8 (bug 1641874)
Backed out changeset 45045a6a1b24 (bug 1641874)
2020-06-09 11:05:26 +03:00
Tom Tung 322e512941 Bug 1641874 - Make the pref unchangeable at runtime; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D78282
2020-06-08 15:25:52 +00:00
alwu 934302cd0d Bug 1640998 - part9 : use `MediaControlKey` to replace `MediaControlKeysEvent` r=chunmin,agi,geckoview-reviewers
This patch will
- remove `MediaControlKeysEvent` and use `MediaControlKey` to replace it
- rename names for all `MediaControlKey` related methods, functions, classes and descriptions

The advantage of doing so are
- remove the duplicated type so that we only need to maintain `MediaControlKey`

Differential Revision: https://phabricator.services.mozilla.com/D78140
2020-06-09 02:59:57 +00:00
Dorel Luca 1761e9c3af Backed out changeset c3f3c52bb13d (bug 1643093) for Browser-chrome failures in components/urlbar/tests/browser/browser_autoFill_backspaced.js. CLOSED TREE 2020-06-09 06:23:42 +03:00
Emilio Cobos Álvarez 6b709b5f55 Bug 1606660 - Move allowfullscreen checks to the browsing context. r=nika
So that they work properly on fission iframes.

Differential Revision: https://phabricator.services.mozilla.com/D78702
2020-06-08 23:49:31 +00:00
Emilio Cobos Álvarez 9890093d16 Bug 1606660 - Factor out AllowFullscreen checks for iframe. r=nika
This has the side effect of fixing support of mozallowfullscreen when
feature policy is enabled, because it checks only AllowFullscreen, which
doesn't check for the moz-prefixed attribute.

I left the swapframeloader bits alone because they're mozbrowser
specific and I have no idea what they're trying to do.

Differential Revision: https://phabricator.services.mozilla.com/D78701
2020-06-08 21:42:48 +00:00
Jared Wein 3d209f79ac Bug 1643093 - Remove references to 'whitelist' in browser/components/urlbar. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D78122
2020-06-09 00:26:46 +00:00
Matt Woodrow 0f469abff6 Bug 1638711 - Call DisplayLoadError for NS_ERROR_DOM_BAD_URI during EndPageLoad, since we would also have done this for the same error during AsyncOpen. r=nika,ckerschb
Previously we called DisplayLoadError with NS_ERROR_DOM_BASE_URI for errors detected during AsyncOpen, but not for asynchronous errors, and this patch queue changed when some security errors happen to be asynchronous.

GeckoView has tests that require DisplayLoadError to be called (which allows for a custom error page to be loaded). Unfortunately, doing so breaks existing gecko tests, since the method of detecting a blocked load fails when GeckoView loads a custom error page.

Differential Revision: https://phabricator.services.mozilla.com/D77171
2020-06-08 23:17:49 +00:00
Dorel Luca 3e35e21538 Backed out 2 changesets (bug 1580766) for XPCshell failures in unit/test_browsing_context_structured_clone.js. CLOSED TREE
Backed out changeset 6b9926a5ab88 (bug 1580766)
Backed out changeset 3722901b6309 (bug 1580766)
2020-06-09 03:39:22 +03:00
Kashav Madan fdca51d702 Bug 1580766 - Move BrowserId to nsFrameLoaderOwner, r=kmag
This makes it easier to handle both <xul:browser> and <iframe mozbrowser>
frameloader swaps.

Depends on D56245

Differential Revision: https://phabricator.services.mozilla.com/D77911
2020-06-08 21:58:47 +00:00
Dave Townsend 9c61384069 Bug 1580766: Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
Adds a `browserId` property to all browsing contexts which the same for the
entire tree of contexts inside a frame element. If a new top-level context is
created for the frame then it is assigned the same value.

This allows identifying the frame element for a given browsing context.

Currently this is only done for XUL frame elements (browser/iframe). Not sure
if we want this for others.

Differential Revision: https://phabricator.services.mozilla.com/D56245
2020-06-08 21:58:33 +00:00
Anny Gakhokidze b0c4a70ea0 Bug 1631859 - Part 3: Remove ancestor principals and outer windowIDs from Document and nsDocShell, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D78408
2020-06-08 19:58:23 +00:00
Peter Van der Beken bf73f3724a Bug 1644140 - Remove nsDocShell::AddChildSHEntryInternal and make some session history code in nsDocShell work with fission. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D78686
2020-06-08 15:46:14 +00:00
Bogdan Tara d68a202c49 Backed out 9 changesets (bug 1638711) for test_block_toplevel_data_navigation.html failures CLOSED TREE
Backed out changeset b137e5dfcc57 (bug 1638711)
Backed out changeset 3529cf4e69b6 (bug 1638711)
Backed out changeset 417df721766f (bug 1638711)
Backed out changeset 5b312893e8e2 (bug 1638711)
Backed out changeset d6d396498f5e (bug 1638711)
Backed out changeset 77f6f2396343 (bug 1638711)
Backed out changeset c1d12e04bc27 (bug 1638711)
Backed out changeset 6e702b519ef0 (bug 1638711)
Backed out changeset 9e5a049b57ed (bug 1638711)
2020-06-08 12:36:09 +03:00
Matt Woodrow 13ce354803 Bug 1638711 - Call DisplayLoadError for NS_ERROR_DOM_BAD_URI during EndPageLoad, since we would also have done this for the same error during AsyncOpen. r=nika,ckerschb
Previously we called DisplayLoadError with NS_ERROR_DOM_BASE_URI for errors detected during AsyncOpen, but not for asynchronous errors, and this patch queue changed when some security errors happen to be asynchronous.

GeckoView has tests that require DisplayLoadError to be called (which allows for a custom error page to be loaded). Unfortunately, doing so breaks existing gecko tests, since the method of detecting a blocked load fails when GeckoView loads a custom error page.

Differential Revision: https://phabricator.services.mozilla.com/D77171
2020-06-08 08:07:20 +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
Peter Van der Beken a191be346c Bug 1643457 - Support ChromeOnly properties on remote proxies. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D78360
2020-06-05 12:45:40 +00:00
Emilio Cobos Álvarez f4aae6309b Bug 1643493 - Remove dead ParentShowInfo::fullscreenAllowed. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D78392
2020-06-05 00:40:59 +00:00
Emilio Cobos Álvarez 38b1a0ca2d Bug 1643488 - Remove dead nsDocShell::mFullscreenAllowed. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D78385
2020-06-04 20:41:29 +00:00
Andrea Marchesini 22d905d24e Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 2 - Expose PartitionedPrincipal, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76915
2020-06-03 06:09:52 +00:00
Gijs Kruitbosch 728702a673 Bug 1606797 - pass the triggering principal when opening external URIs, r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D77027
2020-05-27 12:46:34 +00:00
Csoregi Natalia 2d5cafc841 Backed out 5 changesets (bug 1639833) for failures on browser_blockingIndexedDbInWorkers.js. CLOSED TREE
Backed out changeset 6b4f76d65540 (bug 1639833)
Backed out changeset c77acba1aacb (bug 1639833)
Backed out changeset 30c97666919e (bug 1639833)
Backed out changeset d769b313441a (bug 1639833)
Backed out changeset ed41b41d1b03 (bug 1639833)
2020-06-02 15:02:31 +03:00
Andrea Marchesini e31c7313ca Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 2 - Expose PartitionedPrincipal, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76915
2020-06-02 08:28:05 +00:00
Olli Pettay f474d273b1 Bug 1353466, 'A browsing context is script-closable ... if it is a top-level browsing context whose session history contains only one Document', r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D76006
2020-06-01 20:01:11 +00:00
Razvan Maries a36bb7751f Backed out 3 changesets (bug 1638153) for perma failures on cross-origin-objects.html. CLOSED TREE
Backed out changeset f7aedc92d396 (bug 1638153)
Backed out changeset 07ec713926c6 (bug 1638153)
Backed out changeset 5a656842e241 (bug 1638153)
2020-06-01 23:51:35 +03:00
Razvan Maries c5a8f831d4 Backed out changeset 30c061da89d8 (bug 1580766) for perma failures on BrowsingContext.cpp. CLOSED TREE 2020-06-01 21:50:12 +03:00
Kris Maglione b3fcd970ec Bug 1638153: Part 2 - Fix uses of .rootTreeItem to get top browser window. r=geckoview-reviewers,nika,snorp
Differential Revision: https://phabricator.services.mozilla.com/D75429
2020-06-01 17:59:01 +00:00
Kris Maglione c121cf77fc Bug 1638153: Part 1 - Add topChromeWindow getter to CanonicalBrowsingContext. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D75431
2020-05-28 19:34:33 +00:00
Kris Maglione 8805ff3be0 Bug 1638153: Part 0 - Add Window.browsingContext getter. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D75430
2020-05-28 19:34:33 +00:00
Kashav Madan f05209e3a5 Bug 1620714 - Set BrowsingContext::Closed as early as possible, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D77109
2020-06-01 17:13:47 +00:00
Dave Townsend 38ef8fecd1 Bug 1580766: Add a unique ID for the BrowsingContext tree inside a browser element. r=kmag
Adds a `browserId` property to all browsing contexts which the same for the
entire tree of contexts inside a frame element. If a new top-level context is
created for the frame then it is assigned the same value.

This allows identifying the frame element for a given browsing context.

Currently this is only done for XUL frame elements (browser/iframe). Not sure
if we want this for others.

Differential Revision: https://phabricator.services.mozilla.com/D56245
2020-06-01 16:52:31 +00:00
Noemi Erli f08b043cf6 Backed out 5 changesets (bug 1639833) for causing sessionstorage related failures CLOSED TREE
Backed out changeset b36af8d9db34 (bug 1639833)
Backed out changeset 712c11904dbe (bug 1639833)
Backed out changeset 14f1e4783582 (bug 1639833)
Backed out changeset b7f14c4cfe5d (bug 1639833)
Backed out changeset b4b25034dd83 (bug 1639833)
2020-06-01 19:31:50 +03:00
Andrea Marchesini 8c0df411d1 Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 2 - Expose PartitionedPrincipal, r=dimi
Differential Revision: https://phabricator.services.mozilla.com/D76915
2020-06-01 11:57:46 +00:00
Dorel Luca 82e6b1c0ab Backed out changeset 1e166841f170 (bug 1353466) for Mochitest failures in gecko/dom/base/nsGlobalWindowOuter.cpp. CLOSED TREE 2020-06-01 18:06:55 +03:00
Olli Pettay 428997aedb Bug 1353466, 'A browsing context is script-closable ... if it is a top-level browsing context whose session history contains only one Document', r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D76006
2020-05-29 20:37:47 +00:00
Jonathan Kingston d7420f10fd Bug 1359867 - Add support for allow-top-navigation-by-user-activation iframe sandboxing r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D77430
2020-06-01 12:46:31 +00:00
Masatoshi Kimura b9a2ffc214 Bug 1482279 - Stop using Cu.forcePermissiveCOWs() in SpecialPowers. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D74641
2020-05-31 03:41:03 +00:00
Jean-Yves Avenard fc71e1daf1 Bug 1637869 - P4. Access pref via staticpref. r=mattwoodrow,necko-reviewers
It would otherwise triggers browser/base/content/test/performance/browser_preferences_usage.js

That pref would have been checked with every single load, a staticpref is O-1 .

Differential Revision: https://phabricator.services.mozilla.com/D76317
2020-05-28 04:07:15 +00:00
Jean-Yves Avenard da36716654 Bug 1637869 - P3. Force about:credits to load in the content process. r=nika
It was apparently overlooked.

Yours truly doesn't even appear on that list :(

Differential Revision: https://phabricator.services.mozilla.com/D76316
2020-05-28 00:07:46 +00:00
Jean-Yves Avenard 66a61d942d Bug 1637869 - P2. Allow ParentProcessDocumentChannel to perform process switching. r=nika,mattwoodrow
The moves all decisions to perform a process switch into the DocumentLoadListerner. This removes the unnecessary need to go via a content process to start the load.

Differential Revision: https://phabricator.services.mozilla.com/D76315
2020-05-28 00:07:39 +00:00
Tom Tung 839aba3410 Bug 1601594 - Move CrossOriginIsolated from nsGlobalWindowInner to BrowsingContext; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D75131
2020-05-25 12:51:53 +00:00
Razvan Maries a985167fa6 Backed out 7 changesets (bug 1638711) for perma failures on test_bug375314-2.html. CLOSED TREE
Backed out changeset 9643bf18ac31 (bug 1638711)
Backed out changeset 3d06b48e2e3a (bug 1638711)
Backed out changeset c2a1461890c3 (bug 1638711)
Backed out changeset 9eda9f6c5877 (bug 1638711)
Backed out changeset f776c30279f3 (bug 1638711)
Backed out changeset b34546384903 (bug 1638711)
Backed out changeset 47da03dd8365 (bug 1638711)
2020-05-28 04:25:38 +03:00
Matt Woodrow e773557320 Bug 1638711 - Call DisplayLoadError for NS_ERROR_CONTENT_BLOCKED during EndPageLoad, since we would also have done this for the same error during AsyncOpen. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D77171
2020-05-28 00:10:47 +00:00
Erica Wright 2533f8da77 Bug 1636962 - Add telemetry for all page load errors r=johannh,xeonchen,nika
Differential Revision: https://phabricator.services.mozilla.com/D75873
2020-05-27 22:33:02 +00:00
Marco Bonardo e8fd1b7c50 Bug 1398567 - Invert URIFixup default behavior to search unless the string looks like a URI. r=Gijs
With recent fixes that can properly identify whitelisted domains, whitelisted
domain suffixed, valid known public suffixes, and forcing to visit URI-like
strings that end with a slash, it's time to re-evaluate the URIFixup behavior.
Until now URIFixup considered everything a URI unless it had specific search
characteristics, this patch inverts that behavior.
The scope of this change is to improve the urlbar behavior as the main Search
Access Point, since that's the direction we're moving towards.

This lands with a temporary hidden feature pref browser.fixup.defaultToSearch,
that will be removed once the feature has been released.

Differential Revision: https://phabricator.services.mozilla.com/D76852
2020-05-27 16:55:14 +00:00
Matt Woodrow 5cf1f845a8 Bug 1631405 - Update tests to account for security UI only living in the parent process. r=kmag,ckerschb,webcompat-reviewers,twisniewski
This is mostly changes to handle retrieving the security state asynchronously via the parent process, needing lots of async/await additions.

It also removes the docshell mixed content flag checks (which don't seem to be used in code, only tests), which are mostly still covered by checks of the security UI.

Differential Revision: https://phabricator.services.mozilla.com/D75448
2020-05-27 00:31:25 +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 d692732bdd Bug 1631405 - Update tests to account for security UI only living in the parent process. r=kmag,ckerschb,webcompat-reviewers,twisniewski
This is mostly changes to handle retrieving the security state asynchronously via the parent process, needing lots of async/await additions.

It also removes the docshell mixed content flag checks (which don't seem to be used in code, only tests), which are mostly still covered by checks of the security UI.

Differential Revision: https://phabricator.services.mozilla.com/D75448
2020-05-26 21:19:28 +00: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
Matt Woodrow 38ffa87e05 Bug 1640160 - Serialize mRequestContextId with BrowsingContext's IPCInitializer to ensure that we don't try to create a request context with an id of 0. r=nika
This was a bit of pain to track down, because some code was allowing an ID of 0, and creating a request context to match, but other code was treating 0 as invalid.

Differential Revision: https://phabricator.services.mozilla.com/D76652
2020-05-26 21:14:27 +00:00
JulianWels 2cc2e49495 Bug 1625156 - Error page for HTTPS Only Mode. r=fluent-reviewers,ckerschb,nhnt11,flod,nika,johannh,mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D72129
2020-05-26 11:45:21 +00:00
Nika Layzell 73d17519e7 Bug 1639367 - Clean up TabContext logic for PBrowser, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D76055
2020-05-21 22:38:44 +00:00
Nika Layzell e6a9e27a19 Bug 1637088 - Delay creating BrowserBridgeChild until after new PBrowser has been created, r=farre,emilio
Differential Revision: https://phabricator.services.mozilla.com/D75614
2020-05-25 06:06:30 +00:00
Christoph Kerschbaumer 6ae4ad1947 Bug 1422284 - Upgrade insecure requests should only apply to top-level same-origin redirects. r=baku,valentin,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D75259
2020-05-25 08:14:10 +00:00
Marco Bonardo 5a5863e4ae Bug 1636583 - Make the urlbar always go through pickResult. r=adw
This changes the urlbar to always generate a result and then confirm it through
pickResult. This way we obtain a consistent behavior independently from whether
the view has a result or an action like Paste&Go happened.
Before this we used to go through getShortcutOrURIAndPostData, that implements
only a part of the urlbar logic, often causing different behavior depending on
the view state, and thus requiring constant maintenance to sync it up.
In a follow-up bug we will evaluate the complete removal of
getShortcutOrURIAndPostData in favor of direct calls to
UrlbarUtils.getHeuristicResultFor().

This also moves up a bit closer to always pass a final url to the docshell, and
stop trying to do complex URIFixup calls in it. For now we still rely
on its fix-ups for browser.fixup.dns_first_for_single_words, where we pass a
url, and if it's invalid it will instead search. See UrlbarUtils.RESULT_TYPE.URL
handling in pickResult().

Differential Revision: https://phabricator.services.mozilla.com/D75911
2020-05-23 13:25:27 +00:00
Marco Bonardo 27e6788fd3 Bug 1636583 - URIFixup should force a visit when an uri-like search string ends with a slash. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D75910
2020-05-23 13:24:44 +00:00
Dorel Luca 86d5322893 Backed out 4 changesets (bug 1637869) for Geckoview failures in org.mozilla.geckoview.test.NavigationDelegateTest.extensionProcessSwitching. CLOSED TREE
Backed out changeset a0c0203ee8c9 (bug 1637869)
Backed out changeset 75359ba23865 (bug 1637869)
Backed out changeset d300b61ed89f (bug 1637869)
Backed out changeset 34389f9c86e4 (bug 1637869)
2020-05-22 19:38:15 +03:00
Dorel Luca 1b427eb7aa Backed out 3 changesets (bug 1636583) for Browser-chrome failures in browser/components/urlbar/tests/browser/browser_handleCommand_fallback.js. CLOSED TREE
Backed out changeset a2e636ff03c2 (bug 1636583)
Backed out changeset 660b7de89215 (bug 1636583)
Backed out changeset 9fd142817919 (bug 1636583)
2020-05-22 19:07:07 +03:00
Jean-Yves Avenard 08a8963053 Bug 1637869 - P4. Access pref via staticpref. r=mattwoodrow,necko-reviewers
It would otherwise triggers browser/base/content/test/performance/browser_preferences_usage.js

That pref would have been checked with every single load, a staticpref is O-1 .

Differential Revision: https://phabricator.services.mozilla.com/D76317
2020-05-22 04:12:42 +00:00
Jean-Yves Avenard c94f19793d Bug 1637869 - P3. Force about:credits to load in the content process. r=nika
It was apparently overlooked.

Yours truly doesn't even appear on that list :(

Differential Revision: https://phabricator.services.mozilla.com/D76316
2020-05-22 04:12:34 +00:00
Jean-Yves Avenard d1133de668 Bug 1637869 - P2. Allow ParentProcessDocumentChannel to perform process switching. r=nika,mattwoodrow
The moves all decisions to perform a process switch into the DocumentLoadListerner. This removes the unnecessary need to go via a content process to start the load.

Differential Revision: https://phabricator.services.mozilla.com/D76315
2020-05-22 10:28:41 +00:00
Marco Bonardo 505406e25d Bug 1636583 - Make the urlbar always go through pickResult. r=adw
This changes the urlbar to always generate a result and then confirm it through
pickResult. This way we obtain a consistent behavior independently from whether
the view has a result or an action like Paste&Go happened.
Before this we used to go through getShortcutOrURIAndPostData, that implements
only a part of the urlbar logic, often causing different behavior depending on
the view state, and thus requiring constant maintenance to sync it up.
In a follow-up bug we will evaluate the complete removal of
getShortcutOrURIAndPostData in favor of direct calls to
UrlbarUtils.getHeuristicResultFor().

This also moves up a bit closer to always pass a final url to the docshell, and
stop trying to do complex URIFixup calls in it. For now we still rely
on its fix-ups for browser.fixup.dns_first_for_single_words, where we pass a
url, and if it's invalid it will instead search. See UrlbarUtils.RESULT_TYPE.URL
handling in pickResult().

Differential Revision: https://phabricator.services.mozilla.com/D75911
2020-05-21 15:00:08 +00:00
Marco Bonardo 36118c93a3 Bug 1636583 - URIFixup should force a visit when an uri-like search string ends with a slash. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D75910
2020-05-21 14:58:15 +00:00
Barret Rennie f5258e1188 Bug 1603185 - Collect per tab unique site origin telemetry r=Dexter,Gijs,nika
Top-level content WindowGlobalParents now keep track of the site origins of the
documents in their document tree. When the WindowGlobalParent is torn down, the
maximum of the number of unique site origins is submitted for telemetry.

Differential Revision: https://phabricator.services.mozilla.com/D71493
2020-05-22 00:34:17 +00:00
Sid Stamm a69fe1db1b Bug 1002724 - Test that HTTPS is tried if typed host name doesn't respond via HTTP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75085
2020-05-21 17:33:30 +00:00
Sid Stamm 935f681bed Bug 1002724 - add pref for fallback to https. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75084
2020-05-21 17:33:27 +00:00
Sid Stamm c90deaa1bc Bug 1002724 - try https if http connections are rejected. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75083
2020-05-21 17:33:23 +00:00
Matt Woodrow b7105cc963 Bug 1627533 - Create LoadGroups for docshells using the BrowsingContext's request context id. r=dragana,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D75885
2020-05-21 03:38:37 +00:00
Matt Woodrow 56206beda8 Bug 1627533 - Create a request context id for each BrowsingContext. r=nika,dragana,necko-reviewers
Previously we created a new request context id for each LoadGroup, which meant we didn't have a constant value across process switches.
The next patch uses this request context id when creating a new LoadGroup for an nsDocShell, so that all docshell/loadgroups for a BrowsingContext share the same id.

Differential Revision: https://phabricator.services.mozilla.com/D75884
2020-05-21 03:38:14 +00:00
Noemi Erli 3adaaeb800 Backed out 3 changesets (bug 1627533) for causing assertions in RequestContextService.cpp CLOSED TREE
Backed out changeset 3b35a1852a60 (bug 1627533)
Backed out changeset 70fa5e075269 (bug 1627533)
Backed out changeset 0d1046670534 (bug 1627533)
2020-05-21 04:16:21 +03:00
Matt Woodrow f8b14e22ba Bug 1627533 - Create LoadGroups for docshells using the BrowsingContext's request context id. r=dragana,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D75885
2020-05-20 23:41:36 +00:00
Matt Woodrow d958cab047 Bug 1627533 - Create a request context id for each BrowsingContext. r=nika,dragana,necko-reviewers
Previously we created a new request context id for each LoadGroup, which meant we didn't have a constant value across process switches.
The next patch uses this request context id when creating a new LoadGroup for an nsDocShell, so that all docshell/loadgroups for a BrowsingContext share the same id.

Differential Revision: https://phabricator.services.mozilla.com/D75884
2020-05-20 23:41:13 +00:00
Peter Van der Beken 2c8f84716d Bug 1570255 - Forward ChildSHistory::Go to the parent. r=smaug
This enables navigating by index in session history go through the
session history in the parent (if enabled with the pref).

If the pref is enabled, then ChildSHistory::Go will send an IPC message
to the parent with the index to navigate to. The parent calls the
existing nsSHistory implementation and starts the loads, and
asynchronously returns the index that we actually navigated to. The
child process then uses that result to update the session history
implementation in the child process (this part is temporary, while we
have session history both in parent and in child). We also make the
parent send an updated length to the child process over IPC, so that
history.length always the length for the implementation in the parent.

Differential Revision: https://phabricator.services.mozilla.com/D65330
2020-05-20 09:15:31 +00:00
Peter Van der Beken f38cc0e952 Bug 1570255 - Reboot session history in parent part 1. r=smaug,necko-reviewers,valentin
This adds a new implementation of nsISHEntry
(mozilla::dom::SessionHistoryEntry). When session history in the parent
is turned on, we'll instantiate the existing nsSHistory in the parent
process, but it will store entries of this new type. The nsSHistory in
the child process will also be instantiated for now, to avoid breaking
too many assumptions, and we try to keep parent and child
implementations in sync.

mozilla::dom::SessionHistoryEntry stores most of its data in a new
structure (mozilla::dom::SessionHistoryInfo) which can be sent over IPC.
When a load starts through the DocumentChannel we create an entry of
this new type for it in the parent process in
DocumentLoadListener::Open. The SessionHistoryInfo for that entry (with
an associated ID) is then sent over IPC in the RedirectToRealChannelArgs
to the process that does the actual load, where we store it in the
nsDocShell in mLoadingEntry (and mLoadingEntryId). The parent process
keeps track of outstanding loading entries in an array (mLoadingEntries)
in the CanonicalBrowsingContext. When a load finishes the nsDocShell
transfers mLoadingEntry into mActiveEntry, and notifies the parent
process through an IPC message (HistoryCommit) with the id of that
entry. The CanonicalBrowsingContext then removes the entry from the
array and stores it in its mActiveEntry, and adds the entry to the
nsSHistory object.

There are a number of things in this patch that are broken, and a lot of
FIXME comments. However, with the pref turned off things should just be
working as before. The goal is to land this first part, and then iterate
on the new implementation until we can switch over.

Differential Revision: https://phabricator.services.mozilla.com/D65329
2020-05-20 09:09:12 +00:00
Peter Van der Beken 1990918ebe Bug 1570255 - Remove sync session history implementation. r=smaug,nika
Differential Revision: https://phabricator.services.mozilla.com/D65326
2020-05-20 09:09:06 +00:00
Tom Tung d9d34b2983 Bug 1605176 - Send a error message data and cause a message error on the receiver side when the message data contains a shared memory object in BrowsingContext::PostMessageMoz; r=baku,kmag
Differential Revision: https://phabricator.services.mozilla.com/D75035
2020-05-20 08:27:16 +00:00
Tim Huang f522897351 Bug 1639195 - Part 2: Add a test. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D75966
2020-05-19 18:59:36 +00:00
Dan Glastonbury b4dde7ce2a Bug 1633459 - Marshal customUserAgent setting via nsDocShell. r=geckoview-reviewers,esawin,nika
Reinstate customUserAgent interface for nsIDocShell. This is so it can be used
as a choke-point to catch setting values on docshells which are in the process
of changing process. We don't want to send changes which will be rejected on the
parent side.

This code should be removed once callers setting customUserAgent are refactored
to only occur from parent process.

Differential Revision: https://phabricator.services.mozilla.com/D75006
2020-05-20 00:19:59 +00:00
Nika Layzell 6d57f777b5 Bug 1637057 - Part 1: Ensure that ChromeFlags are propagated consistently between content owners, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D75610
2020-05-18 18:23:35 +00:00
Peter Van der Beken ef557497ca Bug 1629866 - Store ChildSHistory on the BrowsingContext. r=nika,smaug
Differential Revision: https://phabricator.services.mozilla.com/D70997
2020-05-19 08:57:44 +00:00
Peter Van der Beken 2edf11cb1e Bug 1629866 - Set the srcdoc to a void string if INTERNAL_LOAD_FLAGS_IS_SRCDOC is set, to appease assertion in DocumentChannelChild::RecvRedirectToRealChannel. r=mattwoodrow
Bug 1598523 added an assertion that if INTERNAL_LOAD_FLAGS_IS_SRCDOC is not set
in a load state's load flags, then the srcdoc must be a void string.
nsDocShell::Reload never set srcdoc to a void string in that case, and wasn't
fixed up.

Differential Revision: https://phabricator.services.mozilla.com/D75908
2020-05-19 20:11:44 +00:00
Noemi Erli c1cca03e21 Backed out 6 changesets (bug 1002724) for failing in browser_fall_back_to_https.js CLOSED TREE
Backed out changeset e487b4cd9223 (bug 1002724)
Backed out changeset 37473a8ba1fd (bug 1002724)
Backed out changeset e868f1e0af0e (bug 1002724)
Backed out changeset 1c57f8717b15 (bug 1002724)
Backed out changeset 782808a05ff8 (bug 1002724)
Backed out changeset c60c48d170e1 (bug 1002724)
2020-05-18 19:22:19 +03:00
Sid Stamm 4f2852cbc8 Bug 1002724 - Test that HTTPS is tried if typed host name doesn't respond via HTTP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75085
2020-05-18 15:08:32 +00:00
Sid Stamm 485d080bae Bug 1002724 - add pref for fallback to https. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75084
2020-05-18 15:08:24 +00:00
Sid Stamm 67731d9bc5 Bug 1002724 - try https if http connections are rejected. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75083
2020-05-18 15:12:51 +00:00
Csoregi Natalia 179b0c82b2 Backed out 6 changesets (bug 1002724) for bustage on nsDocShell.cpp. CLOSED TREE
Backed out changeset 56ba616e2644 (bug 1002724)
Backed out changeset d481cf074d3b (bug 1002724)
Backed out changeset da26540ecee5 (bug 1002724)
Backed out changeset 01cbf611158a (bug 1002724)
Backed out changeset b60ba645f1f4 (bug 1002724)
Backed out changeset 4ebad0d2ca0a (bug 1002724)
2020-05-18 16:06:55 +03:00
Sid Stamm 0cc5d3ea23 Bug 1002724 - Test that HTTPS is tried if typed host name doesn't respond via HTTP. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75085
2020-05-15 18:42:15 +00:00
Sid Stamm 507f916a33 Bug 1002724 - add pref for fallback to https. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75084
2020-05-15 18:42:15 +00:00
Sid Stamm c531f02db9 Bug 1002724 - try https if http connections are rejected. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75083
2020-05-15 18:42:15 +00:00
Dan Glastonbury 27835d15d1 Bug 1637472 - Refactor to set customUserAgent from Parent process. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D75007
2020-05-15 14:12:22 +00:00
Nicklas Boman 4f2fa0cfa7 Bug 1515419 - fixing ToNewCString (and ToNewUnicode as well) xpcom/string/nsReadableUtils.cpp r=froydnj,necko-reviewers,valentin
Differential Revision: https://phabricator.services.mozilla.com/D17411
2020-05-17 06:58:48 +00:00
Csoregi Natalia a3533bab5a Bug 1597450 - Fix trailing whitespace. r=fix 2020-05-16 01:20:45 +03: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
Gijs Kruitbosch e10cd7dc35 Bug 1633307 - avoid sending dead wrappers to JS tooltip providers, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D75295
2020-05-15 15:16:39 +00:00
Razvan Maries 481517ce87 Backed out 2 changesets (bug 1558394) for perma failures on iframe_sandbox_anchor_download_block_downloads.sub.tentative.html. CLOSED TREE
Backed out changeset 79046ff8143b (bug 1558394)
Backed out changeset e13ede3c68d4 (bug 1558394)
2020-05-15 19:18:34 +03:00
Sebastian Streich bb0855332f Bug 1558394 - Pass the TriggeringSandboxFlags to nsILoadinfo r=ckerschb,smaug,necko-reviewers,valentin
Add triggering Sandbox flags to loadinfo
***
Pass triggering Flags into Loadinfo

Differential Revision: https://phabricator.services.mozilla.com/D69588
2020-05-15 14:03:28 +00:00
Sebastian Streich 1ec5974790 Bug 1636148 - "BandAid" - Cast Remaining Callers To BasePrincipal r=ckerschb,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D74248
2020-05-14 19:42:57 +00:00
Bogdan Tara edcb53f163 Backed out 2 changesets (bug 1558394) for nsDocShellLoadState related bustage CLOSED TREE
Backed out changeset 5889105bd089 (bug 1558394)
Backed out changeset 80a0ea17c9f8 (bug 1558394)
2020-05-14 15:17:32 +03:00
Sebastian Streich 9ce86dc585 Bug 1558394 - Pass the TriggeringSandboxFlags to nsILoadinfo r=ckerschb,smaug,necko-reviewers,valentin
Add triggering Sandbox flags to loadinfo
***
Pass triggering Flags into Loadinfo

Differential Revision: https://phabricator.services.mozilla.com/D69588
2020-05-14 10:04:44 +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
Marco Bonardo b53ba0122e Bug 1634650 - Add whitelisting of domain suffixes for URIFixup. r=harry
Differential Revision: https://phabricator.services.mozilla.com/D74015
2020-05-13 16:05:04 +00:00
Csoregi Natalia 517e830522 Backed out 4 changesets (bug 1629866, bug 1570255) for assertion failures on DocumentChannelChild.cpp. CLOSED TREE
Backed out changeset 214e4a11be0d (bug 1570255)
Backed out changeset db066dda1bb8 (bug 1570255)
Backed out changeset d9f75d88613e (bug 1570255)
Backed out changeset fe2d4790b73a (bug 1629866)
2020-05-13 18:30:42 +03:00
Gijs Kruitbosch 228e52aebe Bug 1196151 - use BrowsingContext for external helper app handling of protocols, r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D74434
2020-05-11 13:13:03 +00:00
Gijs Kruitbosch e83010ea13 Bug 1196151 - use browsing contexts for urifixupinfo's consumer property, r=mak
Differential Revision: https://phabricator.services.mozilla.com/D74559
2020-05-13 14:54:47 +00:00
Peter Van der Beken c46091ad18 Bug 1570255 - Forward ChildSHistory::Go to the parent. r=smaug
This enables navigating by index in session history go through the
session history in the parent (if enabled with the pref).

If the pref is enabled, then ChildSHistory::Go will send an IPC message
to the parent with the index to navigate to. The parent calls the
existing nsSHistory implementation and starts the loads, and
asynchronously returns the index that we actually navigated to. The
child process then uses that result to update the session history
implementation in the child process (this part is temporary, while we
have session history both in parent and in child). We also make the
parent send an updated length to the child process over IPC, so that
history.length always the length for the implementation in the parent.

Differential Revision: https://phabricator.services.mozilla.com/D65330
2020-05-13 13:47:11 +00:00