diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js index 3330dc133c120e7fbeecd2a36c71f9dfba60b3fb..0243cdfe67e5eb3f68fc7cde66bb3809e79bd6c3 100644 --- a/browser/components/tabbrowser/content/browser-ctrlTab.js +++ b/browser/components/tabbrowser/content/browser-ctrlTab.js @@ -252,7 +252,8 @@ var ctrlTab = { }, get tabList() { - return this._recentlyUsedTabs; + const canShowPending = Services.prefs.getBoolPref("zen.ctrlTab.show-pending-tabs", false); + return this._recentlyUsedTabs.filter(tab => !tab.hasAttribute("pending") || canShowPending); }, init: function ctrlTab_init() { @@ -457,7 +458,7 @@ var ctrlTab = { // If the tab is hidden, don't add it to the list unless it's selected // (Normally hidden tabs would be unhidden when selected, but that doesn't // happen for Firefox View). - if (aTab.closing || (aTab.hidden && !aTab.selected)) { + if (aTab.closing || (aTab.hidden && !aTab.selected) || aTab.hasAttribute("zen-empty-tab")) { return; } @@ -481,7 +482,7 @@ var ctrlTab = { }, open: function ctrlTab_open() { - if (this.isOpen) { + if (this.isOpen || !this.tabCount) { return; } @@ -751,7 +752,7 @@ var ctrlTab = { _initRecentlyUsedTabs() { this._recentlyUsedTabs = Array.prototype.filter.call( gBrowser.tabs, - tab => !tab.closing && !tab.hidden + tab => !tab.closing && !tab.hidden && !tab.hasAttribute("zen-empty-tab") ); this._sortRecentlyUsedTabs(); },