diff --git a/src/browser/base/zen-components/ZenPinnedTabManager.mjs b/src/browser/base/zen-components/ZenPinnedTabManager.mjs index c3eea7bc3..6ae59cb62 100644 --- a/src/browser/base/zen-components/ZenPinnedTabManager.mjs +++ b/src/browser/base/zen-components/ZenPinnedTabManager.mjs @@ -290,8 +290,10 @@ } } gBrowser.tabContainer._invalidateCachedTabs(); - newTab.initialize(); + if (!ZenWorkspaces.essentialShouldShowTab(newTab)) { + gBrowser.hideTab(newTab, undefined, true); + } } gBrowser._updateTabBarForPinnedTabs(); diff --git a/src/browser/base/zen-components/ZenWorkspaces.mjs b/src/browser/base/zen-components/ZenWorkspaces.mjs index 94f577649..532d2437a 100644 --- a/src/browser/base/zen-components/ZenWorkspaces.mjs +++ b/src/browser/base/zen-components/ZenWorkspaces.mjs @@ -1666,6 +1666,21 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature { return prevTabUsed; } + // Only use it in gZenPinnedTabsManager, when initializing essential tabs + essentialShouldShowTab(tab) { + if (tab.getAttribute('zen-essential') !== 'true') { + return true; + } + const workspaces = this._workspaceCache; + if (!workspaces) { + return true; + } + const containerId = ( + workspaces.workspaces.find((workspace) => workspace.uuid === this.activeWorkspace) || {} + )?.containerTabId?.toString(); + return this._shouldShowTab(tab, this.activeWorkspace, containerId, workspaces); + } + _shouldShowTab(tab, workspaceUuid, containerId, workspaces) { const isEssential = tab.getAttribute('zen-essential') === 'true'; const tabWorkspaceId = tab.getAttribute('zen-workspace-id');