|
|
|
|
@@ -1,5 +1,5 @@
|
|
|
|
|
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
|
|
|
|
index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1db40aecce 100644
|
|
|
|
|
index 11191a82a0f0dc6eee60f9de52a63bc6085c3981..f995c3b297c53aa6ee2219bfc09515ee4aa3be28 100644
|
|
|
|
|
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
|
|
|
|
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
|
|
|
|
@@ -129,6 +129,9 @@ const TAB_EVENTS = [
|
|
|
|
|
@@ -12,7 +12,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|
|
|
|
@@ -199,6 +202,8 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
|
|
|
|
@@ -201,6 +204,8 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
|
|
|
|
TabStateCache: "resource:///modules/sessionstore/TabStateCache.sys.mjs",
|
|
|
|
|
TabStateFlusher: "resource:///modules/sessionstore/TabStateFlusher.sys.mjs",
|
|
|
|
|
setTimeout: "resource://gre/modules/Timer.sys.mjs",
|
|
|
|
|
@@ -21,7 +21,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
ChromeUtils.defineLazyGetter(lazy, "blankURI", () => {
|
|
|
|
|
@@ -1287,10 +1292,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -1300,10 +1305,7 @@ var SessionStoreInternal = {
|
|
|
|
|
*/
|
|
|
|
|
get willAutoRestore() {
|
|
|
|
|
return (
|
|
|
|
|
@@ -33,7 +33,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
@@ -1965,6 +1967,9 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -1990,6 +1992,9 @@ var SessionStoreInternal = {
|
|
|
|
|
case "TabPinned":
|
|
|
|
|
case "TabUnpinned":
|
|
|
|
|
case "SwapDocShells":
|
|
|
|
|
@@ -43,7 +43,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
this.saveStateDelayed(win);
|
|
|
|
|
break;
|
|
|
|
|
case "TabGroupCreate":
|
|
|
|
|
@@ -2074,6 +2079,10 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2099,6 +2104,10 @@ var SessionStoreInternal = {
|
|
|
|
|
this._windows[aWindow.__SSi].isTaskbarTab = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -54,7 +54,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
if (lazy.AIWindow.isAIWindowActiveAndEnabled(aWindow)) {
|
|
|
|
|
this._windows[aWindow.__SSi].isAIWindow = true;
|
|
|
|
|
}
|
|
|
|
|
@@ -2110,7 +2119,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2135,7 +2144,7 @@ var SessionStoreInternal = {
|
|
|
|
|
let isTaskbarTab = this._windows[aWindow.__SSi].isTaskbarTab;
|
|
|
|
|
// A regular window is not a private window, taskbar tab window, or popup window
|
|
|
|
|
let isRegularWindow =
|
|
|
|
|
@@ -63,7 +63,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
// perform additional initialization when the first window is loading
|
|
|
|
|
if (lazy.RunState.isStopped) {
|
|
|
|
|
@@ -2122,7 +2131,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2147,7 +2156,7 @@ var SessionStoreInternal = {
|
|
|
|
|
// to disk to NOW() to enforce a full interval before the next write.
|
|
|
|
|
lazy.SessionSaver.updateLastSaveTime();
|
|
|
|
|
|
|
|
|
|
@@ -72,7 +72,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
this._log.debug(
|
|
|
|
|
"initializeWindow, the window is private or a web app. Saving SessionStartup.state for possibly restoring later"
|
|
|
|
|
);
|
|
|
|
|
@@ -2164,6 +2173,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2191,6 +2200,7 @@ var SessionStoreInternal = {
|
|
|
|
|
null,
|
|
|
|
|
"sessionstore-one-or-no-tab-restored"
|
|
|
|
|
);
|
|
|
|
|
@@ -80,7 +80,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
this._deferredAllWindowsRestored.resolve();
|
|
|
|
|
}
|
|
|
|
|
// this window was opened by _openWindowWithState
|
|
|
|
|
@@ -2213,7 +2223,6 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2240,7 +2250,6 @@ var SessionStoreInternal = {
|
|
|
|
|
if (closedWindowState) {
|
|
|
|
|
let newWindowState;
|
|
|
|
|
if (
|
|
|
|
|
@@ -88,7 +88,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
!lazy.SessionStartup.willRestore()
|
|
|
|
|
) {
|
|
|
|
|
// We want to split the window up into pinned tabs and unpinned tabs.
|
|
|
|
|
@@ -2249,6 +2258,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2276,6 +2285,7 @@ var SessionStoreInternal = {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (newWindowState) {
|
|
|
|
|
@@ -96,23 +96,17 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// Ensure that the window state isn't hidden
|
|
|
|
|
this._restoreCount = 1;
|
|
|
|
|
let state = { windows: [newWindowState] };
|
|
|
|
|
@@ -2277,6 +2287,15 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2312,6 +2322,9 @@ var SessionStoreInternal = {
|
|
|
|
|
});
|
|
|
|
|
this._shouldRestoreLastSession = false;
|
|
|
|
|
}
|
|
|
|
|
+ else if (!aInitialState && isRegularWindow) {
|
|
|
|
|
+ let windowPromises = [];
|
|
|
|
|
+ for (let window of this._browserWindows) {
|
|
|
|
|
+ windowPromises.push(lazy.TabStateFlusher.flushWindow(window));
|
|
|
|
|
+ }
|
|
|
|
|
+ Promise.all(windowPromises).finally(() => {
|
|
|
|
|
+ lazy.ZenSessionStore.restoreNewWindow(aWindow, this);
|
|
|
|
|
+ });
|
|
|
|
|
+ lazy.ZenSessionStore.restoreNewWindow(aWindow, this);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
if (this._restoreLastWindow && aWindow.toolbar.visible) {
|
|
|
|
|
// always reset (if not a popup window)
|
|
|
|
|
@@ -2427,7 +2446,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2462,7 +2475,7 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
var tabbrowser = aWindow.gBrowser;
|
|
|
|
|
|
|
|
|
|
@@ -121,7 +115,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
TAB_EVENTS.forEach(function (aEvent) {
|
|
|
|
|
tabbrowser.tabContainer.removeEventListener(aEvent, this, true);
|
|
|
|
|
@@ -2478,7 +2497,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2513,7 +2526,7 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
let isLastRegularWindow =
|
|
|
|
|
Object.values(this._windows).filter(
|
|
|
|
|
@@ -130,7 +124,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
).length == 1;
|
|
|
|
|
this._log.debug(
|
|
|
|
|
`onClose, closing window isLastRegularWindow? ${isLastRegularWindow}`
|
|
|
|
|
@@ -2535,8 +2554,8 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2570,8 +2583,8 @@ var SessionStoreInternal = {
|
|
|
|
|
// 2) Flush the window.
|
|
|
|
|
// 3) When the flush is complete, revisit our decision to store the window
|
|
|
|
|
// in _closedWindows, and add/remove as necessary.
|
|
|
|
|
@@ -141,7 +135,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
completionPromise = lazy.TabStateFlusher.flushWindow(aWindow).then(() => {
|
|
|
|
|
@@ -2556,8 +2575,9 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2591,8 +2604,9 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
// Save non-private windows if they have at
|
|
|
|
|
// least one saveable tab or are the last window.
|
|
|
|
|
@@ -153,7 +147,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
if (!isLastWindow && winData.closedId > -1) {
|
|
|
|
|
this._addClosedAction(
|
|
|
|
|
@@ -2633,7 +2653,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2668,7 +2682,7 @@ var SessionStoreInternal = {
|
|
|
|
|
* to call this method again asynchronously (for example, after
|
|
|
|
|
* a window flush).
|
|
|
|
|
*/
|
|
|
|
|
@@ -162,7 +156,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// Make sure SessionStore is still running, and make sure that we
|
|
|
|
|
// haven't chosen to forget this window.
|
|
|
|
|
if (
|
|
|
|
|
@@ -2650,6 +2670,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -2685,6 +2699,7 @@ var SessionStoreInternal = {
|
|
|
|
|
// _closedWindows from a previous call to this function.
|
|
|
|
|
let winIndex = this._closedWindows.indexOf(winData);
|
|
|
|
|
let alreadyStored = winIndex != -1;
|
|
|
|
|
@@ -170,7 +164,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// If sidebar command is truthy, i.e. sidebar is open, store sidebar settings
|
|
|
|
|
let shouldStore = hasSaveableTabs || isLastWindow;
|
|
|
|
|
|
|
|
|
|
@@ -3467,7 +3488,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -3507,7 +3522,7 @@ var SessionStoreInternal = {
|
|
|
|
|
if (!isPrivateWindow && tabState.isPrivate) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
@@ -179,7 +173,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -4206,6 +4227,12 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -4246,6 +4261,12 @@ var SessionStoreInternal = {
|
|
|
|
|
Math.min(tabState.index, tabState.entries.length)
|
|
|
|
|
);
|
|
|
|
|
tabState.pinned = false;
|
|
|
|
|
@@ -192,7 +186,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
if (inBackground === false) {
|
|
|
|
|
aWindow.gBrowser.selectedTab = newTab;
|
|
|
|
|
@@ -4642,6 +4669,8 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -4679,6 +4700,8 @@ var SessionStoreInternal = {
|
|
|
|
|
// Append the tab if we're opening into a different window,
|
|
|
|
|
tabIndex: aSource == aTargetWindow ? pos : Infinity,
|
|
|
|
|
pinned: state.pinned,
|
|
|
|
|
@@ -201,7 +195,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
userContextId: state.userContextId,
|
|
|
|
|
skipLoad: true,
|
|
|
|
|
preferredRemoteType,
|
|
|
|
|
@@ -5146,9 +5175,10 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -5176,9 +5199,10 @@ var SessionStoreInternal = {
|
|
|
|
|
if (activePageData.title && activePageData.title != activePageData.url) {
|
|
|
|
|
win.gBrowser.setInitialTabTitle(tab, activePageData.title, {
|
|
|
|
|
isContentTitle: true,
|
|
|
|
|
@@ -213,7 +207,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -5513,7 +5543,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -5543,7 +5567,7 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
|
|
|
|
|
let tab = tabbrowser.tabs[i];
|
|
|
|
|
@@ -222,7 +216,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
removableTabs.push(tab);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -5626,7 +5656,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -5656,7 +5680,7 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
// collect the data for all windows
|
|
|
|
|
for (ix in this._windows) {
|
|
|
|
|
@@ -231,7 +225,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// window data is still in _statesToRestore
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
@@ -5770,11 +5800,12 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -5800,11 +5824,12 @@ var SessionStoreInternal = {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let tabbrowser = aWindow.gBrowser;
|
|
|
|
|
@@ -245,7 +239,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// update the internal state data for this window
|
|
|
|
|
for (let tab of tabs) {
|
|
|
|
|
if (tab == aWindow.FirefoxViewHandler.tab) {
|
|
|
|
|
@@ -5785,6 +5816,9 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -5815,6 +5840,9 @@ var SessionStoreInternal = {
|
|
|
|
|
tabsData.push(tabData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -255,7 +249,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// update tab group state for this window
|
|
|
|
|
winData.groups = [];
|
|
|
|
|
for (let tabGroup of aWindow.gBrowser.tabGroups) {
|
|
|
|
|
@@ -5801,7 +5835,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -5831,7 +5859,7 @@ var SessionStoreInternal = {
|
|
|
|
|
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
|
|
|
|
// since it's only inserted into the tab strip after it's selected).
|
|
|
|
|
if (aWindow.FirefoxViewHandler.tab?.selected) {
|
|
|
|
|
@@ -264,7 +258,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
winData.title = tabbrowser.tabs[0].label;
|
|
|
|
|
}
|
|
|
|
|
winData.selected = selectedIndex;
|
|
|
|
|
@@ -6003,8 +6037,8 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -6033,8 +6061,8 @@ var SessionStoreInternal = {
|
|
|
|
|
// selectTab represents.
|
|
|
|
|
let selectTab = 0;
|
|
|
|
|
if (overwriteTabs) {
|
|
|
|
|
@@ -275,7 +269,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
selectTab = Math.min(selectTab, winData.tabs.length);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -6026,6 +6060,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -6056,6 +6084,7 @@ var SessionStoreInternal = {
|
|
|
|
|
if (overwriteTabs) {
|
|
|
|
|
for (let i = tabbrowser.browsers.length - 1; i >= 0; i--) {
|
|
|
|
|
if (!tabbrowser.tabs[i].selected) {
|
|
|
|
|
@@ -283,7 +277,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
tabbrowser.removeTab(tabbrowser.tabs[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -6060,6 +6095,12 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -6090,6 +6119,12 @@ var SessionStoreInternal = {
|
|
|
|
|
savedTabGroup => !openTabGroupIdsInWindow.has(savedTabGroup.id)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
@@ -296,7 +290,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
// Move the originally open tabs to the end.
|
|
|
|
|
if (initialTabs) {
|
|
|
|
|
@@ -6626,6 +6667,25 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -6656,6 +6691,25 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
// Most of tabData has been restored, now continue with restoring
|
|
|
|
|
// attributes that may trigger external events.
|
|
|
|
|
@@ -322,7 +316,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
if (tabData.pinned) {
|
|
|
|
|
tabbrowser.pinTab(tab);
|
|
|
|
|
@@ -6793,6 +6853,9 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -6838,6 +6892,9 @@ var SessionStoreInternal = {
|
|
|
|
|
aWindow.gURLBar.readOnly = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -332,7 +326,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
|
|
|
|
|
let promiseParts = Promise.withResolvers();
|
|
|
|
|
aWindow.setTimeout(() => {
|
|
|
|
|
@@ -7588,7 +7651,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -7633,7 +7690,7 @@ var SessionStoreInternal = {
|
|
|
|
|
|
|
|
|
|
let groupsToSave = new Map();
|
|
|
|
|
for (let tIndex = 0; tIndex < window.tabs.length; ) {
|
|
|
|
|
@@ -341,7 +335,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// Adjust window.selected
|
|
|
|
|
if (tIndex + 1 < window.selected) {
|
|
|
|
|
window.selected -= 1;
|
|
|
|
|
@@ -7603,7 +7666,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -7648,7 +7705,7 @@ var SessionStoreInternal = {
|
|
|
|
|
);
|
|
|
|
|
// We don't want to increment tIndex here.
|
|
|
|
|
continue;
|
|
|
|
|
@@ -350,7 +344,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
// Convert any open groups into saved groups.
|
|
|
|
|
let groupStateToSave = window.groups.find(
|
|
|
|
|
groupState => groupState.id == window.tabs[tIndex].groupId
|
|
|
|
|
@@ -8062,7 +8125,6 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -8193,7 +8250,6 @@ var SessionStoreInternal = {
|
|
|
|
|
timer.initWithCallback(
|
|
|
|
|
function () {
|
|
|
|
|
if (beats <= 0) {
|
|
|
|
|
@@ -358,7 +352,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
|
|
|
|
|
Glean.sessionRestore.shutdownFlushAllOutcomes.timed_out.add(1);
|
|
|
|
|
deferred.resolve();
|
|
|
|
|
}
|
|
|
|
|
@@ -8540,6 +8602,7 @@ var SessionStoreInternal = {
|
|
|
|
|
@@ -8671,6 +8727,7 @@ var SessionStoreInternal = {
|
|
|
|
|
if (
|
|
|
|
|
!savedTabGroupState.tabs.length ||
|
|
|
|
|
this.getSavedTabGroup(savedTabGroupState.id)
|
|
|
|
|
|