Commit Graph

3187 Commits

Author SHA1 Message Date
Andreas Farre
6363db0f16 Bug 1713098 - Make modifySessionStorage use browsing context to get subframe. r=kashav
Differential Revision: https://phabricator.services.mozilla.com/D116102
2021-05-28 07:48:51 +00:00
Andreas Farre
f48f673e2a Part 3: Bug 1700623 - Used TabStateFlusher.flush to guarantee session store state. r=kashav
Depends on D111429

Differential Revision: https://phabricator.services.mozilla.com/D111430
2021-05-26 07:14:04 +00:00
Mike Conley
81b37a519c Bug 1709050 - Suppress the focus ring in the upgrade dialog and some about: pages when they first load. r=Mardak,Gijs
Using autofocus="true" or programmatically calling .focus() when there is no pre-existing focused
element causes the :focus-visible to match.

This patch avoids using autofocus="true" on some of our about: pages, and uses
Element.focus({ preventFocusRing: true }) to avoid that when these pages and dialog
first load. Note that this doesn't prevent the focus ring from _ever_ appear, it just
stops it from appearing on first load.

Differential Revision: https://phabricator.services.mozilla.com/D115062
2021-05-21 18:13:29 +00:00
Alexandru Michis
26d8e32b13 Backed out 9 changesets (bug 1700623) for causing bc failures in browser_history_menu.js
CLOSED TREE

Backed out changeset 5eae296ad8b5 (bug 1700623)
Backed out changeset 97c3add3b00a (bug 1700623)
Backed out changeset 7ab483627a27 (bug 1700623)
Backed out changeset a4e673640de5 (bug 1700623)
Backed out changeset 513ea16be430 (bug 1700623)
Backed out changeset 88b4add342df (bug 1700623)
Backed out changeset c13bdee1b526 (bug 1700623)
Backed out changeset 26df421dac02 (bug 1700623)
Backed out changeset 6cd0b7a269e5 (bug 1700623)
2021-05-21 11:43:54 +03:00
Andreas Farre
78a8e64c47 Part 3: Bug 1700623 - Used TabStateFlusher.flush to guarantee session store state. r=kashav
Depends on D111429

Differential Revision: https://phabricator.services.mozilla.com/D111430
2021-05-20 12:48:21 +00:00
Anny Gakhokidze
c8002511a8 Bug 1707138 - Don't send session store updates after we start process switching, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D115015
2021-05-18 20:01:55 +00:00
Mike Conley
2d38d7c0db Bug 1709472 - Change error page favicon from warning.svg to info.svg. r=jaws
This also updates the icon used for the "focus tab by prompting" permission in
the permission panel to use info.svg.

Differential Revision: https://phabricator.services.mozilla.com/D114653
2021-05-17 18:56:01 +00:00
Butkovits Atila
6fd223c2ec Backed out changeset ec36559d6b92 (bug 1709050) for causing failure at browser_aboutNetError.js. CLOSED TREE 2021-05-17 21:49:03 +03:00
Mike Conley
5fea93c5a7 Bug 1709050 - Suppress the focus ring in the upgrade dialog and some about: pages when they first load. r=Mardak,Gijs
Using autofocus="true" or programmatically calling .focus() when there is no pre-existing focused
element causes the :focus-visible to match.

This patch avoids using autofocus="true" on some of our about: pages, and uses
Element.focus({ preventFocusRing: true }) to avoid that when these pages and dialog
first load. Note that this doesn't prevent the focus ring from _ever_ appear, it just
stops it from appearing on first load.

Differential Revision: https://phabricator.services.mozilla.com/D115062
2021-05-17 17:44:09 +00:00
Dorel Luca
9508ff975b Backed out changeset 13b220eff7d8 (bug 1709050) for Browser-chrome failures in browser/base/content/test/about/browser_aboutCertError.js. CLOSED TREE 2021-05-17 18:14:37 +03:00
Mike Conley
56fe4c6298 Bug 1709050 - Suppress the focus ring in the upgrade dialog and some about: pages when they first load. r=Mardak,Gijs
Using autofocus="true" or programmatically calling .focus() when there is no pre-existing focused
element causes the :focus-visible to match.

