Commit Graph

600 Commits

Author SHA1 Message Date
Randell Jesup
0971b4bc82 Bug 1673617 - Refactor how session restore works with SHIP, r=nika
With mods from kashav's last Try run

Differential Revision: https://phabricator.services.mozilla.com/D99461
2021-02-01 22:57:14 +00:00
Kashav Madan
f7e6033cd2 Bug 1673617 - Avoid registering multiple listeners on the same browser element, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D95227
2021-02-01 22:57:04 +00:00
Butkovits Atila
376e3f9b7d Backed out 3 changesets (bug 1673617) for causing failure on browser_child_resource.js. CLOSED TREE
Backed out changeset 2a0dd70342ce (bug 1673617)
Backed out changeset 6fa47045b11b (bug 1673617)
Backed out changeset d230e44fd9be (bug 1673617)
2021-01-23 04:40:22 +02:00
Randell Jesup
ef24e5a285 Bug 1673617 - Refactor how session restore works with SHIP, r=nika
With mods from kashav's last Try run

Differential Revision: https://phabricator.services.mozilla.com/D99461
2021-01-22 22:01:39 +00:00
Kashav Madan
86fd836a24 Bug 1673617 - Avoid registering multiple listeners on the same browser element, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D95227
2021-01-22 19:06:16 +00:00
Randell Jesup
9d2a5e9dd0 Bug 1687517: BrowserChangedProcess event is not longer sent r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D102331
2021-01-19 17:47:29 +00:00
Dorel Luca
ad68c55baa Backed out 3 changesets (bug 1673617) for Browser-chrome failures in docshell/test/browser/browser_bug1347823.js. CLOSED TREE
Backed out changeset f0ea749647d3 (bug 1673617)
Backed out changeset 533092a71225 (bug 1673617)
Backed out changeset 3ce0d9f55436 (bug 1673617)
2021-01-19 21:00:03 +02:00
Randell Jesup
fb8153a8f2 Bug 1673617 - Refactor how session restore works with SHIP, r=nika
With mods from kashav's last Try run

Differential Revision: https://phabricator.services.mozilla.com/D99461
2021-01-19 17:21:34 +00:00
Kashav Madan
be61dd2240 Bug 1673617 - Avoid registering multiple listeners on the same browser element, r=nika
Differential Revision: https://phabricator.services.mozilla.com/D95227
2021-01-06 16:42:47 +00:00
Gijs Kruitbosch
1613604e08 Bug 1671271 - add telemetry for showing about:sessionrestore to establish if it's being shown too often, r=emalysz
Differential Revision: https://phabricator.services.mozilla.com/D99688
2020-12-17 17:08:17 +00:00
Johann Hofmann
5fd944c021 Bug 1650095 - Part 1 - Collect current entry when partially updating session history. r=kashav,Gijs
This will ensure we reflect changes that were made to that entry after it was added, see
https://phabricator.services.mozilla.com/D93346#inline-535006 for more context.

Differential Revision: https://phabricator.services.mozilla.com/D95133
2020-11-18 11:47:49 +00:00
Nika Layzell
0ed640c654 Bug 1675334 - Part 2: Remove SSHistoryReplaceEntry, r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D96614
2020-11-16 14:13:20 +00:00
Nika Layzell
265c9eff50 Bug 1671983 - Part 2: Remove SessionStore.navigateAndRestore, r=annyG,kashav
This formed the backbone of the previous process switching codepath, and
shouldn't be necessary anymore thanks to DocumentChannel's new codepath.

This also removes the eager process switching logic from frontend's _loadURI, as
it would rarely be taken, unless an invalid URI was entered, already.

