Commit Graph

611 Commits

Author SHA1 Message Date
Jonathan Watt
0c215eb942 Bug 1749003 - Remove unnecessary includes and other mentions of nsIWebBrowserPrint. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D135339
2022-01-07 14:46:30 +00:00
Andrew McCreight
7664466a36 Bug 1748912 - Add null check in CanonicalBrowsingContext::RemoveFromSessionHistory. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D135270
2022-01-07 14:16:07 +00:00
Olli Pettay
66beeb6efe Bug 1745730, disable bfcache when loading the current uri again, r=peterv
The idea is to get us to https://searchfox.org/mozilla-central/rev/25d26b0a62cc5bb4aa3bb90a11f3b0b7c52859c4/docshell/base/nsDocShell.cpp#10824,10829 so that
we can do a replace load.
It should be ok to disable bfcache in all the cases, not only in the cases nsDocShell checks for replace load.

Differential Revision: https://phabricator.services.mozilla.com/D134876
2021-12-31 12:14:36 +00:00
Anny Gakhokidze
911ffd9589 Bug 1735613 - Part 1: Remove the requirement for SHIP with parent controlled loads, r=peterv,nika
Differential Revision: https://phabricator.services.mozilla.com/D132092
2021-12-20 22:39:29 +00:00
Anny Gakhokidze
cd293008dc Bug 1721217 - Part 7: Make sure to cancel loads when a canonical BC gets discarded, r=nika
This fixes failures in browser/base/content/test/tabPrompts/browser_contentOrigins.js

Differential Revision: https://phabricator.services.mozilla.com/D126847
2021-12-16 22:27:18 +00:00
Anny Gakhokidze
85b2ed966c Bug 1721217 - Part 6: Don't cancel concurrent loads if they are downloads, r=nika,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D126846
2021-12-16 22:27:17 +00:00
Anny Gakhokidze
10610dc7d0 Bug 1721217 - Part 5: Change the error code when we cancel loads due to another one starting, r=nika
This allows us to move away from using IsNavigating field in parent-controlled
paths.  Use a new distinct error code in cases when we cancel loads in
Canonical BC due to another load starting. This way, we know to not reset the
urlbar if we are doing another load.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1721217#c10 for longer
explanation of what is going on here.

Differential Revision: https://phabricator.services.mozilla.com/D126845
2021-12-16 22:27:17 +00:00
Anny Gakhokidze
2ce7e940c8 Bug 1721217 - Part 2: Fix the race between navigations originating in the parent and in the content, r=nika
Add a synced ParentInitiatedNavigationEpoch field to browsing context, which
only gets incremented when we start navigations in the parent process. When a
child process initiates a navigation, it sends the current value of the field
that it sees via DocumentChannelCreationArgs. In the parent process, we can
compare the value of that field with the latest one for the same browsing
context. If the latest value is higher than the one provided by the content
process, it means that in the meantime parent process has started a navigation
so the earlier navigation originating in the content process will be cancelled.

Differential Revision: https://phabricator.services.mozilla.com/D126842
2021-12-16 22:27:16 +00:00
Anny Gakhokidze
8fc2c0eb5e Bug 1721217 - Part 1: Enable parent controlled loads via DC, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D126841
2021-12-16 22:27:15 +00:00
Peter Van der Beken
0997cc99bd Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-16 15:31:56 +00:00
Butkovits Atila
60d0aa134a Backed out changeset e55eb174b342 (bug 1742865) for causin failures at attr-meta-http-equiv-refresh/parsing.html?131 2021-12-16 12:15:59 +02:00
Peter Van der Beken
8e4b092406 Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-16 08:19:45 +00:00
Norisz Fay
d281685db4 Backed out 5 changesets (bug 1742865, bug 1744397) for causing wpt failures on attr-meta-http-equiv-refresh/parsing.html CLOSED TREE
Backed out changeset 7b01edc5a0e0 (bug 1744397)
Backed out changeset 41abd4b7d2c0 (bug 1744397)
Backed out changeset 634641e3a05a (bug 1744397)
Backed out changeset 6e7755177481 (bug 1744397)
Backed out changeset e9fc94b33da9 (bug 1742865)
2021-12-14 13:25:58 +02:00
Peter Van der Beken
3303fb66bd Bug 1742865 - Handle meta refresh correctly with session history in the parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D132837
2021-12-14 10:13:58 +00:00
Narcis Beleuzu
6e9d812757 Backed out 12 changesets (bug 1721217) for bc failures on browser_TopLevelNavigationDelegate.js
Backed out changeset 5fe3c617d521 (bug 1721217)
Backed out changeset c131e4a6d9d5 (bug 1721217)
Backed out changeset a59210a5b400 (bug 1721217)
Backed out changeset 74362b0c39c0 (bug 1721217)
Backed out changeset c8075b91d660 (bug 1721217)
Backed out changeset 46512deaf0e5 (bug 1721217)
Backed out changeset b38bc569d227 (bug 1721217)
Backed out changeset ee9bd012fda8 (bug 1721217)
Backed out changeset 7aa2726a0982 (bug 1721217)
Backed out changeset 885ced5f4bb4 (bug 1721217)
Backed out changeset 7d3f99ca3f44 (bug 1721217)
Backed out changeset 2f5a0164679a (bug 1721217)
2021-12-01 03:38:10 +02:00
Anny Gakhokidze
2a9c8a1255 Bug 1721217 - Part 7: Make sure to cancel loads when a canonical BC gets discarded, r=nika
This fixes failures in browser/base/content/test/tabPrompts/browser_contentOrigins.js

