diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index b2713aa9e..097df3e05 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -112,7 +112,8 @@ pref('zen.tab-unloader.enabled', true); pref('zen.tab-unloader.timeout-minutes', 20); pref('zen.tab-unloader.excluded-urls', "example.com,example.org"); -pref('zen.pinned-tab-manager.reset-pinned-tab-on-close-shortcut', true); +pref('zen.pinned-tab-manager.reset-pinned-tab-on-close-shortcut', false); +pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false); // Pref to enable the new profiles (TODO: Check this out!) //pref("browser.profiles.enabled", true); diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js index c6aca5c6f..4421d6674 100644 --- a/src/browser/components/preferences/zen-settings.js +++ b/src/browser/components/preferences/zen-settings.js @@ -1025,4 +1025,9 @@ Preferences.addAll([ type: 'bool', default: true, }, + { + id: 'zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', + type: 'bool', + default: true, + }, ]); diff --git a/src/browser/components/preferences/zenTabsManagement.inc.xhtml b/src/browser/components/preferences/zenTabsManagement.inc.xhtml index 115331a66..c85d69c80 100644 --- a/src/browser/components/preferences/zenTabsManagement.inc.xhtml +++ b/src/browser/components/preferences/zenTabsManagement.inc.xhtml @@ -74,6 +74,10 @@ + + diff --git a/src/browser/components/sessionstore/TabState-sys-mjs.patch b/src/browser/components/sessionstore/TabState-sys-mjs.patch index 27af3b860..a9793795d 100644 --- a/src/browser/components/sessionstore/TabState-sys-mjs.patch +++ b/src/browser/components/sessionstore/TabState-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs -index 26f5671c849d9b0a126d79b07bc7d3d7870826ec..3726c8d89c9a8f797fda4ef3c18e4fa81f3ad130 100644 +index 26f5671c849d9b0a126d79b07bc7d3d7870826ec..5e356a35639c802fcf6d95d42993d5bd5cda514a 100644 --- a/browser/components/sessionstore/TabState.sys.mjs +++ b/browser/components/sessionstore/TabState.sys.mjs -@@ -98,6 +98,11 @@ var TabStateInternal = { +@@ -98,6 +98,12 @@ var TabStateInternal = { tabData.muteReason = tab.muteReason; } @@ -10,6 +10,7 @@ index 26f5671c849d9b0a126d79b07bc7d3d7870826ec..3726c8d89c9a8f797fda4ef3c18e4fa8 + tabData.zenDefaultUserContextId = tab.getAttribute("zenDefaultUserContextId"); + tabData.zenPinnedUrl = tab.getAttribute("zen-pinned-url"); + tabData.zenPinnedTitle = tab.getAttribute("zen-pinned-title"); ++ tabData.zenPinnedIcon = tab.getAttribute("zen-pinned-icon"); + tabData.searchMode = tab.ownerGlobal.gURLBar.getSearchMode(browser, true); diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch index 92d12be37..68f0aabd2 100644 --- a/src/browser/components/tabbrowser/content/tabbrowser-js.patch +++ b/src/browser/components/tabbrowser/content/tabbrowser-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js -index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b6835bdacdb 100644 +index c89ae2cbb978d6218bd56a059c5ca1e371231607..6608e0d7df1092a7398979abb166895e0b4fb66b 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js -@@ -452,11 +452,26 @@ +@@ -456,11 +456,26 @@ return duplicateTabs; }, @@ -31,7 +31,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 } return i; }, -@@ -2704,6 +2719,11 @@ +@@ -2705,6 +2720,11 @@ ); } @@ -43,7 +43,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 if (!UserInteraction.running("browser.tabs.opening", window)) { UserInteraction.start("browser.tabs.opening", "initting", window); } -@@ -2771,6 +2791,9 @@ +@@ -2773,6 +2793,9 @@ noInitialLabel, skipBackgroundNotify, }); @@ -53,7 +53,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 if (insertTab) { // insert the tab into the tab container in the correct position this._insertTabAtIndex(t, { -@@ -3248,6 +3271,14 @@ +@@ -3262,6 +3285,14 @@ ) { tabWasReused = true; tab = this.selectedTab; @@ -68,7 +68,21 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 if (!tabData.pinned) { this.unpinTab(tab); } else { -@@ -3297,6 +3328,12 @@ +@@ -3283,6 +3314,13 @@ + url = tabData.entries[activeIndex].url; + } + ++ if(Services.prefs.getBoolPref("zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url", false) && tabData.pinned && tabData.zenPinnedUrl) { ++ tabData.entries = [{url: tabData.zenPinnedUrl, title: tabData.zenPinnedTitle}]; ++ tabData.image = tabData.zenPinnedIcon; ++ tabData.index = 0; ++ url = tabData.zenPinnedUrl; ++ } ++ + let preferredRemoteType = E10SUtils.getRemoteTypeForURI( + url, + gMultiProcessBrowser, +@@ -3311,6 +3349,12 @@ preferredRemoteType, }); @@ -81,7 +95,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 if (select) { tabToSelect = tab; } -@@ -3331,7 +3368,13 @@ +@@ -3345,7 +3389,17 @@ this.tabContainer._invalidateCachedTabs(); } } @@ -91,11 +105,15 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 + if (tabData.zenPinnedTitle) { + tab.setAttribute("zen-pinned-title", tabData.zenPinnedTitle); ++ } ++ ++ if(tabData.zenPinnedIcon) { ++ tab.setAttribute("zen-pinned-icon", tabData.zenPinnedIcon); + } tab.initialize(); } -@@ -4184,6 +4227,7 @@ +@@ -4198,6 +4252,7 @@ isLastTab || aTab.pinned || aTab.hidden || @@ -103,7 +121,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 this._removingTabs.size > 3 /* don't want lots of concurrent animations */ || !aTab.hasAttribute( -@@ -5117,10 +5161,10 @@ +@@ -5131,10 +5186,10 @@ SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); }, @@ -116,7 +134,7 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 aTab.selected || aTab.closing || // Tabs that are sharing the screen, microphone or camera cannot be hidden. -@@ -7822,7 +7866,10 @@ var TabContextMenu = { +@@ -7870,7 +7925,14 @@ var TabContextMenu = { ); contextUnpinSelectedTabs.hidden = !this.contextTab.pinned || !multiselectionContext; @@ -124,6 +142,10 @@ index ef857bd81f2cd7c163ecc74ac1cf81a0b63ce838..7ffa8f7d64f2ed13018e3f32f94e7b68 + let contextResetPinnedTab = document.getElementById("context_zen-reset-pinned-tab"); + if(contextResetPinnedTab) { + contextResetPinnedTab.hidden = !this.contextTab.pinned || !this.contextTab.getAttribute("zen-pinned-url") || multiselectionContext; ++ } ++ let contextReplacePinnedUrlWithCurrent = document.getElementById("context_zen-replace-pinned-url-with-current"); ++ if(contextReplacePinnedUrlWithCurrent) { ++ contextReplacePinnedUrlWithCurrent.hidden = !this.contextTab.pinned || !this.contextTab.getAttribute("zen-pinned-url") || multiselectionContext; + } // Move Tab items let contextMoveTabOptions = document.getElementById(