This patch avoids using autofocus="true" on some of our about: pages, and uses
Element.focus({ preventFocusRing: true }) to avoid that when these pages and dialog
first load. Note that this doesn't prevent the focus ring from _ever_ appear, it just
stops it from appearing on first load.

Differential Revision: https://phabricator.services.mozilla.com/D115062
2021-05-17 13:58:49 +00:00
Brindusan Cristian
6eda1c1956 Backed out changeset 289f6a96b9e4 (bug 1709472) for xpcshell failures in test_bookmarks_html.js. CLOSED TREE 2021-05-14 00:37:24 +03:00
Mike Conley
d7c8ef56aa Bug 1709472 - Change error page favicon from warning.svg to info.svg. r=jaws
This also updates the icon used for the "focus tab by prompting" permission in
the permission panel to use info.svg.

Differential Revision: https://phabricator.services.mozilla.com/D114653
2021-05-13 19:32:00 +00:00
Anny Gakhokidze
f97d657a0f Bug 1703326 - Stop relying on ContentSessionStore for SessionStore:crashedTabRevived, r=kashav
Differential Revision: https://phabricator.services.mozilla.com/D113425
2021-05-12 19:33:47 +00:00
Emma Malysz
d8bb23b837 Bug 1649605, part 1: provide async support for promise workers r=barret,asuth
Differential Revision: https://phabricator.services.mozilla.com/D113152
2021-05-06 18:21:51 +00:00
Kashav Madan
72326e982d Bug 1703556 - Wait for individual SSTabRestored events before proceeding, r=annyG
Awaiting setWindowState doesn't actually work here, since we fire the
SSWindowRestored event before the tabs finish restoring (bug 1709411 to rename
the event). It works to just wait for the individual SSTabRestored events, since
we'll only fire those after each tab is restored.

Differential Revision: https://phabricator.services.mozilla.com/D114261
2021-05-06 13:55:15 +00:00
Kashav Madan
20acb75b2d Bug 1702055 - Fix how the expected SSTabRestored count is calculated in waitForBrowserState, r=nika
SessionStore factors both prefs into the decision about if a tab is restored
lazily, but this helper only uses the `restore_tabs_lazily` pref.

Depends on D114001

Differential Revision: https://phabricator.services.mozilla.com/D114002
2021-05-03 18:16:42 +00:00
Kashav Madan
eac70e8972 Bug 1702055 - Ensure SSTabRestoring is only fired once per browser, r=nika
A previous patch made it so we'd fire this after the full restore finished, but
some consumers expect this event prior to the completion of the load.

Differential Revision: https://phabricator.services.mozilla.com/D114001
2021-05-03 18:16:41 +00:00
Kashav Madan
3bfc3cb594 Bug 1702055 - Move the "restore DocShell state" process out of ContentSessionStore, r=nika
This also makes it so that we will never fire SSTabRestored without first having
sent the associated SSTabRestoring event.

Differential Revision: https://phabricator.services.mozilla.com/D110335
2021-05-03 18:16:41 +00:00
Kashav Madan
e583ecfaab Bug 1702055 - Include the SessionStore epoch in "SessionStore:flush" messages, r=nika
With the removal of the SessionStore:RestoreDocShellState message, the epoch
will no longer be updated otherwise, so we should include it in the Flush
message to ensure that messages are not being dropped.

Differential Revision: https://phabricator.services.mozilla.com/D110334
2021-05-03 18:16:40 +00:00
Kashav Madan
556162f994 Bug 1702055 - Replace CallRestoreTabContentComplete with a Promise, r=nika
This should help avoid message ordering issues in the next patches. To ensure
that we're not firing events too early, we now do a "full" restore even if we
don't have form or scroll data, including for about:blank URIs.

