Skip to content

Commit ebfc885

Browse files
committed
feat: Replace zen's tab unloader with firefox's one. Also added more tests, b=(no-bug), c=common, tabs, tests, glance
1 parent 6f5d20f commit ebfc885

24 files changed

+358
-378
lines changed

l10n

src/browser/app/profile/features.inc

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,6 @@ pref('zen.keyboard.shortcuts.disable-mainkeyset-clear', false); // for debugging
9797

9898
pref('zen.themes.updated-value-observer', false);
9999

100-
pref('zen.tab-unloader.enabled', true);
101-
pref('zen.tab-unloader.timeout-minutes', 40);
102-
pref('zen.tab-unloader.excluded-urls', "example.com,example.org");
103-
104100
pref('zen.pinned-tab-manager.debug', false);
105101
pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false);
106102
pref('zen.pinned-tab-manager.close-shortcut-behavior', 'reset-unload-switch');

src/browser/base/content/browser-js.patch

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
2-
index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..7fe04b426a8dd3c8dbb71065da047f8f48b8e84c 100644
2+
index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..5059293ebfa29d646455b7a3505bd6eae408ba64 100644
33
--- a/browser/base/content/browser.js
44
+++ b/browser/base/content/browser.js
55
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
@@ -10,19 +10,18 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..7fe04b426a8dd3c8dbb71065da047f8f
1010
DevToolsSocketStatus:
1111
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
1212
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
13-
@@ -2340,6 +2341,11 @@ var XULBrowserWindow = {
13+
@@ -2340,6 +2341,10 @@ var XULBrowserWindow = {
1414
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
1515
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
1616

1717
+ gZenViewSplitter.onLocationChange(gBrowser.selectedBrowser);
1818
+ gZenWorkspaces.onLocationChange(gBrowser.selectedBrowser);
19-
+ gZenTabUnloader.onLocationChange(gBrowser.selectedBrowser);
2019
+ gZenPinnedTabManager.onLocationChange(gBrowser.selectedBrowser);
2120
+
2221
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
2322

2423
if (!gMultiProcessBrowser) {
25-
@@ -4816,7 +4822,7 @@ function switchToTabHavingURI(
24+
@@ -4816,7 +4821,7 @@ function switchToTabHavingURI(
2625
ignoreQueryString || replaceQueryString,
2726
ignoreFragmentWhenComparing
2827
);
@@ -31,7 +30,7 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..7fe04b426a8dd3c8dbb71065da047f8f
3130
for (let i = 0; i < browsers.length; i++) {
3231
let browser = browsers[i];
3332
let browserCompare = cleanURL(
34-
@@ -4859,7 +4865,7 @@ function switchToTabHavingURI(
33+
@@ -4859,7 +4864,7 @@ function switchToTabHavingURI(
3534
}
3635

3736
if (!doAdopt) {

src/browser/base/content/zen-assets.inc.xhtml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
<script src="chrome://browser/content/zen-components/ZenThemesCommon.mjs"></script>
3535
<script src="chrome://browser/content/zen-components/ZenThemesImporter.mjs"></script>
3636
<script src="chrome://browser/content/zen-components/ZenCompactMode.mjs"></script>
37-
<script src="chrome://browser/content/zen-components/ZenTabUnloader.mjs"></script>
3837
<script src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script>
3938
<script src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
4039
<script src="chrome://browser/content/zen-components/ZenPinnedTabManager.mjs"></script>

src/browser/base/content/zen-assets.jar.inc.mn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050

5151
content/browser/zen-components/ZenKeyboardShortcuts.mjs (../../zen/kbs/ZenKeyboardShortcuts.mjs)
5252

53-
content/browser/zen-components/ZenTabUnloader.mjs (../../zen/tabs/ZenTabUnloader.mjs)
5453
content/browser/zen-components/ZenPinnedTabsStorage.mjs (../../zen/tabs/ZenPinnedTabsStorage.mjs)
5554
content/browser/zen-components/ZenPinnedTabManager.mjs (../../zen/tabs/ZenPinnedTabManager.mjs)
5655
* content/browser/zen-styles/zen-tabs.css (../../zen/tabs/zen-tabs.css)

src/browser/base/content/zen-keysets.inc.xhtml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@
4343

4444
<command id="cmd_zenCopyCurrentURL" />
4545
<command id="cmd_zenCopyCurrentURLMarkdown" />
46-
47-
<command id="cmd_zenUnloadTab" />
48-
<command id="cmd_zenPreventUnloadTab" />
49-
<command id="cmd_zenIgnoreUnloadTab" />
5046
</commandset>
5147

5248
<keyset id="zenKeyset"></keyset>

src/browser/components/preferences/zenTabsManagement.inc.xhtml

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,7 @@
3737

3838
<checkbox id="zenTabsUnloadActivate"
3939
data-l10n-id="zen-tabs-unloader-enabled"
40-
preference="zen.tab-unloader.enabled"/>
41-
42-
43-
<label><html:h2 data-l10n-id="zen-tabs-unloader-unload-delay"/></label>
44-
<hbox id="zenTabsUnloadDelayContainer">
45-
<description class="description-deemphasized" data-l10n-id="zen-tabs-unloader-unload-delay-description" />
46-
<html:input id="zenTabsUnloadDelay"
47-
type="number"
48-
min="1"
49-
max="1000"
50-
preference="zen.tab-unloader.timeout-minutes"/>
51-
</hbox>
40+
preference="browser.tabs.unloadOnLowMemory"/>
5241
</groupbox>
5342

5443
<hbox id="zenPinnedTabsManagerCategory"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/browser/components/tabbrowser/TabUnloader.sys.mjs b/browser/components/tabbrowser/TabUnloader.sys.mjs
2+
index 44846cc902fd3fc17d12be38ac9abccb47a12f23..c715c7cf47486066b3fd6f92bf78bc8a720759bc 100644
3+
--- a/browser/components/tabbrowser/TabUnloader.sys.mjs
4+
+++ b/browser/components/tabbrowser/TabUnloader.sys.mjs
5+
@@ -52,7 +52,7 @@ let CRITERIA_WEIGHT = 1;
6+
*/
7+
let DefaultTabUnloaderMethods = {
8+
isNonDiscardable(tab, weight) {
9+
- if (tab.undiscardable || tab.selected) {
10+
+ if (tab.undiscardable || tab.selected || tab.zenModeActive) {
11+
return weight;
12+
}
13+

src/browser/components/tabbrowser/content/tabbrowser-js.patch

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
2-
index d5aa64842a35c6697263c63fd3a0571b64b01344..bcae8a44593d7b3e5efdd999b4c2f5bcac221632 100644
2+
index d5aa64842a35c6697263c63fd3a0571b64b01344..6943dc7f1d3d95ab1da315cbdbda0b032cf200f1 100644
33
--- a/browser/components/tabbrowser/content/tabbrowser.js
44
+++ b/browser/components/tabbrowser/content/tabbrowser.js
55
@@ -413,11 +413,41 @@
@@ -491,17 +491,6 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..bcae8a44593d7b3e5efdd999b4c2f5bc
491491
if (!this._windowIsClosing) {
492492
if (wasPinned) {
493493
this.tabContainer._positionPinnedTabs();
494-
@@ -5141,8 +5266,8 @@
495-
return closedCount;
496-
}
497-
498-
- async explicitUnloadTabs(tabs) {
499-
- let unloadBlocked = await this.runBeforeUnloadForTabs(tabs);
500-
+ async explicitUnloadTabs(tabs, skipPermitUnload = false) {
501-
+ let unloadBlocked = skipPermitUnload ? false : await this.runBeforeUnloadForTabs(tabs);
502-
if (unloadBlocked) {
503-
return;
504-
}
505494
@@ -5230,6 +5355,7 @@
506495
}
507496

src/browser/themes/shared/zen-icons/icons.css

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,8 +1051,7 @@ menuitem[id='placesContext_new:separator'] {
10511051
--menu-image: url('close-all.svg');
10521052
}
10531053

1054-
#context_zenUnloadTab,
1055-
#context_zenUnloadWebPanel,
1054+
#context_unloadTab,
10561055
#context_zenTabActions {
10571056
--menu-image: url('close-all.svg');
10581057
}

0 commit comments

Comments
 (0)