Differential Revision: https://phabricator.services.mozilla.com/D94639
2020-11-12 18:00:55 +00:00
Razvan Maries
beb7584870 Backed out 7 changesets (bug 1658084, bug 1671983) for perma failures on browser_async_remove_tab.js and browser_e10s_chrome_process.js. CLOSED TREE
Backed out changeset 2e6309c1cdbd (bug 1658084)
Backed out changeset 99aafd9304ef (bug 1671983)
Backed out changeset 80280b85280a (bug 1671983)
Backed out changeset 008db2659002 (bug 1671983)
Backed out changeset 32bd45c7fe3a (bug 1671983)
Backed out changeset 56e227e6580c (bug 1671983)
Backed out changeset a404f809f79d (bug 1671983)
2020-11-04 04:23:47 +02:00
Nika Layzell
9c22d73e60 Bug 1671983 - Part 2: Remove SessionStore.navigateAndRestore, r=annyG,kashav
This formed the backbone of the previous process switching codepath, and
shouldn't be necessary anymore thanks to DocumentChannel's new codepath.

This also removes the eager process switching logic from frontend's _loadURI, as
it would rarely be taken, unless an invalid URI was entered, already.

Differential Revision: https://phabricator.services.mozilla.com/D94639
2020-11-04 00:55:23 +00:00
Csoregi Natalia
65fb84213f Bug 1673878 - Fix eslint. r=lint-fix CLOSED TREE 2020-10-30 18:21:44 +02:00
Andreas Farre
0d06aea979 Bug 1673878 - Collect all session history entries for SHIP when needed. r=peterv
When seeing DOMTitleChanged in mozilla::dom::TabListener::HandleEvent
or mozilla::dom::ContentSessionStore::{nDocumentStart/OnDocumentEnd}
we should do a full collect of all session history entries in the
parent.

Differential Revision: https://phabricator.services.mozilla.com/D95140
2020-10-30 15:16:51 +00:00
Michael Goossens
2178688ff4 Bug 1649600 - Remove unused osfile import in SessionStore.jsm r=emalysz
Differential Revision: https://phabricator.services.mozilla.com/D93596
2020-10-14 22:38:13 +00:00
Drew Willcoxon
0d14fe78c3 Bug 1670932 - Don't restore urlbar search mode due to remoteness change. r=mak
When navigating to a new URL that requires a remoteness change, session store
restores the tab after the change. The restore races the `gURLBar.setURI` call
that happens due to the location change. If the restore happens after the
`setURI` call, then the search mode is "restored" even though a new page was
loaded.

The session store code surrounding the chunk that I modified in bug 1655486
checks for a remoteness change before trying to restore `userTypedValue`. If the
restore is due to a remoteness change, then it doesn't restore `userTypedValue`.
We just need to do the same for search mode.

Also, I think we should be using `TabStateCache` here, not `TabState.collect`.
`TabStateCache` is updated in `restoreTab` and is available throughout the
restore process. `TabState.collect` on the other hand is a live view of the
given tab, so if search mode happens to be active when `collect` is called, then
the returned tab state will have `searchMode` defined, which is not what we want
here. But I'm not sure why the surrounding code here uses `TabState.collect`
instead of `TabStateCache` in order to restore `userTypedValue`. It seems like
an error to me, but I might be missing something.

Due to the racey nature of this bug, writing a test isn't so easy, so this patch
doesn't have one. It will be obvious through manual testing if this regresses.

Differential Revision: https://phabricator.services.mozilla.com/D93455
2020-10-14 13:23:31 +00:00
Drew Willcoxon
a3eec99d1b Bug 1655486 - Support search mode across sessions. r=mak
* Always update the `_searchModesByBrowser` map when entering/exiting search
  mode, not only for non-selected browsers, so that search mode can be saved and
  restored properly per tab.
* Rename `setSearchMode` to `_updateSearchModeUI` and make it only update the UI.
* Add a new `setSearchMode` method that takes a browser and updates the map.
* Add `getSearchMode` so that SessionStore can get the search mode for a given
  browser.
* Add a `searchMode` getter and setter for convenience. They call
  `getSearchMode` and `setSearchMode` with the selected browser.