This also moves all restore state on the CanonicalBrowsingContext into a
separate `mRestoreState` struct.

Differential Revision: https://phabricator.services.mozilla.com/D110333
2021-05-03 18:16:40 +00:00
Kashav Madan
2fdef46f8f Bug 1690134 - Fix flakiness in browser_history_persist.js, r=annyG
Waiting for the about:robots load explicitly ensures we don't proceed until all
history changes have fully propagated.

Differential Revision: https://phabricator.services.mozilla.com/D113686
2021-04-28 21:49:15 +00:00
Butkovits Atila
80c415a4fc Backed out 4 changesets (bug 1702055) for causing failures on /browser_UsageTelemetry_private_and_restore.js. CLOSED TREE
Backed out changeset af21e2d8324e (bug 1702055)
Backed out changeset ff67df9befe5 (bug 1702055)
Backed out changeset b5f0638dcbc4 (bug 1702055)
Backed out changeset bffaa2c203b3 (bug 1702055)
2021-04-28 04:42:09 +03:00
Kashav Madan
ed25699760 Bug 1702055 - Only call setInitialTabTitle() if the label hasn't yet been set, r=nika
With the new "restore docshell state" codepath, we may be calling
updateTabLabelAndIcon() later than we did before, which means we may have
already set the tab label (in tabbrowser.init()), and it's incorrect to override
that label value with the session history entry's title.

Differential Revision: https://phabricator.services.mozilla.com/D111456
2021-04-27 19:54:58 +00:00
Kashav Madan
5032f65750 Bug 1702055 - Move the "restore DocShell state" process out of ContentSessionStore.jsm, r=nika
This also makes it so that we will never fire SSTabRestored without first having
sent the associated SSTabRestoring event.

Differential Revision: https://phabricator.services.mozilla.com/D110335
2021-04-27 19:54:57 +00:00
Kashav Madan
f163b81676 Bug 1702055 - Ensure that ContentSessionStore's epoch is updated for tab flushes, r=nika
With the removal of the SessionStore:RestoreDocShellState message, the epoch
will no longer be updated otherwise, so we should include it in the Flush
message to ensure that messages are not being dropped.

Differential Revision: https://phabricator.services.mozilla.com/D110334
2021-04-27 19:54:57 +00:00
Kashav Madan
079d321f9d Bug 1702055 - Replace CallRestoreTabContentComplete with a Promise, r=nika
This should help avoid message ordering issues in the next patches. To ensure
that we're not firing events too early, we now do a "full" restore even if we
don't have form or scroll data, including for about:blank URIs.

This also moves all restore state on the CanonicalBrowsingContext into a
separate `mRestoreState` struct.

Differential Revision: https://phabricator.services.mozilla.com/D110333
2021-04-27 19:54:56 +00:00
Kashav Madan
4abf228317 Bug 1696137 - Fix timeouts in browser_reopen_all_windows.js, r=annyG
We currently wait for the "sessionstore-single-window-restored" notification and
*then* start listening for individual "SSTabRestored" events. This doesn't work
because we may fire those events before we get the chance to create the listener.

Listening for "browser-window-before-show" works consistently, but we need
references to the windows *before* they start restoring, so we have
to manually run the "Restore All Windows" code, instead of clicking the Library
button.

Originally part of the patch stack for bug 1703556.

Differential Revision: https://phabricator.services.mozilla.com/D112887
2021-04-26 18:08:11 +00:00
Joel Maher
5a5bc0c176 Bug 1706716 green up mda, xpcshell, browser-chrome, reftest for apple silicon. r=necko-reviewers,extension-reviewers,preferences-reviewers,application-update-reviewers,zombie,ahal,bytesized
Differential Revision: https://phabricator.services.mozilla.com/D113001
2021-04-22 18:39:40 +00:00
Anny Gakhokidze
b5550e7d69 Bug 1701735 - Skip browser_scrollPositions.js when fission is disabled, r=nika
We have fixed this test previously for fission, and it's only failing without
it.

