From f718d4414e2ec213b36517ed78aea9b0683d651e Mon Sep 17 00:00:00 2001 From: "mr. m" <91018726+mr-cheffy@users.noreply.github.com> Date: Mon, 9 Mar 2026 20:16:41 +0100 Subject: [PATCH 01/68] perf: Improved performance when switiching spaces, p=#12698 * perf: Improved performance when switiching spaces, b=no-bug, c=common, compact-mode, workspaces * chore: format, b=no-bug, c=workspaces --- package.json | 2 +- .../base/content/browser-box-inc-xhtml.patch | 16 +++- .../content/navigator-toolbox-inc-xhtml.patch | 13 +-- src/zen/common/modules/ZenStartup.mjs | 15 ---- src/zen/common/modules/ZenUIManager.mjs | 18 ++-- src/zen/compact-mode/ZenCompactMode.mjs | 3 +- src/zen/drag-and-drop/ZenDragAndDrop.js | 2 +- src/zen/workspaces/ZenGradientGenerator.mjs | 89 ++++++++++++------- src/zen/workspaces/ZenWorkspace.mjs | 3 +- src/zen/workspaces/ZenWorkspaces.mjs | 38 +++++--- 10 files changed, 121 insertions(+), 78 deletions(-) diff --git a/package.json b/package.json index bd8509d26..a34cc5117 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "sync:raw": "surfer update", "sync:rc": "python3 scripts/update_ff.py --rc", "sync:l10n": "python3 scripts/update_ff.py --just-l10n", - "lint": "cd engine && ./mach lint zen", + "lint": "cd engine && ./mach lint zen/", "lint:fix": "npm run lint -- --fix", "prepare": "husky", "reset-ff": "surfer reset", diff --git a/src/browser/base/content/browser-box-inc-xhtml.patch b/src/browser/base/content/browser-box-inc-xhtml.patch index c08f89aeb..6a066afe9 100644 --- a/src/browser/base/content/browser-box-inc-xhtml.patch +++ b/src/browser/base/content/browser-box-inc-xhtml.patch @@ -1,8 +1,18 @@ diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml -index 2faed30e09511c381051bc40910a883d1d7bc10d..6ba2d0d91235ed33e4b4bad281c974b5960beaa2 100644 +index 2faed30e09511c381051bc40910a883d1d7bc10d..3b8c89902502aa384473dd6f43be7ec49bad06ac 100644 --- a/browser/base/content/browser-box.inc.xhtml +++ b/browser/base/content/browser-box.inc.xhtml -@@ -25,7 +25,13 @@ +@@ -3,6 +3,9 @@ + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + + ++ ++ ++ + diff --git a/src/browser/base/content/navigator-toolbox-inc-xhtml.patch b/src/browser/base/content/navigator-toolbox-inc-xhtml.patch index 216ab51a4..25e327eca 100644 --- a/src/browser/base/content/navigator-toolbox-inc-xhtml.patch +++ b/src/browser/base/content/navigator-toolbox-inc-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml -index 4d4223c508560136aba220adb18528aac913a188..7e7432f7adb761a598d3e3e5ca4c6385a3bfe223 100644 +index 4d4223c508560136aba220adb18528aac913a188..10d4d9cecbb0e7cec9191d78fb81a57376b37ff1 100644 --- a/browser/base/content/navigator-toolbox.inc.xhtml +++ b/browser/base/content/navigator-toolbox.inc.xhtml @@ -2,7 +2,7 @@ @@ -11,7 +11,7 @@ index 4d4223c508560136aba220adb18528aac913a188..7e7432f7adb761a598d3e3e5ca4c6385 - + diff --git a/src/browser/base/content/zen-assets.jar.inc.mn b/src/browser/base/content/zen-assets.jar.inc.mn index 2a44065d4..9d470ace8 100644 --- a/src/browser/base/content/zen-assets.jar.inc.mn +++ b/src/browser/base/content/zen-assets.jar.inc.mn @@ -7,7 +7,7 @@ #include ../../../zen/drag-and-drop/jar.inc.mn #include ../../../zen/split-view/jar.inc.mn #include ../../../zen/mods/jar.inc.mn -#include ../../../zen/workspaces/jar.inc.mn +#include ../../../zen/spaces/jar.inc.mn #include ../../../zen/tabs/jar.inc.mn #include ../../../zen/kbs/jar.inc.mn #include ../../../zen/glance/jar.inc.mn diff --git a/src/browser/base/content/zen-preloaded.inc.xhtml b/src/browser/base/content/zen-preloaded.inc.xhtml index 76f32fd5f..3e38442e9 100644 --- a/src/browser/base/content/zen-preloaded.inc.xhtml +++ b/src/browser/base/content/zen-preloaded.inc.xhtml @@ -8,6 +8,6 @@ - - - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/browser/components/places/content/bookmarkProperties-xhtml.patch b/src/browser/components/places/content/bookmarkProperties-xhtml.patch index 9ee0344b3..3207a4b51 100644 --- a/src/browser/components/places/content/bookmarkProperties-xhtml.patch +++ b/src/browser/components/places/content/bookmarkProperties-xhtml.patch @@ -15,7 +15,7 @@ index 4aad4e4fb4139aa3d81e00eefa82e26b697df973..831e42a4a55e277b5b8e81e4317a2007 src="chrome://browser/locale/places/bookmarkProperties.properties"/> -+ - \ No newline at end of file diff --git a/src/browser/base/jar-mn.patch b/src/browser/base/jar-mn.patch index a935240d2..a53fcbea0 100644 --- a/src/browser/base/jar-mn.patch +++ b/src/browser/base/jar-mn.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/jar.mn b/browser/base/jar.mn -index b1f7121a1f3926fe3eb89540edb7dcbb68734039..61c98964cf5efd0a603500cf36559713e1f231f7 100644 +index 22550debb8bba2a06bcd34ba9a21737105be5d92..fb4832243078c78926a66693f4ebe447c692b393 100644 --- a/browser/base/jar.mn +++ b/browser/base/jar.mn -@@ -109,3 +109,5 @@ browser.jar: +@@ -108,3 +108,5 @@ browser.jar: # L10n resources and overrides. % override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties diff --git a/src/browser/components/BrowserGlue-sys-mjs.patch b/src/browser/components/BrowserGlue-sys-mjs.patch index 51d378d4a..a0b40ae78 100644 --- a/src/browser/components/BrowserGlue-sys-mjs.patch +++ b/src/browser/components/BrowserGlue-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs -index 33a0f6b7e5cfe087388483fefa55b927e3e3f4a3..65135c6904b5e9523f77689dfc572aefe11b0961 100644 +index 938b7aa84266ad92b6654b4e44f7bca3dc315912..cb4f544e3cb9e035d17079c11420d72148db0d33 100644 --- a/browser/components/BrowserGlue.sys.mjs +++ b/browser/components/BrowserGlue.sys.mjs @@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; @@ -10,7 +10,7 @@ index 33a0f6b7e5cfe087388483fefa55b927e3e3f4a3..65135c6904b5e9523f77689dfc572aef AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs", AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs", ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs", -@@ -1455,7 +1456,7 @@ BrowserGlue.prototype = { +@@ -1456,7 +1457,7 @@ BrowserGlue.prototype = { windowcount++; let tabbrowser = win.gBrowser; if (tabbrowser) { @@ -19,7 +19,7 @@ index 33a0f6b7e5cfe087388483fefa55b927e3e3f4a3..65135c6904b5e9523f77689dfc572aef } } -@@ -1620,6 +1621,8 @@ BrowserGlue.prototype = { +@@ -1621,6 +1622,8 @@ BrowserGlue.prototype = { } else if (profileDataVersion < APP_DATA_VERSION) { lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION); } diff --git a/src/browser/components/aboutwelcome/content/aboutwelcome-css.patch b/src/browser/components/aboutwelcome/content/aboutwelcome-css.patch index 7c57e388a..18dc4a35c 100644 --- a/src/browser/components/aboutwelcome/content/aboutwelcome-css.patch +++ b/src/browser/components/aboutwelcome/content/aboutwelcome-css.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/aboutwelcome/content/aboutwelcome.css b/browser/components/aboutwelcome/content/aboutwelcome.css -index 0e1985aa519d66b047c5d40977bb12099d966b18..76b59891b4c4464b38d6973858f13fff0285737d 100644 +index 6952ca1c306aa8815f662d8c557d4dd6b79fce0f..ce420f1b2f57e3f23ef18cac20938662f3ecf1ae 100644 --- a/browser/components/aboutwelcome/content/aboutwelcome.css +++ b/browser/components/aboutwelcome/content/aboutwelcome.css -@@ -329,6 +329,11 @@ panel#feature-callout { +@@ -331,6 +331,11 @@ panel#feature-callout { --panel-shadow-margin: 6px; --panel-arrow-space: calc(var(--panel-shadow-margin) + var(--arrow-visible-height) - 1.5px); --panel-margin-offset: calc(-1 * (var(--panel-shadow-margin) + var(--arrow-corner-distance) + (var(--arrow-width) / 2))); @@ -14,7 +14,7 @@ index 0e1985aa519d66b047c5d40977bb12099d966b18..76b59891b4c4464b38d6973858f13fff } panel#feature-callout::part(content) { -@@ -512,6 +517,12 @@ div#feature-callout.hidden { +@@ -517,6 +522,12 @@ div#feature-callout.hidden { width: 25em; gap: 16px; background: var(--fc-background); @@ -27,7 +27,7 @@ index 0e1985aa519d66b047c5d40977bb12099d966b18..76b59891b4c4464b38d6973858f13fff } #feature-callout .screen[pos=callout] .section-main .main-content .main-content-inner { gap: 12px; -@@ -818,6 +829,10 @@ panel#feature-callout::part(content) { +@@ -830,6 +841,10 @@ panel#feature-callout::part(content) { overflow: visible; transform: rotate(45deg); transform-style: preserve-3d; diff --git a/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch b/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch new file mode 100644 index 000000000..7dccc12a8 --- /dev/null +++ b/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch @@ -0,0 +1,12 @@ +diff --git a/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs b/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs +index 7338737a25c2b75f28c48f573a58b72ec326ad3b..7cf3aa1164d38bc9daaa010f27c567e0d9792bc6 100644 +--- a/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs ++++ b/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs +@@ -200,6 +200,7 @@ export const AIWindow = { + }, + + _updateWindowSwitcherPosition(win) { ++ return; + const modeSwitcherButton = win.document.getElementById("ai-window-toggle"); + + const targetToolbar = win.document.getElementById( diff --git a/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch b/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch index b949e423e..1cf76c7cd 100644 --- a/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch +++ b/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs -index 80dd8b5e357acc9decea6cf621c4868d547a0eb3..8a5fea6ed1a62a5930bafffcbbde3ce3292e42a1 100644 +index a380e024e4ad6f77ad3ad74bb7a0784d7dfb6ff3..e990f8c2412f48ca5272a7741dcb7445a406462e 100644 --- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs +++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs @@ -778,6 +778,7 @@ export class FeatureCallout { diff --git a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch index df0c67a67..d71574f53 100644 --- a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch +++ b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs -index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292fa1347f4 100644 +index 4aca0aa0c90603e09b58395debb62875c018a8cf..400ad196c846083001b36d27edec6885c6bde16d 100644 --- a/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs @@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -10,7 +10,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 HomePage: "resource:///modules/HomePage.sys.mjs", PanelMultiView: "moz-src:///browser/components/customizableui/PanelMultiView.sys.mjs", -@@ -326,7 +327,7 @@ var CustomizableUIInternal = { +@@ -348,7 +349,7 @@ var CustomizableUIInternal = { { type: CustomizableUI.TYPE_PANEL, defaultPlacements: [], @@ -19,7 +19,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 }, false ); -@@ -336,19 +337,14 @@ var CustomizableUIInternal = { +@@ -358,20 +359,15 @@ var CustomizableUIInternal = { "back-button", "forward-button", "stop-reload-button", @@ -32,6 +32,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 "spring", - "downloads-button", AppConstants.MOZ_DEV_EDITION ? "developer-button" : null, + lazy.ippEnabled ? "ipprotection-button" : null, - "fxa-toolbar-menu-button", lazy.resetPBMToolbarButtonEnabled ? "reset-pbm-toolbar-button" : null, ].filter(name => name); @@ -40,7 +41,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 this.registerArea( CustomizableUI.AREA_NAVBAR, { -@@ -356,8 +352,6 @@ var CustomizableUIInternal = { +@@ -379,8 +375,6 @@ var CustomizableUIInternal = { overflowable: true, defaultPlacements: navbarPlacements, verticalTabsDefaultPlacements: [ @@ -49,7 +50,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 ], defaultCollapsed: false, }, -@@ -381,10 +375,7 @@ var CustomizableUIInternal = { +@@ -404,10 +398,7 @@ var CustomizableUIInternal = { { type: CustomizableUI.TYPE_TOOLBAR, defaultPlacements: [ @@ -60,7 +61,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 ], verticalTabsDefaultPlacements: [], defaultCollapsed: null, -@@ -466,6 +457,7 @@ var CustomizableUIInternal = { +@@ -489,6 +480,7 @@ var CustomizableUIInternal = { CustomizableUI.AREA_NAVBAR, CustomizableUI.AREA_BOOKMARKS, CustomizableUI.AREA_TABSTRIP, @@ -68,7 +69,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 ]); if (AppConstants.platform != "macosx") { toolbars.add(CustomizableUI.AREA_MENUBAR); -@@ -1242,6 +1234,9 @@ var CustomizableUIInternal = { +@@ -1265,6 +1257,9 @@ var CustomizableUIInternal = { placements = gPlacements.get(area); } @@ -78,16 +79,15 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 // For toolbars that need it, mark as dirty. let defaultPlacements = areaProperties.get("defaultPlacements"); if ( -@@ -1749,7 +1744,7 @@ var CustomizableUIInternal = { +@@ -1772,7 +1767,6 @@ var CustomizableUIInternal = { lazy.log.info( "Widget " + aWidgetId + " not found, unable to remove from " + aArea ); - continue; -+ // continue; } this.notifyDOMChange(widgetNode, null, container, true, () => { -@@ -1759,7 +1754,7 @@ var CustomizableUIInternal = { +@@ -1782,7 +1776,7 @@ var CustomizableUIInternal = { // We also need to remove the panel context menu if it's there: this.ensureButtonContextMenu(widgetNode); if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) { @@ -96,7 +96,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 } else { window.gNavToolbox.palette.appendChild(widgetNode); } -@@ -1927,16 +1922,16 @@ var CustomizableUIInternal = { +@@ -1950,16 +1944,16 @@ var CustomizableUIInternal = { elem.setAttribute("skipintoolbarset", "true"); } } @@ -116,7 +116,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 // Handle initial state of vertical tabs. if (isVerticalTabs) { // Show the vertical tabs toolbar -@@ -2178,6 +2173,10 @@ var CustomizableUIInternal = { +@@ -2201,6 +2195,10 @@ var CustomizableUIInternal = { * The identifier string of the area that aNode is being inserted into. */ insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) { @@ -127,7 +127,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => { this.setLocationAttributes(aNode, aAreaId); aContainer.insertBefore(aNode, aNextNode); -@@ -4533,7 +4532,7 @@ var CustomizableUIInternal = { +@@ -4554,7 +4552,7 @@ var CustomizableUIInternal = { * For all registered areas, builds those areas to reflect the current * placement state of all widgets. */ @@ -136,7 +136,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 for (let [areaId, areaNodes] of gBuildAreas) { let placements = gPlacements.get(areaId); let isFirstChangedToolbar = true; -@@ -4544,7 +4543,7 @@ var CustomizableUIInternal = { +@@ -4565,7 +4563,7 @@ var CustomizableUIInternal = { if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) { let defaultCollapsed = area.get("defaultCollapsed"); let win = areaNode.ownerGlobal; @@ -145,7 +145,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 win.setToolbarVisibility( areaNode, typeof defaultCollapsed == "string" -@@ -5835,6 +5834,7 @@ export var CustomizableUI = { +@@ -5856,6 +5854,7 @@ export var CustomizableUI = { unregisterArea(aName, aDestroyPlacements) { CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements); }, @@ -153,7 +153,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 /** * Add a widget to an area. * If the area to which you try to add is not known to CustomizableUI, -@@ -7798,7 +7798,9 @@ class OverflowableToolbar { +@@ -7819,7 +7818,9 @@ class OverflowableToolbar { ); if (webExtList && CustomizableUI.isWebExtensionWidget(child.id)) { @@ -163,7 +163,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 webExtList.insertBefore(child, webExtList.firstElementChild); } else { child.setAttribute("cui-anchorid", this.#defaultListButton.id); -@@ -7858,7 +7860,7 @@ class OverflowableToolbar { +@@ -7879,7 +7880,7 @@ class OverflowableToolbar { ) { continue; } @@ -172,7 +172,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 if (child != aExceptChild) { sum += getInlineSize(child); } -@@ -7882,11 +7884,11 @@ class OverflowableToolbar { +@@ -7903,11 +7904,11 @@ class OverflowableToolbar { parseFloat(style.paddingLeft) - parseFloat(style.paddingRight) - toolbarChildrenWidth; @@ -186,7 +186,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 }); lazy.log.debug( -@@ -7901,7 +7903,14 @@ class OverflowableToolbar { +@@ -7922,7 +7923,14 @@ class OverflowableToolbar { Math.max(targetWidth, targetChildrenWidth) ); totalAvailWidth = Math.ceil(totalAvailWidth); @@ -202,7 +202,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 return { isOverflowing, targetContentWidth, totalAvailWidth }; } -@@ -7962,7 +7971,11 @@ class OverflowableToolbar { +@@ -7983,7 +7991,11 @@ class OverflowableToolbar { return; } } @@ -215,7 +215,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 lazy.log.debug( `Need ${minSize} but width is ${totalAvailWidth} so bailing` ); -@@ -7995,7 +8008,7 @@ class OverflowableToolbar { +@@ -8016,7 +8028,7 @@ class OverflowableToolbar { } } if (!inserted) { @@ -224,7 +224,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 } child.removeAttribute("cui-anchorid"); child.removeAttribute("overflowedItem"); -@@ -8121,6 +8134,9 @@ class OverflowableToolbar { +@@ -8142,6 +8154,9 @@ class OverflowableToolbar { * if no such list exists. */ get #webExtList() { @@ -234,7 +234,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 if (!this.#webExtListRef) { let targetID = this.#toolbar.getAttribute("addon-webext-overflowtarget"); if (!targetID) { -@@ -8132,6 +8148,9 @@ class OverflowableToolbar { +@@ -8153,6 +8168,9 @@ class OverflowableToolbar { let win = this.#toolbar.ownerGlobal; let { panel } = win.gUnifiedExtensions; this.#webExtListRef = panel.querySelector(`#${targetID}`); @@ -244,7 +244,7 @@ index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..c50781a1e8fd1a71baf497ba64d85292 } return this.#webExtListRef; } -@@ -8340,7 +8359,7 @@ class OverflowableToolbar { +@@ -8361,7 +8379,7 @@ class OverflowableToolbar { break; } case "mousedown": { diff --git a/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch b/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch index 7472a3627..130d1e130 100644 --- a/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch +++ b/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs -index 52e93e9d9d77f6e410d72bee707fccf26f728004..1142f096e1221213195453d60507ba1bd2f7aed9 100644 +index e72ff7eab14f66ff4454850930a1d7266b3acefa..1a5d9c63b8942e8c20e9f91b82b5b11647b12ecc 100644 --- a/browser/components/customizableui/CustomizeMode.sys.mjs +++ b/browser/components/customizableui/CustomizeMode.sys.mjs @@ -503,7 +503,7 @@ export class CustomizeMode { diff --git a/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch b/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch index d4ac42499..bf9fc9dbb 100644 --- a/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch +++ b/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs -index 5be4e8ea7867e93bda2cd3eb49d966ebd73dc786..650d0008e755583392e07f35bd8e541dff7c43c4 100644 +index d5fd707b98e4b163a624c97ff4a8f2574e0b0180..32360b11270d9dad4b83229428932e598f69e774 100644 --- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs +++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs -@@ -246,10 +246,7 @@ export var ToolbarContextMenu = { +@@ -243,10 +243,7 @@ export var ToolbarContextMenu = { // Show/hide sidebar and vertical tabs menu items let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp"); let showSidebarActions = diff --git a/src/browser/components/customizableui/content/panelUI-js.patch b/src/browser/components/customizableui/content/panelUI-js.patch index 1e1afd09d..2f814e123 100644 --- a/src/browser/components/customizableui/content/panelUI-js.patch +++ b/src/browser/components/customizableui/content/panelUI-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js -index 1c696a11d831ea25b4b01689e9b23bda8a754900..fed5576c05aeffd87022565580ce085cb81fe70c 100644 +index e21e54525d197ca5e4c1a62999f9c34c5b4eda7d..3a57749000ba3f04c0dbd034f89e1458f5fa355e 100644 --- a/browser/components/customizableui/content/panelUI.js +++ b/browser/components/customizableui/content/panelUI.js @@ -627,10 +627,12 @@ const PanelUI = { diff --git a/src/browser/components/extensions/parent/ext-browser-js.patch b/src/browser/components/extensions/parent/ext-browser-js.patch index 73708e882..1c6064321 100644 --- a/src/browser/components/extensions/parent/ext-browser-js.patch +++ b/src/browser/components/extensions/parent/ext-browser-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js -index 2488267f4be5142bcacf984635d9e9ecdb5f02e9..03127808b3cae28850cc276fac0f1acbca85d326 100644 +index 3ce6ae3271bb0b3873118a94363a9552877559f8..9e62181986d039cc171dfe87de1d95c1f5aacd8c 100644 --- a/browser/components/extensions/parent/ext-browser.js +++ b/browser/components/extensions/parent/ext-browser.js @@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase { @@ -18,7 +18,7 @@ index 2488267f4be5142bcacf984635d9e9ecdb5f02e9..03127808b3cae28850cc276fac0f1acb this._tabs.set(nativeTab, id); if (nativeTab.linkedBrowser) { -@@ -1273,6 +1275,10 @@ class TabManager extends TabManagerBase { +@@ -1278,6 +1280,10 @@ class TabManager extends TabManagerBase { } canAccessTab(nativeTab) { diff --git a/src/browser/components/extensions/parent/ext-tabs-js.patch b/src/browser/components/extensions/parent/ext-tabs-js.patch index 915d6c2fd..add96ed9b 100644 --- a/src/browser/components/extensions/parent/ext-tabs-js.patch +++ b/src/browser/components/extensions/parent/ext-tabs-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/extensions/parent/ext-tabs.js b/browser/components/extensions/parent/ext-tabs.js -index 7e32fc3f3c325b7317533acf5142bb912556fdbe..04bbe6bece881a05d2eadf81411bd4df2b745017 100644 +index 019aa2ef81f76ce4921e261fd4c65c11a28c4149..4848aa4d7d4ad6b11a64abff65d2637de09bd9a5 100644 --- a/browser/components/extensions/parent/ext-tabs.js +++ b/browser/components/extensions/parent/ext-tabs.js -@@ -501,6 +501,7 @@ this.tabs = class extends ExtensionAPIPersistent { +@@ -516,6 +516,7 @@ this.tabs = class extends ExtensionAPIPersistent { } let tab = tabManager.getWrapper(updatedTab); @@ -10,7 +10,7 @@ index 7e32fc3f3c325b7317533acf5142bb912556fdbe..04bbe6bece881a05d2eadf81411bd4df let changeInfo = {}; for (let prop of needed) { -@@ -855,6 +856,7 @@ this.tabs = class extends ExtensionAPIPersistent { +@@ -881,6 +882,7 @@ this.tabs = class extends ExtensionAPIPersistent { }); } diff --git a/src/browser/components/places/PlacesUIUtils-sys-mjs.patch b/src/browser/components/places/PlacesUIUtils-sys-mjs.patch index 884380fc2..faddca8d4 100644 --- a/src/browser/components/places/PlacesUIUtils-sys-mjs.patch +++ b/src/browser/components/places/PlacesUIUtils-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs -index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca8418103f6e6 100644 +index 2db11dad245dccca246cc8429a7498af9f143d5f..980ec44d9e92639b249bc83f59ea3bfae40dd921 100644 --- a/browser/components/places/PlacesUIUtils.sys.mjs +++ b/browser/components/places/PlacesUIUtils.sys.mjs -@@ -60,6 +60,7 @@ class BookmarkState { +@@ -61,6 +61,7 @@ class BookmarkState { info, tags = "", keyword = "", @@ -10,7 +10,7 @@ index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca841 isFolder = false, children = [], autosave = false, -@@ -84,12 +85,18 @@ class BookmarkState { +@@ -85,12 +86,18 @@ class BookmarkState { keyword, parentGuid: info.parentGuid, index, @@ -29,7 +29,7 @@ index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca841 /** * Save edited title for the bookmark * -@@ -183,6 +190,14 @@ class BookmarkState { +@@ -184,6 +191,14 @@ class BookmarkState { "BookmarkState::createBookmark" ); this._guid = results?.[0]; @@ -44,7 +44,7 @@ index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca841 return this._guid; } -@@ -216,6 +231,14 @@ class BookmarkState { +@@ -217,6 +232,14 @@ class BookmarkState { "BookmarkState::save::createFolder" ); this._guid = results[0]; @@ -59,7 +59,7 @@ index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca841 return this._guid; } -@@ -302,11 +325,97 @@ class BookmarkState { +@@ -303,11 +326,97 @@ class BookmarkState { await lazy.PlacesTransactions.batch(transactions, "BookmarkState::save"); } @@ -157,7 +157,7 @@ index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca841 /** * Append transactions to update tags by given information. * -@@ -904,7 +1013,7 @@ export var PlacesUIUtils = { +@@ -915,7 +1024,7 @@ export var PlacesUIUtils = { aNode, aWhere, aWindow, diff --git a/src/browser/components/places/content/bookmarkProperties-xhtml.patch b/src/browser/components/places/content/bookmarkProperties-xhtml.patch index 3207a4b51..e661bfa5f 100644 --- a/src/browser/components/places/content/bookmarkProperties-xhtml.patch +++ b/src/browser/components/places/content/bookmarkProperties-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/places/content/bookmarkProperties.xhtml b/browser/components/places/content/bookmarkProperties.xhtml -index 4aad4e4fb4139aa3d81e00eefa82e26b697df973..831e42a4a55e277b5b8e81e4317a2007c5306996 100644 +index 4aad4e4fb4139aa3d81e00eefa82e26b697df973..eb4055341964edaaff53163da8fc3723b93e72f6 100644 --- a/browser/components/places/content/bookmarkProperties.xhtml +++ b/browser/components/places/content/bookmarkProperties.xhtml @@ -38,6 +38,8 @@ diff --git a/src/browser/components/places/content/browserPlacesViews-js.patch b/src/browser/components/places/content/browserPlacesViews-js.patch index b71b2f5bd..aa584f20d 100644 --- a/src/browser/components/places/content/browserPlacesViews-js.patch +++ b/src/browser/components/places/content/browserPlacesViews-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js -index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8401e4226 100644 +index 384d599c58cefbf80f5a50489fc401df0c8de8a5..aa85972946c3ff7866fbea86b0372432fb02cd6f 100644 --- a/browser/components/places/content/browserPlacesViews.js +++ b/browser/components/places/content/browserPlacesViews.js @@ -328,12 +328,23 @@ class PlacesViewBase { @@ -37,7 +37,7 @@ index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8 } else if (PlacesUtils.containerTypes.includes(type)) { element = document.createXULElement("menu"); element.setAttribute("container", "true"); -@@ -1014,25 +1026,33 @@ class PlacesToolbar extends PlacesViewBase { +@@ -1015,25 +1027,33 @@ class PlacesToolbar extends PlacesViewBase { this._rootElt.firstChild.remove(); } @@ -82,7 +82,7 @@ index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8 ); ++startIndex; if (elt.localName != "toolbarseparator") { -@@ -1040,15 +1060,12 @@ class PlacesToolbar extends PlacesViewBase { +@@ -1041,15 +1061,12 @@ class PlacesToolbar extends PlacesViewBase { } } if (!elt) { @@ -101,7 +101,7 @@ index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8 }); }); -@@ -1058,7 +1075,7 @@ class PlacesToolbar extends PlacesViewBase { +@@ -1059,7 +1076,7 @@ class PlacesToolbar extends PlacesViewBase { let fragment = document.createDocumentFragment(); for (let i = startIndex; i < limit; ++i) { @@ -110,7 +110,7 @@ index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8 } await new Promise(resolve => window.requestAnimationFrame(resolve)); if (!this._isAlive) { -@@ -1120,6 +1137,8 @@ class PlacesToolbar extends PlacesViewBase { +@@ -1122,6 +1139,8 @@ class PlacesToolbar extends PlacesViewBase { "scheme", PlacesUIUtils.guessUrlSchemeForUI(aChild.uri) ); @@ -119,7 +119,7 @@ index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8 } } -@@ -2268,7 +2287,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase { +@@ -2314,7 +2333,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase { PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri) ); element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode)); diff --git a/src/browser/components/places/content/editBookmark-js.patch b/src/browser/components/places/content/editBookmark-js.patch index 92392184f..7dd2e0524 100644 --- a/src/browser/components/places/content/editBookmark-js.patch +++ b/src/browser/components/places/content/editBookmark-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/places/content/editBookmark.js b/browser/components/places/content/editBookmark.js -index f562f19741d882d92365da531b55e2810a0e79ea..a68ce8191314845c589f3a9f14b56028e0532628 100644 +index 0fb2225d0fadd27e9e7851be77f18afe7d053c80..347203d6ea9cab3cb803f28515613229b6a454b3 100644 --- a/browser/components/places/content/editBookmark.js +++ b/browser/components/places/content/editBookmark.js @@ -387,6 +387,10 @@ var gEditItemOverlay = { @@ -21,7 +21,7 @@ index f562f19741d882d92365da531b55e2810a0e79ea..a68ce8191314845c589f3a9f14b56028 } if (this._paneInfo.bulkTagging) { -@@ -1194,6 +1199,9 @@ var gEditItemOverlay = { +@@ -1178,6 +1183,9 @@ var gEditItemOverlay = { case "editBMPanel_tagsSelectorExpander": this.toggleTagsSelector().catch(console.error); break; @@ -31,7 +31,7 @@ index f562f19741d882d92365da531b55e2810a0e79ea..a68ce8191314845c589f3a9f14b56028 } break; } -@@ -1280,6 +1288,128 @@ var gEditItemOverlay = { +@@ -1256,6 +1264,128 @@ var gEditItemOverlay = { get bookmarkState() { return this._bookmarkState; }, @@ -160,7 +160,7 @@ index f562f19741d882d92365da531b55e2810a0e79ea..a68ce8191314845c589f3a9f14b56028 }; ChromeUtils.defineLazyGetter(gEditItemOverlay, "_folderTree", () => { -@@ -1318,6 +1448,9 @@ for (let elt of [ +@@ -1294,6 +1424,9 @@ for (let elt of [ "locationField", "keywordField", "tagsField", diff --git a/src/browser/components/preferences/jar-mn.patch b/src/browser/components/preferences/jar-mn.patch index c012d4399..e34d6d44a 100644 --- a/src/browser/components/preferences/jar-mn.patch +++ b/src/browser/components/preferences/jar-mn.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn -index f06aaedc681cac4dc26d8e168d47991098477424..db2e81338793f99d9f034555abb1f6ef28bb1ae9 100644 +index bd094a48b418b8ff1e28ebbe722877262868d750..47f026b74f75329406fe021402124d5307cf6e32 100644 --- a/browser/components/preferences/jar.mn +++ b/browser/components/preferences/jar.mn -@@ -46,3 +46,5 @@ browser.jar: +@@ -49,3 +49,5 @@ browser.jar: content/browser/preferences/widgets/sync-device-name.mjs (widgets/sync-device-name/sync-device-name.mjs) content/browser/preferences/widgets/sync-engines-list.mjs (widgets/sync-engine-list/sync-engines-list.mjs) content/browser/preferences/widgets/sync-engines-list.css (widgets/sync-engine-list/sync-engines-list.css) diff --git a/src/browser/components/preferences/main-inc-xhtml.patch b/src/browser/components/preferences/main-inc-xhtml.patch index 51f4997c3..5ce97c789 100644 --- a/src/browser/components/preferences/main-inc-xhtml.patch +++ b/src/browser/components/preferences/main-inc-xhtml.patch @@ -1,18 +1,8 @@ diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml -index 171021979f4783251db7f74d52a922d4bd244f08..cdc91ac91905956a82dfa3ed229146622d1d3d80 100644 +index f23beeb5c793bc7a6cbea4512a5f2cd379ec98c7..09617b8fbbd01e87b97e323cb3f7ca055bc06778 100644 --- a/browser/components/preferences/main.inc.xhtml +++ b/browser/components/preferences/main.inc.xhtml -@@ -49,7 +49,8 @@ - -