Differential Revision: https://phabricator.services.mozilla.com/D126847
2021-11-30 16:31:36 +00:00
Anny Gakhokidze
48f40e74f1 Bug 1721217 - Part 6: Don't cancel concurrent loads if they are downloads, r=nika,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D126846
2021-11-30 16:31:36 +00:00
Anny Gakhokidze
45acd46f45 Bug 1721217 - Part 5: Change the error code when we cancel loads due to another one starting, r=nika
This allows us to move away from using IsNavigating field in parent-controlled
paths.  Use a new distinct error code in cases when we cancel loads in
Canonical BC due to another load starting. This way, we know to not reset the
urlbar if we are doing another load.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1721217#c10 for longer
explanation of what is going on here.

Differential Revision: https://phabricator.services.mozilla.com/D126845
2021-11-30 16:31:36 +00:00
Anny Gakhokidze
f93c8afd88 Bug 1721217 - Part 2: Fix the race between navigations originating in the parent and in the content, r=nika
Add a synced ParentInitiatedNavigationEpoch field to browsing context, which
only gets incremented when we start navigations in the parent process. When a
child process initiates a navigation, it sends the current value of the field
that it sees via DocumentChannelCreationArgs. In the parent process, we can
compare the value of that field with the latest one for the same browsing
context. If the latest value is higher than the one provided by the content
process, it means that in the meantime parent process has started a navigation
so the earlier navigation originating in the content process will be cancelled.

Differential Revision: https://phabricator.services.mozilla.com/D126842
2021-11-30 16:31:34 +00:00
Anny Gakhokidze
01049be3e0 Bug 1721217 - Part 1: Enable parent controlled loads via DC, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D126841
2021-11-30 16:31:34 +00:00
Peter Van der Beken
8c29727c8d Bug 1742689 - Block things loaded in the large allocation process from the BFCache with BFCache in the parent. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D132351
2021-11-30 12:50:09 +00:00
Peter Van der Beken
6b7f7592e3 Bug 1741132 - Correctly evict entries with session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131894
2021-11-27 11:14:09 +00:00
Narcis Beleuzu
96c4882d22 Backed out 11 changesets (bug 1721217) for bc failures on browser_scrollPositions.js . CLOSED TREE
Backed out changeset 750f4a84b30e (bug 1721217)
Backed out changeset c4eb4ad769ad (bug 1721217)
Backed out changeset 81af11d67439 (bug 1721217)
Backed out changeset 548f2441b7c6 (bug 1721217)
Backed out changeset cd584129321a (bug 1721217)
Backed out changeset f5f5291d1da8 (bug 1721217)
Backed out changeset 9ad66ceec1e2 (bug 1721217)
Backed out changeset 10b53a21bb23 (bug 1721217)
Backed out changeset 3755cfbe22fe (bug 1721217)
Backed out changeset 71436dc6c4c4 (bug 1721217)
Backed out changeset ecf33b73ae60 (bug 1721217)
2021-11-26 01:51:03 +02:00
Anny Gakhokidze
92776cc101 Bug 1721217 - Part 7: Make sure to cancel loads when a canonical BC gets discarded, r=nika
This fixes failures in browser/base/content/test/tabPrompts/browser_contentOrigins.js