Differential Revision: https://phabricator.services.mozilla.com/D113044
2021-04-22 17:42:10 +00:00
Kashav Madan
991fe1e4cc Bug 1702797 - Split up the SingleSelect and MultipleSelect cases in RestoreFormEntry, r=nika
A document that changes the "multiple" attribute of the <select> element after
the load event (eg., perhaps in response to user action) will crash the browser
since we will attempt to restore data collected for a multi-select into a
single-select.

Differential Revision: https://phabricator.services.mozilla.com/D112057
2021-04-20 16:01:10 +00:00
Alexandru Michis
922ef41b13 Backed out changeset ead1910420a0 (bug 1702797) for causing bc failures in browser_multiple_select_after_load.js
CLOSED TREE
2021-04-16 19:42:35 +03:00
Kashav Madan
4180e5f2c6 Bug 1702797 - Split up the SingleSelect and MultipleSelect cases in RestoreFormEntry, r=nika
A document that changes the "multiple" attribute of the <select> element after
the load event (eg., perhaps in response to user action) will crash the browser
since we will attempt to restore data collected for a multi-select into a
single-select.

Differential Revision: https://phabricator.services.mozilla.com/D112057
2021-04-16 15:59:27 +00:00
Kashav Madan
e7ef1c3516 Bug 1705547 - Null check the SessionHistory object before attempting to collect, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D112290
2021-04-16 12:02:17 +00:00
Kashav Madan
e520e16620 Bug 1700963 - Stop relying on the "SessionStore:addSHistoryListener" message, r=nika
We now create the listener after receiving a "browsing-context-did-set-embedder"
and destroy it after receiving "browsing-context-discarded".

Differential Revision: https://phabricator.services.mozilla.com/D110337
2021-04-14 23:36:10 +00:00
Kashav Madan
afd185bd3b Bug 1700963 - Clean up SessionStore's SHistoryListener, r=nika
This does a few things:

1. Gets rid of the listener's `_sHistoryChanges` property, which is possible
   because _sHistoryChanges == false <-> _fromIdx == kNoIndex.
2. Simplifies the code that interacts with SHistoryListener in
   UpdateSessionStoreFromTablistener, and attempts to make that function a
   little more readable.
3. Ensures we're only doing the SessionHistory bit of
   UpdateSessionStoreFromTablistener for toplevel frames, and if SHIP is
   enabled.

Differential Revision: https://phabricator.services.mozilla.com/D110336
2021-04-14 23:36:10 +00:00
Dorel Luca
2cbd35f354 Backed out 3 changesets (bug 1700963) for Browser-chrome failures in docshell/test/browser/browser_bug1309900_crossProcessHistoryNavigation.js. CLOSED TREE
Backed out changeset cda35e554327 (bug 1700963)
Backed out changeset fbafd75b06d3 (bug 1700963)
Backed out changeset 8b922e4f612b (bug 1700963)
2021-04-14 23:26:05 +03:00
Kashav Madan
e672ad7710 Bug 1700963 - Stop relying on the "SessionStore:addSHistoryListener" message, r=nika
We now create the listener after receiving a "browsing-context-did-set-embedder"
and destroy it after receiving "browsing-context-discarded".

Differential Revision: https://phabricator.services.mozilla.com/D110337
2021-04-14 18:53:06 +00:00
Kashav Madan
e8bc18afcf Bug 1700963 - Clean up SessionStore's SHistoryListener, r=nika
This cleans up the SHistoryListener class and does a few things:

1. Gets rid of the listener's `_sHistoryChanges` property, which is possible
   because _sHistoryChanges == false <-> _fromIdx == kNoIndex.
2. Simplifies the code that interacts with SHistoryListener in
   UpdateSessionStoreFromTablistener, and attempts to make that function a
   little more readable.
3. Ensures we're only doing the SessionHistory bit of
   UpdateSessionStoreFromTablistener for toplevel frames.