Differential Revision: https://phabricator.services.mozilla.com/D91910
2020-10-12 03:34:59 +00:00
Peter Van der Beken
42db9833f7 Bug 1668052 - Pass the BrowserParent's browsing context to UpdateSessionStore instead of getting it from the frame element's frameloader. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D91766
2020-10-04 08:55:07 +00:00
Olli Pettay
517a59e62b Bug 1667449 - Hide fission.sessionHistoryInParent pref getter behind a function r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D91462
2020-09-28 12:01:12 +00:00
Sebastian Streich
19c48863eb Bug 1667034 - Remove createContentPrincipal callers with nsIPrincipal.uri r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D82915
2020-09-24 09:58:50 +00:00
Gijs Kruitbosch
64849e4e95 Bug 492320 - allow cmd-shift-n to work when there are no open windows, r=jaws,mstange
Differential Revision: https://phabricator.services.mozilla.com/D86656
2020-09-09 17:42:00 +00:00
Kashav Madan
602b38dd7b Bug 1596738 - Don't focus the tab's content area for restores triggered by DocumentChannel process switches, r=dao,nika,mixedpuppy
This causes the browser to steal focus from any element that was focused prior
to the completion of the remoteness flip. This is particularly a problem for
fission because every cross-origin navigation requires a process switch.

This code is still necessary for "normal" session restores (see bug 1410591),
but focus is handled elsewhere for remote navigations.

Differential Revision: https://phabricator.services.mozilla.com/D82783
2020-07-15 23:09:09 +00:00
Kris Maglione
9bddbcfdd1 Bug 1649221: Update ChromeUtils.generateQI callers to pass strings. r=mccr8,remote-protocol-reviewers,marionette-reviewers,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,preferences-reviewers,agi,whimboo,Bebe,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D81594
2020-07-10 23:58:28 +00:00
Cosmin Sabou
d86163dee1 Backed out changeset d2e762d32fb6 (bug 1596738) for mochitest failures on browser_test_textcaret.js. CLOSED TREE 2020-07-10 22:20:31 +03:00
Kashav Madan
b47b8c51e3 Bug 1596738 - Don't focus the tab's content area for navigation-driven restores, r=dao
This causes the browser to steal focus from any element that was focused prior
to the completion of the remoteness flip. This is particularly a problem for
fission because every cross-origin navigation requires a process switch.

This code is still necessary for "normal" session restores (see bug 1410591),
but focus is handled elsewhere (and more robustly) for navigations.

Differential Revision: https://phabricator.services.mozilla.com/D82783
2020-07-10 15:27:22 +00:00
Anny Gakhokidze
80301ed2ab Bug 1630176 - Fix the race between process switching and the new browser window loading code, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D81563
2020-06-30 20:57:52 +00:00
Mélanie Chauvel (ariasuni)
a7063887d6 Bug 1376088 - make tab active immediately in tabs.duplicate r=robwu,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D73732
2020-06-25 11:45:12 +00:00
Dorel Luca
3097f65695 Backed out 2 changesets (bug 1626507) on dev's request
Backed out changeset 92117ff66bda (bug 1626507)
Backed out changeset d2e886102c03 (bug 1626507)
2020-06-24 05:04:41 +03:00
Paul Bone
95ea068ef1 Bug 1626507 - Remove documentchannel exceptions r=mattwoodrow
This patch removes the excemptions for about:newtab, about:home and
about:blank.

When we switch processes using session restore we sometimes focus the
content area. We mustn't do this if the uri is undefined, this can happen
for some of these pages and we expect the address bar to be focused instead.

Differential Revision: https://phabricator.services.mozilla.com/D80339
2020-06-23 06:25:33 +00:00
Nika Layzell
174e1aa778 Bug 1640019 - Part 5: Remove a number of now-unused 'updateBrowserRemoteness' parameters, r=Gijs
These were only used by process switches triggered via DocumentChannel, which
now take the PROCESS_BEHAVIOR_STANDARD codepath.

Differential Revision: https://phabricator.services.mozilla.com/D78973
2020-06-15 23:23:58 +00:00
Nika Layzell
ffba327709 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
Narcis Beleuzu
a4b06a5d82 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
89527c6384 Bug 1640019 - Part 5: Remove a number of now-unused 'updateBrowserRemoteness' parameters, r=Gijs
These were only used by process switches triggered via DocumentChannel, which
now take the PROCESS_BEHAVIOR_STANDARD codepath.