Differential Revision: https://phabricator.services.mozilla.com/D126847
2021-11-25 20:40:59 +00:00
Anny Gakhokidze
a80d859187 Bug 1721217 - Part 6: Don't cancel concurrent loads if they are downloads, r=nika,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D126846
2021-11-25 20:40:58 +00:00
Anny Gakhokidze
a81e51b3a2 Bug 1721217 - Part 5: Change the error code when we cancel loads due to another one starting, r=nika
This allows us to move away from using IsNavigating field in parent-controlled
paths.  Use a new distinct error code in cases when we cancel loads in
Canonical BC due to another load starting. This way, we know to not reset the
urlbar if we are doing another load.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1721217#c10 for longer
explanation of what is going on here.

Differential Revision: https://phabricator.services.mozilla.com/D126845
2021-11-25 20:40:58 +00:00
Anny Gakhokidze
3318dd6b6e Bug 1721217 - Part 2: Fix the race between navigations originating in the parent and in the content, r=nika
Add a synced ParentInitiatedNavigationEpoch field to browsing context, which
only gets incremented when we start navigations in the parent process. When a
child process initiates a navigation, it sends the current value of the field
that it sees via DocumentChannelCreationArgs. In the parent process, we can
compare the value of that field with the latest one for the same browsing
context. If the latest value is higher than the one provided by the content
process, it means that in the meantime parent process has started a navigation
so the earlier navigation originating in the content process will be cancelled.

Differential Revision: https://phabricator.services.mozilla.com/D126842
2021-11-25 20:40:57 +00:00
Anny Gakhokidze
feed2100a7 Bug 1721217 - Part 1: Enable parent controlled loads via DC, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D126841
2021-11-25 20:40:56 +00:00
Marian-Vasile Laza
465f8a2eb1 Backed out 4 changesets (bug 1741132, bug 1740516, bug 1740517) for causing mochitest failures on test_bug1741132.html.
Backed out changeset 9b91c4d469d7 (bug 1741132)
Backed out changeset 1ad268a75fec (bug 1741132)
Backed out changeset 6a6e91c8eeeb (bug 1740517)
Backed out changeset c8a789ba6dc7 (bug 1740516)
2021-11-23 19:07:58 +02:00
Peter Van der Beken
85c6c30c30 Bug 1741132 - Correctly evict entries with session history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131894
2021-11-23 15:37:24 +00:00
Kagami Sascha Rosylight
c101f8edce Bug 1741018 - Use uint32_t for bfcache flags and MOZ_LOG for ACTIVE_LOCK r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D131523
2021-11-22 12:14:15 +00:00
alwu
6ccf446bf7 Bug 1739685 - part1 : copy ShouldDelayMediaFromStart in ReplacedBy() . r=emilio
A follow-up based on [1].

[1]
https://phabricator.services.mozilla.com/D128126#4226792
https://bugzilla.mozilla.org/show_bug.cgi?id=1733902#c12

Differential Revision: https://phabricator.services.mozilla.com/D130292
2021-11-08 18:48:04 +00:00
Kagami Sascha Rosylight
2fe7e865dd Bug 1736563 - Part 1: Use uint32_t for bfcache status flags r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D129013
2021-10-28 22:19:59 +00:00
Sean Feng
2c5270c8be Bug 1735945 - Split unload into unload and beforeunload for BFCACHE_COMBO telemetry probe r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D128625
2021-10-18 17:31:28 +00:00
Olli Pettay
b8628eb4b5 Bug 1733067 - Update SHEntrySharedParentState::mExpired when loading a page, r=peterv
The main part of the patch is to get the state to
CanonicalBrowsingContext::SessionHistoryCommit.
The old code does similar thing in
https://searchfox.org/mozilla-central/rev/d37daf2f82ed22b6a2a5cbbb975423825dfd69fa/docshell/base/nsDocShell.cpp#11630-11638

This is not fixing the issue with session store where the flag is lost.
Also, I think SessionHistoryEntry should probably store a timestamp and not just a flag, but that
would change the behavior more vs. the old implementation.