Differential Revision: https://phabricator.services.mozilla.com/D110336
2021-04-14 18:53:05 +00:00
Kashav Madan
67b28ebc8d Bug 1704553 - Fix browser_frametree.js and browser_sessionHistory.js for BFCache+Fission, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D111685
2021-04-12 17:05:29 +00:00
Anny Gakhokidze
780445a687 Bug 1698601 - Part 1: Extend existing session store test files with COOP document testing, r=smaug
Modify related test files to test documents with COOP headers enabled.

There are some tests that fail when run with new COOP configurations without
Fission enabled, prior to fixes that come in part 2. This means that some of
the COOP behaviour was already broken. Since fixing non-Fission COOP
behaviour prior to this patch is out of scope, I skipped calling `addCoopTask`
to test COOP documents in non Fission cases for such tests.

Even with COOP headers disabled, some tests fail when the document they load
is served over httpS and not http. For a single test where this behaviour was
occuring prior to fixes in part 2, I skipped testing an HTTPS non-COOP
document and filed 1703351 to fix such behaviour.

Differential Revision: https://phabricator.services.mozilla.com/D110993
2021-04-09 17:46:52 +00:00
Kashav Madan
0d84c0d1e4 Bug 1602687 - Re-enable some sessionstore tests, r=farre
These were fixed by bug 1572084 and bug 1597499. Two are still skipped and will
be fixed in bug 1700623 and bug 1703556.

Differential Revision: https://phabricator.services.mozilla.com/D110999
2021-04-07 15:30:26 +00:00
Emma Malysz
a5a8f40979 Bug 1692176, add restore previous session to history panel r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D110178
2021-03-31 16:22:52 +00:00
Gijs Kruitbosch
baf37ddb29 Bug 1701202 - fix some browser mochitests to pass with proton enabled, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D109910
2021-03-26 21:37:18 +00:00
Rob Wu
878b74f39d Bug 1698192 - Use correct currentURI during swapping of lazy browsers r=dao
Re-order calls in SessionStore.jsm to invoke the side-effect-free logic
before triggering observable events.

Clear (likely) stale value of the cached currentURI when lazy browsers
are swapped.

And while I was at it, I also fixed a bug that caused a lazy browser to
eagerly be unlazified because the unneeded mute() call on a lazy browser
unlazifies it (discovered when I added complete test coverage for this
change).

Differential Revision: https://phabricator.services.mozilla.com/D108260
2021-03-26 19:51:15 +00:00
Csoregi Natalia
e4acbbb296 Backed out changeset d885acd20f7e (bug 1701202) for causing failures on browser_synced_tabs_menu.js. CLOSED TREE 2021-03-26 21:42:09 +02:00
Gijs Kruitbosch
31c59a7040 Bug 1701202 - fix some browser mochitests to pass with proton enabled, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D109910
2021-03-26 17:13:27 +00:00
Andreas Farre
2d0871a066 Bug 1572084 - Part 2: Make Session Store data collection work with fission. r=nika
Instead of collecting data from the entire tree of documents, we
collect data per document. The collected data is sent to the
corresponding parent window context and is applied incrementally to
the tab state cache.

Differential Revision: https://phabricator.services.mozilla.com/D107814
2021-03-26 08:59:33 +00:00
Bogdan Tara
6ed704c1ea Backed out 3 changesets (bug 1572084) for WindowGlobalParent.cpp related failures CLOSED TREE
Backed out changeset d42a68132e7e (bug 1572084)
Backed out changeset 4d5a5ac074e6 (bug 1572084)
Backed out changeset 5aa59e106a42 (bug 1572084)
2021-03-25 18:56:02 +02:00
Andreas Farre
e8713aa001 Bug 1572084 - Part 2: Make Session Store data collection work with fission. r=nika
Instead of collecting data from the entire tree of documents, we
collect data per document. The collected data is sent to the
corresponding parent window context and is applied incrementally to
the tab state cache.

Differential Revision: https://phabricator.services.mozilla.com/D107814
2021-03-25 15:36:38 +00:00