From 20053b007048e5d2a9ea8554ee0af26984283803 Mon Sep 17 00:00:00 2001 From: "Mr. M" Date: Thu, 6 Nov 2025 13:07:40 +0100 Subject: [PATCH] chore: Recalculate patches, b=no-bug, c=tabs, media, common --- src/Cargo-lock.patch | 4 +- src/Cargo-toml.patch | 4 +- src/browser/actors/WebRTCParent-sys-mjs.patch | 2 +- .../base/content/browser-commands-js.patch | 8 +- .../browser-fullScreenAndPointerLock-js.patch | 4 +- src/browser/base/content/browser-js.patch | 12 +- .../base/content/browser-places-js.patch | 8 +- .../content/browser-siteIdentity-js.patch | 8 +- src/browser/base/content/browser-xhtml.patch | 2 +- .../content/main-popupset-inc-xhtml.patch | 4 +- .../base/content/navigator-toolbox-js.patch | 12 +- .../base/content/nsContextMenu-sys-mjs.patch | 4 +- .../components/BrowserGlue-sys-mjs.patch | 6 +- .../modules/FeatureCallout-sys-mjs.patch | 4 +- .../content/panelUI-inc-xhtml.patch | 4 +- .../extensions/parent/ext-browser-js.patch | 4 +- .../content/browserPlacesViews-js.patch | 16 +- .../preferences/main-inc-xhtml.patch | 6 +- .../preferences/preferences-xhtml.patch | 10 +- .../preferences/sync-inc-xhtml.patch | 2 +- .../search/SearchUIUtils-sys-mjs.patch | 4 +- .../sessionstore/SessionStore-sys-mjs.patch | 36 +- .../sidebar/browser-sidebar-js.patch | 4 +- .../tabbrowser/AsyncTabSwitcher-sys-mjs.patch | 6 +- .../tabbrowser/TabsList-sys-mjs.patch | 2 +- .../content/browser-ctrlTab-js.patch | 10 +- .../tabbrowser/content/tab-js.patch | 20 +- .../tabbrowser/content/tabbrowser-js.patch | 138 ++--- .../tabbrowser/content/tabgroup-js.patch | 20 +- .../tabbrowser/content/tabs-js.patch | 521 +----------------- .../urlbar/UrlbarController-sys-mjs.patch | 6 +- .../urlbar/UrlbarInput-sys-mjs.patch | 54 +- .../urlbar/UrlbarMuxerStandard-sys-mjs.patch | 6 +- .../urlbar/UrlbarPrefs-sys-mjs.patch | 2 +- .../urlbar/UrlbarProviderPlaces-sys-mjs.patch | 4 +- .../UrlbarProvidersManager-sys-mjs.patch | 4 +- .../urlbar/UrlbarUtils-sys-mjs.patch | 8 +- .../urlbar/UrlbarValueFormatter-sys-mjs.patch | 2 +- .../urlbar/UrlbarView-sys-mjs.patch | 6 +- .../newtab/lib/ActivityStream-sys-mjs.patch | 4 +- .../installer/package-manifest-in.patch | 4 +- .../windows/nsis/defines-nsi-in.patch | 4 +- .../windows/nsis/installer-nsi.patch | 6 +- .../windows/nsis/uninstaller-nsi.patch | 4 +- .../modules/BrowserDOMWindow-sys-mjs.patch | 12 +- .../modules/ExtensionsUI-sys-mjs.patch | 4 +- .../modules/URILoadingHelper-sys-mjs.patch | 2 +- src/browser/themes/osx/browser-css.patch | 2 +- .../themes/shared/browser-shared-css.patch | 12 +- .../identity-block/identity-block-css.patch | 4 +- src/browser/themes/shared/jar-inc-mn.patch | 4 +- .../shared/tabbrowser/content-area-css.patch | 6 +- .../shared/tabbrowser/ctrlTab-css.patch | 2 +- .../themes/shared/tabbrowser/tabs-css.patch | 32 +- .../themes/shared/urlbar-searchbar-css.patch | 4 +- .../themes/shared/urlbarView-css.patch | 6 +- .../actors/animation-type-longhand-js.patch | 4 +- .../startup/DevToolsStartup-sys-mjs.patch | 2 +- src/docshell/base/nsAboutRedirector-cpp.patch | 4 +- src/dom/base/Document-cpp.patch | 6 +- src/dom/base/use_counter_metrics-yaml.patch | 6 +- .../mediaelement/HTMLMediaElement-cpp.patch | 4 +- .../ff-145-tahoe-upgrade.patch | 336 ----------- src/layout/generic/nsIFrame-cpp.patch | 4 +- src/layout/style/nsStyleStruct-cpp.patch | 6 +- src/layout/style/nsStyleStruct-h.patch | 4 +- .../libpref/init/StaticPrefList-yaml.patch | 4 +- src/netwerk/protocol/http/moz-build.patch | 4 +- .../style/gecko/media_features-rs.patch | 2 +- src/testing/mochitest/browser-test-js.patch | 57 +- .../PictureInPictureChild-sys-mjs.patch | 4 +- src/toolkit/content/widgets/findbar-js.patch | 2 +- src/toolkit/content/widgets/tabbox-js.patch | 10 +- src/toolkit/content/xul-css.patch | 8 +- .../modules/ShortcutUtils-sys-mjs.patch | 12 +- src/toolkit/modules/moz-build.patch | 2 +- src/toolkit/moz-configure.patch | 2 +- .../extensions/AddonManager-sys-mjs.patch | 4 +- .../themes/shared/aboutReader-css.patch | 2 +- .../shared/in-content/common-shared-css.patch | 2 +- src/toolkit/themes/shared/menulist-css.patch | 4 +- .../shared/pictureinpicture/player-css.patch | 2 +- src/toolkit/themes/shared/popup-css.patch | 2 +- src/toolkit/themes/shared/tree/tree-css.patch | 2 +- .../signing/macos/mach_commands-py.patch | 4 +- src/widget/cocoa/nsCocoaWindow-mm.patch | 13 - 86 files changed, 374 insertions(+), 1233 deletions(-) delete mode 100644 src/firefox-patches/ff-145-tahoe-upgrade.patch delete mode 100644 src/widget/cocoa/nsCocoaWindow-mm.patch diff --git a/src/Cargo-lock.patch b/src/Cargo-lock.patch index 0f9223905..9d6b283dd 100644 --- a/src/Cargo-lock.patch +++ b/src/Cargo-lock.patch @@ -1,8 +1,8 @@ diff --git a/Cargo.lock b/Cargo.lock -index c079ef11880c5338c4498a0e5b3eb4cf4bfb6e02..ecd06b05381be740197c07c8cf0743dc882727f5 100644 +index 4386724a82baa72678b7228ef3af9fabc2da318e..01f7ac42ff96f8f96984537f19bde4bbc8cd8d72 100644 --- a/Cargo.lock +++ b/Cargo.lock -@@ -4069,8 +4069,6 @@ dependencies = [ +@@ -4167,8 +4167,6 @@ dependencies = [ [[package]] name = "mime_guess" version = "2.0.4" diff --git a/src/Cargo-toml.patch b/src/Cargo-toml.patch index 563622667..81b7afcbe 100644 --- a/src/Cargo-toml.patch +++ b/src/Cargo-toml.patch @@ -1,8 +1,8 @@ diff --git a/Cargo.toml b/Cargo.toml -index 2331ff5733d39e26c0a16301cb83d46ca970f632..777dbd5fb8546466e4a349772ccba254c7ffd691 100644 +index 772a74e7439d87e9c5486abcf003617240190710..522b5459b30b943832369ff7a73755ad4c7d8140 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -224,6 +224,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" } +@@ -227,6 +227,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" } # Workaround for https://github.com/rust-lang/cargo/issues/11232 rure = { path = "third_party/rust/rure" } diff --git a/src/browser/actors/WebRTCParent-sys-mjs.patch b/src/browser/actors/WebRTCParent-sys-mjs.patch index cee359785..7a99c8301 100644 --- a/src/browser/actors/WebRTCParent-sys-mjs.patch +++ b/src/browser/actors/WebRTCParent-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs -index 80fd2177c7112c958ff51bbf7a18ebea39e50fbf..24f62810901dc558e25ee874bd49736bd64fd358 100644 +index 4ff6ae4d6f272936f0aa1c80a488df16159b42f2..85e4d7bf500603fcd5724658e96c7fd0a04432d3 100644 --- a/browser/actors/WebRTCParent.sys.mjs +++ b/browser/actors/WebRTCParent.sys.mjs @@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent { diff --git a/src/browser/base/content/browser-commands-js.patch b/src/browser/base/content/browser-commands-js.patch index b6d37eec0..a475e0749 100644 --- a/src/browser/base/content/browser-commands-js.patch +++ b/src/browser/base/content/browser-commands-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js -index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4954b8b94 100644 +index 939ca497b882b3f4200141ba1b6764fb5c846f45..36c830a503b004c0a332340f686c86cad68e9381 100644 --- a/browser/base/content/browser-commands.js +++ b/browser/base/content/browser-commands.js -@@ -317,6 +317,10 @@ var BrowserCommands = { +@@ -315,6 +315,10 @@ var BrowserCommands = { } } @@ -13,7 +13,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4 // A notification intended to be useful for modular peformance tracking // starting as close as is reasonably possible to the time when the user // expressed the intent to open a new tab. Since there are a lot of -@@ -401,6 +405,11 @@ var BrowserCommands = { +@@ -399,6 +403,11 @@ var BrowserCommands = { return; } @@ -25,7 +25,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4 // Keyboard shortcuts that would close a tab that is pinned select the first // unpinned tab instead. if ( -@@ -408,8 +417,8 @@ var BrowserCommands = { +@@ -406,8 +415,8 @@ var BrowserCommands = { (event.ctrlKey || event.metaKey || event.altKey) && gBrowser.selectedTab.pinned ) { diff --git a/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch b/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch index db1354d84..ce5b0041f 100644 --- a/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch +++ b/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js -index b41449d4c4bc373a4c9cf449c0bb370bfdbc20d6..f1166929397dd39b7f44bd9cb0d62a45d67f0e1d 100644 +index bef746dc594ad974c91075cf3657c199f8f8830f..bb671341b6715c42df76f7298ba55e1fac73f33b 100644 --- a/browser/base/content/browser-fullScreenAndPointerLock.js +++ b/browser/base/content/browser-fullScreenAndPointerLock.js -@@ -427,10 +427,10 @@ var FullScreen = { +@@ -424,10 +424,10 @@ var FullScreen = { gNavToolbox.classList.toggle("fullscreen-with-menubar", shiftSize > 0); let transform = shiftSize > 0 ? `translateY(${shiftSize}px)` : ""; diff --git a/src/browser/base/content/browser-js.patch b/src/browser/base/content/browser-js.patch index 374b89d06..8d2658275 100644 --- a/src/browser/base/content/browser-js.patch +++ b/src/browser/base/content/browser-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js -index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64225e42b0 100644 +index b4b79e7fb3228ba91bd8afa08659be0d88883725..9e1d59b6a736107e55bda73686a4a627e4c0ba7c 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, { @@ -10,7 +10,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64 DevToolsSocketStatus: "resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs", DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs", -@@ -2293,6 +2294,8 @@ var XULBrowserWindow = { +@@ -2298,6 +2299,8 @@ var XULBrowserWindow = { AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser); TranslationsParent.onLocationChange(gBrowser.selectedBrowser); @@ -19,7 +19,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64 PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser); if (!gMultiProcessBrowser) { -@@ -3795,7 +3798,7 @@ function warnAboutClosingWindow() { +@@ -3809,7 +3812,7 @@ function warnAboutClosingWindow() { if (!isPBWindow && !toolbar.visible) { return gBrowser.warnAboutClosingTabs( @@ -28,7 +28,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64 gBrowser.closingTabsEnum.ALL ); } -@@ -3835,7 +3838,7 @@ function warnAboutClosingWindow() { +@@ -3849,7 +3852,7 @@ function warnAboutClosingWindow() { return ( isPBWindow || gBrowser.warnAboutClosingTabs( @@ -37,7 +37,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64 gBrowser.closingTabsEnum.ALL ) ); -@@ -3860,7 +3863,7 @@ function warnAboutClosingWindow() { +@@ -3874,7 +3877,7 @@ function warnAboutClosingWindow() { AppConstants.platform != "macosx" || isPBWindow || gBrowser.warnAboutClosingTabs( @@ -46,7 +46,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64 gBrowser.closingTabsEnum.ALL ) ); -@@ -4782,6 +4785,9 @@ var ConfirmationHint = { +@@ -4796,6 +4799,9 @@ var ConfirmationHint = { MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl"); MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl"); document.l10n.setAttributes(this._message, messageId, options.l10nArgs); diff --git a/src/browser/base/content/browser-places-js.patch b/src/browser/base/content/browser-places-js.patch index 5425bd91e..8fb826e25 100644 --- a/src/browser/base/content/browser-places-js.patch +++ b/src/browser/base/content/browser-places-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js -index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93fa2a4d56 100644 +index 3bd7b8f6025a7df4ce5cfb66916125bce9ef3991..c408ef829b7540aec72b2307e5d4bfa34109d6cd 100644 --- a/browser/base/content/browser-places.js +++ b/browser/base/content/browser-places.js -@@ -252,6 +252,8 @@ var StarUI = { +@@ -249,6 +249,8 @@ var StarUI = { }); } @@ -11,7 +11,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93 let onPanelReady = fn => { let target = this.panel; if (target.parentNode) { -@@ -303,6 +305,21 @@ var StarUI = { +@@ -300,6 +302,21 @@ var StarUI = { } }, @@ -33,7 +33,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93 removeBookmarkButtonCommand: function SU_removeBookmarkButtonCommand() { this._removeBookmarksOnPopupHidden = true; this.panel.hidePopup(); -@@ -1800,6 +1817,7 @@ var BookmarkingUI = { +@@ -1797,6 +1814,7 @@ var BookmarkingUI = { document.getElementById("context-bookmarkpage"), PanelMultiView.getViewNode(document, "panelMenuBookmarkThisPage"), document.getElementById("pageAction-panel-bookmark"), diff --git a/src/browser/base/content/browser-siteIdentity-js.patch b/src/browser/base/content/browser-siteIdentity-js.patch index ac751474b..694f10ecd 100644 --- a/src/browser/base/content/browser-siteIdentity-js.patch +++ b/src/browser/base/content/browser-siteIdentity-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js -index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af5fbb5fb2 100644 +index 8369e546866aa313e62f808acb8d51afa8da4f9b..7a4b20dd5922425cebfac542893a52cd68a26449 100644 --- a/browser/base/content/browser-siteIdentity.js +++ b/browser/base/content/browser-siteIdentity.js -@@ -453,11 +453,6 @@ var gIdentityHandler = { +@@ -451,11 +451,6 @@ var gIdentityHandler = { // avoid a pretty ugly transition. Also hide it even // if the update resulted in no site data, to keep the // illusion that clicking the button had an effect. @@ -14,7 +14,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host); if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) { -@@ -834,7 +829,7 @@ var gIdentityHandler = { +@@ -832,7 +827,7 @@ var gIdentityHandler = { // This is a secure internal Firefox page. this._identityBox.className = "chromeUI"; let brandBundle = document.getElementById("bundle_brand"); @@ -23,7 +23,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af } else if (this._pageExtensionPolicy) { // This is a WebExtension page. this._identityBox.className = "extensionPage"; -@@ -1163,6 +1158,12 @@ var gIdentityHandler = { +@@ -1161,6 +1156,12 @@ var gIdentityHandler = { } } diff --git a/src/browser/base/content/browser-xhtml.patch b/src/browser/base/content/browser-xhtml.patch index 413da9a2a..8b473bbd3 100644 --- a/src/browser/base/content/browser-xhtml.patch +++ b/src/browser/base/content/browser-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml -index ffddea280e2edffa2531b4b129489c2be0e2c3d2..f03db9e2db0dec06f997740337f28e76a08a3bdb 100644 +index 246d23a77960d25f78b163429a3ed28c7180ccd7..1c26485d8464413689767c8a38aadbcadcecae4d 100644 --- a/browser/base/content/browser.xhtml +++ b/browser/base/content/browser.xhtml @@ -19,6 +19,7 @@ diff --git a/src/browser/base/content/main-popupset-inc-xhtml.patch b/src/browser/base/content/main-popupset-inc-xhtml.patch index 45cdf904f..9adb099f4 100644 --- a/src/browser/base/content/main-popupset-inc-xhtml.patch +++ b/src/browser/base/content/main-popupset-inc-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml -index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadcb66d1e16 100644 +index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18b8dffccd 100644 --- a/browser/base/content/main-popupset.inc.xhtml +++ b/browser/base/content/main-popupset.inc.xhtml @@ -208,6 +208,10 @@ @@ -21,7 +21,7 @@ index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadc -@@ -615,6 +620,8 @@ +@@ -628,6 +633,8 @@ #include popup-notifications.inc.xhtml diff --git a/src/browser/base/content/navigator-toolbox-js.patch b/src/browser/base/content/navigator-toolbox-js.patch index 829800da2..9dc57d082 100644 --- a/src/browser/base/content/navigator-toolbox-js.patch +++ b/src/browser/base/content/navigator-toolbox-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js -index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e455356b4a 100644 +index 7b776b15d52367a008ce6bf53dcfcbbe007b7453..d9a3404905b73db7c8f202ab166d5f3c625351f6 100644 --- a/browser/base/content/navigator-toolbox.js +++ b/browser/base/content/navigator-toolbox.js -@@ -8,7 +8,7 @@ +@@ -6,7 +6,7 @@ document.addEventListener( "DOMContentLoaded", () => { @@ -11,7 +11,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4 const widgetOverflow = document.getElementById("widget-overflow"); function onPopupShowing(event) { -@@ -187,6 +187,7 @@ document.addEventListener( +@@ -185,6 +185,7 @@ document.addEventListener( #reload-button , #urlbar-go-button, #reader-mode-button, @@ -19,7 +19,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4 #picture-in-picture-button, #urlbar-zoom-button, #star-button-box, -@@ -208,6 +209,7 @@ document.addEventListener( +@@ -206,6 +207,7 @@ document.addEventListener( case "vertical-tabs-newtab-button": case "tabs-newtab-button": case "new-tab-button": @@ -27,7 +27,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4 gBrowser.handleNewTabMiddleClick(element, event); break; -@@ -317,7 +319,7 @@ document.addEventListener( +@@ -315,7 +317,7 @@ document.addEventListener( #pageActionButton, #downloads-button, #fxa-toolbar-menu-button, @@ -36,7 +36,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4 #library-button `); if (!element) { -@@ -396,7 +398,7 @@ document.addEventListener( +@@ -394,7 +396,7 @@ document.addEventListener( gSync.toggleAccountPanel(element, event); break; diff --git a/src/browser/base/content/nsContextMenu-sys-mjs.patch b/src/browser/base/content/nsContextMenu-sys-mjs.patch index d5ddb503a..d705ed870 100644 --- a/src/browser/base/content/nsContextMenu-sys-mjs.patch +++ b/src/browser/base/content/nsContextMenu-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs -index b4fe996f9685a085c14324a35a1d51e2fed569b7..c83d5e9bf92f8f2e3d96b121ba3b758dd124393b 100644 +index 259b440375c7e84d373a134fea20cdbc1c1bae4b..a9ce22a2391b4ec0bf82ceedd35f4c9d9626bb28 100644 --- a/browser/base/content/nsContextMenu.sys.mjs +++ b/browser/base/content/nsContextMenu.sys.mjs -@@ -1105,6 +1105,8 @@ export class nsContextMenu { +@@ -1104,6 +1104,8 @@ export class nsContextMenu { !this.isSecureAboutPage() ); diff --git a/src/browser/components/BrowserGlue-sys-mjs.patch b/src/browser/components/BrowserGlue-sys-mjs.patch index 7d280fdcd..1b6d97eba 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 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b097351d60 100644 +index f1cabb13ca4f86a2bafc1d93b7f882218a108eb2..2389b1addf24d17bd41fca65cfeb6f944479076d 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 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0 AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs", AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs", ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs", -@@ -1458,7 +1459,7 @@ BrowserGlue.prototype = { +@@ -1452,7 +1453,7 @@ BrowserGlue.prototype = { windowcount++; let tabbrowser = win.gBrowser; if (tabbrowser) { @@ -19,7 +19,7 @@ index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0 } } -@@ -1623,6 +1624,8 @@ BrowserGlue.prototype = { +@@ -1617,6 +1618,8 @@ BrowserGlue.prototype = { } else if (profileDataVersion < APP_DATA_VERSION) { lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION); } diff --git a/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch b/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch index d2dabc56e..7bf648687 100644 --- a/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch +++ b/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs -index 2a2c5a6fe903694abbac0be86c7b3c8adc1d0275..5571b827198474a2635a9bd968adbc8c96dbc353 100644 +index 4ea9c9e88a1831dad7e42ebd8d0dd507102e8280..316aa626e525f05caac7f315e0ea7ae9d822b6af 100644 --- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs +++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs -@@ -776,6 +776,7 @@ export class FeatureCallout { +@@ -777,6 +777,7 @@ export class FeatureCallout { ) { return false; } diff --git a/src/browser/components/customizableui/content/panelUI-inc-xhtml.patch b/src/browser/components/customizableui/content/panelUI-inc-xhtml.patch index 1fb4adb95..2bf8a2602 100644 --- a/src/browser/components/customizableui/content/panelUI-inc-xhtml.patch +++ b/src/browser/components/customizableui/content/panelUI-inc-xhtml.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml -index 85acb96a3deefed708ea768b2f163e7fd6480b97..bb3aed53758da7dafcfed4492acb0cbf2b80cd2f 100644 +index 6cb22be6526b17d952a90fd414c49a31e9afde7a..84f8156e88027a79a40f14c77c83d6a2d19c8a72 100644 --- a/browser/components/customizableui/content/panelUI.inc.xhtml +++ b/browser/components/customizableui/content/panelUI.inc.xhtml -@@ -132,7 +132,7 @@ +@@ -139,7 +139,7 @@ window.requestAnimationFrame(resolve)); if (!this._isAlive) { -@@ -1086,6 +1103,8 @@ class PlacesToolbar extends PlacesViewBase { +@@ -1120,6 +1137,8 @@ class PlacesToolbar extends PlacesViewBase { "scheme", PlacesUIUtils.guessUrlSchemeForUI(aChild.uri) ); @@ -119,7 +119,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e } } -@@ -2234,7 +2253,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase { +@@ -2268,7 +2287,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase { PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri) ); element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode)); diff --git a/src/browser/components/preferences/main-inc-xhtml.patch b/src/browser/components/preferences/main-inc-xhtml.patch index 5568e6b8a..a0683e114 100644 --- a/src/browser/components/preferences/main-inc-xhtml.patch +++ b/src/browser/components/preferences/main-inc-xhtml.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml -index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615fad5e0760 100644 +index ff577c035ff6128f7ae948bc810082c92b3a624c..40f94fff53c63bdff28eaa68f9b0736d53c5b4f8 100644 --- a/browser/components/preferences/main.inc.xhtml +++ b/browser/components/preferences/main.inc.xhtml -@@ -189,7 +194,8 @@ +@@ -141,7 +141,8 @@ -@@ -420,6 +426,7 @@ +@@ -346,6 +347,7 @@ languages-customize-add.label, " /> diff --git a/src/browser/components/preferences/preferences-xhtml.patch b/src/browser/components/preferences/preferences-xhtml.patch index 8e8ee9e12..4227b80db 100644 --- a/src/browser/components/preferences/preferences-xhtml.patch +++ b/src/browser/components/preferences/preferences-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml -index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222bb88a64b 100644 +index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d2c4a0c92 100644 --- a/browser/components/preferences/preferences.xhtml +++ b/browser/components/preferences/preferences.xhtml @@ -45,6 +45,8 @@ @@ -11,7 +11,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222 -@@ -106,6 +108,11 @@ +@@ -109,6 +111,11 @@ @@ -23,7 +23,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222 @@ -74,7 +74,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222 @@ -86,7 +86,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222 -@@ -247,6 +293,10 @@ +@@ -250,6 +296,10 @@ #include sync.inc.xhtml #include experimental.inc.xhtml #include moreFromMozilla.inc.xhtml diff --git a/src/browser/components/preferences/sync-inc-xhtml.patch b/src/browser/components/preferences/sync-inc-xhtml.patch index d712db631..406ca8fe2 100644 --- a/src/browser/components/preferences/sync-inc-xhtml.patch +++ b/src/browser/components/preferences/sync-inc-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml -index e59c536fc2fa06b11be9378a28285ac16fd16958..cf17ee3b6347b950fcf5bf260cd0631c77ffd1d3 100644 +index 31b95644f820eda3267d3b52913ed0845abc1c80..1c8869418f7c88ed33601860dafd2c4eb0d5731f 100644 --- a/browser/components/preferences/sync.inc.xhtml +++ b/browser/components/preferences/sync.inc.xhtml @@ -223,6 +223,10 @@ diff --git a/src/browser/components/search/SearchUIUtils-sys-mjs.patch b/src/browser/components/search/SearchUIUtils-sys-mjs.patch index c384b1151..fbe2c38aa 100644 --- a/src/browser/components/search/SearchUIUtils-sys-mjs.patch +++ b/src/browser/components/search/SearchUIUtils-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs -index 55f90f4e802480728bbd5ef962b507183e017997..2a83f861fe6edee2b127c8d7946abcdcdbf677f5 100644 +index 15fdb0cd7664c2b49977902d7f4c7a117d82cf15..6aedbc18de6604b63b2586e7d9745a4c4e7e38ae 100644 --- a/browser/components/search/SearchUIUtils.sys.mjs +++ b/browser/components/search/SearchUIUtils.sys.mjs -@@ -430,7 +430,7 @@ export var SearchUIUtils = { +@@ -434,7 +434,7 @@ export var SearchUIUtils = { triggeringSearchEngine: engine.name, }, }); diff --git a/src/browser/components/sessionstore/SessionStore-sys-mjs.patch b/src/browser/components/sessionstore/SessionStore-sys-mjs.patch index 79c5bcfcf..df250c095 100644 --- a/src/browser/components/sessionstore/SessionStore-sys-mjs.patch +++ b/src/browser/components/sessionstore/SessionStore-sys-mjs.patch @@ -1,17 +1,17 @@ diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs -index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d89fb95494 100644 +index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..f13ed1412bb7ae6623aa2605d7691d10540eb659 100644 --- a/browser/components/sessionstore/SessionStore.sys.mjs +++ b/browser/components/sessionstore/SessionStore.sys.mjs -@@ -126,6 +126,8 @@ const TAB_EVENTS = [ - "TabUngrouped", +@@ -127,6 +127,8 @@ const TAB_EVENTS = [ "TabGroupCollapse", "TabGroupExpand", + "TabSplitViewActivate", + "TabAddedToEssentials", + "TabRemovedFromEssentials", ]; const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; -@@ -1904,6 +1906,8 @@ var SessionStoreInternal = { +@@ -1911,6 +1913,8 @@ var SessionStoreInternal = { case "TabPinned": case "TabUnpinned": case "SwapDocShells": @@ -20,7 +20,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 this.saveStateDelayed(win); break; case "TabGroupCreate": -@@ -2139,7 +2143,6 @@ var SessionStoreInternal = { +@@ -2151,7 +2155,6 @@ var SessionStoreInternal = { if (closedWindowState) { let newWindowState; if ( @@ -28,7 +28,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 !lazy.SessionStartup.willRestore() ) { // We want to split the window up into pinned tabs and unpinned tabs. -@@ -2372,11 +2375,9 @@ var SessionStoreInternal = { +@@ -2384,11 +2387,9 @@ var SessionStoreInternal = { tabbrowser.selectedTab.label; } @@ -40,7 +40,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 // Store the window's close date to figure out when each individual tab // was closed. This timestamp should allow re-arranging data based on how -@@ -3361,7 +3362,7 @@ var SessionStoreInternal = { +@@ -3373,7 +3374,7 @@ var SessionStoreInternal = { if (!isPrivateWindow && tabState.isPrivate) { return; } @@ -49,7 +49,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 return; } -@@ -4073,6 +4074,11 @@ var SessionStoreInternal = { +@@ -4089,6 +4090,11 @@ var SessionStoreInternal = { Math.min(tabState.index, tabState.entries.length) ); tabState.pinned = false; @@ -61,7 +61,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 if (inBackground === false) { aWindow.gBrowser.selectedTab = newTab; -@@ -4509,6 +4515,7 @@ var SessionStoreInternal = { +@@ -4525,6 +4531,7 @@ var SessionStoreInternal = { // Append the tab if we're opening into a different window, tabIndex: aSource == aTargetWindow ? pos : Infinity, pinned: state.pinned, @@ -69,7 +69,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 userContextId: state.userContextId, skipLoad: true, preferredRemoteType, -@@ -5358,7 +5365,7 @@ var SessionStoreInternal = { +@@ -5374,7 +5381,7 @@ var SessionStoreInternal = { for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) { let tab = tabbrowser.tabs[i]; @@ -78,7 +78,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 removableTabs.push(tab); } } -@@ -5418,7 +5425,7 @@ var SessionStoreInternal = { +@@ -5434,7 +5441,7 @@ var SessionStoreInternal = { } let workspaceID = aWindow.getWorkspaceID(); @@ -87,7 +87,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 winData.workspaceID = workspaceID; } }, -@@ -5609,11 +5616,12 @@ var SessionStoreInternal = { +@@ -5625,11 +5632,12 @@ var SessionStoreInternal = { } let tabbrowser = aWindow.gBrowser; @@ -101,7 +101,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 // update the internal state data for this window for (let tab of tabs) { if (tab == aWindow.FirefoxViewHandler.tab) { -@@ -5624,6 +5632,7 @@ var SessionStoreInternal = { +@@ -5640,6 +5648,7 @@ var SessionStoreInternal = { tabsData.push(tabData); } @@ -109,7 +109,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 // update tab group state for this window winData.groups = []; for (let tabGroup of aWindow.gBrowser.tabGroups) { -@@ -5636,7 +5645,7 @@ var SessionStoreInternal = { +@@ -5652,7 +5661,7 @@ var SessionStoreInternal = { // a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab, // since it's only inserted into the tab strip after it's selected). if (aWindow.FirefoxViewHandler.tab?.selected) { @@ -118,7 +118,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 winData.title = tabbrowser.tabs[0].label; } winData.selected = selectedIndex; -@@ -5748,8 +5757,8 @@ var SessionStoreInternal = { +@@ -5764,8 +5773,8 @@ var SessionStoreInternal = { // selectTab represents. let selectTab = 0; if (overwriteTabs) { @@ -129,7 +129,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 selectTab = Math.min(selectTab, winData.tabs.length); } -@@ -5792,6 +5801,8 @@ var SessionStoreInternal = { +@@ -5808,6 +5817,8 @@ var SessionStoreInternal = { winData.tabs, winData.groups ?? [] ); @@ -138,7 +138,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 this._log.debug( `restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs` ); -@@ -6348,6 +6359,25 @@ var SessionStoreInternal = { +@@ -6371,6 +6382,25 @@ var SessionStoreInternal = { // Most of tabData has been restored, now continue with restoring // attributes that may trigger external events. @@ -164,7 +164,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8 if (tabData.pinned) { tabbrowser.pinTab(tab); -@@ -7263,7 +7293,7 @@ var SessionStoreInternal = { +@@ -7289,7 +7319,7 @@ var SessionStoreInternal = { let groupsToSave = new Map(); for (let tIndex = 0; tIndex < window.tabs.length; ) { diff --git a/src/browser/components/sidebar/browser-sidebar-js.patch b/src/browser/components/sidebar/browser-sidebar-js.patch index a04592bf8..215f98bae 100644 --- a/src/browser/components/sidebar/browser-sidebar-js.patch +++ b/src/browser/components/sidebar/browser-sidebar-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js -index c4edb5442e5243b7d9fe35e1774b2fc651903601..d58076fedafe07d3401ab1723eaa837fabbae09f 100644 +index 220c3c83fa09daaec433803a4655a20114a137a6..1ef8adc3ecfa61839bb993f7fc090133bffe77db 100644 --- a/browser/components/sidebar/browser-sidebar.js +++ b/browser/components/sidebar/browser-sidebar.js -@@ -779,7 +779,7 @@ var SidebarController = { +@@ -793,7 +793,7 @@ var SidebarController = { setPosition() { // First reset all ordinals to match DOM ordering. let contentArea = document.getElementById("tabbrowser-tabbox"); diff --git a/src/browser/components/tabbrowser/AsyncTabSwitcher-sys-mjs.patch b/src/browser/components/tabbrowser/AsyncTabSwitcher-sys-mjs.patch index 99f83d192..eba2ec3d1 100644 --- a/src/browser/components/tabbrowser/AsyncTabSwitcher-sys-mjs.patch +++ b/src/browser/components/tabbrowser/AsyncTabSwitcher-sys-mjs.patch @@ -1,10 +1,10 @@ diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs -index 773f595e89e268578ba153907babec95b58a155a..7cb99cde00c19f50fd9aa48ab1efcfaeaef89771 100644 +index bcd7689e9d68ef8b171c327188174334c4271e21..f69180acb87644f109aa91b871e347f1b1835f53 100644 --- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs +++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs -@@ -937,6 +937,7 @@ export class AsyncTabSwitcher { - return !( +@@ -938,6 +938,7 @@ export class AsyncTabSwitcher { this.tabbrowser._printPreviewBrowsers.has(browser) || + this.tabbrowser.splitViewBrowsers.includes(browser) || lazy.PictureInPicture.isOriginatingBrowser(browser) + || browser?.parentNode?.parentNode?.parentNode?.classList?.contains("zen-glance-background") ); diff --git a/src/browser/components/tabbrowser/TabsList-sys-mjs.patch b/src/browser/components/tabbrowser/TabsList-sys-mjs.patch index 5ac1788da..6a7c9e503 100644 --- a/src/browser/components/tabbrowser/TabsList-sys-mjs.patch +++ b/src/browser/components/tabbrowser/TabsList-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs -index 20a543dede6bf4428c8af19c5d0589788ddd8eaa..27a378e70f5b280b720c95ba8dac2cc4e88985be 100644 +index b394a980869d5e5df01b6afdd81e0f41c090e6ec..236c99db0dfa5ebcba50d55c1e4eb6ab7b8110b2 100644 --- a/browser/components/tabbrowser/TabsList.sys.mjs +++ b/browser/components/tabbrowser/TabsList.sys.mjs @@ -87,7 +87,7 @@ class TabsListBase { diff --git a/src/browser/components/tabbrowser/content/browser-ctrlTab-js.patch b/src/browser/components/tabbrowser/content/browser-ctrlTab-js.patch index cb6c9b42f..af58c3dd3 100644 --- a/src/browser/components/tabbrowser/content/browser-ctrlTab-js.patch +++ b/src/browser/components/tabbrowser/content/browser-ctrlTab-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js -index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3e8781666 100644 +index 958728cde19dd7cc24692baa89e11fcab816ab82..32e2b6af2536133f170bd5e14c47392ded8440eb 100644 --- a/browser/components/tabbrowser/content/browser-ctrlTab.js +++ b/browser/components/tabbrowser/content/browser-ctrlTab.js -@@ -252,7 +252,8 @@ var ctrlTab = { +@@ -249,7 +249,8 @@ var ctrlTab = { }, get tabList() { @@ -12,7 +12,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3 }, init: function ctrlTab_init() { -@@ -463,7 +464,7 @@ var ctrlTab = { +@@ -460,7 +461,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). @@ -21,7 +21,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3 return; } -@@ -487,7 +488,7 @@ var ctrlTab = { +@@ -484,7 +485,7 @@ var ctrlTab = { }, open: function ctrlTab_open() { @@ -30,7 +30,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3 return; } -@@ -765,7 +766,7 @@ var ctrlTab = { +@@ -763,7 +764,7 @@ var ctrlTab = { _initRecentlyUsedTabs() { this._recentlyUsedTabs = Array.prototype.filter.call( gBrowser.tabs, diff --git a/src/browser/components/tabbrowser/content/tab-js.patch b/src/browser/components/tabbrowser/content/tab-js.patch index 997098854..3452bced0 100644 --- a/src/browser/components/tabbrowser/content/tab-js.patch +++ b/src/browser/components/tabbrowser/content/tab-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js -index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362efc001afdd 100644 +index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 100644 --- a/browser/components/tabbrowser/content/tab.js +++ b/browser/components/tabbrowser/content/tab.js @@ -21,6 +21,7 @@ @@ -42,7 +42,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef ".tab-label-container": "pinned,selected=visuallyselected,labeldirection", ".tab-label": -@@ -184,7 +187,7 @@ +@@ -186,7 +189,7 @@ } set _visuallySelected(val) { @@ -51,7 +51,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef return; } -@@ -220,11 +223,21 @@ +@@ -222,11 +225,21 @@ } get visible() { @@ -78,7 +78,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef } get hidden() { -@@ -295,7 +308,7 @@ +@@ -297,7 +310,7 @@ return false; } @@ -87,7 +87,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef } get lastAccessed() { -@@ -372,8 +385,11 @@ +@@ -374,8 +387,11 @@ } get group() { @@ -101,7 +101,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef } return null; } -@@ -468,6 +484,8 @@ +@@ -470,6 +486,8 @@ this.style.MozUserFocus = "ignore"; } else if ( event.target.classList.contains("tab-close-button") || @@ -110,7 +110,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef event.target.classList.contains("tab-icon-overlay") || event.target.classList.contains("tab-audio-button") ) { -@@ -522,6 +540,10 @@ +@@ -524,6 +542,10 @@ this.style.MozUserFocus = ""; } @@ -121,7 +121,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef on_click(event) { if (event.button != 0) { return; -@@ -570,6 +592,7 @@ +@@ -572,6 +594,7 @@ ) ); } else { @@ -129,7 +129,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef gBrowser.removeTab(this, { animate: true, triggeringEvent: event, -@@ -582,6 +605,14 @@ +@@ -584,6 +607,14 @@ // (see tabbrowser-tabs 'click' handler). gBrowser.tabContainer._blockDblClick = true; } @@ -144,7 +144,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef } on_dblclick(event) { -@@ -605,6 +636,8 @@ +@@ -607,6 +638,8 @@ animate: true, triggeringEvent: event, }); diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch index 11561149a..407e111dc 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 c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394b7dbc6a7 100644 +index c0eafd4faf8d57b8486c5bf8917375850ec8147e..326bf96d9346aba7096d518fbf63cc349868d0d0 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js -@@ -432,15 +432,64 @@ +@@ -450,15 +450,64 @@ return this.tabContainer.visibleTabs; } @@ -69,7 +69,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 set selectedTab(val) { if ( gSharedTabWarning.willShowSharedTabWarning(val) || -@@ -588,6 +637,7 @@ +@@ -613,6 +662,7 @@ this.tabpanels.appendChild(panel); let tab = this.tabs[0]; @@ -77,7 +77,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 tab.linkedPanel = uniqueId; this._selectedTab = tab; this._selectedBrowser = browser; -@@ -873,13 +923,17 @@ +@@ -898,13 +948,17 @@ } this.showTab(aTab); @@ -96,7 +96,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 aTab.setAttribute("pinned", "true"); this._updateTabBarForPinnedTabs(); -@@ -892,11 +946,15 @@ +@@ -917,11 +971,15 @@ } this.#handleTabMove(aTab, () => { @@ -113,7 +113,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 }); aTab.style.marginInlineStart = ""; -@@ -1073,6 +1131,8 @@ +@@ -1098,6 +1156,8 @@ let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"]; @@ -122,7 +122,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if ( aIconURL && !LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol)) -@@ -1082,6 +1142,9 @@ +@@ -1107,6 +1167,9 @@ ); return; } @@ -132,7 +132,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 let browser = this.getBrowserForTab(aTab); browser.mIconURL = aIconURL; -@@ -1445,6 +1508,7 @@ +@@ -1470,6 +1533,7 @@ if (!this._previewMode) { newTab.recordTimeFromUnloadToReload(); newTab.updateLastAccessed(); @@ -140,7 +140,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 oldTab.updateLastAccessed(); // if this is the foreground window, update the last-seen timestamps. if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) { -@@ -1597,6 +1661,9 @@ +@@ -1622,6 +1686,9 @@ } let activeEl = document.activeElement; @@ -150,7 +150,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // If focus is on the old tab, move it to the new tab. if (activeEl == oldTab) { newTab.focus(); -@@ -1920,7 +1987,8 @@ +@@ -1945,7 +2012,8 @@ } _setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) { @@ -160,7 +160,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 return false; } -@@ -2028,7 +2096,7 @@ +@@ -2053,7 +2121,7 @@ newIndex = this.selectedTab._tPos + 1; } @@ -169,7 +169,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (this.isTabGroupLabel(targetTab)) { throw new Error( "Replacing a tab group label with a tab is not supported" -@@ -2303,6 +2371,7 @@ +@@ -2328,6 +2396,7 @@ uriIsAboutBlank, userContextId, skipLoad, @@ -177,7 +177,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } = {}) { let b = document.createXULElement("browser"); // Use the JSM global to create the permanentKey, so that if the -@@ -2376,8 +2445,7 @@ +@@ -2401,8 +2470,7 @@ // we use a different attribute name for this? b.setAttribute("name", name); } @@ -187,7 +187,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 b.setAttribute("transparent", "true"); } -@@ -2542,7 +2610,7 @@ +@@ -2567,7 +2635,7 @@ let panel = this.getPanel(browser); let uniqueId = this._generateUniquePanelID(); @@ -196,7 +196,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 aTab.linkedPanel = uniqueId; // Inject the into the DOM if necessary. -@@ -2601,8 +2669,8 @@ +@@ -2626,8 +2694,8 @@ // If we transitioned from one browser to two browsers, we need to set // hasSiblings=false on both the existing browser and the new browser. if (this.tabs.length == 2) { @@ -207,7 +207,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } else { aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1; } -@@ -2779,7 +2847,6 @@ +@@ -2814,7 +2882,6 @@ this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, { tabIndex: tab._tPos + 1, userContextId: tab.userContextId, @@ -215,7 +215,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 focusUrlBar: true, }); resolve(this.selectedBrowser); -@@ -2859,6 +2926,8 @@ +@@ -2923,6 +2990,8 @@ schemelessInput, hasValidUserGestureActivation = false, textDirectiveUserActivation = false, @@ -224,7 +224,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } = {} ) { // all callers of addTab that pass a params object need to pass -@@ -2869,6 +2938,12 @@ +@@ -2933,6 +3002,12 @@ ); } @@ -237,7 +237,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (!UserInteraction.running("browser.tabs.opening", window)) { UserInteraction.start("browser.tabs.opening", "initting", window); } -@@ -2932,6 +3007,19 @@ +@@ -2996,6 +3071,19 @@ noInitialLabel, skipBackgroundNotify, }); @@ -257,7 +257,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (insertTab) { // Insert the tab into the tab container in the correct position. this.#insertTabAtIndex(t, { -@@ -2940,6 +3028,7 @@ +@@ -3004,6 +3092,7 @@ ownerTab, openerTab, pinned, @@ -265,7 +265,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 bulkOrderedOpen, tabGroup: tabGroup ?? openerTab?.group, }); -@@ -2958,6 +3047,7 @@ +@@ -3022,6 +3111,7 @@ openWindowInfo, skipLoad, triggeringRemoteType, @@ -273,7 +273,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 })); if (focusUrlBar) { -@@ -3078,6 +3168,12 @@ +@@ -3146,6 +3236,12 @@ } } @@ -286,7 +286,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // Additionally send pinned tab events if (pinned) { this.#notifyPinnedStatus(t); -@@ -3248,10 +3344,10 @@ +@@ -3330,10 +3426,10 @@ isAdoptingGroup = false, isUserTriggered = false, telemetryUserCreateSource = "unknown", @@ -298,7 +298,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } if (!color) { -@@ -3272,9 +3368,14 @@ +@@ -3354,9 +3450,14 @@ label, isAdoptingGroup ); @@ -315,7 +315,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 ); group.addTabs(tabs); -@@ -3395,7 +3496,7 @@ +@@ -3477,7 +3578,7 @@ } this.#handleTabMove(tab, () => @@ -324,7 +324,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 ); } -@@ -3597,6 +3698,7 @@ +@@ -3679,6 +3780,7 @@ openWindowInfo, skipLoad, triggeringRemoteType, @@ -332,7 +332,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } ) { // If we don't have a preferred remote type (or it is `NOT_REMOTE`), and -@@ -3666,6 +3768,7 @@ +@@ -3748,6 +3850,7 @@ openWindowInfo, name, skipLoad, @@ -340,7 +340,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 }); } -@@ -3853,7 +3956,7 @@ +@@ -3935,7 +4038,7 @@ // Add a new tab if needed. if (!tab) { let createLazyBrowser = @@ -349,7 +349,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 let url = "about:blank"; if (tabData.entries?.length) { -@@ -3890,8 +3993,10 @@ +@@ -3972,8 +4075,10 @@ insertTab: false, skipLoad: true, preferredRemoteType, @@ -361,7 +361,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (select) { tabToSelect = tab; } -@@ -3903,7 +4008,8 @@ +@@ -3985,7 +4090,8 @@ this.pinTab(tab); // Then ensure all the tab open/pinning information is sent. this._fireTabOpen(tab, {}); @@ -371,7 +371,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 let { groupId } = tabData; const tabGroup = tabGroupWorkingData.get(groupId); // if a tab refers to a tab group we don't know, skip any group -@@ -3917,7 +4023,10 @@ +@@ -3999,7 +4105,10 @@ tabGroup.stateData.id, tabGroup.stateData.color, tabGroup.stateData.collapsed, @@ -383,7 +383,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 ); tabsFragment.appendChild(tabGroup.node); } -@@ -3962,9 +4071,23 @@ +@@ -4044,9 +4153,23 @@ // to remove the old selected tab. if (tabToSelect) { let leftoverTab = this.selectedTab; @@ -407,7 +407,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (tabs.length > 1 || !tabs[0].selected) { this._updateTabsAfterInsert(); -@@ -4155,11 +4278,14 @@ +@@ -4237,11 +4360,14 @@ if (ownerTab) { tab.owner = ownerTab; } @@ -423,7 +423,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if ( !bulkOrderedOpen && ((openerTab && -@@ -4171,7 +4297,7 @@ +@@ -4253,7 +4379,7 @@ let lastRelatedTab = openerTab && this._lastRelatedTabMap.get(openerTab); let previousTab = lastRelatedTab || openerTab || this.selectedTab; @@ -432,7 +432,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 tabGroup = previousTab.group; } if ( -@@ -4182,7 +4308,7 @@ +@@ -4264,7 +4390,7 @@ ) { elementIndex = Infinity; } else if (previousTab.visible) { @@ -441,7 +441,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } else if (previousTab == FirefoxViewHandler.tab) { elementIndex = 0; } -@@ -4210,14 +4336,14 @@ +@@ -4292,14 +4418,14 @@ } // Ensure index is within bounds. if (tab.pinned) { @@ -460,7 +460,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (pinned && !itemAfter?.pinned) { itemAfter = null; -@@ -4228,7 +4354,7 @@ +@@ -4310,7 +4436,7 @@ this.tabContainer._invalidateCachedTabs(); @@ -469,7 +469,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (this.isTab(itemAfter) && itemAfter.group == tabGroup) { // Place at the front of, or between tabs in, the same tab group this.tabContainer.insertBefore(tab, itemAfter); -@@ -4264,6 +4390,7 @@ +@@ -4346,6 +4472,7 @@ if (pinned) { this._updateTabBarForPinnedTabs(); } @@ -477,7 +477,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 TabBarVisibility.update(); } -@@ -4553,6 +4680,9 @@ +@@ -4635,6 +4762,9 @@ return; } @@ -487,7 +487,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource }); } -@@ -4814,6 +4944,7 @@ +@@ -4896,6 +5026,7 @@ telemetrySource, } = {} ) { @@ -495,7 +495,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // When 'closeWindowWithLastTab' pref is enabled, closing all tabs // can be considered equivalent to closing the window. if ( -@@ -4903,6 +5034,7 @@ +@@ -4985,6 +5116,7 @@ if (lastToClose) { this.removeTab(lastToClose, aParams); } @@ -503,7 +503,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } catch (e) { console.error(e); } -@@ -4941,6 +5073,12 @@ +@@ -5023,6 +5155,12 @@ aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start(); } @@ -516,7 +516,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // Handle requests for synchronously removing an already // asynchronously closing tab. if (!animate && aTab.closing) { -@@ -4955,6 +5093,9 @@ +@@ -5037,6 +5175,9 @@ // state). let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let isLastTab = this.#isLastTabInWindow(aTab); @@ -526,7 +526,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if ( !this._beginRemoveTab(aTab, { closeWindowFastpath: true, -@@ -5003,7 +5144,13 @@ +@@ -5085,7 +5226,13 @@ // We're not animating, so we can cancel the animation stopwatch. Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId); aTab._closeTimeAnimTimerId = null; @@ -541,7 +541,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 return; } -@@ -5137,7 +5284,7 @@ +@@ -5219,7 +5366,7 @@ closeWindowWithLastTab != null ? closeWindowWithLastTab : !window.toolbar.visible || @@ -550,7 +550,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (closeWindow) { // We've already called beforeunload on all the relevant tabs if we get here, -@@ -5161,6 +5308,7 @@ +@@ -5243,6 +5390,7 @@ newTab = true; } @@ -558,7 +558,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 aTab._endRemoveArgs = [closeWindow, newTab]; // swapBrowsersAndCloseOther will take care of closing the window without animation. -@@ -5201,13 +5349,7 @@ +@@ -5283,13 +5431,7 @@ aTab._mouseleave(); if (newTab) { @@ -573,7 +573,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } else { TabBarVisibility.update(); } -@@ -5340,6 +5482,7 @@ +@@ -5422,6 +5564,7 @@ this.tabs[i]._tPos = i; } @@ -581,7 +581,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (!this._windowIsClosing) { // update tab close buttons state this.tabContainer._updateCloseButtons(); -@@ -5552,6 +5695,7 @@ +@@ -5643,6 +5786,7 @@ } let excludeTabs = new Set(aExcludeTabs); @@ -589,7 +589,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // If this tab has a successor, it should be selectable, since // hiding or closing a tab removes that tab as a successor. -@@ -5564,13 +5708,13 @@ +@@ -5655,13 +5799,13 @@ !excludeTabs.has(aTab.owner) && Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") ) { @@ -605,7 +605,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 ); let tab = this.tabContainer.findNextTab(aTab, { -@@ -5586,7 +5730,7 @@ +@@ -5677,7 +5821,7 @@ } if (tab) { @@ -614,7 +614,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } // If no qualifying visible tab was found, see if there is a tab in -@@ -5607,7 +5751,7 @@ +@@ -5698,7 +5842,7 @@ }); } @@ -623,7 +623,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } _blurTab(aTab) { -@@ -6013,10 +6157,10 @@ +@@ -6104,10 +6248,10 @@ SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); } @@ -636,7 +636,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 aTab.selected || aTab.closing || // Tabs that are sharing the screen, microphone or camera cannot be hidden. -@@ -6075,6 +6219,7 @@ +@@ -6166,6 +6310,7 @@ * @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab */ replaceTabWithWindow(aTab, aOptions) { @@ -644,7 +644,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (this.tabs.length == 1) { return null; } -@@ -6208,7 +6353,7 @@ +@@ -6299,7 +6444,7 @@ * `true` if element is a `` */ isTabGroup(element) { @@ -653,7 +653,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } /** -@@ -6284,8 +6429,8 @@ +@@ -6375,8 +6520,8 @@ } // Don't allow mixing pinned and unpinned tabs. @@ -664,7 +664,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } else { tabIndex = Math.max(tabIndex, this.pinnedTabCount); } -@@ -6311,10 +6456,16 @@ +@@ -6402,10 +6547,16 @@ this.#handleTabMove( element, () => { @@ -683,7 +683,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 if (neighbor && this.isTab(element) && tabIndex > element._tPos) { neighbor.after(element); } else { -@@ -6372,23 +6523,28 @@ +@@ -6463,23 +6614,28 @@ #moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) { if (this.isTabGroupLabel(targetElement)) { targetElement = targetElement.group; @@ -718,7 +718,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } else if (!element.pinned && targetElement && targetElement.pinned) { // If the caller asks to move an unpinned element next to a pinned // tab, move the unpinned element to be the first unpinned element -@@ -6401,14 +6557,34 @@ +@@ -6492,14 +6648,34 @@ // move the tab group right before the first unpinned tab. // 4. Moving a tab group and the first unpinned tab is grouped: // move the tab group right before the first unpinned tab's tab group. @@ -754,7 +754,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 element.pinned ? this.tabContainer.pinnedTabsContainer : this.tabContainer; -@@ -6417,7 +6593,7 @@ +@@ -6508,7 +6684,7 @@ element, () => { if (moveBefore) { @@ -763,7 +763,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 } else if (targetElement) { targetElement.after(element); } else { -@@ -6489,10 +6665,10 @@ +@@ -6580,10 +6756,10 @@ * @param {TabMetricsContext} [metricsContext] */ moveTabToGroup(aTab, aGroup, metricsContext) { @@ -776,7 +776,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 return; } if (aTab.group && aTab.group.id === aGroup.id) { -@@ -6522,6 +6698,7 @@ +@@ -6613,6 +6789,7 @@ let state = { tabIndex: tab._tPos, @@ -784,7 +784,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 }; if (tab.visible) { state.elementIndex = tab.elementIndex; -@@ -6548,7 +6725,7 @@ +@@ -6639,7 +6816,7 @@ let changedTabGroup = previousTabState.tabGroupId != currentTabState.tabGroupId; @@ -793,7 +793,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 tab.dispatchEvent( new CustomEvent("TabMove", { bubbles: true, -@@ -6585,6 +6762,10 @@ +@@ -6676,6 +6853,10 @@ moveActionCallback(); @@ -804,7 +804,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // Clear tabs cache after moving nodes because the order of tabs may have // changed. this.tabContainer._invalidateCachedTabs(); -@@ -7486,7 +7667,7 @@ +@@ -7576,7 +7757,7 @@ // preventDefault(). It will still raise the window if appropriate. break; } @@ -813,7 +813,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 window.focus(); aEvent.preventDefault(); break; -@@ -7501,7 +7682,6 @@ +@@ -7593,7 +7774,6 @@ } case "TabGroupCollapse": aEvent.target.tabs.forEach(tab => { @@ -821,7 +821,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 }); break; case "TabGroupCreateByUser": -@@ -8442,6 +8622,7 @@ +@@ -8542,6 +8722,7 @@ aWebProgress.isTopLevel ) { this.mTab.setAttribute("busy", "true"); @@ -829,7 +829,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 gBrowser._tabAttrModified(this.mTab, ["busy"]); this.mTab._notselectedsinceload = !this.mTab.selected; } -@@ -9443,7 +9624,7 @@ var TabContextMenu = { +@@ -9543,7 +9724,7 @@ var TabContextMenu = { ); contextUnpinSelectedTabs.hidden = !this.contextTab.pinned || !this.multiselected; @@ -838,7 +838,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394 // Build Ask Chat items TabContextMenu.GenAI.buildTabMenu( document.getElementById("context_askChat"), -@@ -9763,6 +9944,7 @@ var TabContextMenu = { +@@ -9863,6 +10044,7 @@ var TabContextMenu = { ) ); } else { diff --git a/src/browser/components/tabbrowser/content/tabgroup-js.patch b/src/browser/components/tabbrowser/content/tabgroup-js.patch index 2c3e80263..49d3342cf 100644 --- a/src/browser/components/tabbrowser/content/tabgroup-js.patch +++ b/src/browser/components/tabbrowser/content/tabgroup-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js -index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b424098ba3e7b 100644 +index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41fbf97ac20 100644 --- a/browser/components/tabbrowser/content/tabgroup.js +++ b/browser/components/tabbrowser/content/tabgroup.js @@ -14,11 +14,11 @@ @@ -77,8 +77,8 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 + }; this.#updateLabelAriaAttributes(); - this.#updateCollapsedAriaAttributes(); -@@ -144,6 +163,8 @@ + +@@ -143,6 +162,8 @@ // mounts after getting created by `Tabbrowser.adoptTabGroup`. this.#wasCreatedByAdoption = false; } @@ -87,7 +87,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 resetDefaultGroupName = () => { this.#defaultGroupName = ""; -@@ -228,7 +249,10 @@ +@@ -227,7 +248,10 @@ } }); } @@ -99,7 +99,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 } get color() { -@@ -322,6 +346,9 @@ +@@ -321,6 +345,9 @@ } set collapsed(val) { @@ -109,7 +109,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 if (!!val == this.collapsed) { return; } -@@ -399,7 +426,6 @@ +@@ -406,7 +433,6 @@ tabGroupName, }) .then(result => { @@ -117,7 +117,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 }); } -@@ -418,7 +444,57 @@ +@@ -425,7 +451,57 @@ * @returns {MozTabbrowserTab[]} */ get tabs() { @@ -176,7 +176,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 } /** -@@ -498,7 +574,6 @@ +@@ -506,7 +582,6 @@ addTabs(tabs, metricsContext) { for (let tab of tabs) { if (tab.pinned) { @@ -184,7 +184,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 } let tabToMove = this.ownerGlobal === tab.ownerGlobal -@@ -561,7 +636,7 @@ +@@ -569,7 +644,7 @@ */ on_click(event) { let isToggleElement = @@ -193,7 +193,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240 event.target === this.#overflowCountLabel; if (isToggleElement && event.button === 0) { event.preventDefault(); -@@ -630,5 +705,6 @@ +@@ -638,5 +713,6 @@ } } diff --git a/src/browser/components/tabbrowser/content/tabs-js.patch b/src/browser/components/tabbrowser/content/tabs-js.patch index ec1bebfc1..dd98d189a 100644 --- a/src/browser/components/tabbrowser/content/tabs-js.patch +++ b/src/browser/components/tabbrowser/content/tabs-js.patch @@ -1,18 +1,8 @@ diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js -index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78bec02d253a 100644 +index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..97badc8daa59b38862706d05ad3db5d53fbe1155 100644 --- a/browser/components/tabbrowser/content/tabs.js +++ b/browser/components/tabbrowser/content/tabs.js -@@ -44,6 +44,9 @@ - * @returns {MozTabbrowserTab|vbox} - */ - const elementToMove = element => { -+ if (element.group?.hasAttribute("split-view-group")) { -+ return element.group; -+ } - if (isTab(element)) { - return element; - } -@@ -423,7 +426,7 @@ +@@ -411,7 +411,7 @@ // and we're not hitting the scroll buttons. if ( event.button != 0 || @@ -21,7 +11,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be event.composedTarget.localName == "toolbarbutton" ) { return; -@@ -504,7 +507,6 @@ +@@ -492,7 +492,6 @@ }); } } else if (isTabGroupLabel(event.target)) { @@ -29,7 +19,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be } else if ( event.originalTarget.closest("scrollbox") && !Services.prefs.getBoolPref( -@@ -540,6 +542,9 @@ +@@ -528,6 +527,9 @@ } on_keydown(event) { @@ -39,153 +29,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be let { altKey, shiftKey } = event; let [accel, nonAccel] = AppConstants.platform == "macosx" -@@ -777,7 +782,7 @@ - if (this.#isContainerVerticalPinnedGrid(tab)) { - // In expanded vertical mode, the max number of pinned tabs per row is dynamic - // Set this before adjusting dragged tab's position -- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount); -+ let pinnedTabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); - let tabsPerRow = 0; - let position = RTL_UI - ? window.windowUtils.getBoundsWithoutFlushing( -@@ -942,7 +947,7 @@ - let dropEffect = this.getDropEffectForTabDrag(event); - let isMovingInTabStrip = !fromTabList && dropEffect == "move"; - let collapseTabGroupDuringDrag = -- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed; -+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active")); - - tab._dragData = { - offsetX: this.verticalMode -@@ -952,7 +957,7 @@ - ? event.screenY - window.screenY - tabOffset - : event.screenY - window.screenY, - scrollPos: -- this.verticalMode && tab.pinned -+ this.verticalMode && tab.pinned && false - ? this.pinnedTabsContainer.scrollPosition - : this.arrowScrollbox.scrollPosition, - screenX: event.screenX, -@@ -981,6 +986,7 @@ - - if (collapseTabGroupDuringDrag) { - tab.group.collapsed = true; -+ gZenFolders.animateGroupMove(tab.group); - } - } - } -@@ -1027,6 +1033,10 @@ - } - - let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); -+ if (draggedTab && dropEffect === "move") { -+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab); -+ gZenViewSplitter.onBrowserDragEndToSplit(event); -+ } - if ( - (dropEffect == "move" || dropEffect == "copy") && - document == draggedTab.ownerDocument && -@@ -1154,7 +1164,8 @@ - isTabGroupLabel(draggedTab) && - draggedTab._dragData?.expandGroupOnDrop - ) { -- draggedTab.group.collapsed = false; -+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active"); -+ gZenFolders.animateGroupMove(draggedTab.group, true); - } - } - -@@ -1208,6 +1219,18 @@ - - this._tabDropIndicator.hidden = true; - event.stopPropagation(); -+ if (draggedTab?.hasAttribute("zen-has-splitted")) { -+ draggedTab.removeAttribute("zen-has-splitted"); -+ draggedTab._visuallySelected = false; -+ } -+ if (draggedTab && dropEffect == "move") { -+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs); -+ -+ if (moved) { -+ this.finishMoveTogetherSelectedTabs(draggedTab); -+ return; -+ } -+ } - if (draggedTab && dropEffect == "copy") { - let duplicatedDraggedTab; - let duplicatedTabs = []; -@@ -1232,8 +1255,9 @@ - let translateOffsetY = oldTranslateY % tabHeight; - let newTranslateX = oldTranslateX - translateOffsetX; - let newTranslateY = oldTranslateY - translateOffsetY; -- let isPinned = draggedTab.pinned; -- let numPinned = gBrowser.pinnedTabCount; -+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned; -+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed; -+ let essential = draggedTab.hasAttribute("zen-essential"); - - if (this.#isContainerVerticalPinnedGrid(draggedTab)) { - // Update both translate axis for pinned vertical expanded tabs -@@ -1249,8 +1273,8 @@ - } - } else { - let tabs = this.ariaFocusableItems.slice( -- isPinned ? 0 : numPinned, -- isPinned ? numPinned : undefined -+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned, -+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined - ); - let size = this.verticalMode ? "height" : "width"; - let screenAxis = this.verticalMode ? "screenY" : "screenX"; -@@ -1299,11 +1323,13 @@ - this.dragToPinPromoCard, - ]; - let shouldPin = -+ false && - isTab(draggedTab) && - !draggedTab.pinned && - (overPinnedDropIndicator || - dragToPinTargets.some(el => el.contains(event.target))); - let shouldUnpin = -+ false && - isTab(draggedTab) && - draggedTab.pinned && - this.arrowScrollbox.contains(event.target); -@@ -1321,6 +1347,7 @@ - (oldTranslateY && oldTranslateY != newTranslateY); - } else if (this.verticalMode) { - shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY; -+ shouldTranslate = false; - } else { - shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX; - } -@@ -1515,6 +1542,7 @@ - - let nextItem = this.ariaFocusableItems[newIndex]; - let tabGroup = isTab(nextItem) && nextItem.group; -+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return; - gBrowser.loadTabs(urls, { - inBackground, - replace, -@@ -1553,6 +1581,17 @@ - } - this.#resetTabsAfterDrop(draggedTab.ownerDocument); - -+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) { -+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab); -+ if (moved) { -+ delete draggedTab._dragData; -+ return; -+ } -+ } else if (dt.mozUserCancelled) { -+ gZenViewSplitter.onBrowserDragEndToSplit(event, true); -+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false; -+ } -+ - if ( - dt.mozUserCancelled || - dt.dropEffect != "none" || -@@ -1719,7 +1758,6 @@ +@@ -720,7 +722,6 @@ this.toggleAttribute("overflow", true); this._updateCloseButtons(); @@ -193,7 +37,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be document .getElementById("tab-preview-panel") -@@ -1777,7 +1815,7 @@ +@@ -780,7 +781,7 @@ } get newTabButton() { @@ -202,7 +46,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be } get verticalMode() { -@@ -1793,6 +1831,7 @@ +@@ -796,6 +797,7 @@ } get overflowing() { @@ -210,7 +54,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be return this.hasAttribute("overflow"); } -@@ -1806,29 +1845,54 @@ +@@ -809,29 +811,54 @@ if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") { pinnedChildren.pop(); } @@ -275,46 +119,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be } /** -@@ -1895,29 +1959,23 @@ - - let elementIndex = 0; - -- let unpinnedChildren = Array.from(this.arrowScrollbox.children); -- let pinnedChildren = Array.from(this.pinnedTabsContainer.children); -+ let children = gZenWorkspaces.tabboxChildrenWithoutEmpty; - - let focusableItems = []; -- for (let child of pinnedChildren) { -- if (isTab(child)) { -- child.elementIndex = elementIndex++; -- focusableItems.push(child); -- } -- } -- for (let child of unpinnedChildren) { -+ for (let child of [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.children, ...children]) { - if (isTab(child) && child.visible) { - child.elementIndex = elementIndex++; - focusableItems.push(child); - } else if (isTabGroup(child)) { - child.labelElement.elementIndex = elementIndex++; - focusableItems.push(child.labelElement); -- -- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible); -- visibleTabsInGroup.forEach(tab => { -- tab.elementIndex = elementIndex++; -- }); -- focusableItems.push(...visibleTabsInGroup); -+ if (!child.hasAttribute("split-view-group")) { -+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible); -+ visibleTabsInGroup.forEach(tab => { -+ tab.elementIndex = elementIndex++; -+ }); -+ focusableItems.push(...visibleTabsInGroup); -+ } - } - } - -@@ -1929,6 +1987,7 @@ +@@ -964,6 +991,7 @@ _invalidateCachedTabs() { this.#allTabs = null; this._invalidateCachedVisibleTabs(); @@ -322,18 +127,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be } _invalidateCachedVisibleTabs() { -@@ -1944,8 +2003,8 @@ - #isContainerVerticalPinnedGrid(tab) { - return ( - this.verticalMode && -- tab.pinned && -- this.hasAttribute("expanded") && -+ (tab.hasAttribute("zen-essential")) && -+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) && - !this.expandOnHover - ); - } -@@ -1961,7 +2020,7 @@ +@@ -1067,7 +1095,7 @@ if (node == null) { // We have a container for non-tab elements at the end of the scrollbox. @@ -342,7 +136,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be } node.before(tab); -@@ -2056,7 +2115,7 @@ +@@ -1162,7 +1190,7 @@ // There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and // for when the tab strip is overflowed (which is shared by vertical and horizontal tabs); // Attach the long click popup to all of them. @@ -351,7 +145,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be const newTab2 = this.newTabButton; const newTabVertical = document.getElementById( "vertical-tabs-newtab-button" -@@ -2156,8 +2215,10 @@ +@@ -1263,8 +1291,10 @@ */ _handleTabSelect(aInstant) { let selectedTab = this.selectedItem; @@ -362,7 +156,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be selectedTab._notselectedsinceload = false; } -@@ -2166,7 +2227,7 @@ +@@ -1273,7 +1303,7 @@ * @param {boolean} [shouldScrollInstantly=false] */ #ensureTabIsVisible(tab, shouldScrollInstantly = false) { @@ -371,292 +165,3 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be if (arrowScrollbox?.overflowing) { arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly); } -@@ -2305,6 +2366,16 @@ - when the tab is first selected to be dragged. - */ - #updateTabStylesOnDrag(tab) { -+ let { movingTabs: zenMovingTabs } = tab._dragData; -+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) { -+ if (isTabGroupLabel(tab)) { -+ movingTab = movingTab.parentElement; -+ } -+ // "dragtarget" contains the following rules which must only be set AFTER the above -+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important} -+ movingTab.setAttribute("zen-dragtarget", ""); -+ } -+ return; - let isPinned = tab.pinned; - let numPinned = gBrowser.pinnedTabCount; - let allTabs = this.ariaFocusableItems; -@@ -2578,7 +2649,7 @@ - return; - } - -- let tabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount); -+ let tabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); - - let directionX = screenX > dragData.animLastScreenX; - let directionY = screenY > dragData.animLastScreenY; -@@ -2587,6 +2658,8 @@ - - let { width: tabWidth, height: tabHeight } = - draggedTab.getBoundingClientRect(); -+ tabWidth += 4; // Add 4px to account for the gap -+ tabHeight += 4; - let shiftSizeX = tabWidth * movingTabs.length; - let shiftSizeY = tabHeight; - dragData.tabWidth = tabWidth; -@@ -2623,8 +2696,8 @@ - let lastBoundX = - lastTabInRow.screenX + - lastTabInRow.getBoundingClientRect().width - -- (lastMovingTabScreenX + tabWidth); -- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight); -+ (lastMovingTabScreenX + tabWidth) + 4; -+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY; - translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX); - translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY); - -@@ -2782,13 +2855,18 @@ - this.#clearDragOverGroupingTimer(); - this.#clearPinnedDropIndicatorTimer(); - -- let isPinned = draggedTab.pinned; -- let numPinned = gBrowser.pinnedTabCount; -+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned; -+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed; -+ let essential = draggedTab.hasAttribute("zen-essential"); -+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder; - let allTabs = this.ariaFocusableItems; - let tabs = allTabs.slice( -- isPinned ? 0 : numPinned, -- isPinned ? numPinned : undefined -+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials, -+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined - ); -+ if (draggedTab.group?.hasAttribute("split-view-group")) { -+ draggedTab = draggedTab.group.labelElement; -+ } - - if (this.#rtlMode) { - tabs.reverse(); -@@ -2799,7 +2877,7 @@ - let screenAxis = this.verticalMode ? "screenY" : "screenX"; - let size = this.verticalMode ? "height" : "width"; - let translateAxis = this.verticalMode ? "translateY" : "translateX"; -- let { width: tabWidth, height: tabHeight } = bounds(draggedTab); -+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab); - let tabSize = this.verticalMode ? tabHeight : tabWidth; - let translateX = event.screenX - dragData.screenX; - let translateY = event.screenY - dragData.screenY; -@@ -2815,6 +2893,12 @@ - ); - let lastMovingTab = movingTabs.at(-1); - let firstMovingTab = movingTabs[0]; -+ if (lastMovingTab.group?.hasAttribute("split-view-group")) { -+ lastMovingTab = lastMovingTab.group; -+ } -+ if (firstMovingTab.group?.hasAttribute("split-view-group")) { -+ firstMovingTab = firstMovingTab.group; -+ } - let endEdge = ele => ele[screenAxis] + bounds(ele)[size]; - let lastMovingTabScreen = endEdge(lastMovingTab); - let firstMovingTabScreen = firstMovingTab[screenAxis]; -@@ -2829,6 +2913,11 @@ - let endBound = this.#rtlMode - ? endEdge(this) - lastMovingTabScreen - : periphery[screenAxis] - 1 - lastMovingTabScreen; -+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0); -+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1); -+ startBound = firstTab[screenAxis] - firstMovingTabScreen; -+ endBound = endEdge(lastTab) - lastMovingTabScreen; -+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder); - translate = Math.min(Math.max(translate, startBound), endBound); - - // Center the tab under the cursor if the tab is not under the cursor while dragging -@@ -3018,6 +3107,8 @@ - }; - - let dropElement = getOverlappedElement(); -+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement; -+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event); - - let newDropElementIndex; - if (dropElement) { -@@ -3099,7 +3190,7 @@ - ? Services.prefs.getIntPref( - "browser.tabs.dragDrop.moveOverThresholdPercent" - ) / 100 -- : 0.5; -+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100; - moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold)); - let shouldMoveOver = overlapPercent > moveOverThreshold; - if (logicalForward && shouldMoveOver) { -@@ -3132,6 +3223,7 @@ - // If dragging a group over another group, don't make it look like it is - // possible to drop the dragged group inside the other group. - if ( -+ false && - isTabGroupLabel(draggedTab) && - dropElement?.group && - (!dropElement.group.collapsed || -@@ -3158,20 +3250,13 @@ - let isOutOfBounds = isPinned - ? dropElement.elementIndex >= numPinned - : dropElement.elementIndex < numPinned; -- if (isOutOfBounds) { -- // Drop after last pinned tab -- dropElement = this.ariaFocusableItems[numPinned - 1]; -- dropBefore = false; -- } - } - -- if ( -- gBrowser._tabGroupsEnabled && -- isTab(draggedTab) && -- !isPinned && -- (!numPinned || newDropElementIndex > numPinned) -- ) { -+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) { - let dragOverGroupingThreshold = 1 - moveOverThreshold; -+ if (draggedTab && !dropElement?.group) { -+ gZenFolders.highlightGroupOnDragOver(null); -+ } - let groupingDelay = Services.prefs.getIntPref( - "browser.tabs.dragDrop.createGroup.delayMS" - ); -@@ -3179,6 +3264,7 @@ - // When dragging tab(s) over an ungrouped tab, signal to the user - // that dropping the tab(s) will create a new tab group. - let shouldCreateGroupOnDrop = -+ false && - !movingTabsSet.has(dropElement) && - isTab(dropElement) && - !dropElement?.group && -@@ -3187,6 +3273,7 @@ - // When dragging tab(s) over a collapsed tab group label, signal to the - // user that dropping the tab(s) will add them to the group. - let shouldDropIntoCollapsedTabGroup = -+ false && - isTabGroupLabel(dropElement) && - dropElement.group.collapsed && - overlapPercent > dragOverGroupingThreshold; -@@ -3231,19 +3318,14 @@ - dropElement = dropElementGroup; - colorCode = undefined; - } else if (isTabGroupLabel(dropElement)) { -- if (dropBefore) { -- // Dropping right before the tab group. -- dropElement = dropElementGroup; -- colorCode = undefined; -- } else if (dropElementGroup.collapsed) { -- // Dropping right after the collapsed tab group. -- dropElement = dropElementGroup; -- colorCode = undefined; -- } else { -- // Dropping right before the first tab in the tab group. -- dropElement = dropElementGroup.tabs[0]; -- dropBefore = true; -- } -+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel( -+ dropElement, -+ draggedTab, -+ overlapPercent, -+ movingTabs, -+ dropBefore, -+ colorCode -+ )); - } - this.#setDragOverGroupColor(colorCode); - this.toggleAttribute("movingtab-addToGroup", colorCode); -@@ -3262,11 +3344,11 @@ - dragData.dropElement = dropElement; - dragData.dropBefore = dropBefore; - dragData.animDropElementIndex = newDropElementIndex; -- -+ gZenFolders.setFolderIndentation(movingTabs, dropElement); - // Shift background tabs to leave a gap where the dragged tab - // would currently be dropped. - for (let item of tabs) { -- if (item == draggedTab) { -+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) { - continue; - } - -@@ -3388,12 +3470,14 @@ - element?.removeAttribute("dragover-groupTarget"); - } - -- finishAnimateTabMove() { -- if (!this.#isMovingTab()) { -+ finishAnimateTabMove(always = false) { -+ gZenPinnedTabManager.onDragFinish(); -+ if (!this.#isMovingTab() && !always) { - return; - } - - this.#setMovingTabMode(false); -+ gZenFolders.highlightGroupOnDragOver(null); - - for (let item of this.ariaFocusableItems) { - this.#resetGroupTarget(item); -@@ -3440,17 +3524,16 @@ - tab.style.left = ""; - tab.style.top = ""; - tab.style.maxWidth = ""; -- tab.removeAttribute("dragtarget"); -+ tab.removeAttribute("zen-dragtarget"); - } - for (let label of draggedTabDocument.getElementsByClassName( - "tab-group-label-container" - )) { - label.style.width = ""; -- label.style.height = ""; - label.style.left = ""; - label.style.top = ""; - label.style.maxWidth = ""; -- label.removeAttribute("dragtarget"); -+ label.removeAttribute("zen-dragtarget"); - } - let periphery = draggedTabDocument.getElementById( - "tabbrowser-arrowscrollbox-periphery" -@@ -3522,7 +3605,7 @@ - let postTransitionCleanup = () => { - movingTab._moveTogetherSelectedTabsData.animate = false; - }; -- if (gReduceMotion) { -+ if (true || gReduceMotion) { - postTransitionCleanup(); - } else { - let onTransitionEnd = transitionendEvent => { -@@ -3686,7 +3769,7 @@ - } - - _notifyBackgroundTab(aTab) { -- if (aTab.pinned || !aTab.visible || !this.overflowing) { -+ if (aTab.hasAttribute("zen-essential") || !aTab.visible || !this.overflowing) { - return; - } - -@@ -3795,7 +3878,10 @@ - #getDragTarget(event, { ignoreSides = false } = {}) { - let { target } = event; - while (target) { -- if (isTab(target) || isTabGroupLabel(target)) { -+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) { -+ if (target.classList?.contains("tab-group-label-container")) { -+ target = target.querySelector(".tab-group-label"); -+ } - break; - } - target = target.parentNode; -@@ -3812,6 +3898,9 @@ - return null; - } - } -+ if (target?.group?.hasAttribute("split-view-group")) { -+ target = target.group.labelElement; -+ } - return target; - } - diff --git a/src/browser/components/urlbar/UrlbarController-sys-mjs.patch b/src/browser/components/urlbar/UrlbarController-sys-mjs.patch index 8ad0e02f6..dc004d516 100644 --- a/src/browser/components/urlbar/UrlbarController-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarController-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs -index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c6da90098 100644 +index 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bfe907f0e2 100644 --- a/browser/components/urlbar/UrlbarController.sys.mjs +++ b/browser/components/urlbar/UrlbarController.sys.mjs -@@ -297,7 +297,6 @@ export class UrlbarController { +@@ -299,7 +299,6 @@ export class UrlbarController { const isMac = AppConstants.platform == "macosx"; // Handle readline/emacs-style navigation bindings on Mac. if ( @@ -10,7 +10,7 @@ index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c this.view.isOpen && event.ctrlKey && (event.key == "n" || event.key == "p") -@@ -441,6 +440,8 @@ export class UrlbarController { +@@ -443,6 +442,8 @@ export class UrlbarController { }); } event.preventDefault(); diff --git a/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch b/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch index 274325f5b..ac3e26172 100644 --- a/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs -index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d355858bcf37b 100644 +index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d21420357586fb7f14 100644 --- a/browser/components/urlbar/UrlbarInput.sys.mjs +++ b/browser/components/urlbar/UrlbarInput.sys.mjs -@@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () => +@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () => lazy.UrlbarUtils.getLogger({ prefix: "Input" }) ); @@ -16,7 +16,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 const DEFAULT_FORM_HISTORY_NAME = "searchbar-history"; const UNLIMITED_MAX_RESULTS = 99; -@@ -437,7 +444,16 @@ export class UrlbarInput { +@@ -454,7 +461,16 @@ export class UrlbarInput { // See _on_select(). HTMLInputElement.select() dispatches a "select" // event but does not set the primary selection. this._suppressPrimaryAdjustment = true; @@ -33,7 +33,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 this._suppressPrimaryAdjustment = false; } -@@ -513,6 +529,10 @@ export class UrlbarInput { +@@ -530,6 +546,10 @@ export class UrlbarInput { hideSearchTerms = false, isSameDocument = false ) { @@ -44,7 +44,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if (!this.isAddressbar) { throw new Error( "Cannot set URI for UrlbarInput that is not an address bar" -@@ -790,8 +810,16 @@ export class UrlbarInput { +@@ -807,8 +827,16 @@ export class UrlbarInput { return; } } @@ -62,7 +62,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 } /** -@@ -1207,7 +1235,11 @@ export class UrlbarInput { +@@ -1224,7 +1252,11 @@ export class UrlbarInput { } if (!this.#providesSearchMode(result)) { @@ -75,7 +75,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 } if (isCanonized) { -@@ -2298,6 +2330,32 @@ export class UrlbarInput { +@@ -2347,6 +2379,32 @@ export class UrlbarInput { await this.#updateLayoutBreakoutDimensions(); } @@ -108,7 +108,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 startLayoutExtend() { if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) { // Do not expand if the Urlbar does not support being expanded or it is -@@ -2312,6 +2370,13 @@ export class UrlbarInput { +@@ -2361,6 +2419,13 @@ export class UrlbarInput { this.setAttribute("breakout-extend", "true"); @@ -122,7 +122,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 // Enable the animation only after the first extend call to ensure it // doesn't run when opening a new window. if (!this.hasAttribute("breakout-extend-animate")) { -@@ -2331,6 +2396,24 @@ export class UrlbarInput { +@@ -2380,6 +2445,24 @@ export class UrlbarInput { return; } @@ -147,7 +147,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 this.removeAttribute("breakout-extend"); this.#updateTextboxPosition(); } -@@ -2361,7 +2444,7 @@ export class UrlbarInput { +@@ -2410,7 +2493,7 @@ export class UrlbarInput { forceUnifiedSearchButtonAvailable = false ) { let prevState = this.getAttribute("pageproxystate"); @@ -156,7 +156,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 this.setAttribute("pageproxystate", state); this._inputContainer.setAttribute("pageproxystate", state); this._identityBox?.setAttribute("pageproxystate", state); -@@ -2595,10 +2678,12 @@ export class UrlbarInput { +@@ -2646,10 +2729,12 @@ export class UrlbarInput { return; } this.textbox.style.top = px( @@ -169,7 +169,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 ); } -@@ -2658,9 +2743,10 @@ export class UrlbarInput { +@@ -2709,9 +2794,10 @@ export class UrlbarInput { return; } @@ -181,7 +181,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 ); this.textbox.style.setProperty( "--urlbar-height", -@@ -3093,6 +3179,7 @@ export class UrlbarInput { +@@ -3144,6 +3230,7 @@ export class UrlbarInput { } _toggleActionOverride(event) { @@ -189,7 +189,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if ( event.keyCode == KeyEvent.DOM_VK_SHIFT || event.keyCode == KeyEvent.DOM_VK_ALT || -@@ -3197,7 +3284,7 @@ export class UrlbarInput { +@@ -3248,7 +3335,7 @@ export class UrlbarInput { return val; } let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") @@ -198,7 +198,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 : val; // Only trim value if the directionality doesn't change to RTL and we're not // showing a strikeout https protocol. -@@ -3501,6 +3588,7 @@ export class UrlbarInput { +@@ -3552,6 +3639,7 @@ export class UrlbarInput { resultDetails = null, browser = this.window.gBrowser.selectedBrowser ) { @@ -206,7 +206,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if (this.isAddressbar) { this.#prepareAddressbarLoad( url, -@@ -3608,6 +3696,10 @@ export class UrlbarInput { +@@ -3659,6 +3747,10 @@ export class UrlbarInput { } reuseEmpty = true; } @@ -217,7 +217,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if ( where == "tab" && reuseEmpty && -@@ -3615,6 +3707,9 @@ export class UrlbarInput { +@@ -3666,6 +3758,9 @@ export class UrlbarInput { ) { where = "current"; } @@ -227,7 +227,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 return where; } -@@ -3872,6 +3967,7 @@ export class UrlbarInput { +@@ -3923,6 +4018,7 @@ export class UrlbarInput { this.setResultForCurrentValue(null); this.handleCommand(); this.controller.clearLastQueryContextCache(); @@ -235,7 +235,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 this._suppressStartQuery = false; }); -@@ -3879,7 +3975,6 @@ export class UrlbarInput { +@@ -3930,7 +4026,6 @@ export class UrlbarInput { contextMenu.addEventListener("popupshowing", () => { // Close the results pane when the input field contextual menu is open, // because paste and go doesn't want a result selection. @@ -243,7 +243,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 let controller = this.document.commandDispatcher.getControllerForCommand("cmd_paste"); -@@ -3991,7 +4086,11 @@ export class UrlbarInput { +@@ -4040,7 +4135,11 @@ export class UrlbarInput { if (!engineName && !source && !this.hasAttribute("searchmode")) { return; } @@ -256,7 +256,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if (this._searchModeIndicatorTitle) { this._searchModeIndicatorTitle.textContent = ""; this._searchModeIndicatorTitle.removeAttribute("data-l10n-id"); -@@ -4302,6 +4401,7 @@ export class UrlbarInput { +@@ -4351,6 +4450,7 @@ export class UrlbarInput { this.document.l10n.setAttributes( this.inputField, @@ -264,7 +264,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 l10nId, l10nId == "urlbar-placeholder-with-name" ? { name } : undefined ); -@@ -4413,6 +4513,11 @@ export class UrlbarInput { +@@ -4462,6 +4562,11 @@ export class UrlbarInput { } _on_click(event) { @@ -276,7 +276,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if ( event.target == this.inputField || event.target == this._inputContainer -@@ -4485,7 +4590,7 @@ export class UrlbarInput { +@@ -4534,7 +4639,7 @@ export class UrlbarInput { } } @@ -285,7 +285,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 this.view.autoOpen({ event }); } else { if (this._untrimOnFocusAfterKeydown) { -@@ -4525,9 +4630,16 @@ export class UrlbarInput { +@@ -4574,9 +4679,16 @@ export class UrlbarInput { } _on_mousedown(event) { @@ -303,7 +303,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 if ( event.target != this.inputField && -@@ -4538,6 +4650,10 @@ export class UrlbarInput { +@@ -4587,6 +4699,10 @@ export class UrlbarInput { this.focusedViaMousedown = !this.focused; this._preventClickSelectsAll = this.focused; @@ -314,7 +314,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 // Keep the focus status, since the attribute may be changed // upon calling this.focus(). -@@ -4573,7 +4689,7 @@ export class UrlbarInput { +@@ -4622,7 +4738,7 @@ export class UrlbarInput { } // Don't close the view when clicking on a tab; we may want to keep the // view open on tab switch, and the TabSelect event arrived earlier. @@ -323,7 +323,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558 break; } -@@ -4890,7 +5006,7 @@ export class UrlbarInput { +@@ -4939,7 +5055,7 @@ export class UrlbarInput { // When we are in actions search mode we can show more results so // increase the limit. let maxResults = diff --git a/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch b/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch index c737569ca..c40310518 100644 --- a/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs -index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126c1d32b04 100644 +index c12d875172650dddfe7de623a776149517c83302..66e923ed2c84e350dd7ba7a20e362666cec8f307 100644 --- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs +++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs -@@ -852,6 +852,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer { +@@ -854,6 +854,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer { } if (result.providerName == "UrlbarProviderTabToSearch") { @@ -10,7 +10,7 @@ index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126 // Discard the result if a tab-to-search result was added already. if (!state.canAddTabToSearch) { return false; -@@ -1498,7 +1499,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer { +@@ -1500,7 +1501,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer { usedLimits.maxResultCount++; } diff --git a/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch index 539445412..b4a67ce95 100644 --- a/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs -index 46ad55519aecd6c14034a9faa91c7ad8e5c1c422..e8d9c06499a2b273483edd21faf902c936462b59 100644 +index 531cecb9da3465d392ea82248e6ebb3fe6476b47..f3cce2a66bb8465ae022df0c1b9823e7e88cba21 100644 --- a/browser/components/urlbar/UrlbarPrefs.sys.mjs +++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs @@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) { diff --git a/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch b/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch index 7862a4a27..396ba65f0 100644 --- a/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs -index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e16ea53ed 100644 +index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58bc893ac14 100644 --- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs +++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs @@ -44,11 +44,13 @@ function defaultQuery(conditions = "") { @@ -26,7 +26,7 @@ index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e h.visit_count, h.typed, 0, t.open_count, :matchBehavior, :searchBehavior, NULL) -@@ -1120,11 +1122,13 @@ Search.prototype = { +@@ -1126,11 +1128,13 @@ Search.prototype = { ? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime() : undefined; let tabGroup = row.getResultByName("groupId"); diff --git a/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch b/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch index b06de00cf..d2dbed260 100644 --- a/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs -index ece407214669009e263b507b5236ab28da33efe9..8f22426295e2b001438918f44d2c22ed7a697c2f 100644 +index b864cf9a9159d1f4e162ff5e8895a2bc95dee881..b30ee47b4f6d9025648ca5d93ee79f993cb6f4c2 100644 --- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs +++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs -@@ -845,6 +845,7 @@ export class Query { +@@ -873,6 +873,7 @@ export class Query { if ( result.heuristic && this.context.searchMode && diff --git a/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch index 12bdd6dba..f2d58b268 100644 --- a/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs -index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13dc8e61fbc 100644 +index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b033e5a4394 100644 --- a/browser/components/urlbar/UrlbarUtils.sys.mjs +++ b/browser/components/urlbar/UrlbarUtils.sys.mjs -@@ -74,6 +74,7 @@ export var UrlbarUtils = { +@@ -77,6 +77,7 @@ export var UrlbarUtils = { RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword", SUGGESTED_INDEX: "suggestedIndex", TAIL_SUGGESTION: "tailSuggestion", @@ -10,7 +10,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d }), // Defines provider types. -@@ -133,6 +134,7 @@ export var UrlbarUtils = { +@@ -136,6 +137,7 @@ export var UrlbarUtils = { OTHER_NETWORK: 6, ADDON: 7, ACTIONS: 8, @@ -18,7 +18,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d }), // Per-result exposure telemetry. -@@ -544,6 +546,8 @@ export var UrlbarUtils = { +@@ -547,6 +549,8 @@ export var UrlbarUtils = { return this.RESULT_GROUP.HEURISTIC_FALLBACK; case "UrlbarProviderHistoryUrlHeuristic": return this.RESULT_GROUP.HEURISTIC_HISTORY_URL; diff --git a/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch b/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch index 81ea5fc30..4a44486be 100644 --- a/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs -index 50961e4beb75012ef0ed6f261a95854712cc69d7..93bcfca9270ff34dbe6386789fdae6066457438d 100644 +index beff1d41e47efad09256459589176d96c69f7a8a..c850dad31454d61c4edb6e183db07b2d51fb9fc8 100644 --- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs +++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs @@ -585,6 +585,7 @@ export class UrlbarValueFormatter { diff --git a/src/browser/components/urlbar/UrlbarView-sys-mjs.patch b/src/browser/components/urlbar/UrlbarView-sys-mjs.patch index 26c99b0e8..ad96d3e95 100644 --- a/src/browser/components/urlbar/UrlbarView-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarView-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs -index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b50b9fa2e8 100644 +index 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2ef873b348 100644 --- a/browser/components/urlbar/UrlbarView.sys.mjs +++ b/browser/components/urlbar/UrlbarView.sys.mjs @@ -620,7 +620,7 @@ export class UrlbarView { @@ -11,7 +11,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5 // Try to reuse the cached top-sites context. If it's not cached, then // there will be a gap of time between when the input is focused and // when the view opens that can be perceived as flicker. -@@ -2734,6 +2734,8 @@ export class UrlbarView { +@@ -2751,6 +2751,8 @@ export class UrlbarView { if (row?.hasAttribute("row-selectable")) { row?.toggleAttribute("selected", true); } @@ -20,7 +20,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5 if (element != row) { row?.toggleAttribute("descendant-selected", true); } -@@ -3215,7 +3217,7 @@ export class UrlbarView { +@@ -3232,7 +3234,7 @@ export class UrlbarView { } #enableOrDisableRowWrap() { diff --git a/src/browser/extensions/newtab/lib/ActivityStream-sys-mjs.patch b/src/browser/extensions/newtab/lib/ActivityStream-sys-mjs.patch index fb2d74187..20abe082c 100644 --- a/src/browser/extensions/newtab/lib/ActivityStream-sys-mjs.patch +++ b/src/browser/extensions/newtab/lib/ActivityStream-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs -index 6207e6c8aa1e303ec151bc1e5c51c277ef776ee6..d3783a3c459c94880be1c95dc265a7d4887f67a1 100644 +index 7e50d7f5512cb4304d6fd2ecb6952fbff0b8f98e..ba09805f07b754b4b36d5a650252d5578184d031 100644 --- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs +++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs -@@ -223,7 +223,7 @@ export const PREFS_CONFIG = new Map([ +@@ -250,7 +250,7 @@ export const PREFS_CONFIG = new Map([ "showSponsoredTopSites", { title: "Show sponsored top sites", diff --git a/src/browser/installer/package-manifest-in.patch b/src/browser/installer/package-manifest-in.patch index 2f18925ed..f4bb3e12d 100644 --- a/src/browser/installer/package-manifest-in.patch +++ b/src/browser/installer/package-manifest-in.patch @@ -1,8 +1,8 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in -index b884f0167e5de87a45cf523436ceaceb710d35ae..eedc80278a5c93f81ce90c0d6198924549c07fc3 100644 +index bb06e9224a4e195122d8a47ccf97c3481342cf86..959862e95ec00c7dc18256bd2572c1d7285415d4 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in -@@ -362,17 +362,17 @@ bin/libfreebl_64int_3.so +@@ -372,17 +372,17 @@ bin/libfreebl_64int_3.so ; [MaintenanceService] ; #ifdef MOZ_MAINTENANCE_SERVICE diff --git a/src/browser/installer/windows/nsis/defines-nsi-in.patch b/src/browser/installer/windows/nsis/defines-nsi-in.patch index 2f7d2923e..09d60e5e3 100644 --- a/src/browser/installer/windows/nsis/defines-nsi-in.patch +++ b/src/browser/installer/windows/nsis/defines-nsi-in.patch @@ -1,5 +1,5 @@ diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in -index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1135fe766 100644 +index 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad9eb7eaf8 100644 --- a/browser/installer/windows/nsis/defines.nsi.in +++ b/browser/installer/windows/nsis/defines.nsi.in @@ -90,7 +90,7 @@ @@ -11,7 +11,7 @@ index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1 # ARCH is used when it is necessary to differentiate the x64 registry keys from # the x86 registry keys (e.g. the uninstall registry key). -@@ -154,7 +154,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}" +@@ -153,7 +153,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}" !define APPROXIMATE_REQUIRED_SPACE_MB "145" # Constants for parts of the telemetry submission URL diff --git a/src/browser/installer/windows/nsis/installer-nsi.patch b/src/browser/installer/windows/nsis/installer-nsi.patch index e3a9aa0b8..5c43ebe60 100644 --- a/src/browser/installer/windows/nsis/installer-nsi.patch +++ b/src/browser/installer/windows/nsis/installer-nsi.patch @@ -1,8 +1,8 @@ diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi -index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0197351d1 100755 +index 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8aa919456 100755 --- a/browser/installer/windows/nsis/installer.nsi +++ b/browser/installer/windows/nsis/installer.nsi -@@ -841,7 +841,7 @@ Section "-InstallEndCleanup" +@@ -842,7 +842,7 @@ Section "-InstallEndCleanup" ; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't ; invoked when we're running silently. ${If} ${Silent} @@ -11,7 +11,7 @@ index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0 ${EndIf} SectionEnd -@@ -1969,5 +1969,5 @@ FunctionEnd +@@ -1970,5 +1970,5 @@ FunctionEnd Function .onGUIEnd ${OnEndCommon} diff --git a/src/browser/installer/windows/nsis/uninstaller-nsi.patch b/src/browser/installer/windows/nsis/uninstaller-nsi.patch index efc934a82..2136ef157 100644 --- a/src/browser/installer/windows/nsis/uninstaller-nsi.patch +++ b/src/browser/installer/windows/nsis/uninstaller-nsi.patch @@ -1,10 +1,10 @@ diff --git a/browser/installer/windows/nsis/uninstaller.nsi b/browser/installer/windows/nsis/uninstaller.nsi old mode 100755 new mode 100644 -index 559c8b46ee06bc42c91da49b5d9e397fe8ff6126..62094a5d98712a41a607ba01ca2adfa1e4f51ccd +index fd104f8ab0bd51d6a99c121b60e2695a54b0dfd0..9b117e5a1f5e8adac7d22cd65154529418fd2e5b --- a/browser/installer/windows/nsis/uninstaller.nsi +++ b/browser/installer/windows/nsis/uninstaller.nsi -@@ -507,6 +507,7 @@ Section "Uninstall" +@@ -519,6 +519,7 @@ Section "Uninstall" ${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID" ${un.RegCleanFileHandler} ".webp" "FirefoxHTML-$AppUserModelID" ${un.RegCleanFileHandler} ".avif" "FirefoxHTML-$AppUserModelID" diff --git a/src/browser/modules/BrowserDOMWindow-sys-mjs.patch b/src/browser/modules/BrowserDOMWindow-sys-mjs.patch index a0d49d806..053fb1028 100644 --- a/src/browser/modules/BrowserDOMWindow-sys-mjs.patch +++ b/src/browser/modules/BrowserDOMWindow-sys-mjs.patch @@ -1,17 +1,17 @@ diff --git a/browser/modules/BrowserDOMWindow.sys.mjs b/browser/modules/BrowserDOMWindow.sys.mjs -index 534d23b3e66176ea77f3ef577bf9630626948b9d..752e229bbe725ae394b7648adb949635f2bd70e4 100644 +index e951af5edb966718ee20422c8e46d868c177cd1c..cd41305a4da8e675417eca7df5cd4a1ecee90c3d 100644 --- a/browser/modules/BrowserDOMWindow.sys.mjs +++ b/browser/modules/BrowserDOMWindow.sys.mjs -@@ -374,7 +374,7 @@ export class BrowserDOMWindow { +@@ -437,7 +437,7 @@ export class BrowserDOMWindow { // Passing a null-URI to only create the content window, // and pass true for aSkipLoad to prevent loading of // about:blank -- return this.getContentWindowOrOpenURIInFrame( -+ let res = this.getContentWindowOrOpenURIInFrame( +- return this.#getContentWindowOrOpenURIInFrame( ++ let res = this.#getContentWindowOrOpenURIInFrame( null, aParams, aWhere, -@@ -382,6 +382,10 @@ export class BrowserDOMWindow { +@@ -445,6 +445,10 @@ export class BrowserDOMWindow { aName, true ); @@ -21,4 +21,4 @@ index 534d23b3e66176ea77f3ef577bf9630626948b9d..752e229bbe725ae394b7648adb949635 + return res; } - openURIInFrame(aURI, aParams, aWhere, aFlags, aName) { + /** diff --git a/src/browser/modules/ExtensionsUI-sys-mjs.patch b/src/browser/modules/ExtensionsUI-sys-mjs.patch index 0466fcc51..736ae6904 100644 --- a/src/browser/modules/ExtensionsUI-sys-mjs.patch +++ b/src/browser/modules/ExtensionsUI-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/modules/ExtensionsUI.sys.mjs b/browser/modules/ExtensionsUI.sys.mjs -index 17cad7b3fbdd6dff862483892f37f72c00792c88..90ea4d95738eb50d1a4a67ee7df087e7c2a68b3d 100644 +index 31229b3bc1b93565a57c2c0b0307ceeb594c3936..30456ef5d3c58e96717cd292f861a04a790d0ee1 100644 --- a/browser/modules/ExtensionsUI.sys.mjs +++ b/browser/modules/ExtensionsUI.sys.mjs -@@ -478,7 +478,7 @@ export var ExtensionsUI = { +@@ -480,7 +480,7 @@ export var ExtensionsUI = { eventCallback, removeOnDismissal: true, popupOptions: { diff --git a/src/browser/modules/URILoadingHelper-sys-mjs.patch b/src/browser/modules/URILoadingHelper-sys-mjs.patch index ee763d2b8..d507c1852 100644 --- a/src/browser/modules/URILoadingHelper-sys-mjs.patch +++ b/src/browser/modules/URILoadingHelper-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs -index f7a3e8272f1f22286a26bf50d78b23aa82b49df8..a690732012331dfc40cc08fef4453c28c6587a24 100644 +index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410d016a5a3 100644 --- a/browser/modules/URILoadingHelper.sys.mjs +++ b/browser/modules/URILoadingHelper.sys.mjs @@ -541,7 +541,7 @@ export const URILoadingHelper = { diff --git a/src/browser/themes/osx/browser-css.patch b/src/browser/themes/osx/browser-css.patch index cdaeb1877..7cf8f61bb 100644 --- a/src/browser/themes/osx/browser-css.patch +++ b/src/browser/themes/osx/browser-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css -index b1062108c6f6174a680e9b235ee9cb2037f94924..31aac7bdee4ebb07e9de58e7c3e5e6833c94e968 100644 +index 0a15e3d60d408f119bd03007567d5dd1fa178c36..443901657296d0d15a95e1d39e826b1c008aac4d 100644 --- a/browser/themes/osx/browser.css +++ b/browser/themes/osx/browser.css @@ -38,7 +38,7 @@ diff --git a/src/browser/themes/shared/browser-shared-css.patch b/src/browser/themes/shared/browser-shared-css.patch index 780f07a9b..2a7d63eb1 100644 --- a/src/browser/themes/shared/browser-shared-css.patch +++ b/src/browser/themes/shared/browser-shared-css.patch @@ -1,17 +1,17 @@ diff --git a/browser/themes/shared/browser-shared.css b/browser/themes/shared/browser-shared.css -index c77a0e6388c4061d9e6ee5f396a3e3af8867e4fe..3da164d2414e8726675ac0184310c9363365387f 100644 +index 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca26a4a5b8c 100644 --- a/browser/themes/shared/browser-shared.css +++ b/browser/themes/shared/browser-shared.css @@ -102,7 +102,7 @@ body { - --toolbarbutton-border-radius: 4px; + --toolbarbutton-border-radius: var(--button-border-radius); --identity-box-margin-inline: 4px; --urlbar-min-height: max(32px, 1.4em); - --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2); + --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2); - /* This should be used for icons and chiclets inside the input field. It makes - the gap around them more uniform when they are close to the field edges */ -@@ -170,8 +170,6 @@ body { + /* This should be used for icons and chiclets inside the input field, as well + as result rows. It makes the gap around them more uniform when they are +@@ -171,8 +171,6 @@ body { */ &.fullscreen-with-menubar { z-index: var(--browser-area-z-index-toolbox-while-animating); @@ -20,7 +20,7 @@ index c77a0e6388c4061d9e6ee5f396a3e3af8867e4fe..3da164d2414e8726675ac0184310c936 } /* Themes define a set of toolbox foreground and background colors which we -@@ -281,13 +279,13 @@ body { +@@ -282,13 +280,13 @@ body { @media (-moz-platform: macos) and (not (-moz-mac-rtl)) { &:-moz-locale-dir(ltr) { diff --git a/src/browser/themes/shared/identity-block/identity-block-css.patch b/src/browser/themes/shared/identity-block/identity-block-css.patch index 13df820cf..2c5c54f64 100644 --- a/src/browser/themes/shared/identity-block/identity-block-css.patch +++ b/src/browser/themes/shared/identity-block/identity-block-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/identity-block/identity-block.css b/browser/themes/shared/identity-block/identity-block.css -index 8edca63dc52ec207475ed9965559d28c06e27971..a5a949be1868af5d0bb04747a9f5b737c00ae49c 100644 +index d542e962d42b17140888e299ed43a838047ee48c..5e0b72f147687924c48dfed0318f53b765a4d497 100644 --- a/browser/themes/shared/identity-block/identity-block.css +++ b/browser/themes/shared/identity-block/identity-block.css @@ -81,13 +81,6 @@ @@ -11,7 +11,7 @@ index 8edca63dc52ec207475ed9965559d28c06e27971..a5a949be1868af5d0bb04747a9f5b737 - background-color: var(--urlbar-box-bgcolor); - color: var(--urlbar-box-text-color); - padding-inline: 8px; -- border-radius: var(--urlbar-icon-border-radius); +- border-radius: var(--urlbar-inner-border-radius); -} #urlbar[focused] { diff --git a/src/browser/themes/shared/jar-inc-mn.patch b/src/browser/themes/shared/jar-inc-mn.patch index 003aa4104..ca613d9f9 100644 --- a/src/browser/themes/shared/jar-inc-mn.patch +++ b/src/browser/themes/shared/jar-inc-mn.patch @@ -1,8 +1,8 @@ diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn -index 94036d036a64c8845c02d4ffbcf3f99b5d88576e..2ab3f060c9952f1b0c7bee3d5c3a1d7035e6736a 100644 +index 6085ce0614c9ea7d650c9526b295953f46b30cb6..06b4af758d9ae033dd0b7436f08e6748047c8bbe 100644 --- a/browser/themes/shared/jar.inc.mn +++ b/browser/themes/shared/jar.inc.mn -@@ -316,3 +316,5 @@ +@@ -317,3 +317,5 @@ skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg) skin/classic/browser/illustrations/yelpRealtime-opt-in.svg (../shared/illustrations/yelpRealtime-opt-in.svg) diff --git a/src/browser/themes/shared/tabbrowser/content-area-css.patch b/src/browser/themes/shared/tabbrowser/content-area-css.patch index d7f0e2ec5..b719d9abf 100644 --- a/src/browser/themes/shared/tabbrowser/content-area-css.patch +++ b/src/browser/themes/shared/tabbrowser/content-area-css.patch @@ -1,8 +1,8 @@ diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css -index e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf5ecbd642 100644 +index db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f23063dbd 100644 --- a/browser/themes/shared/tabbrowser/content-area.css +++ b/browser/themes/shared/tabbrowser/content-area.css -@@ -134,7 +134,6 @@ +@@ -140,7 +140,6 @@ } browser:is([blank], [pendingpaint]) { @@ -10,7 +10,7 @@ index e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf } browser[type="content"] { -@@ -276,7 +275,7 @@ +@@ -323,7 +322,7 @@ .dialogStack { z-index: var(--browser-stack-z-index-dialog-stack); diff --git a/src/browser/themes/shared/tabbrowser/ctrlTab-css.patch b/src/browser/themes/shared/tabbrowser/ctrlTab-css.patch index 57b20ea25..5393678e5 100644 --- a/src/browser/themes/shared/tabbrowser/ctrlTab-css.patch +++ b/src/browser/themes/shared/tabbrowser/ctrlTab-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css -index aaeae8fd0e999aecda02bf287b39c4d96ad73f3c..d8196d9b1b5491d73b18a7c7d7fef55bc11fe31b 100644 +index 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7b8c4d3da 100644 --- a/browser/themes/shared/tabbrowser/ctrlTab.css +++ b/browser/themes/shared/tabbrowser/ctrlTab.css @@ -11,6 +11,7 @@ diff --git a/src/browser/themes/shared/tabbrowser/tabs-css.patch b/src/browser/themes/shared/tabbrowser/tabs-css.patch index 1e127b19f..2bd6bb28d 100644 --- a/src/browser/themes/shared/tabbrowser/tabs-css.patch +++ b/src/browser/themes/shared/tabbrowser/tabs-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css -index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d85fc4c91a 100644 +index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2bff889716 100644 --- a/browser/themes/shared/tabbrowser/tabs.css +++ b/browser/themes/shared/tabbrowser/tabs.css @@ -21,7 +21,7 @@ @@ -23,7 +23,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 --tab-selected-bgcolor: var(--toolbar-bgcolor); --tab-selected-color-scheme: var(--toolbar-color-scheme); &[lwt-tab-selected="light"] { -@@ -259,7 +259,6 @@ +@@ -267,7 +267,6 @@ } :root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] { @@ -31,7 +31,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 } &:is([selected], [multiselected]) { -@@ -273,6 +272,7 @@ +@@ -281,6 +280,7 @@ border-radius: inherit; position: relative; overflow: hidden; @@ -39,7 +39,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 &::before { position: absolute; -@@ -472,14 +472,11 @@ +@@ -480,14 +480,11 @@ .tab-icon-image { -moz-context-properties: fill, stroke; fill: currentColor; @@ -55,7 +55,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 opacity: 0.5; /* Fade the favicon out */ transition-property: filter, opacity; -@@ -496,10 +493,6 @@ +@@ -504,10 +501,6 @@ /* stylelint-disable-next-line media-query-no-invalid */ @media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") { &[pending][discarded] { @@ -66,7 +66,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 opacity: 0.5; /* Fade the favicon out */ transition-property: filter, opacity; -@@ -572,7 +565,7 @@ +@@ -575,7 +568,7 @@ z-index: 1; /* Overlay tab title */ #tabbrowser-tabs[orient="vertical"] & { @@ -75,7 +75,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 } &[crashed] { -@@ -580,7 +573,7 @@ +@@ -583,7 +576,7 @@ } #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), @@ -84,7 +84,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 &[soundplaying] { list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); } -@@ -637,7 +630,7 @@ +@@ -640,7 +633,7 @@ } } @@ -93,7 +93,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 &[crashed] { display: revert; } -@@ -738,7 +731,7 @@ +@@ -741,7 +734,7 @@ has not been added to root. There are certain scenarios when that attribute is temporarily removed from root such as when toggling the sidebar to expand with the toolbar button. */ #tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]), @@ -102,7 +102,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 &:is([soundplaying], [muted], [activemedia-blocked]) { display: flex; } -@@ -1226,7 +1219,7 @@ tab-group { +@@ -1245,7 +1238,7 @@ tab-group { } #tabbrowser-tabs[orient="vertical"][expanded] { @@ -111,7 +111,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 &[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) { margin-inline-start: var(--space-medium); } -@@ -1685,7 +1678,7 @@ tab-group { +@@ -1692,7 +1685,7 @@ tab-group { } } @@ -120,7 +120,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 #vertical-tabs-newtab-button { appearance: none; min-height: var(--tab-min-height); -@@ -1696,7 +1689,7 @@ tab-group { +@@ -1703,7 +1696,7 @@ tab-group { margin-inline: var(--tab-inner-inline-margin); #tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text { @@ -129,7 +129,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 } &:hover { -@@ -1720,7 +1713,7 @@ tab-group { +@@ -1727,7 +1720,7 @@ tab-group { * flex container. #tabs-newtab-button is a child of the arrowscrollbox where * we don't want a gap (between tabs), so we have to add some margin. */ @@ -138,7 +138,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 margin-block: var(--tab-block-margin); } -@@ -1913,7 +1906,6 @@ tab-group { +@@ -1915,7 +1908,6 @@ tab-group { &:not([expanded]) { .tabbrowser-tab[pinned] { @@ -146,7 +146,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 } .tab-background { -@@ -1953,8 +1945,8 @@ tab-group { +@@ -1955,8 +1947,8 @@ tab-group { display: block; position: absolute; inset: auto; @@ -157,7 +157,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8 &:-moz-window-inactive { background-image: -@@ -2073,7 +2065,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { +@@ -2075,7 +2067,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { list-style-image: url(chrome://global/skin/icons/plus.svg); } diff --git a/src/browser/themes/shared/urlbar-searchbar-css.patch b/src/browser/themes/shared/urlbar-searchbar-css.patch index 2d75c52f7..1c291ce84 100644 --- a/src/browser/themes/shared/urlbar-searchbar-css.patch +++ b/src/browser/themes/shared/urlbar-searchbar-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css -index 1744e627bbcfc69ccccb207ad1cbf0c262afb9be..50cc9da2076d946771fb5aca1402f1cbe6a531c8 100644 +index 15dcfbc95afab9f28bd58379da0ef3e24d1b4595..73827cc5cffe47099feea36cbeffb547e955b37e 100644 --- a/browser/themes/shared/urlbar-searchbar.css +++ b/browser/themes/shared/urlbar-searchbar.css @@ -6,7 +6,7 @@ @@ -20,7 +20,7 @@ index 1744e627bbcfc69ccccb207ad1cbf0c262afb9be..50cc9da2076d946771fb5aca1402f1cb } /* When rich suggestions are enabled the urlbar identity icon is given extra padding to -@@ -321,10 +321,14 @@ +@@ -320,10 +320,14 @@ .urlbar[breakout][breakout-extend] { height: auto; diff --git a/src/browser/themes/shared/urlbarView-css.patch b/src/browser/themes/shared/urlbarView-css.patch index 9e692c3be..4c7e0779e 100644 --- a/src/browser/themes/shared/urlbarView-css.patch +++ b/src/browser/themes/shared/urlbarView-css.patch @@ -1,17 +1,17 @@ diff --git a/browser/themes/shared/urlbarView.css b/browser/themes/shared/urlbarView.css -index ec849fc792572e75d12b9e7cd7e6b7f32c799fa9..17c7d442854b774817ef5b3b96e732c19bebef9d 100644 +index e0a05846eb0a329fc58b660f806912a1afe7c6c9..0d02e227a84ff4229104dd9cf9cd20f50a8d136c 100644 --- a/browser/themes/shared/urlbarView.css +++ b/browser/themes/shared/urlbarView.css @@ -20,7 +20,7 @@ --urlbarView-small-font-size: 0.85em; -- --urlbarView-results-padding: 4px; +- --urlbarView-results-padding: 7px; + --urlbarView-results-padding: 8px; --urlbarView-row-gutter: 2px; --urlbarView-item-inline-padding: var(--urlbar-icon-padding); --urlbarView-item-block-padding: 6px; -@@ -173,7 +173,6 @@ +@@ -171,7 +171,6 @@ min-height: 32px; } :root[uidensity="touch"] & { diff --git a/src/devtools/server/actors/animation-type-longhand-js.patch b/src/devtools/server/actors/animation-type-longhand-js.patch index 29e44807d..8ac01e934 100644 --- a/src/devtools/server/actors/animation-type-longhand-js.patch +++ b/src/devtools/server/actors/animation-type-longhand-js.patch @@ -1,8 +1,8 @@ diff --git a/devtools/server/actors/animation-type-longhand.js b/devtools/server/actors/animation-type-longhand.js -index ea27f1209ddb9b33ae044186c2b795685a0bde67..6d808a760885f0e26ff307a39d6977228359fe71 100644 +index a0026f953e8383741221d60ed5c02d0c12740f09..fd5c49d0b8997f29d3dee8dc23e2c373341eb972 100644 --- a/devtools/server/actors/animation-type-longhand.js +++ b/devtools/server/actors/animation-type-longhand.js -@@ -344,6 +344,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [ +@@ -342,6 +342,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [ "transform-origin", "translate", "-moz-window-transform", diff --git a/src/devtools/startup/DevToolsStartup-sys-mjs.patch b/src/devtools/startup/DevToolsStartup-sys-mjs.patch index 9f7ea1c66..2293dd2d0 100644 --- a/src/devtools/startup/DevToolsStartup-sys-mjs.patch +++ b/src/devtools/startup/DevToolsStartup-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs -index 95de0614e392e00036500a5b3ef9976041f37ec6..2c842055ce1d7ffd94c8f21a82305a3a13d493e0 100644 +index 7d26af162be5620649ff36d7cf7d3835a8ac7a20..c0fbd46c22f1eacc82058919714174d15e8106f1 100644 --- a/devtools/startup/DevToolsStartup.sys.mjs +++ b/devtools/startup/DevToolsStartup.sys.mjs @@ -816,6 +816,7 @@ DevToolsStartup.prototype = { diff --git a/src/docshell/base/nsAboutRedirector-cpp.patch b/src/docshell/base/nsAboutRedirector-cpp.patch index 61966825d..527a48635 100644 --- a/src/docshell/base/nsAboutRedirector-cpp.patch +++ b/src/docshell/base/nsAboutRedirector-cpp.patch @@ -1,8 +1,8 @@ diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp -index 83d84537f94863d47a30887362fa1ce5a9809427..104d170d5e5114f965b7698fc59d2bad12265261 100644 +index 625640eef45baba74255c00c603f0834e1f0aa2c..8b7893cf3848edf9121f7cbefcc3a1c76894fa37 100644 --- a/docshell/base/nsAboutRedirector.cpp +++ b/docshell/base/nsAboutRedirector.cpp -@@ -108,7 +108,7 @@ static const RedirEntry kRedirMap[] = { +@@ -118,7 +118,7 @@ static const RedirEntry kRedirMap[] = { {"crashes", "chrome://global/content/crashes.html", nsIAboutModule::IS_SECURE_CHROME_UI}, #endif diff --git a/src/dom/base/Document-cpp.patch b/src/dom/base/Document-cpp.patch index 37f0f667b..18ca663f2 100644 --- a/src/dom/base/Document-cpp.patch +++ b/src/dom/base/Document-cpp.patch @@ -1,8 +1,8 @@ diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp -index 0c2ef36f9765b6904659ac0ed4329468ca89225f..d06552e8d4ac102dd50a1afea10938ca32aeb788 100644 +index 55d24fe16311a286813f7668a227d2ef0cc7e5d7..1a7c2352daf1e04e38a8fb81f80a1f9a58ba2cb5 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -466,6 +466,7 @@ +@@ -465,6 +465,7 @@ #include "prtime.h" #include "prtypes.h" #include "xpcpublic.h" @@ -10,7 +10,7 @@ index 0c2ef36f9765b6904659ac0ed4329468ca89225f..d06552e8d4ac102dd50a1afea10938ca // clang-format off #include "mozilla/Encoding.h" -@@ -3428,6 +3429,10 @@ void Document::FillStyleSetUserAndUASheets() { +@@ -3442,6 +3443,10 @@ void Document::FillStyleSetUserAndUASheets() { for (StyleSheet* sheet : *sheetService->UserStyleSheets()) { styleSet.AppendStyleSheet(*sheet); } diff --git a/src/dom/base/use_counter_metrics-yaml.patch b/src/dom/base/use_counter_metrics-yaml.patch index eeac251f7..0ec931469 100644 --- a/src/dom/base/use_counter_metrics-yaml.patch +++ b/src/dom/base/use_counter_metrics-yaml.patch @@ -1,8 +1,8 @@ diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml -index 157d46c37d0a465f02f794eda4323f7e344c5e63..aec8b819dbcf853c2e6d5513000149449fae36fd 100644 +index 81d73c33af8c95e6f687c05354fb8a0e894dcd44..775742e1e4f84618dce45cbcb14229dc6c4f2b64 100644 --- a/dom/base/use_counter_metrics.yaml +++ b/dom/base/use_counter_metrics.yaml -@@ -21154,6 +21154,22 @@ use.counter.css.page: +@@ -21086,6 +21086,22 @@ use.counter.css.page: send_in_pings: - use-counters @@ -25,7 +25,7 @@ index 157d46c37d0a465f02f794eda4323f7e344c5e63..aec8b819dbcf853c2e6d551300014944 css_transform_origin: type: counter description: > -@@ -33175,6 +33191,22 @@ use.counter.css.doc: +@@ -33056,6 +33072,22 @@ use.counter.css.doc: send_in_pings: - use-counters diff --git a/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch b/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch index da62b610d..19c73e158 100644 --- a/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch +++ b/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch @@ -1,5 +1,5 @@ diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp -index 741a8f1744f48e7db4dbda64c856efaf9f3564b0..f9a2c0878f8a923903ed8eb65cbd355d40b41715 100644 +index 3cb7a43dd9535ccf6ffaa60df39b487f07760208..ed3632e9f38ee88df39500356777ae5b3ba7202a 100644 --- a/dom/media/mediaelement/HTMLMediaElement.cpp +++ b/dom/media/mediaelement/HTMLMediaElement.cpp @@ -453,6 +453,7 @@ class HTMLMediaElement::MediaControlKeyListener final @@ -10,7 +10,7 @@ index 741a8f1744f48e7db4dbda64c856efaf9f3564b0..f9a2c0878f8a923903ed8eb65cbd355d NotifyAudibleStateChanged(mIsOwnerAudible ? MediaAudibleState::eAudible : MediaAudibleState::eInaudible); -@@ -7191,6 +7192,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) { +@@ -7234,6 +7235,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) { QueueTask(std::move(runner)); mQueueTimeUpdateRunnerTime = TimeStamp::Now(); mLastCurrentTime = CurrentTime(); diff --git a/src/firefox-patches/ff-145-tahoe-upgrade.patch b/src/firefox-patches/ff-145-tahoe-upgrade.patch deleted file mode 100644 index ff27f9aca..000000000 --- a/src/firefox-patches/ff-145-tahoe-upgrade.patch +++ /dev/null @@ -1,336 +0,0 @@ -diff --git a/mfbt/tests/TestUniquePtr.cpp b/mfbt/tests/TestUniquePtr.cpp ---- a/mfbt/tests/TestUniquePtr.cpp -+++ b/mfbt/tests/TestUniquePtr.cpp -@@ -314,43 +314,45 @@ - gADestructorCalls = 0; - gBDestructorCalls = 0; - return true; - } - --typedef void (&FreeSignature)(void*); -+struct Free { -+ void operator()(void* aPtr) { free(aPtr); } -+}; - - static size_t DeleteIntFunctionCallCount = 0; -+struct DeleteIntFunction { -+ void operator()(void* aPtr) { -+ DeleteIntFunctionCallCount++; -+ delete[] static_cast(aPtr); -+ } -+}; - --static void DeleteIntFunction(void* aPtr) { -- DeleteIntFunctionCallCount++; -- delete[] static_cast(aPtr); --} -- --static void SetMallocedInt(UniquePtr& aPtr, int aI) { -+static void SetMallocedInt(UniquePtr& aPtr, int aI) { - int* newPtr = static_cast(malloc(sizeof(int))); - *newPtr = aI; - aPtr.reset(newPtr); - } - --static UniquePtr MallocedInt(int aI) { -- UniquePtr ptr(static_cast(malloc(sizeof(int))), -- free); -+static UniquePtr MallocedInt(int aI) { -+ UniquePtr ptr(static_cast(malloc(sizeof(int))), Free{}); - *ptr = aI; - return ptr; - } - static bool TestFunctionReferenceDeleter() { - // Look for allocator mismatches and leaks to verify these bits -- UniquePtr i1(MallocedInt(17)); -+ UniquePtr i1(MallocedInt(17)); - CHECK(*i1 == 17); - - SetMallocedInt(i1, 42); - CHECK(*i1 == 42); - - // These bits use a custom deleter so we can instrument deletion. - { -- UniquePtr i2 = -- UniquePtr(new int[42], DeleteIntFunction); -+ UniquePtr i2 = -+ UniquePtr(new int[42], DeleteIntFunction{}); - CHECK(DeleteIntFunctionCallCount == 0); - - i2.reset(new int[76]); - CHECK(DeleteIntFunctionCallCount == 1); - } - -diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure ---- a/build/moz.configure/toolchain.configure -+++ b/build/moz.configure/toolchain.configure -@@ -231,11 +231,11 @@ - nargs=1, - help="Location of platform SDK to use", - ) - - def mac_sdk_min_version(): -- return "15.5" -+ return "26.0" - - @depends( - "--with-macos-sdk", - host, - bootstrap_path( -diff --git a/browser/themes/osx/places/organizer.css b/browser/themes/osx/places/organizer.css -index 60e3d65d9ea5..730aa23aed6c 100644 ---- a/browser/themes/osx/places/organizer.css -+++ b/browser/themes/osx/places/organizer.css -@@ -11,13 +11,15 @@ - padding: 4px 4px 3px; - border-bottom: 1px solid ThreeDShadow; - -- &::after { -- content: ""; -- position: absolute; -- inset: 0; -- appearance: auto; -- -moz-default-appearance: -moz-window-titlebar; -- z-index: -1; -+ @media not (-moz-mac-tahoe-theme) { -+ &::after { -+ content: ""; -+ position: absolute; -+ inset: 0; -+ appearance: auto; -+ -moz-default-appearance: -moz-window-titlebar; -+ z-index: -1; -+ } - } - } - -diff --git a/browser/themes/shared/pageInfo.css b/browser/themes/shared/pageInfo.css -index 92259765b92f..e7bf5a299abe 100644 ---- a/browser/themes/shared/pageInfo.css -+++ b/browser/themes/shared/pageInfo.css -@@ -14,13 +14,15 @@ - align-items: center; - justify-content: center; - -- &::after { -- content: ""; -- position: absolute; -- inset: 0; -- appearance: auto; -- -moz-default-appearance: -moz-window-titlebar; -- z-index: -1; -+ @media not (-moz-mac-tahoe-theme) { -+ &::after { -+ content: ""; -+ position: absolute; -+ inset: 0; -+ appearance: auto; -+ -moz-default-appearance: -moz-window-titlebar; -+ z-index: -1; -+ } - } - } - } -diff --git a/layout/style/test/chrome/chrome-only-media-queries.js b/layout/style/test/chrome/chrome-only-media-queries.js -index e200152ba41b..88ba56525e99 100644 ---- a/layout/style/test/chrome/chrome-only-media-queries.js -+++ b/layout/style/test/chrome/chrome-only-media-queries.js -@@ -4,6 +4,7 @@ const CHROME_ONLY_TOGGLES = [ - "-moz-print-preview", - "-moz-overlay-scrollbars", - "-moz-mac-big-sur-theme", -+ "-moz-mac-tahoe-theme", - "-moz-menubar-drag", - "-moz-windows-accent-color-in-titlebar", - "-moz-swipe-animation-enabled", -diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs -index b0082951254a..ddbcd495260b 100644 ---- a/servo/components/style/gecko/media_features.rs -+++ b/servo/components/style/gecko/media_features.rs -@@ -645,7 +645,7 @@ macro_rules! lnf_int_feature { - /// to support new types in these entries and (2) ensuring that either - /// nsPresContext::MediaFeatureValuesChanged is called when the value that - /// would be returned by the evaluator function could change. --pub static MEDIA_FEATURES: [QueryFeatureDescription; 58] = [ -+pub static MEDIA_FEATURES: [QueryFeatureDescription; 59] = [ - feature!( - atom!("width"), - AllowsRanges::Yes, -@@ -918,6 +918,7 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 58] = [ - ), - lnf_int_feature!(atom!("-moz-menubar-drag"), MenuBarDrag), - lnf_int_feature!(atom!("-moz-mac-big-sur-theme"), MacBigSurTheme), -+ lnf_int_feature!(atom!("-moz-mac-tahoe-theme"), MacTahoeTheme), - feature!( - atom!("-moz-mac-rtl"), - AllowsRanges::No, -diff --git a/toolkit/themes/shared/menu.css b/toolkit/themes/shared/menu.css -index f1330e7dd7a3..23c04a931ae0 100644 ---- a/toolkit/themes/shared/menu.css -+++ b/toolkit/themes/shared/menu.css -@@ -31,6 +31,11 @@ panel { - } - @media (-moz-platform: macos) { - --menuitem-padding: 3px 9px; -+ -+ @media (-moz-mac-tahoe-theme) { -+ --menuitem-padding: 4px 11px; -+ --menuitem-border-radius: 7px; -+ } - } - - @media (-moz-platform: windows) { -diff --git a/widget/LookAndFeel.h b/widget/LookAndFeel.h -index fc1e28206ac2..1661476a75f0 100644 ---- a/widget/LookAndFeel.h -+++ b/widget/LookAndFeel.h -@@ -117,6 +117,12 @@ class LookAndFeel { - */ - MacBigSurTheme, - -+ /* -+ * A Boolean value to determine whether the macOS Tahoe-specific -+ * theming should be used. -+ */ -+ MacTahoeTheme, -+ - /* - * AlertNotificationOrigin indicates from which corner of the - * screen alerts slide in, and from which direction (horizontal/vertical). -diff --git a/widget/cocoa/nsCocoaWindow.h b/widget/cocoa/nsCocoaWindow.h -index 38aca9f32590..9484ef078900 100644 ---- a/widget/cocoa/nsCocoaWindow.h -+++ b/widget/cocoa/nsCocoaWindow.h -@@ -111,6 +111,9 @@ class TextInputHandler; - - (void)setEffectViewWrapperForStyle:(mozilla::WindowShadow)aStyle; - @property(nonatomic) mozilla::WindowShadow shadowStyle; - -+- (void)updateTitlebarTransparency; -+- (void)setTitlebarSeparatorStyle:(NSTitlebarSeparatorStyle)aStyle API_AVAILABLE(macos(11.0)); -+ - - (void)releaseJSObjects; - - @end -diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm -index c9991df86dc6..c746a78b8440 100644 ---- a/widget/cocoa/nsCocoaWindow.mm -+++ b/widget/cocoa/nsCocoaWindow.mm -@@ -7611,6 +7611,15 @@ - (id)initWithContentRect:(NSRect)aContentRect - // vibrancy effect and window border. - - (void)setEffectViewWrapperForStyle:(WindowShadow)aStyle { - NSView* wrapper = [&]() -> NSView* { -+ if (@available(macOS 26.0, *)) { -+ if (aStyle == WindowShadow::Menu) { -+ // Menus on macOS 26 use glass instead of vibrancy. -+ auto* effectView = -+ [[NSGlassEffectView alloc] initWithFrame:self.contentView.frame]; -+ effectView.cornerRadius = 12.0f; -+ return effectView; -+ } -+ } - if (aStyle == WindowShadow::Menu || aStyle == WindowShadow::Tooltip) { - const bool isMenu = aStyle == WindowShadow::Menu; - auto* effectView = -@@ -7721,6 +7730,7 @@ - (void)setDrawsContentsIntoWindowFrame:(BOOL)aState { - mDrawsIntoWindowFrame = aState; - if (changed) { - [self reflowTitlebarElements]; -+ [self updateTitlebarTransparency]; - } - } - -@@ -7850,6 +7860,32 @@ - (void)reflowTitlebarElements { - } - } - -+- (void)updateTitlebarTransparency { -+ if (self.drawsContentsIntoWindowFrame) { -+ // Hide the titlebar if we are drawing into it -+ self.titlebarAppearsTransparent = true; -+ return; -+ } -+ -+ if (@available(macOS 26.0, *)) { -+ // On macOS 26, the titlebar must be transparent to hide the separator. -+ // This does not affect the titlebar background on macOS 26, as it -+ // already matches the window background even when not transparent. -+ if (self.titlebarSeparatorStyle == NSTitlebarSeparatorStyleNone) { -+ self.titlebarAppearsTransparent = true; -+ return; -+ } -+ } -+ -+ // Show the titlebar otherwise. -+ self.titlebarAppearsTransparent = false; -+} -+ -+- (void)setTitlebarSeparatorStyle:(NSTitlebarSeparatorStyle)aStyle { -+ [super setTitlebarSeparatorStyle:aStyle]; -+ [self updateTitlebarTransparency]; -+} -+ - - (BOOL)respondsToSelector:(SEL)aSelector { - // Claim the window doesn't respond to this so that the system - // doesn't steal keyboard equivalents for it. Bug 613710. -@@ -8166,8 +8202,6 @@ - (void)setDrawsContentsIntoWindowFrame:(BOOL)aState { - BOOL stateChanged = self.drawsContentsIntoWindowFrame != aState; - [super setDrawsContentsIntoWindowFrame:aState]; - if (stateChanged && [self.delegate isKindOfClass:[WindowDelegate class]]) { -- // Hide the titlebar if we are drawing into it -- self.titlebarAppearsTransparent = aState; - self.titleVisibility = aState ? NSWindowTitleHidden : NSWindowTitleVisible; - - // Here we extend / shrink our mainChildView. -diff --git a/widget/cocoa/nsLookAndFeel.mm b/widget/cocoa/nsLookAndFeel.mm -index 16cf2ed9b0ea..579b2445adfe 100644 ---- a/widget/cocoa/nsLookAndFeel.mm -+++ b/widget/cocoa/nsLookAndFeel.mm -@@ -458,6 +458,9 @@ static bool PrefersNonBlinkingTextInsertionIndicator() { - case IntID::MacBigSurTheme: - aResult = nsCocoaFeatures::OnBigSurOrLater(); - break; -+ case IntID::MacTahoeTheme: -+ aResult = nsCocoaFeatures::OnTahoeOrLater(); -+ break; - case IntID::AlertNotificationOrigin: - aResult = NS_ALERT_TOP; - break; -diff --git a/widget/cocoa/nsNativeThemeCocoa.mm b/widget/cocoa/nsNativeThemeCocoa.mm -index 6ddd495b73f9..b94b8331be87 100644 ---- a/widget/cocoa/nsNativeThemeCocoa.mm -+++ b/widget/cocoa/nsNativeThemeCocoa.mm -@@ -191,6 +191,10 @@ static NSControlSize ControlSizeForEnum(CocoaSize enumControlSize) { - - static void InflateControlRect(NSRect* rect, NSControlSize cocoaControlSize, - const CellMarginArray& marginSet) { -+ if (nsCocoaFeatures::OnTahoeOrLater()) { -+ // Controls on macOS 26 fill the entire frame and do not require inflation. -+ return; -+ } - auto controlSize = EnumSizeForCocoaSize(cocoaControlSize); - const IntMargin& buttonMargins = marginSet[controlSize]; - rect->origin.x -= buttonMargins.left; -diff --git a/widget/nsXPLookAndFeel.cpp b/widget/nsXPLookAndFeel.cpp -index c0dde6e1c04a..24b6f83930a7 100644 ---- a/widget/nsXPLookAndFeel.cpp -+++ b/widget/nsXPLookAndFeel.cpp -@@ -121,6 +121,7 @@ static const char sIntPrefs[][45] = { - "ui.windowsMica", - "ui.windowsMicaPopups", - "ui.macBigSurTheme", -+ "ui.macTahoeTheme", - "ui.alertNotificationOrigin", - "ui.scrollToClick", - "ui.IMERawInputUnderlineStyle", -diff --git a/xpcom/ds/StaticAtoms.py b/xpcom/ds/StaticAtoms.py -index e1a0497dc0b9..ec88f0496378 100644 ---- a/xpcom/ds/StaticAtoms.py -+++ b/xpcom/ds/StaticAtoms.py -@@ -2283,6 +2283,7 @@ STATIC_ATOMS = [ - Atom("_moz_windows_mica", "-moz-windows-mica"), - Atom("_moz_windows_mica_popups", "-moz-windows-mica-popups"), - Atom("_moz_mac_big_sur_theme", "-moz-mac-big-sur-theme"), -+ Atom("_moz_mac_tahoe_theme", "-moz-mac-tahoe-theme"), - Atom("_moz_mac_rtl", "-moz-mac-rtl"), - Atom("_moz_mac_titlebar_height", "-moz-mac-titlebar-height"), - Atom("_moz_platform", "-moz-platform"), diff --git a/src/layout/generic/nsIFrame-cpp.patch b/src/layout/generic/nsIFrame-cpp.patch index 3a9042a12..214996601 100644 --- a/src/layout/generic/nsIFrame-cpp.patch +++ b/src/layout/generic/nsIFrame-cpp.patch @@ -1,8 +1,8 @@ diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp -index 7c8f9c8c8ea4cc43825b388e7dd655a2ef34e75f..da5f48bb2d55ae306c72b062169a9758ad10c014 100644 +index a7b60e40e6947754374dcda2fc69cdb329c337ac..c7e025109c4c43865205cbd445d9d20305974974 100644 --- a/layout/generic/nsIFrame.cpp +++ b/layout/generic/nsIFrame.cpp -@@ -11912,6 +11912,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { +@@ -11899,6 +11899,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms( uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel)); diff --git a/src/layout/style/nsStyleStruct-cpp.patch b/src/layout/style/nsStyleStruct-cpp.patch index f3c81c9a9..adc1c8369 100644 --- a/src/layout/style/nsStyleStruct-cpp.patch +++ b/src/layout/style/nsStyleStruct-cpp.patch @@ -1,8 +1,8 @@ diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp -index 2413696f643246a825e184732bfba6eb33f606fd..932d3c316ee60c59b5f999e5ddd65c6acee3129d 100644 +index 9f86fdfe6a70394c5fcd9e07177e5f325c2e4951..f9b3bc2e366f0cee2fbc992c4babce068b954413 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp -@@ -3273,6 +3273,9 @@ nsStyleUIReset::nsStyleUIReset() +@@ -3233,6 +3233,9 @@ nsStyleUIReset::nsStyleUIReset() mWindowShadow(StyleWindowShadow::Auto), mWindowOpacity(1.0), mMozWindowInputRegionMargin(StyleLength::Zero()), @@ -12,7 +12,7 @@ index 2413696f643246a825e184732bfba6eb33f606fd..932d3c316ee60c59b5f999e5ddd65c6a mTransitions( nsStyleAutoArray::WITH_SINGLE_INITIAL_ELEMENT), mTransitionTimingFunctionCount(1), -@@ -3317,6 +3320,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) +@@ -3277,6 +3280,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) mWindowOpacity(aSource.mWindowOpacity), mMozWindowInputRegionMargin(aSource.mMozWindowInputRegionMargin), mMozWindowTransform(aSource.mMozWindowTransform), diff --git a/src/layout/style/nsStyleStruct-h.patch b/src/layout/style/nsStyleStruct-h.patch index 1e0c4aee3..dcc8877e3 100644 --- a/src/layout/style/nsStyleStruct-h.patch +++ b/src/layout/style/nsStyleStruct-h.patch @@ -1,8 +1,8 @@ diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h -index f40f005606946b1149bfb7b67d1df9be04ddaf07..64da397ceb4192aacd24c4cd9fb0efbad2d363ed 100644 +index 46f9312292b6f332947e68586ae770acffe8c418..2408eb06ab466faba99e83b5c92759cf3277edad 100644 --- a/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h -@@ -2094,6 +2094,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset { +@@ -2055,6 +2055,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset { // The margin of the window region that should be transparent to events. mozilla::StyleLength mMozWindowInputRegionMargin; mozilla::StyleTransform mMozWindowTransform; diff --git a/src/modules/libpref/init/StaticPrefList-yaml.patch b/src/modules/libpref/init/StaticPrefList-yaml.patch index 4156b2b27..7fd0507a6 100644 --- a/src/modules/libpref/init/StaticPrefList-yaml.patch +++ b/src/modules/libpref/init/StaticPrefList-yaml.patch @@ -1,8 +1,8 @@ diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml -index 86dc55502b05eed6e4bb0a2ed489e1e8e76840cb..2c2918b2d3c76063662fe59d7fde745a36a92ab6 100644 +index 34f519ad1107736f47719679be7f4fa20cd718c1..7f886071259d6ddd971ca5c92180de0cca9a0f5d 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml -@@ -19316,6 +19316,7 @@ +@@ -19496,6 +19496,7 @@ mirror: always #endif diff --git a/src/netwerk/protocol/http/moz-build.patch b/src/netwerk/protocol/http/moz-build.patch index e77666bdc..19b407ac1 100644 --- a/src/netwerk/protocol/http/moz-build.patch +++ b/src/netwerk/protocol/http/moz-build.patch @@ -1,8 +1,8 @@ diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build -index 906a2fcdcc2684ff4326aeb7f22f3441add7e56c..37e16b62d012498c66bc3a38f4ce48972298b6be 100644 +index d2330003caf35c43d6831fb0d356ece513906f78..76c2faf822ddaf645eb03d93380c58b4e3b510c0 100644 --- a/netwerk/protocol/http/moz.build +++ b/netwerk/protocol/http/moz.build -@@ -225,7 +225,7 @@ LOCAL_INCLUDES += [ +@@ -227,7 +227,7 @@ LOCAL_INCLUDES += [ "/netwerk/url-classifier", ] diff --git a/src/servo/components/style/gecko/media_features-rs.patch b/src/servo/components/style/gecko/media_features-rs.patch index 5763b5101..7c10d5265 100644 --- a/src/servo/components/style/gecko/media_features-rs.patch +++ b/src/servo/components/style/gecko/media_features-rs.patch @@ -1,5 +1,5 @@ diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs -index b0082951254ad592c73caaa16c5b5c57127831a9..9b3566b08aacfcf2cfbf9941b2b3ca91a31ade59 100644 +index ddbcd495260b5bcc4f55ebf7c06fcb6b5dc595c7..c629ac40f4fe3e03ffc765d3b65f3d348f4b05c6 100644 --- a/servo/components/style/gecko/media_features.rs +++ b/servo/components/style/gecko/media_features.rs @@ -13,6 +13,9 @@ use crate::values::computed::{CSSPixelLength, Context, Ratio, Resolution}; diff --git a/src/testing/mochitest/browser-test-js.patch b/src/testing/mochitest/browser-test-js.patch index ff99dd955..231a99e9b 100644 --- a/src/testing/mochitest/browser-test-js.patch +++ b/src/testing/mochitest/browser-test-js.patch @@ -1,37 +1,30 @@ diff --git a/testing/mochitest/browser-test.js b/testing/mochitest/browser-test.js -index 979c6a0960cb8c490b612649d0fac55cd7b7d0f7..f149f248f705484b3572ca462660932dd792e312 100644 +index d5f320c5e97aae9bfd43d28e3d4a274d9bbc0787..24dc32a5bf6ae9abaa8f3fe8c37b031a76fb4d60 100644 --- a/testing/mochitest/browser-test.js +++ b/testing/mochitest/browser-test.js -@@ -440,11 +440,11 @@ Tester.prototype = { - this.currentTest && - window.gBrowser && - AppConstants.MOZ_APP_NAME != "thunderbird" && -- gBrowser.tabs.length > 1 -+ gBrowser.tabs.length > 2 - ) { - let lastURI = ""; - let lastURIcount = 0; -- while (gBrowser.tabs.length > 1) { -+ while (gBrowser.tabs.length > 2) { - let lastTab = gBrowser.tabs[gBrowser.tabs.length - 1]; - if (!lastTab.closing) { - // Report the stale tab as an error only when they're not closing. -@@ -479,12 +479,12 @@ Tester.prototype = { +@@ -438,10 +438,10 @@ Tester.prototype = { + // But not the Thunderbird window, it doesn't have these things! + if (AppConstants.MOZ_APP_NAME != "thunderbird") { + // Remove stale tabs +- if (this.currentTest && window.gBrowser && gBrowser.tabs.length > 1) { ++ if (this.currentTest && window.gBrowser && gBrowser.tabs.length > 2) { + let lastURI = ""; + let lastURIcount = 0; +- while (gBrowser.tabs.length > 1) { ++ while (gBrowser.tabs.length > 2) { + let lastTab = gBrowser.tabs[gBrowser.tabs.length - 1]; + if (!lastTab.closing) { + // Report the stale tab as an error only when they're not closing. +@@ -476,12 +476,6 @@ Tester.prototype = { - // Replace the last tab with a fresh one - if (window.gBrowser && AppConstants.MOZ_APP_NAME != "thunderbird") { -- gBrowser.addTab("about:blank", { -- skipAnimation: true, -- triggeringPrincipal: -- Services.scriptSecurityManager.getSystemPrincipal(), -- }); -- gBrowser.removeTab(gBrowser.selectedTab, { skipPermitUnload: true }); -+ // gBrowser.addTab("about:blank", { -+ // skipAnimation: true, -+ // triggeringPrincipal: -+ // Services.scriptSecurityManager.getSystemPrincipal(), -+ // }); -+ // gBrowser.removeTab(gBrowser.selectedTab, { skipPermitUnload: true }); - gBrowser.stop(); - } + // Replace the last tab with a fresh one + if (window.gBrowser) { +- gBrowser.addTab("about:blank", { +- skipAnimation: true, +- triggeringPrincipal: +- Services.scriptSecurityManager.getSystemPrincipal(), +- }); +- gBrowser.removeTab(gBrowser.selectedTab, { skipPermitUnload: true }); + gBrowser.stop(); + } diff --git a/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch b/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch index 68ff066c2..11a3e7f28 100644 --- a/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch +++ b/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs -index 21b6295bf46336a70ed0a3797cf3210c8c0cb545..5a7018f1f923e977f63fae296ffdff1730ad1218 100644 +index ea47bd1029de4571a045c1ee17c313dc9d62cad8..0f8afca693e0fc112839cfb998fd8baa20227f06 100644 --- a/toolkit/actors/PictureInPictureChild.sys.mjs +++ b/toolkit/actors/PictureInPictureChild.sys.mjs -@@ -292,6 +292,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild { +@@ -295,6 +295,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild { if ( video && PictureInPictureChild.videoIsPlaying(video) && diff --git a/src/toolkit/content/widgets/findbar-js.patch b/src/toolkit/content/widgets/findbar-js.patch index 967c891d8..1390e7618 100644 --- a/src/toolkit/content/widgets/findbar-js.patch +++ b/src/toolkit/content/widgets/findbar-js.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/content/widgets/findbar.js b/toolkit/content/widgets/findbar.js -index 8ca512e0b212bb6e25ed37e7edb4f8e2587d5bb0..5abfff92b3a8df5d138082af96419668a2c8a9bb 100644 +index 589d96886b1c9a1bd0e819957978a8968402e98b..4df4be8dbbe67063f0e1920baa2db3f5b909b11b 100644 --- a/toolkit/content/widgets/findbar.js +++ b/toolkit/content/widgets/findbar.js @@ -1188,6 +1188,7 @@ diff --git a/src/toolkit/content/widgets/tabbox-js.patch b/src/toolkit/content/widgets/tabbox-js.patch index 2cdd2d525..cc7dcea1c 100644 --- a/src/toolkit/content/widgets/tabbox-js.patch +++ b/src/toolkit/content/widgets/tabbox-js.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js -index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163b914adec 100644 +index cfe2da6e199667bd668f117cc8972212c7f57da2..bdd7dcc26139202e6e31afde47dc4d877f3db3c5 100644 --- a/toolkit/content/widgets/tabbox.js +++ b/toolkit/content/widgets/tabbox.js @@ -213,7 +213,7 @@ @@ -11,7 +11,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163 this._selectedPanel?.classList.add("deck-selected"); } this.setAttribute("selectedIndex", val); -@@ -610,7 +610,7 @@ +@@ -697,7 +697,7 @@ if (!tab) { return; } @@ -20,7 +20,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163 if (otherTab != tab && otherTab.selected) { otherTab._selected = false; } -@@ -646,6 +646,7 @@ +@@ -733,6 +733,7 @@ * @param {MozTab|null} [val] */ set selectedItem(val) { @@ -28,7 +28,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163 if (val && !val.selected) { // The selectedIndex setter ignores invalid values // such as -1 if |val| isn't one of our child nodes. -@@ -823,7 +824,7 @@ +@@ -910,7 +911,7 @@ if (tab == startTab) { return null; } @@ -37,7 +37,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163 return tab; } } -@@ -885,10 +886,11 @@ +@@ -972,10 +973,11 @@ * @param {boolean} [aWrap] */ advanceSelectedTab(aDir, aWrap) { diff --git a/src/toolkit/content/xul-css.patch b/src/toolkit/content/xul-css.patch index 3f25b9b81..fb701787d 100644 --- a/src/toolkit/content/xul-css.patch +++ b/src/toolkit/content/xul-css.patch @@ -1,11 +1,11 @@ diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css -index badef34e6072da6e0e1180f5f08ab201a89fa195..2842eee9d5655444ccac8c085f19df0247886d64 100644 +index 57dd6042d2620dd64c55e0e966913047a6c3502f..40d016a0a13596439046e2bbcfa59daa30f10b2d 100644 --- a/toolkit/content/xul.css +++ b/toolkit/content/xul.css -@@ -461,7 +461,8 @@ deck > *|*:not(:-moz-native-anonymous) { - } - +@@ -463,7 +463,8 @@ deck > *|*:not(:-moz-native-anonymous) { tabpanels > .deck-selected, + tabpanels > .split-view-panel, + tabpanels > .split-view-splitter, -deck > .deck-selected { +deck > .deck-selected, +tabpanels > [zen-split="true"] { diff --git a/src/toolkit/modules/ShortcutUtils-sys-mjs.patch b/src/toolkit/modules/ShortcutUtils-sys-mjs.patch index 8dcf961a9..d544c4f4b 100644 --- a/src/toolkit/modules/ShortcutUtils-sys-mjs.patch +++ b/src/toolkit/modules/ShortcutUtils-sys-mjs.patch @@ -1,16 +1,8 @@ diff --git a/toolkit/modules/ShortcutUtils.sys.mjs b/toolkit/modules/ShortcutUtils.sys.mjs -index 3e796cb6586ad39257a29c2a6da1d0415f4c2676..98b639c726efee850456a3af8a01f0ce66423ba0 100644 +index e52e88a09a281e69ecf15e7b84b8b98736e1dbdd..f47fbe24e0860195e11fe5231ab27e52aad96d0b 100644 --- a/toolkit/modules/ShortcutUtils.sys.mjs +++ b/toolkit/modules/ShortcutUtils.sys.mjs -@@ -140,6 +140,7 @@ export var ShortcutUtils = { - key = keyCode.replace(/^VK_/, ""); - } - } else { -+ if (!keyAttribute) return ""; - key = keyAttribute.toUpperCase(); - } - -@@ -373,13 +374,11 @@ export var ShortcutUtils = { +@@ -414,13 +414,11 @@ export var ShortcutUtils = { } break; case event.DOM_VK_UP: // fall through diff --git a/src/toolkit/modules/moz-build.patch b/src/toolkit/modules/moz-build.patch index f7c21aa5f..ee6a3f71a 100644 --- a/src/toolkit/modules/moz-build.patch +++ b/src/toolkit/modules/moz-build.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build -index e43870b10c5b35165fd21b48065980060104dc52..71e3db5618c834bc4ff9d481b1e667f2b02b183e 100644 +index a17e15c74c8e627cf805d1f026438759af7e4a97..fc6e1e6b2711e474d65a688b2481b7a26cad2a71 100644 --- a/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build @@ -280,6 +280,7 @@ for var in ( diff --git a/src/toolkit/moz-configure.patch b/src/toolkit/moz-configure.patch index 7cbc4274e..2427976d1 100644 --- a/src/toolkit/moz-configure.patch +++ b/src/toolkit/moz-configure.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/moz.configure b/toolkit/moz.configure -index 2fdcf62bde7805e52737cb06ec67908fa40524c9..b9f9e3abeb5cf770b29e1354615184fce2162ec7 100644 +index f3032042d34766b0e94c56872f91271f307ffc89..8c8540e8bf8d3df5b33e2f0da6b94a32e75684b5 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project): diff --git a/src/toolkit/mozapps/extensions/AddonManager-sys-mjs.patch b/src/toolkit/mozapps/extensions/AddonManager-sys-mjs.patch index 3fd64f2b3..002478c6e 100644 --- a/src/toolkit/mozapps/extensions/AddonManager-sys-mjs.patch +++ b/src/toolkit/mozapps/extensions/AddonManager-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs -index 2c1e187d14bae0dcc17a1fa2de768e7c949b3776..c322b770bdc1a0786d8e3bf1af618e3d3d3dd26e 100644 +index 3562dfc61f6462a4e46ff321d4df4df23f48949d..2afc42cae98a24ecfd129c8a3dd1e7e0a94882ab 100644 --- a/toolkit/mozapps/extensions/AddonManager.sys.mjs +++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs -@@ -1227,12 +1227,12 @@ var AddonManagerInternal = { +@@ -1243,12 +1243,12 @@ var AddonManagerInternal = { ITEM_VERSION: aAddon.version, ITEM_STATUS: addonStatus, APP_ID: Services.appinfo.ID, diff --git a/src/toolkit/themes/shared/aboutReader-css.patch b/src/toolkit/themes/shared/aboutReader-css.patch index 6ea618c2e..f037197ad 100644 --- a/src/toolkit/themes/shared/aboutReader-css.patch +++ b/src/toolkit/themes/shared/aboutReader-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css -index 1eb2c44694bb4970134fb5d290e32c7053103461..8d8237029976960048cb9aceede918c9e20c523b 100644 +index e9dedcacb868fb0908c3432e1ccf3956b383aea7..6418c08550b9b4876df20ca5f93d093be0583f83 100644 --- a/toolkit/themes/shared/aboutReader.css +++ b/toolkit/themes/shared/aboutReader.css @@ -1181,3 +1181,43 @@ pre code { diff --git a/src/toolkit/themes/shared/in-content/common-shared-css.patch b/src/toolkit/themes/shared/in-content/common-shared-css.patch index 615b9a4e5..0f1788dfb 100644 --- a/src/toolkit/themes/shared/in-content/common-shared-css.patch +++ b/src/toolkit/themes/shared/in-content/common-shared-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/themes/shared/in-content/common-shared.css b/toolkit/themes/shared/in-content/common-shared.css -index 96129498de63153704711bf7a21fb10922e80917..83f7b5ee2f15197dc42ec02ec1a73cc2bfc19a4d 100644 +index 2d068aa3472887e089254834d92f75b9f6d9894b..1a6d5b87fdcfb338222475bb6362820e3915955d 100644 --- a/toolkit/themes/shared/in-content/common-shared.css +++ b/toolkit/themes/shared/in-content/common-shared.css @@ -4,7 +4,7 @@ diff --git a/src/toolkit/themes/shared/menulist-css.patch b/src/toolkit/themes/shared/menulist-css.patch index a8cd61158..d295c0745 100644 --- a/src/toolkit/themes/shared/menulist-css.patch +++ b/src/toolkit/themes/shared/menulist-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/themes/shared/menulist.css b/toolkit/themes/shared/menulist.css -index 8f9c006945e67f668075bd36ce83d5a772a9a796..08d68c015b001233548cd6c7babad17f3a638702 100644 +index 73149025f13e8805774c004820d57755d2bf89a9..f503e6bcd1c466757fc58e033aa0d68343685e28 100644 --- a/toolkit/themes/shared/menulist.css +++ b/toolkit/themes/shared/menulist.css @@ -53,7 +53,7 @@ @@ -9,5 +9,5 @@ index 8f9c006945e67f668075bd36ce83d5a772a9a796..08d68c015b001233548cd6c7babad17f - background-color: var(--button-background-color); + background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1)); color: var(--button-text-color); - border-radius: var(--border-radius-small); + border-radius: var(--button-border-radius); padding-block: 4px; diff --git a/src/toolkit/themes/shared/pictureinpicture/player-css.patch b/src/toolkit/themes/shared/pictureinpicture/player-css.patch index 798902248..1bdc8564d 100644 --- a/src/toolkit/themes/shared/pictureinpicture/player-css.patch +++ b/src/toolkit/themes/shared/pictureinpicture/player-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/themes/shared/pictureinpicture/player.css b/toolkit/themes/shared/pictureinpicture/player.css -index 33b10bebcdfe636d7ff0f61a11d5fa4664a31f78..83b53817c53f43cca3be40b490300109b4949f5b 100644 +index 12dba9ec5eee93476034b1e8b503a301fc18dbcb..b81c9e997d85e78cdf6ab460e14a5128117639bd 100644 --- a/toolkit/themes/shared/pictureinpicture/player.css +++ b/toolkit/themes/shared/pictureinpicture/player.css @@ -738,3 +738,17 @@ input:checked + .slider::before { diff --git a/src/toolkit/themes/shared/popup-css.patch b/src/toolkit/themes/shared/popup-css.patch index c6400bc28..83a79dc5d 100644 --- a/src/toolkit/themes/shared/popup-css.patch +++ b/src/toolkit/themes/shared/popup-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/themes/shared/popup.css b/toolkit/themes/shared/popup.css -index 9533f5e0fee5fb0805ae4b65e56307986ee26417..a3a06dce50142354b78561ecfb70ba45fe10b9c1 100644 +index c2618b86d7e8bb71f9f7f71ef9916c8140ca1ead..9e2006015e22f1ac043c46066c4c9a85fe053a21 100644 --- a/toolkit/themes/shared/popup.css +++ b/toolkit/themes/shared/popup.css @@ -22,8 +22,8 @@ panel { diff --git a/src/toolkit/themes/shared/tree/tree-css.patch b/src/toolkit/themes/shared/tree/tree-css.patch index b5347977d..e60fffebe 100644 --- a/src/toolkit/themes/shared/tree/tree-css.patch +++ b/src/toolkit/themes/shared/tree/tree-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/themes/shared/tree/tree.css b/toolkit/themes/shared/tree/tree.css -index c50cab31785eecece2bf061b9770ba90c6ed0181..dfbd227ddab802d927b6897454a86fcd7252e96f 100644 +index ee8c5fc6399092cbb45657bb3ee49178f797349e..f30ff2db77854fb4acca6279369e313da0a6a4e2 100644 --- a/toolkit/themes/shared/tree/tree.css +++ b/toolkit/themes/shared/tree/tree.css @@ -12,6 +12,7 @@ diff --git a/src/tools/signing/macos/mach_commands-py.patch b/src/tools/signing/macos/mach_commands-py.patch index be02e1b77..b448eb9c3 100644 --- a/src/tools/signing/macos/mach_commands-py.patch +++ b/src/tools/signing/macos/mach_commands-py.patch @@ -1,5 +1,5 @@ diff --git a/tools/signing/macos/mach_commands.py b/tools/signing/macos/mach_commands.py -index 721790b0d067ea1cdc6ddc9d220e423de9206d53..ca80e6f2c8bcd82eda24d03720a37a2bfdc50cfe 100644 +index 3bd0fa80c18b903e9828d2f61be3cfb71e2132e0..4d0fdd64d19cb429c19701ea008e02dc16489834 100644 --- a/tools/signing/macos/mach_commands.py +++ b/tools/signing/macos/mach_commands.py @@ -37,7 +37,6 @@ from mozbuild.base import MachCommandConditions as conditions @@ -21,7 +21,7 @@ index 721790b0d067ea1cdc6ddc9d220e423de9206d53..ca80e6f2c8bcd82eda24d03720a37a2b if use_rcodesign_arg is True: sign_with_rcodesign( command_context, -@@ -608,7 +611,7 @@ def sign_with_rcodesign( +@@ -613,7 +616,7 @@ def sign_with_rcodesign( # input path and its options are specified as standard arguments. ctx.log(logging.INFO, "macos-sign", {}, "Signing with rcodesign") diff --git a/src/widget/cocoa/nsCocoaWindow-mm.patch b/src/widget/cocoa/nsCocoaWindow-mm.patch deleted file mode 100644 index ee8b3bc7a..000000000 --- a/src/widget/cocoa/nsCocoaWindow-mm.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm -index 6c80f33454503af0840af18cb88af44a006727ee..47b318814ddd57b1e73c66b576884b8e62093906 100644 ---- a/widget/cocoa/nsCocoaWindow.mm -+++ b/widget/cocoa/nsCocoaWindow.mm -@@ -7588,7 +7588,7 @@ static NSMutableSet* gSwizzledFrameViewClasses = nil; - - // Returns an autoreleased NSImage. - static NSImage* GetMenuMaskImage() { -- const CGFloat radius = 6.0f; -+ const CGFloat radius = 10.0f; - const NSSize maskSize = {radius * 3.0f, radius * 3.0f}; - NSImage* maskImage = [NSImage imageWithSize:maskSize - flipped:FALSE