diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs index 82721356d191055bec0d4b0ca49e481221988801..e0fde4fc475471d170ce46c1207e6e7b67fcaf1d 100644 --- a/browser/components/sessionstore/TabState.sys.mjs +++ b/browser/components/sessionstore/TabState.sys.mjs @@ -85,7 +85,25 @@ class _TabState { tabData.groupId = tab.group.id; } + tabData.zenWorkspace = tab.getAttribute("zen-workspace-id"); + tabData.zenSyncId = tab.getAttribute("id"); + tabData.zenEssential = tab.getAttribute("zen-essential"); + tabData.pinned = tabData.pinned || tabData.zenEssential; + tabData.zenDefaultUserContextId = tab.getAttribute("zenDefaultUserContextId"); + tabData.zenPinnedEntry = tab.getAttribute("zen-pinned-entry"); + tabData.zenPinnedIcon = tab.getAttribute("zen-pinned-icon"); + tabData.zenIsEmpty = tab.hasAttribute("zen-empty-tab"); + tabData.zenStaticLabel = tab.zenStaticLabel; + tabData.zenHasStaticIcon = tab.hasAttribute("zen-has-static-icon"); + tabData.zenGlanceId = tab.getAttribute("glance-id"); + tabData.zenIsGlance = tab.hasAttribute("zen-glance-tab"); + tabData._zenPinnedInitialState = tab._zenPinnedInitialState; + tabData._zenIsActiveTab = tab._zenContentsVisible; + tabData.searchMode = tab.ownerGlobal.gURLBar.getSearchMode(browser, true); + if (tabData.searchMode?.source === tab.ownerGlobal.UrlbarUtils.RESULT_SOURCE.ZEN_ACTIONS) { + delete tabData.searchMode; + } tabData.userContextId = tab.userContextId || 0; @@ -98,7 +116,7 @@ class _TabState { // Copy data from the tab state cache only if the tab has fully finished // restoring. We don't want to overwrite data contained in __SS_data. - this.copyFromCache(browser.permanentKey, tabData, options); + this.copyFromCache(tab.permanentKey, tabData, options); // After copyFromCache() was called we check for properties that are kept // in the cache only while the tab is pending or restoring. Once that