Differential Revision: https://phabricator.services.mozilla.com/D78973
2020-06-12 16:52:04 +00:00
Nika Layzell
76084be5e4 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
Jared Wein
0b066cc8dd Bug 887515 - Restore multiple tab closings using Undo Close Tab(s) after a multiple-tab operation. r=fluent-reviewers,flod,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D76087
2020-05-30 06:48:18 +00:00
Mihai Alexandru Michis
25e550ae16 Backed out changeset 3d607fcf4dee (bug 887515) for causing failures in toolbar-context-menu-undo-close-tab
CLOSED TREE
2020-05-30 09:25:30 +03:00
Jared Wein
5d8094781f Bug 887515 - Restore multiple tab closings using Undo Close Tab(s) after a multiple-tab operation. r=fluent-reviewers,flod,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D76087
2020-05-30 05:38:56 +00:00
Mélanie Chauvel (ariasuni)
98bed9ba3c Bug 1560218 - browser.tabs.duplicate() can now specify index and active property r=robwu
Differential Revision: https://phabricator.services.mozilla.com/D67782
2020-05-04 01:11:32 +00:00
Mike Conley
8ecc453e26 Bug 1630234 - Manually persist layout history state when process flipping. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D72399
2020-04-29 13:38:47 +00:00
Tim Nguyen
887622c475 Bug 1632092 - Rename all XUL namespace variables to XUL_NS. r=Gijs,marionette-reviewers,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D71913
2020-04-24 09:23:52 +00:00
Nika Layzell
005f7d6520 Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh,necko-reviewers,valentin
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-21 22:33:00 +00:00
Cosmin Sabou
f2de27edf5 Backed out 5 changesets (bug 1625513) for bc failures on browser_identity_UI.js. CLOSED TREE
Backed out changeset 88ac5d853e38 (bug 1625513)
Backed out changeset 8ac6db819435 (bug 1625513)
Backed out changeset cc19c74910d1 (bug 1625513)
Backed out changeset 8c235f0f967c (bug 1625513)
Backed out changeset 24a646225c68 (bug 1625513)
2020-04-22 00:17:08 +03:00
Nika Layzell
10fa812c79 Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh,necko-reviewers,valentin
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-21 18:33:39 +00:00
Noemi Erli
a7719605fd Backed out 4 changesets (bug 1625513) for causing assertion in WindowGlobalChild.cpp
Backed out changeset 0366bbc9e0f7 (bug 1625513)
Backed out changeset 3554e0be2e66 (bug 1625513)
Backed out changeset ad09a911bc43 (bug 1625513)
Backed out changeset f2dbff5d584f (bug 1625513)
2020-04-20 22:28:20 +03:00
Nika Layzell
e5267e854c Bug 1625513 - Part 1: Perform onMayChangeProcess handling within DocumentLoadListener, r=mattwoodrow,pbone,droeh,necko-reviewers,valentin
When I first added this method last year, I added it in JS, handled from within
SessionStore.jsm, as that was the easiest place to do it. Now that
DocumentLoadListener exists, it makes more sense to handle this logic directly
from within that code.

Many parts of the process switch are still handled by frontend JS, such as
selecting remote types, and performing toplevel process switches.

Differential Revision: https://phabricator.services.mozilla.com/D68594
2020-04-20 16:57:01 +00:00
Coroiu Cristina
0cc5e3e924 Backed out 2 changesets (bug 1625500) for multiple failures on a CLOSED TREE
Backed out changeset 7d80233bcfcd (bug 1625500)
Backed out changeset 0a35b13dfcde (bug 1625500)
2020-04-17 15:36:05 +03:00
Gijs Kruitbosch
0045b2ec32 Bug 1625500 - fix use of .then(x, x) in the tree, r=marionette-reviewers,Standard8,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D68614
2020-04-17 11:41:49 +00:00