Differential Revision: https://phabricator.services.mozilla.com/D128313
2021-10-13 14:42:56 +00:00
Peter Van der Beken
0b75a32878 Bug 1729662 - UNED exam page flickers / reloads infinitely. r=smaug
When we navigate in history to the same entry that we're current at then we
actually do a reload. The problem is in the way we detect whether to do a reload
in the parent process.

If a page does a back and a forward one after the other in a script, then the
parent will calculate the index for the back and tell the child to load the
entry at that index. While the child is processing the load of that entry, the
BC in the parent process still has the same entry as its active entry (until the
child commits the load of the entry over IPC). The parent then processes the
forward, calculates the index for the forward and finds the entry at that index.
This is the same entry that we were at before doing anything, and so the same
entry as the active entry in the BC in the parent process. We used to compare
the entry that we're going to load with the active entry in the BC to determine
whether we're doing a reload, and so in this situation we would assume the
forward navigation was actually doing a reload. The child would reload the page,
and we'd run the script again and we'd end up in a reload loop.

Comparing the offset with 0 to determine whether we're doing a reload fixes this
issue.

Differential Revision: https://phabricator.services.mozilla.com/D126585
2021-10-04 15:01:30 +00:00
Alexandru Michis
2866dbbf91 Backed out changeset d25df1c9e0e2 (bug 1729662) for causing wpt failures in overlapping-navigations-and-traversals
CLOSED TREE
2021-09-30 14:31:50 +03:00
Peter Van der Beken
61652c5fe9 Bug 1729662 - UNED exam page flickers / reloads infinitely. r=smaug
When we navigate in history to the same entry that we're current at then we
actually do a reload. The problem is in the way we detect whether to do a reload
in the parent process.

If a page does a back and a forward one after the other in a script, then the
parent will calculate the index for the back and tell the child to load the
entry at that index. While the child is processing the load of that entry, the
BC in the parent process still has the same entry as its active entry (until the
child commits the load of the entry over IPC). The parent then processes the
forward, calculates the index for the forward and finds the entry at that index.
This is the same entry that we were at before doing anything, and so the same
entry as the active entry in the BC in the parent process. We used to compare
the entry that we're going to load with the active entry in the BC to determine
whether we're doing a reload, and so in this situation we would assume the
forward navigation was actually doing a reload. The child would reload the page,
and we'd run the script again and we'd end up in a reload loop.

Comparing the offset with 0 to determine whether we're doing a reload fixes this
issue.

Differential Revision: https://phabricator.services.mozilla.com/D126585
2021-09-30 07:56:52 +00:00
Nika Layzell
a85f227624 Bug 1731792 - Don't switch processes for BFCached same-origin navigations, r=smaug
This is a much simplified patch compared to the earlier changes, and
aims to be less risky and avoid whatever issues are being caused by the
process selection changes in the earlier patches. Unfortunately, I think
this patch may reduce the ability for a noopener window to be given a
distinct process, so I would prefer a more complete fix in the future.

This new patch also no longer has a fix for bug 1728331, so that will
need to be fixed separately.

Differential Revision: https://phabricator.services.mozilla.com/D126951
2021-09-29 19:53:01 +00:00
Olli Pettay
7ecc9afd1d Bug 1725680, requested index should be used only by the nsSHistory (and related code in CanonicalBrowsingContext), r=peterv
Using requestedIndex on the child side is hard, because there are race conditions when a session history load is triggered
and at the same time a non-session history load commits a new active entry.

Differential Revision: https://phabricator.services.mozilla.com/D126619
2021-09-29 13:22:34 +00:00
Olli Pettay
45b951f4bb Bug 1732250, use the original URI from the old channel when updating session history entry, r=peterv,necko-reviewers,valentin
https://searchfox.org/mozilla-central/rev/1df999af9999ccb436512cfece57a68d94d36e08/netwerk/protocol/http/nsHttpChannel.cpp#2876
makes original uri handling in the channel rather magical. The value of it on the new channel is bogus during
AsyncOnChannelRedirect call, and nsIChannel.idl doesn't hint about that behavior.

browser_getNavigationHistory.js can work as a testcase once it is enabled for Fission.

Differential Revision: https://phabricator.services.mozilla.com/D126735
2021-09-29 09:35:59 +00:00
Iulian Moraru
82a9a640ee Backed out changeset a399e91dd5c2 (bug 1729662) for causing wpt failures on cross-document-traversal-cross-document-traversal.html. 2021-09-28 19:14:02 +03:00
Peter Van der Beken
d36b8a8d08 Bug 1729662 - UNED exam page flickers / reloads infinitely. r=smaug
When we navigate in history to the same entry that we're current at then we
actually do a reload. The problem is in the way we detect whether to do a reload
in the parent process.

If a page does a back and a forward one after the other in a script, then the
parent will calculate the index for the back and tell the child to load the
entry at that index. While the child is processing the load of that entry, the
BC in the parent process still has the same entry as its active entry (until the
child commits the load of the entry over IPC). The parent then processes the
forward, calculates the index for the forward and finds the entry at that index.
This is the same entry that we were at before doing anything, and so the same
entry as the active entry in the BC in the parent process. We used to compare
the entry that we're going to load with the active entry in the BC to determine
whether we're doing a reload, and so in this situation we would assume the
forward navigation was actually doing a reload. The child would reload the page,
and we'd run the script again and we'd end up in a reload loop.

Comparing the offset with 0 to determine whether we're doing a reload fixes this
issue.

Differential Revision: https://phabricator.services.mozilla.com/D126585
2021-09-28 13:25:15 +00:00
criss
9e5f6cc9ec Backed out 2 changesets (bug 1731792) for causing devtools failures on browser_console_error_source_click.js
Backed out changeset 567d4eb7bc83 (bug 1731792)
Backed out changeset db57b8568ae9 (bug 1731792)
2021-09-28 06:15:28 +03:00
Nika Layzell
d6e67e808f Bug 1731792 - Part 1: Avoid cycling between processes when navigating within a tab, r=smaug
This patch replaces the previous process selection infrastructure with a
new setup implemented entirely in C++, which should more accurately
track the set of processes in use, and should encourage re-use of the
existing content process when navigating by not counting the current
tab.

This approach intentionally allows for process switching to another
process during navigation if there is uneven load between processes to
encourage balanced process use.

I think this may also fix some of the session restore issues with many
tabs using the same process, rather than being spread over 4, as we now
track a tab earlier in its lifecycle before the BrowserParent instance
is created.

Differential Revision: https://phabricator.services.mozilla.com/D126405
2021-09-27 22:34:20 +00:00
Butkovits Atila
48fc257562 Backed out 2 changesets (bug 1731792) for causing mochitest failures.
Backed out changeset 44c28a29bbd8 (bug 1731792)
Backed out changeset 51bdb1d4baab (bug 1731792)
2021-09-27 18:54:29 +03:00
Nika Layzell
4c891cf849 Bug 1731792 - Part 1: Avoid cycling between processes when navigating within a tab, r=smaug
This patch replaces the previous process selection infrastructure with a
new setup implemented entirely in C++, which should more accurately
track the set of processes in use, and should encourage re-use of the
existing content process when navigating by not counting the current
tab.

This approach intentionally allows for process switching to another
process during navigation if there is uneven load between processes to
encourage balanced process use.

I think this may also fix some of the session restore issues with many
tabs using the same process, rather than being spread over 4, as we now
track a tab earlier in its lifecycle before the BrowserParent instance
is created.

Differential Revision: https://phabricator.services.mozilla.com/D126405
2021-09-27 13:49:32 +00:00
Nika Layzell
b46d5cc301 Bug 1725572 - Part 2: Keep BrowsingContext alive until every process has acknowledged the discard, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D125897
2021-09-23 18:54:31 +00:00
Nika Layzell
4862f1d317 Bug 1729458 - Part 2: Make process switches take fewer trips through the event loop, r=smaug
The biggest change in this patch is around the PrepareToChangeRemoteness
promise. It is changed to directly interact with the DOM promise rather than
wrapping it into a MozPromise (which requires another trip through the event
loop), and tries to avoid waiting on the promise at all if it was immediately
resolved (which should always be the case with SHIP enabled, except for in a
single test).

Differential Revision: https://phabricator.services.mozilla.com/D124800
2021-09-14 15:02:58 +00:00
Sandor Molnar
4643c284c0 Backed out 3 changesets (bug 1729458) for causing multiple dt failures. CLOSED TREE
Backed out changeset 16b385e15fad (bug 1729458)
Backed out changeset 72b7a9c7bf30 (bug 1729458)
Backed out changeset 704dd03288b1 (bug 1729458)
2021-09-13 21:08:44 +03:00