diff --git a/README.md b/README.md index f59803ce6..6609e9fbe 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne ### Firefox Versions - [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `145.0.2`! 🚀 -- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0.2`! +- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 146.0`! ### Contributing diff --git a/build/firefox-cache/l10n-last-commit-hash b/build/firefox-cache/l10n-last-commit-hash index 46bf23512..b4368f57d 100644 --- a/build/firefox-cache/l10n-last-commit-hash +++ b/build/firefox-cache/l10n-last-commit-hash @@ -1 +1 @@ -37df51b9bc9a584158ac1b42dc2da8c5e49fac83 \ No newline at end of file +acd4663cd1530303fcca85b420a78f4686c4628b \ No newline at end of file diff --git a/scripts/recalculate-patches.sh b/scripts/recalculate-patches.sh index 05d10f361..fb846e20f 100644 --- a/scripts/recalculate-patches.sh +++ b/scripts/recalculate-patches.sh @@ -3,6 +3,11 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. +set -e + +# FIrst check if importing the patches succeeds +npm run import + IGNORE_FILES=( "shared.nsh" "ignorePrefs.json" diff --git a/src/Cargo-lock.patch b/src/Cargo-lock.patch index 9d6b283dd..6ecc1e0ff 100644 --- a/src/Cargo-lock.patch +++ b/src/Cargo-lock.patch @@ -1,8 +1,8 @@ diff --git a/Cargo.lock b/Cargo.lock -index 4386724a82baa72678b7228ef3af9fabc2da318e..01f7ac42ff96f8f96984537f19bde4bbc8cd8d72 100644 +index 6f6632e9747e281aac3ea177225c03b73f25456e..06756e08041835c203490057855d537118647cd0 100644 --- a/Cargo.lock +++ b/Cargo.lock -@@ -4167,8 +4167,6 @@ dependencies = [ +@@ -4171,8 +4171,6 @@ dependencies = [ [[package]] name = "mime_guess" version = "2.0.4" diff --git a/src/Cargo-toml.patch b/src/Cargo-toml.patch index 81b7afcbe..e362b5478 100644 --- a/src/Cargo-toml.patch +++ b/src/Cargo-toml.patch @@ -1,8 +1,8 @@ diff --git a/Cargo.toml b/Cargo.toml -index 772a74e7439d87e9c5486abcf003617240190710..522b5459b30b943832369ff7a73755ad4c7d8140 100644 +index e2846a08008684f18799d75e5c28fd244c10361a..ba72071baef49ed494f78d1cc6752b53d1841f46 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -227,6 +227,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" } +@@ -232,6 +232,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 7a99c8301..200262649 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 4ff6ae4d6f272936f0aa1c80a488df16159b42f2..85e4d7bf500603fcd5724658e96c7fd0a04432d3 100644 +index a9612920f86ef5f37328497bf62255497e96b02d..a5643cd7e9c7a71da391408c14e00185b7db3f24 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/app/macbuild/Contents/Info-plist-in.patch b/src/browser/app/macbuild/Contents/Info-plist-in.patch index c6684c4ce..3fa8021f7 100644 --- a/src/browser/app/macbuild/Contents/Info-plist-in.patch +++ b/src/browser/app/macbuild/Contents/Info-plist-in.patch @@ -1,13 +1,13 @@ diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in -index ea28831b90662b12bdcb137c35b6bb83626c77e7..d28f4eca976ad9de12b03d995d2363e643224421 100644 +index 0c4fb837a24490c66b284abf2bd9299c2e021de0..ea28831b90662b12bdcb137c35b6bb83626c77e7 100644 --- a/browser/app/macbuild/Contents/Info.plist.in +++ b/browser/app/macbuild/Contents/Info.plist.in -@@ -191,7 +191,7 @@ +@@ -190,8 +190,6 @@ + @MAC_APP_NAME@ @APP_VERSION@ CFBundleIconFile firefox.icns +- CFBundleIconName +- AppIcon CFBundleIdentifier -- @MOZ_MACBUNDLE_ID@ -+ app.zen-browser.zen + @MOZ_MACBUNDLE_ID@ CFBundleInfoDictionaryVersion - 6.0 - CFBundleName diff --git a/src/browser/base/content/browser-addons-js.patch b/src/browser/base/content/browser-addons-js.patch index acb98ccc7..63afb40df 100644 --- a/src/browser/base/content/browser-addons-js.patch +++ b/src/browser/base/content/browser-addons-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js -index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2bd5a757d 100644 +index fadcbfca95ee28140579430c0371baad0e2f216a..7454b801b4ad892d6ad122277eb7c7736e976f9f 100644 --- a/browser/base/content/browser-addons.js +++ b/browser/base/content/browser-addons.js @@ -1069,7 +1069,7 @@ var gXPInstallObserver = { @@ -38,7 +38,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2 } return anchorID; -@@ -2646,11 +2646,7 @@ var gUnifiedExtensions = { +@@ -2657,11 +2657,7 @@ var gUnifiedExtensions = { // Lazy load the unified-extensions-panel panel the first time we need to // display it. if (!this._panel) { @@ -51,7 +51,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2 let customizationArea = this._panel.querySelector( "#unified-extensions-area" ); -@@ -2703,6 +2699,7 @@ var gUnifiedExtensions = { +@@ -2714,6 +2710,7 @@ var gUnifiedExtensions = { // and no alternative content is available for display in the panel. const policies = this.getActivePolicies(); if ( @@ -59,7 +59,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2 policies.length && !this.hasExtensionsInPanel(policies) && !this.isPrivateWindowMissingExtensionsWithoutPBMAccess() && -@@ -2743,7 +2740,7 @@ var gUnifiedExtensions = { +@@ -2754,7 +2751,7 @@ var gUnifiedExtensions = { this.recordButtonTelemetry(reason || "extensions_panel_showing"); this.ensureButtonShownBeforeAttachingPanel(panel); PanelMultiView.openPopup(panel, this._button, { @@ -68,7 +68,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2 triggerEvent: aEvent, }); } -@@ -2930,18 +2927,20 @@ var gUnifiedExtensions = { +@@ -2941,18 +2938,20 @@ var gUnifiedExtensions = { this._maybeMoveWidgetNodeBack(widgetId); } diff --git a/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch b/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch index ce5b0041f..0a56038db 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 bef746dc594ad974c91075cf3657c199f8f8830f..bb671341b6715c42df76f7298ba55e1fac73f33b 100644 +index f459f3ca4048c29a32832b46ba87de8552a0ab8a..d317676e6d12d756ddf5dfbffe73050de07c2375 100644 --- a/browser/base/content/browser-fullScreenAndPointerLock.js +++ b/browser/base/content/browser-fullScreenAndPointerLock.js -@@ -424,10 +424,10 @@ var FullScreen = { +@@ -423,10 +423,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-init-js.patch b/src/browser/base/content/browser-init-js.patch index b8b27c308..14a2b2e88 100644 --- a/src/browser/base/content/browser-init-js.patch +++ b/src/browser/base/content/browser-init-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js -index 8e63654b343e8518aa0e366a3fd3bf7e0856eafb..3cebc9bb057f51cea639130fecd7576e1c9db79c 100644 +index 02f601d859ea32557af572d2499ad8be75b684b5..b1a6f66a74f75150d7e2fbc50528965bb16cb4d9 100644 --- a/browser/base/content/browser-init.js +++ b/browser/base/content/browser-init.js @@ -198,6 +198,7 @@ var gBrowserInit = { diff --git a/src/browser/base/content/browser-js.patch b/src/browser/base/content/browser-js.patch index 4165d22e5..3c0fb48ec 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 b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd61ee1828 100644 +index 15ef352c147eff781d34a3e5fa02fa791bdd6188..b0784e817ad25c7a4983e9f1cb08b293de15a99d 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 b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd DevToolsSocketStatus: "resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs", DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs", -@@ -822,7 +823,12 @@ function UpdateBackForwardCommands(aWebNavigation) { +@@ -821,7 +822,12 @@ function UpdateBackForwardCommands(aWebNavigation) { var backDisabled = backCommand.hasAttribute("disabled"); var forwardDisabled = forwardCommand.hasAttribute("disabled"); @@ -24,7 +24,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd if (backDisabled) { backCommand.removeAttribute("disabled"); } else { -@@ -2298,6 +2304,8 @@ var XULBrowserWindow = { +@@ -2297,6 +2303,8 @@ var XULBrowserWindow = { AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser); TranslationsParent.onLocationChange(gBrowser.selectedBrowser); @@ -33,7 +33,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser); if (!gMultiProcessBrowser) { -@@ -3809,7 +3817,7 @@ function warnAboutClosingWindow() { +@@ -3808,7 +3816,7 @@ function warnAboutClosingWindow() { if (!isPBWindow && !toolbar.visible) { return gBrowser.warnAboutClosingTabs( @@ -42,7 +42,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd gBrowser.closingTabsEnum.ALL ); } -@@ -3849,7 +3857,7 @@ function warnAboutClosingWindow() { +@@ -3848,7 +3856,7 @@ function warnAboutClosingWindow() { return ( isPBWindow || gBrowser.warnAboutClosingTabs( @@ -51,7 +51,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd gBrowser.closingTabsEnum.ALL ) ); -@@ -3874,7 +3882,7 @@ function warnAboutClosingWindow() { +@@ -3873,7 +3881,7 @@ function warnAboutClosingWindow() { AppConstants.platform != "macosx" || isPBWindow || gBrowser.warnAboutClosingTabs( @@ -60,7 +60,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd gBrowser.closingTabsEnum.ALL ) ); -@@ -4796,6 +4804,9 @@ var ConfirmationHint = { +@@ -4795,6 +4803,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-sets-inc.patch b/src/browser/base/content/browser-sets-inc.patch index 837f55c92..3ed82c454 100644 --- a/src/browser/base/content/browser-sets-inc.patch +++ b/src/browser/base/content/browser-sets-inc.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc -index 2e7654036647796715aec392f9e714e7256c9864..0b3b76ab479bb6ae5439dd424b69f641d3b86c28 100644 +index 8d97b6e669954a09afe6a46d1c79652264494e92..86877b983207c5f9852c9192ee0257a909c5ea7a 100644 --- a/browser/base/content/browser-sets.inc +++ b/browser/base/content/browser-sets.inc -@@ -405,3 +405,4 @@ +@@ -406,3 +406,4 @@ internal="true"/> #endif diff --git a/src/browser/base/content/browser-sets-js.patch b/src/browser/base/content/browser-sets-js.patch index b2968174e..dc7ab61db 100644 --- a/src/browser/base/content/browser-sets-js.patch +++ b/src/browser/base/content/browser-sets-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js -index 9cff49a7b86f7697f70c4ef61d3c3561f058dc45..15ac9a8a79e8642b3add2f6df63ed32eb0c8bcb9 100644 +index 0bb581aa34ddeef1e3eb85b0fadd41a539b4b9d6..cbe2df8b1775cb8194007ee995fd91769618b48d 100644 --- a/browser/base/content/browser-sets.js +++ b/browser/base/content/browser-sets.js -@@ -253,7 +253,7 @@ document.addEventListener( +@@ -254,7 +254,7 @@ document.addEventListener( } }); diff --git a/src/browser/base/content/main-popupset-inc-xhtml.patch b/src/browser/base/content/main-popupset-inc-xhtml.patch index 9adb099f4..609164180 100644 --- a/src/browser/base/content/main-popupset-inc-xhtml.patch +++ b/src/browser/base/content/main-popupset-inc-xhtml.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml -index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18b8dffccd 100644 +index e688ba37c40ea602a32a84af6c1497d884ddc27b..ad8515eae1d4e697b9329d9d5babfd59679c9288 100644 --- a/browser/base/content/main-popupset.inc.xhtml +++ b/browser/base/content/main-popupset.inc.xhtml -@@ -208,6 +208,10 @@ +@@ -216,6 +216,10 @@ hidden="true" tabspecific="true" aria-labelledby="editBookmarkPanelTitle"> @@ -13,7 +13,7 @@ index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18 -@@ -233,6 +237,7 @@ +@@ -241,6 +245,7 @@ class="footer-button"/> @@ -21,7 +21,7 @@ index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18 -@@ -628,6 +633,8 @@ +@@ -636,6 +641,8 @@ #include popup-notifications.inc.xhtml diff --git a/src/browser/base/content/navigator-toolbox-inc-xhtml.patch b/src/browser/base/content/navigator-toolbox-inc-xhtml.patch index 98bcbfa15..88a40f89f 100644 --- a/src/browser/base/content/navigator-toolbox-inc-xhtml.patch +++ b/src/browser/base/content/navigator-toolbox-inc-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml -index 328a9b052e2f758f48df1caa8165347ed0301b33..1c111abe148f2e16afa6b5f33eb118b7c02dfd69 100644 +index 40dddda5a6191c2ac012767ca55ed5fa35c03a6b..2e96a7ca233529ee2b570f94154008be5b0088e3 100644 --- a/browser/base/content/navigator-toolbox.inc.xhtml +++ b/browser/base/content/navigator-toolbox.inc.xhtml @@ -2,7 +2,7 @@ diff --git a/src/browser/base/content/nsContextMenu-sys-mjs.patch b/src/browser/base/content/nsContextMenu-sys-mjs.patch index b872d46b7..6b8e980b4 100644 --- a/src/browser/base/content/nsContextMenu-sys-mjs.patch +++ b/src/browser/base/content/nsContextMenu-sys-mjs.patch @@ -1,13 +1,14 @@ diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs -index 259b440375c7e84d373a134fea20cdbc1c1bae4b..c4a251f0169d22186c2766992ab40366d53582f1 100644 +index b77c12da637ba31aca6e8100187d0ac14db33298..4fbec0dda932bcaa77ce714826ac8ab20b9e8e63 100644 --- a/browser/base/content/nsContextMenu.sys.mjs +++ b/browser/base/content/nsContextMenu.sys.mjs -@@ -1103,6 +1103,8 @@ export class nsContextMenu { - !this.onMozExtLink && - !this.isSecureAboutPage() - ); -+ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink); -+ this.showItem("context-zenOpenLinkInGlance", this.onLink && !this.onMailtoLink && !this.onTelLink); +@@ -376,6 +376,9 @@ export class nsContextMenu { + this.initPDFItems(); + this.initTextFragmentItems(); - let canNotStrip = - lazy.STRIP_ON_SHARE_CAN_DISABLE && !this.#canStripParams(); ++ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink); ++ this.showItem("context-zenOpenLinkInGlance", this.onLink && !this.onMailtoLink && !this.onTelLink); ++ + this.showHideSeparators(aXulMenu); + if (!aXulMenu.showHideSeparators) { + // Set the showHideSeparators function on the menu itself so that diff --git a/src/browser/components/BrowserGlue-sys-mjs.patch b/src/browser/components/BrowserGlue-sys-mjs.patch index 1b6d97eba..baedfac8e 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 f1cabb13ca4f86a2bafc1d93b7f882218a108eb2..2389b1addf24d17bd41fca65cfeb6f944479076d 100644 +index 5dcbb1705625746afd7c57b7a6044c4fa2f00afd..c0872057ec65fe8ebdb2f81e47198dec5d6f0faf 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"; diff --git a/src/browser/components/aboutlogins/content/aboutLogins-html.patch b/src/browser/components/aboutlogins/content/aboutLogins-html.patch index eaa43f4ea..e0b9b140d 100644 --- a/src/browser/components/aboutlogins/content/aboutLogins-html.patch +++ b/src/browser/components/aboutlogins/content/aboutLogins-html.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/aboutlogins/content/aboutLogins.html b/browser/components/aboutlogins/content/aboutLogins.html -index a2b9a3c3bd60b7c679fc4babf2cc085f79ba84f5..3acd8da43d31cf8e9eb25d74421f522fdbd41094 100644 +index ca69defe40c57704ab6ec331ce11c95a98b03e8f..bc5be4555adbe3389bceee0f01730ee57f1e69ef 100644 --- a/browser/components/aboutlogins/content/aboutLogins.html +++ b/browser/components/aboutlogins/content/aboutLogins.html @@ -6,7 +6,7 @@ diff --git a/src/browser/components/aboutlogins/content/components/login-list-css.patch b/src/browser/components/aboutlogins/content/components/login-list-css.patch index e2a10dbec..66be640df 100644 --- a/src/browser/components/aboutlogins/content/components/login-list-css.patch +++ b/src/browser/components/aboutlogins/content/components/login-list-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/aboutlogins/content/components/login-list.css b/browser/components/aboutlogins/content/components/login-list.css -index 3c766eaa80c00ef145168f7a2ceced95ce94295e..db7a7da03c8346f97b472b8e561fec79c1036337 100644 +index e8d2077ca425d9a2b924aa6ac6ba8ada36b76615..95a8ab3dcff832f16068b6739526e8e29f0b4e26 100644 --- a/browser/components/aboutlogins/content/components/login-list.css +++ b/browser/components/aboutlogins/content/components/login-list.css @@ -3,7 +3,7 @@ diff --git a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch index c21b3604e..d6b203a2f 100644 --- a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch +++ b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs -index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aab438565f 100644 +index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..39e947ce083ce3b293337f5dbb40cd0b46db12e2 100644 --- a/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs @@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -68,7 +68,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa ]); if (AppConstants.platform != "macosx") { toolbars.add(CustomizableUI.AREA_MENUBAR); -@@ -1250,6 +1242,9 @@ var CustomizableUIInternal = { +@@ -1242,6 +1234,9 @@ var CustomizableUIInternal = { placements = gPlacements.get(area); } @@ -78,7 +78,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa // For toolbars that need it, mark as dirty. let defaultPlacements = areaProperties.get("defaultPlacements"); if ( -@@ -1757,7 +1752,7 @@ var CustomizableUIInternal = { +@@ -1749,7 +1744,7 @@ var CustomizableUIInternal = { lazy.log.info( "Widget " + aWidgetId + " not found, unable to remove from " + aArea ); @@ -87,7 +87,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa } this.notifyDOMChange(widgetNode, null, container, true, () => { -@@ -1767,7 +1762,7 @@ var CustomizableUIInternal = { +@@ -1759,7 +1754,7 @@ var CustomizableUIInternal = { // We also need to remove the panel context menu if it's there: this.ensureButtonContextMenu(widgetNode); if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) { @@ -96,7 +96,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa } else { window.gNavToolbox.palette.appendChild(widgetNode); } -@@ -1935,16 +1930,16 @@ var CustomizableUIInternal = { +@@ -1927,16 +1922,16 @@ var CustomizableUIInternal = { elem.setAttribute("skipintoolbarset", "true"); } } @@ -116,7 +116,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa // Handle initial state of vertical tabs. if (isVerticalTabs) { // Show the vertical tabs toolbar -@@ -2186,6 +2181,10 @@ var CustomizableUIInternal = { +@@ -2178,6 +2173,10 @@ var CustomizableUIInternal = { * The identifier string of the area that aNode is being inserted into. */ insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) { @@ -127,7 +127,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => { this.setLocationAttributes(aNode, aAreaId); aContainer.insertBefore(aNode, aNextNode); -@@ -4541,7 +4540,7 @@ var CustomizableUIInternal = { +@@ -4533,7 +4532,7 @@ var CustomizableUIInternal = { * For all registered areas, builds those areas to reflect the current * placement state of all widgets. */ @@ -136,7 +136,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa for (let [areaId, areaNodes] of gBuildAreas) { let placements = gPlacements.get(areaId); let isFirstChangedToolbar = true; -@@ -4552,7 +4551,7 @@ var CustomizableUIInternal = { +@@ -4544,7 +4543,7 @@ var CustomizableUIInternal = { if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) { let defaultCollapsed = area.get("defaultCollapsed"); let win = areaNode.ownerGlobal; @@ -145,7 +145,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa win.setToolbarVisibility( areaNode, typeof defaultCollapsed == "string" -@@ -5843,6 +5842,7 @@ export var CustomizableUI = { +@@ -5835,6 +5834,7 @@ export var CustomizableUI = { unregisterArea(aName, aDestroyPlacements) { CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements); }, @@ -153,7 +153,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa /** * Add a widget to an area. * If the area to which you try to add is not known to CustomizableUI, -@@ -7866,7 +7866,7 @@ class OverflowableToolbar { +@@ -7858,7 +7858,7 @@ class OverflowableToolbar { ) { continue; } @@ -162,7 +162,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa if (child != aExceptChild) { sum += getInlineSize(child); } -@@ -7890,11 +7890,11 @@ class OverflowableToolbar { +@@ -7882,11 +7882,11 @@ class OverflowableToolbar { parseFloat(style.paddingLeft) - parseFloat(style.paddingRight) - toolbarChildrenWidth; @@ -176,7 +176,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa }); lazy.log.debug( -@@ -7909,7 +7909,14 @@ class OverflowableToolbar { +@@ -7901,7 +7901,14 @@ class OverflowableToolbar { Math.max(targetWidth, targetChildrenWidth) ); totalAvailWidth = Math.ceil(totalAvailWidth); @@ -192,7 +192,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa return { isOverflowing, targetContentWidth, totalAvailWidth }; } -@@ -7970,7 +7977,11 @@ class OverflowableToolbar { +@@ -7962,7 +7969,11 @@ class OverflowableToolbar { return; } } @@ -205,7 +205,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa lazy.log.debug( `Need ${minSize} but width is ${totalAvailWidth} so bailing` ); -@@ -8003,7 +8014,7 @@ class OverflowableToolbar { +@@ -7995,7 +8006,7 @@ class OverflowableToolbar { } } if (!inserted) { @@ -214,7 +214,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa } child.removeAttribute("cui-anchorid"); child.removeAttribute("overflowedItem"); -@@ -8348,7 +8359,7 @@ class OverflowableToolbar { +@@ -8340,7 +8351,7 @@ class OverflowableToolbar { break; } case "mousedown": { diff --git a/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch b/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch index e4a83fbfb..7472a3627 100644 --- a/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch +++ b/src/browser/components/customizableui/CustomizeMode-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs -index fd3c54a1d80f5800ffd2dcaaf594eed4bd2d300c..3178bd28affd8bd2e18c347fde6c3ec00068710c 100644 +index 52e93e9d9d77f6e410d72bee707fccf26f728004..1142f096e1221213195453d60507ba1bd2f7aed9 100644 --- a/browser/components/customizableui/CustomizeMode.sys.mjs +++ b/browser/components/customizableui/CustomizeMode.sys.mjs @@ -503,7 +503,7 @@ export class CustomizeMode { diff --git a/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch b/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch index 88bc51a65..d4ac42499 100644 --- a/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch +++ b/src/browser/components/customizableui/ToolbarContextMenu-sys-mjs.patch @@ -1,14 +1,15 @@ diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs -index 95621ae202378fb1ebceca5623a98b790b9eb5ff..835b831fb4f005ae4be72ce0953ac9254e6b4891 100644 +index 5be4e8ea7867e93bda2cd3eb49d966ebd73dc786..650d0008e755583392e07f35bd8e541dff7c43c4 100644 --- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs +++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs -@@ -242,9 +242,7 @@ export var ToolbarContextMenu = { +@@ -246,10 +246,7 @@ export var ToolbarContextMenu = { // Show/hide sidebar and vertical tabs menu items let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp"); let showSidebarActions = - ["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) || - toolbarItem?.localName == "toolbarspring" || -- isTitlebarSpacer; +- isTitlebarSpacer || +- isMenuBarSpacer; + false; let toggleVerticalTabsItem = document.getElementById( diff --git a/src/browser/components/places/PlacesUIUtils-sys-mjs.patch b/src/browser/components/places/PlacesUIUtils-sys-mjs.patch index f6b6cbd07..884380fc2 100644 --- a/src/browser/components/places/PlacesUIUtils-sys-mjs.patch +++ b/src/browser/components/places/PlacesUIUtils-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs -index 86cc499f9b959ef87ab57fc4195e0c65f25e8c7c..a928ea83b9f4d0133238e744d2fb91318d36d4de 100644 +index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca8418103f6e6 100644 --- a/browser/components/places/PlacesUIUtils.sys.mjs +++ b/browser/components/places/PlacesUIUtils.sys.mjs @@ -60,6 +60,7 @@ class BookmarkState { diff --git a/src/browser/components/preferences/jar-mn.patch b/src/browser/components/preferences/jar-mn.patch index 59429d78a..ebc62b7f3 100644 --- a/src/browser/components/preferences/jar-mn.patch +++ b/src/browser/components/preferences/jar-mn.patch @@ -1,11 +1,11 @@ diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn -index 65efb0666785cc79e58015e19ec55216bf4ec9c4..95941c52ffd4c9ee36f584413fb96d59721113db 100644 +index 7c5f6e9053f119a790f83a68c75ee11a6c172d98..cb0e1386318e8a8df24dfbbf8430d0a09fe07d16 100644 --- a/browser/components/preferences/jar.mn +++ b/browser/components/preferences/jar.mn -@@ -33,3 +33,5 @@ browser.jar: - content/browser/preferences/widgets/setting-pane.mjs (widgets/setting-pane/setting-pane.mjs) +@@ -37,3 +37,5 @@ browser.jar: content/browser/preferences/widgets/security-privacy-card.mjs (widgets/security-privacy/security-privacy-card/security-privacy-card.mjs) content/browser/preferences/widgets/security-privacy-card.css (widgets/security-privacy/security-privacy-card/security-privacy-card.css) + content/browser/preferences/widgets/sync-device-name.mjs (widgets/sync-device-name/sync-device-name.mjs) + + content/browser/preferences/zen-settings.js \ No newline at end of file diff --git a/src/browser/components/preferences/main-inc-xhtml.patch b/src/browser/components/preferences/main-inc-xhtml.patch index a0683e114..6d458377b 100644 --- a/src/browser/components/preferences/main-inc-xhtml.patch +++ b/src/browser/components/preferences/main-inc-xhtml.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml -index ff577c035ff6128f7ae948bc810082c92b3a624c..40f94fff53c63bdff28eaa68f9b0736d53c5b4f8 100644 +index bfddd91e6b524f2ebced985f5d12a4963e5c6075..7e80c0a293aae6356e53d9c9760017290e97ffa0 100644 --- a/browser/components/preferences/main.inc.xhtml +++ b/browser/components/preferences/main.inc.xhtml @@ -141,7 +141,8 @@ diff --git a/src/browser/components/preferences/main-js.patch b/src/browser/components/preferences/main-js.patch index ece242110..c9c6b02a0 100644 --- a/src/browser/components/preferences/main-js.patch +++ b/src/browser/components/preferences/main-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js -index 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca323682e89e76 100644 +index a184086f10d6a919c8125ab5d7728319256b3b73..7c826000ccdc8a55a12a08bdc2c547d886e5610c 100644 --- a/browser/components/preferences/main.js +++ b/browser/components/preferences/main.js @@ -1117,6 +1117,11 @@ let SETTINGS_CONFIG = { @@ -14,7 +14,7 @@ index 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca3236 { id: "windowsLaunchOnLogin", l10nId: "windows-launch-on-login", -@@ -1611,7 +1616,7 @@ function getBundleForLocales(newLocales) { +@@ -1700,7 +1705,7 @@ function getBundleForLocales(newLocales) { ]) ); return new Localization( diff --git a/src/browser/components/preferences/preferences-js.patch b/src/browser/components/preferences/preferences-js.patch index 8b2db49d4..bf1d1d963 100644 --- a/src/browser/components/preferences/preferences-js.patch +++ b/src/browser/components/preferences/preferences-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js -index c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846ba3cffa9 100644 +index a0e16b375f0ad7ef58bf68d7574453ef37d4557f..2d5b5a0715b5ed8ebe592eebea0219a6cde17b52 100644 --- a/browser/components/preferences/preferences.js +++ b/browser/components/preferences/preferences.js -@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () { +@@ -118,6 +118,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () { styleSheets: [ "chrome://browser/skin/preferences/dialog.css", "chrome://browser/skin/preferences/preferences.css", @@ -10,7 +10,7 @@ index c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846 ], resizeCallback: async ({ title, frame }) => { // Search within main document and highlight matched keyword. -@@ -224,6 +225,10 @@ function init_all() { +@@ -225,6 +226,10 @@ function init_all() { register_module("paneSearch", gSearchPane); register_module("panePrivacy", gPrivacyPane); register_module("paneContainers", gContainersPane); diff --git a/src/browser/components/preferences/preferences-xhtml.patch b/src/browser/components/preferences/preferences-xhtml.patch index 4227b80db..d696a22d5 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 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d2c4a0c92 100644 +index 993554d64efa6ce39fbcc01d4676a69199e158ff..e69aec388162997ef7cb93481cfedb9d102b4fe0 100644 --- a/browser/components/preferences/preferences.xhtml +++ b/browser/components/preferences/preferences.xhtml @@ -45,6 +45,8 @@ @@ -11,7 +11,7 @@ index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d -@@ -109,6 +111,11 @@ +@@ -113,6 +115,11 @@ @@ -23,7 +23,7 @@ index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d @@ -74,7 +74,7 @@ index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d @@ -86,7 +86,7 @@ index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d -@@ -250,6 +296,10 @@ +@@ -254,6 +300,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 406ca8fe2..f3823eb17 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 31b95644f820eda3267d3b52913ed0845abc1c80..1c8869418f7c88ed33601860dafd2c4eb0d5731f 100644 +index 4ecdbdb129577165ed0df619577327f7610e138f..761a4d4f26a21ba555b7af180e8a6030615db500 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/SearchOneOffs-sys-mjs.patch b/src/browser/components/search/SearchOneOffs-sys-mjs.patch index 17f9becee..ef27cf200 100644 --- a/src/browser/components/search/SearchOneOffs-sys-mjs.patch +++ b/src/browser/components/search/SearchOneOffs-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs -index 3930862215a667e223f1bf6959dcf1c08421b37d..68d767b6d8490a374973eb86a032a6386879fd93 100644 +index 3e5b29bc0a740df503e69f811ef01de1d6f0340a..b1bcdfc8c1bba506370f1a05fb31630c64bbd6d3 100644 --- a/browser/components/search/SearchOneOffs.sys.mjs +++ b/browser/components/search/SearchOneOffs.sys.mjs -@@ -466,7 +466,7 @@ export class SearchOneOffs { +@@ -473,7 +473,7 @@ export class SearchOneOffs { // For the search-bar, always show the one-off buttons where there is an // option to add an engine. let addEngineNeeded = isSearchBar && addEngines.length; diff --git a/src/browser/components/sessionstore/SessionStore-sys-mjs.patch b/src/browser/components/sessionstore/SessionStore-sys-mjs.patch index 2423488bd..7efaefb17 100644 --- a/src/browser/components/sessionstore/SessionStore-sys-mjs.patch +++ b/src/browser/components/sessionstore/SessionStore-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs -index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3ccf6f32bb 100644 +index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..61bfa1b530c407dd1236543f785eb22176c60c4e 100644 --- a/browser/components/sessionstore/SessionStore.sys.mjs +++ b/browser/components/sessionstore/SessionStore.sys.mjs @@ -127,6 +127,8 @@ const TAB_EVENTS = [ @@ -111,7 +111,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3c winData.title = tabbrowser.tabs[0].label; } winData.selected = selectedIndex; -@@ -5764,8 +5775,8 @@ var SessionStoreInternal = { +@@ -5765,8 +5776,8 @@ var SessionStoreInternal = { // selectTab represents. let selectTab = 0; if (overwriteTabs) { @@ -122,7 +122,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3c selectTab = Math.min(selectTab, winData.tabs.length); } -@@ -5808,6 +5819,8 @@ var SessionStoreInternal = { +@@ -5809,6 +5820,8 @@ var SessionStoreInternal = { winData.tabs, winData.groups ?? [] ); @@ -131,7 +131,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3c this._log.debug( `restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs` ); -@@ -6371,6 +6384,25 @@ var SessionStoreInternal = { +@@ -6372,6 +6385,25 @@ var SessionStoreInternal = { // Most of tabData has been restored, now continue with restoring // attributes that may trigger external events. @@ -157,7 +157,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3c if (tabData.pinned) { tabbrowser.pinTab(tab); -@@ -7289,7 +7321,7 @@ var SessionStoreInternal = { +@@ -7290,7 +7322,7 @@ var SessionStoreInternal = { let groupsToSave = new Map(); for (let tIndex = 0; tIndex < window.tabs.length; ) { @@ -166,7 +166,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3c // Adjust window.selected if (tIndex + 1 < window.selected) { window.selected -= 1; -@@ -7304,7 +7336,7 @@ var SessionStoreInternal = { +@@ -7305,7 +7337,7 @@ var SessionStoreInternal = { ); // We don't want to increment tIndex here. continue; diff --git a/src/browser/components/tabbrowser/TabUnloader-sys-mjs.patch b/src/browser/components/tabbrowser/TabUnloader-sys-mjs.patch index efdc1235e..b8bd536e5 100644 --- a/src/browser/components/tabbrowser/TabUnloader-sys-mjs.patch +++ b/src/browser/components/tabbrowser/TabUnloader-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/TabUnloader.sys.mjs b/browser/components/tabbrowser/TabUnloader.sys.mjs -index 0c62cdf29a72a7518cc54c014b5042f9695311eb..d5ac63d5005065863391e415f7072145d3247cad 100644 +index 2a3fcbe9dfb6328cabba891697990e2467973f6e..22fdaaefa71b3c37cbccbd7ae4db044b1057f1f2 100644 --- a/browser/components/tabbrowser/TabUnloader.sys.mjs +++ b/browser/components/tabbrowser/TabUnloader.sys.mjs @@ -52,7 +52,7 @@ let CRITERIA_WEIGHT = 1; diff --git a/src/browser/components/tabbrowser/content/drag-and-drop-js.patch b/src/browser/components/tabbrowser/content/drag-and-drop-js.patch index a6b01c804..3cc560c34 100644 --- a/src/browser/components/tabbrowser/content/drag-and-drop-js.patch +++ b/src/browser/components/tabbrowser/content/drag-and-drop-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js -index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812307b9a04 100644 +index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9548dce83 100644 --- a/browser/components/tabbrowser/content/drag-and-drop.js +++ b/browser/components/tabbrowser/content/drag-and-drop.js @@ -32,6 +32,9 @@ @@ -12,7 +12,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 if (isTab(element)) { return element; } -@@ -118,6 +121,10 @@ +@@ -112,6 +115,10 @@ } let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); @@ -23,9 +23,9 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 if ( (dropEffect == "move" || dropEffect == "copy") && document == draggedTab.ownerDocument && -@@ -272,6 +279,18 @@ +@@ -266,6 +273,18 @@ - this.#tabDropIndicator.hidden = true; + this._tabDropIndicator.hidden = true; event.stopPropagation(); + if (draggedTab?.hasAttribute("zen-has-splitted")) { + draggedTab.removeAttribute("zen-has-splitted"); @@ -42,7 +42,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 if (draggedTab && dropEffect == "copy") { let duplicatedDraggedTab; let duplicatedTabs = []; -@@ -297,8 +316,9 @@ +@@ -291,8 +310,9 @@ let translateOffsetY = oldTranslateY % tabHeight; let newTranslateX = oldTranslateX - translateOffsetX; let newTranslateY = oldTranslateY - translateOffsetY; @@ -52,21 +52,21 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed; + let essential = draggedTab.hasAttribute("zen-essential"); - if (this.#isContainerVerticalPinnedGrid(draggedTab)) { + if (this._isContainerVerticalPinnedGrid(draggedTab)) { // Update both translate axis for pinned vertical expanded tabs -@@ -314,8 +334,8 @@ +@@ -308,8 +328,8 @@ } } else { - let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice( + let tabs = this._tabbrowserTabs.ariaFocusableItems.slice( - isPinned ? 0 : numPinned, - isPinned ? numPinned : undefined + isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned, + isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined ); - let size = this.#tabbrowserTabs.verticalMode ? "height" : "width"; - let screenAxis = this.#tabbrowserTabs.verticalMode -@@ -368,11 +388,13 @@ - this.#dragToPinPromoCard, + let size = this._tabbrowserTabs.verticalMode ? "height" : "width"; + let screenAxis = this._tabbrowserTabs.verticalMode +@@ -362,11 +382,13 @@ + this._dragToPinPromoCard, ]; let shouldPin = + false && @@ -78,16 +78,16 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + false && isTab(draggedTab) && draggedTab.pinned && - this.#tabbrowserTabs.arrowScrollbox.contains(event.target); -@@ -390,6 +412,7 @@ + this._tabbrowserTabs.arrowScrollbox.contains(event.target); +@@ -384,6 +406,7 @@ (oldTranslateY && oldTranslateY != newTranslateY); - } else if (this.#tabbrowserTabs.verticalMode) { + } else if (this._tabbrowserTabs.verticalMode) { shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY; + shouldTranslate = false; } else { shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX; } -@@ -446,7 +469,7 @@ +@@ -440,7 +463,7 @@ item.removeAttribute("tabdrop-samewindow"); resolve(); }; @@ -96,18 +96,18 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 postTransitionCleanup(); } else { let onTransitionEnd = transitionendEvent => { -@@ -586,6 +609,7 @@ +@@ -581,6 +604,7 @@ - let nextItem = this.#tabbrowserTabs.ariaFocusableItems[newIndex]; + let nextItem = this._tabbrowserTabs.ariaFocusableItems[newIndex]; let tabGroup = isTab(nextItem) && nextItem.group; + if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return; gBrowser.loadTabs(urls, { inBackground, replace, -@@ -623,7 +647,16 @@ - this.#expandGroupOnDrop(draggedTab); +@@ -618,7 +642,16 @@ + this._expandGroupOnDrop(draggedTab); } - this.#resetTabsAfterDrop(draggedTab.ownerDocument); + this._resetTabsAfterDrop(draggedTab.ownerDocument); - + if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) { + const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab); @@ -122,8 +122,8 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 if ( dt.mozUserCancelled || dt.dropEffect != "none" || -@@ -827,7 +860,10 @@ - #getDragTarget(event, { ignoreSides = false } = {}) { +@@ -822,7 +855,10 @@ + _getDragTarget(event, { ignoreSides = false } = {}) { let { target } = event; while (target) { - if (isTab(target) || isTabGroupLabel(target)) { @@ -134,7 +134,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 break; } target = target.parentNode; -@@ -844,14 +880,17 @@ +@@ -839,14 +875,17 @@ return null; } } @@ -144,17 +144,17 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 return target; } - #isContainerVerticalPinnedGrid(tab) { + _isContainerVerticalPinnedGrid(tab) { return ( - this.#tabbrowserTabs.verticalMode && + this._tabbrowserTabs.verticalMode && - tab.pinned && -- this.#tabbrowserTabs.hasAttribute("expanded") && +- this._tabbrowserTabs.hasAttribute("expanded") && + tab.hasAttribute("zen-essential") && -+ (this.#tabbrowserTabs.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) && - !this.#tabbrowserTabs.expandOnHover ++ (this._tabbrowserTabs.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) && + !this._tabbrowserTabs.expandOnHover ); } -@@ -882,7 +921,8 @@ +@@ -877,7 +916,8 @@ isTabGroupLabel(draggedTab) && draggedTab._dragData?.expandGroupOnDrop ) { @@ -164,19 +164,19 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 } } -@@ -947,10 +987,7 @@ - if (this.#isContainerVerticalPinnedGrid(tab)) { +@@ -942,10 +982,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.#tabbrowserTabs.visibleTabs.slice( +- let pinnedTabs = this._tabbrowserTabs.visibleTabs.slice( - 0, - gBrowser.pinnedTabCount - ); -+ let pinnedTabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); ++ let pinnedTabs = this._tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); let tabsPerRow = 0; let position = RTL_UI ? window.windowUtils.getBoundsWithoutFlushing( -@@ -1117,7 +1154,7 @@ +@@ -1112,7 +1149,7 @@ let dropEffect = this.getDropEffectForTabDrag(event); let isMovingInTabStrip = !fromTabList && dropEffect == "move"; let collapseTabGroupDuringDrag = @@ -184,17 +184,17 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active")); tab._dragData = { - offsetX: this.#tabbrowserTabs.verticalMode -@@ -1127,7 +1164,7 @@ + offsetX: this._tabbrowserTabs.verticalMode +@@ -1122,7 +1159,7 @@ ? event.screenY - window.screenY - tabOffset : event.screenY - window.screenY, scrollPos: -- this.#tabbrowserTabs.verticalMode && tab.pinned -+ this.#tabbrowserTabs.verticalMode && tab.pinned && false - ? this.#tabbrowserTabs.pinnedTabsContainer.scrollPosition - : this.#tabbrowserTabs.arrowScrollbox.scrollPosition, +- this._tabbrowserTabs.verticalMode && tab.pinned ++ this._tabbrowserTabs.verticalMode && tab.pinned && false + ? this._tabbrowserTabs.pinnedTabsContainer.scrollPosition + : this._tabbrowserTabs.arrowScrollbox.scrollPosition, screenX: event.screenX, -@@ -1156,6 +1193,7 @@ +@@ -1149,6 +1186,7 @@ if (collapseTabGroupDuringDrag) { tab.group.collapsed = true; @@ -202,10 +202,10 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 } } } -@@ -1174,6 +1212,16 @@ - when the tab is first selected to be dragged. - */ - #updateTabStylesOnDrag(tab) { +@@ -1173,6 +1211,16 @@ + if (tabStripItemElement.hasAttribute("dragtarget")) { + return; + } + let { movingTabs: zenMovingTabs } = tab._dragData; + for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) { + if (isTabGroupLabel(tab)) { @@ -218,16 +218,16 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + return; let isPinned = tab.pinned; let numPinned = gBrowser.pinnedTabCount; - let allTabs = this.#tabbrowserTabs.ariaFocusableItems; + let allTabs = this._tabbrowserTabs.ariaFocusableItems; @@ -1624,10 +1672,7 @@ return; } -- let tabs = this.#tabbrowserTabs.visibleTabs.slice( +- let tabs = this._tabbrowserTabs.visibleTabs.slice( - 0, - gBrowser.pinnedTabCount - ); -+ let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); ++ let tabs = this._tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); let directionX = screenX > dragData.animLastScreenX; let directionY = screenY > dragData.animLastScreenY; @@ -252,7 +252,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY); @@ -1833,13 +1880,18 @@ - this.#clearDragOverGroupingTimer(); + this._clearDragOverGroupingTimer(); this.#clearPinnedDropIndicatorTimer(); - let isPinned = draggedTab.pinned; @@ -261,7 +261,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed; + let essential = draggedTab.hasAttribute("zen-essential"); + const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder; - let allTabs = this.#tabbrowserTabs.ariaFocusableItems; + let allTabs = this._tabbrowserTabs.ariaFocusableItems; let tabs = allTabs.slice( - isPinned ? 0 : numPinned, - isPinned ? numPinned : undefined @@ -272,15 +272,15 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + draggedTab = draggedTab.group.labelElement; + } - if (this.#rtlMode) { + if (this._rtlMode) { tabs.reverse(); @@ -1854,7 +1906,7 @@ - let translateAxis = this.#tabbrowserTabs.verticalMode + let translateAxis = this._tabbrowserTabs.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.#tabbrowserTabs.verticalMode ? tabHeight : tabWidth; + let tabSize = this._tabbrowserTabs.verticalMode ? tabHeight : tabWidth; let translateX = event.screenX - dragData.screenX; let translateY = event.screenY - dragData.screenY; @@ -1870,6 +1922,12 @@ @@ -297,12 +297,12 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 let lastMovingTabScreen = endEdge(lastMovingTab); let firstMovingTabScreen = firstMovingTab[screenAxis]; @@ -1884,6 +1942,13 @@ - let endBound = this.#rtlMode - ? endEdge(this.#tabbrowserTabs) - lastMovingTabScreen + let endBound = this._rtlMode + ? endEdge(this._tabbrowserTabs) - lastMovingTabScreen : periphery[screenAxis] - 1 - lastMovingTabScreen; + { -+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0); -+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1); ++ 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); @@ -342,7 +342,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 : dropElement.elementIndex < numPinned; - if (isOutOfBounds) { - // Drop after last pinned tab -- dropElement = this.#tabbrowserTabs.ariaFocusableItems[numPinned - 1]; +- dropElement = this._tabbrowserTabs.ariaFocusableItems[numPinned - 1]; - dropBefore = false; - } } @@ -351,7 +351,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 - gBrowser._tabGroupsEnabled && - isTab(draggedTab) && - !isPinned && -- (!numPinned || newDropElementIndex > numPinned) +- (!numPinned || newDropElementIndex >= numPinned) - ) { + if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) { let dragOverGroupingThreshold = 1 - moveOverThreshold; @@ -390,8 +390,8 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 + colorCode + )); } - this.#setDragOverGroupColor(colorCode); - this.#tabbrowserTabs.toggleAttribute( + this._setDragOverGroupColor(colorCode); + this._tabbrowserTabs.toggleAttribute( @@ -2324,10 +2395,11 @@ dragData.dropBefore = dropBefore; dragData.animDropElementIndex = newDropElementIndex; @@ -417,8 +417,8 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812 this.#setMovingTabMode(false); + gZenFolders.highlightGroupOnDragOver(null); - for (let item of this.#tabbrowserTabs.ariaFocusableItems) { - this.#resetGroupTarget(item); + for (let item of this._tabbrowserTabs.ariaFocusableItems) { + this._resetGroupTarget(item); @@ -2457,7 +2531,7 @@ tab.style.left = ""; tab.style.top = ""; diff --git a/src/browser/components/tabbrowser/content/tab-js.patch b/src/browser/components/tabbrowser/content/tab-js.patch index 3452bced0..3f27154b7 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 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 100644 +index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbfd6214f77 100644 --- a/browser/components/tabbrowser/content/tab.js +++ b/browser/components/tabbrowser/content/tab.js @@ -21,6 +21,7 @@ @@ -78,7 +78,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577 } get hidden() { -@@ -297,7 +310,7 @@ +@@ -305,7 +318,7 @@ return false; } @@ -87,21 +87,21 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577 } get lastAccessed() { -@@ -374,8 +387,11 @@ +@@ -382,7 +395,12 @@ } get group() { -- if (this.parentElement?.tagName == "tab-group") { -- return this.parentElement; +- return this.closest("tab-group"); + if (typeof gBrowser === "undefined") { + return null; + } + if (gBrowser.isTabGroup(this.parentElement?.parentElement)) { + return this.parentElement.parentElement; - } - return null; ++ } } -@@ -470,6 +486,8 @@ + + get splitview() { +@@ -473,6 +491,8 @@ this.style.MozUserFocus = "ignore"; } else if ( event.target.classList.contains("tab-close-button") || @@ -110,7 +110,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577 event.target.classList.contains("tab-icon-overlay") || event.target.classList.contains("tab-audio-button") ) { -@@ -524,6 +542,10 @@ +@@ -527,6 +547,10 @@ this.style.MozUserFocus = ""; } @@ -121,7 +121,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577 on_click(event) { if (event.button != 0) { return; -@@ -572,6 +594,7 @@ +@@ -575,6 +599,7 @@ ) ); } else { @@ -129,7 +129,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577 gBrowser.removeTab(this, { animate: true, triggeringEvent: event, -@@ -584,6 +607,14 @@ +@@ -587,6 +612,14 @@ // (see tabbrowser-tabs 'click' handler). gBrowser.tabContainer._blockDblClick = true; } @@ -144,7 +144,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577 } on_dblclick(event) { -@@ -607,6 +638,8 @@ +@@ -610,6 +643,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 1bb770059..8a71eaaae 100644 --- a/src/browser/components/tabbrowser/content/tabbrowser-js.patch +++ b/src/browser/components/tabbrowser/content/tabbrowser-js.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js -index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e6923fe5f 100644 +index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f53bc059b 100644 --- a/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js @@ -386,6 +386,7 @@ @@ -315,7 +315,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e // Additionally send pinned tab events if (pinned) { this.#notifyPinnedStatus(t); -@@ -3330,10 +3428,10 @@ +@@ -3349,10 +3447,10 @@ isAdoptingGroup = false, isUserTriggered = false, telemetryUserCreateSource = "unknown", @@ -327,7 +327,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } if (!color) { -@@ -3354,9 +3452,14 @@ +@@ -3373,9 +3471,14 @@ label, isAdoptingGroup ); @@ -344,7 +344,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e ); group.addTabs(tabs); -@@ -3477,7 +3580,7 @@ +@@ -3496,7 +3599,7 @@ } this.#handleTabMove(tab, () => @@ -353,7 +353,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e ); } -@@ -3679,6 +3782,7 @@ +@@ -3698,6 +3801,7 @@ openWindowInfo, skipLoad, triggeringRemoteType, @@ -361,7 +361,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } ) { // If we don't have a preferred remote type (or it is `NOT_REMOTE`), and -@@ -3748,6 +3852,7 @@ +@@ -3767,6 +3871,7 @@ openWindowInfo, name, skipLoad, @@ -369,7 +369,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e }); } -@@ -3935,7 +4040,7 @@ +@@ -3955,7 +4060,7 @@ // Add a new tab if needed. if (!tab) { let createLazyBrowser = @@ -378,7 +378,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e let url = "about:blank"; if (tabData.entries?.length) { -@@ -3972,8 +4077,10 @@ +@@ -3992,8 +4097,10 @@ insertTab: false, skipLoad: true, preferredRemoteType, @@ -390,7 +390,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (select) { tabToSelect = tab; } -@@ -3985,7 +4092,8 @@ +@@ -4005,7 +4112,8 @@ this.pinTab(tab); // Then ensure all the tab open/pinning information is sent. this._fireTabOpen(tab, {}); @@ -400,7 +400,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e let { groupId } = tabData; const tabGroup = tabGroupWorkingData.get(groupId); // if a tab refers to a tab group we don't know, skip any group -@@ -3999,7 +4107,10 @@ +@@ -4019,7 +4127,10 @@ tabGroup.stateData.id, tabGroup.stateData.color, tabGroup.stateData.collapsed, @@ -412,7 +412,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e ); tabsFragment.appendChild(tabGroup.node); } -@@ -4044,9 +4155,23 @@ +@@ -4064,9 +4175,23 @@ // to remove the old selected tab. if (tabToSelect) { let leftoverTab = this.selectedTab; @@ -436,7 +436,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (tabs.length > 1 || !tabs[0].selected) { this._updateTabsAfterInsert(); -@@ -4237,11 +4362,14 @@ +@@ -4257,11 +4382,14 @@ if (ownerTab) { tab.owner = ownerTab; } @@ -452,7 +452,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if ( !bulkOrderedOpen && ((openerTab && -@@ -4253,7 +4381,7 @@ +@@ -4273,7 +4401,7 @@ let lastRelatedTab = openerTab && this._lastRelatedTabMap.get(openerTab); let previousTab = lastRelatedTab || openerTab || this.selectedTab; @@ -461,7 +461,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e tabGroup = previousTab.group; } if ( -@@ -4264,7 +4392,7 @@ +@@ -4284,7 +4412,7 @@ ) { elementIndex = Infinity; } else if (previousTab.visible) { @@ -470,7 +470,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } else if (previousTab == FirefoxViewHandler.tab) { elementIndex = 0; } -@@ -4292,14 +4420,14 @@ +@@ -4312,14 +4440,14 @@ } // Ensure index is within bounds. if (tab.pinned) { @@ -489,7 +489,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (pinned && !itemAfter?.pinned) { itemAfter = null; -@@ -4310,7 +4438,7 @@ +@@ -4330,7 +4458,7 @@ this.tabContainer._invalidateCachedTabs(); @@ -498,7 +498,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e 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); -@@ -4338,7 +4466,11 @@ +@@ -4358,7 +4486,11 @@ const tabContainer = pinned ? this.tabContainer.pinnedTabsContainer : this.tabContainer; @@ -510,7 +510,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } this._updateTabsAfterInsert(); -@@ -4346,6 +4478,7 @@ +@@ -4366,6 +4498,7 @@ if (pinned) { this._updateTabBarForPinnedTabs(); } @@ -518,7 +518,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e TabBarVisibility.update(); } -@@ -4635,6 +4768,9 @@ +@@ -4655,6 +4788,9 @@ return; } @@ -528,7 +528,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource }); } -@@ -4896,6 +5032,7 @@ +@@ -4916,6 +5052,7 @@ telemetrySource, } = {} ) { @@ -536,7 +536,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e // When 'closeWindowWithLastTab' pref is enabled, closing all tabs // can be considered equivalent to closing the window. if ( -@@ -4985,6 +5122,7 @@ +@@ -5005,6 +5142,7 @@ if (lastToClose) { this.removeTab(lastToClose, aParams); } @@ -544,7 +544,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } catch (e) { console.error(e); } -@@ -5023,6 +5161,12 @@ +@@ -5043,6 +5181,12 @@ aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start(); } @@ -557,7 +557,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e // Handle requests for synchronously removing an already // asynchronously closing tab. if (!animate && aTab.closing) { -@@ -5037,6 +5181,9 @@ +@@ -5057,6 +5201,9 @@ // state). let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let isLastTab = this.#isLastTabInWindow(aTab); @@ -567,7 +567,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if ( !this._beginRemoveTab(aTab, { closeWindowFastpath: true, -@@ -5085,7 +5232,13 @@ +@@ -5105,7 +5252,13 @@ // We're not animating, so we can cancel the animation stopwatch. Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId); aTab._closeTimeAnimTimerId = null; @@ -582,7 +582,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e return; } -@@ -5219,7 +5372,7 @@ +@@ -5239,7 +5392,7 @@ closeWindowWithLastTab != null ? closeWindowWithLastTab : !window.toolbar.visible || @@ -591,7 +591,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (closeWindow) { // We've already called beforeunload on all the relevant tabs if we get here, -@@ -5243,6 +5396,7 @@ +@@ -5263,6 +5416,7 @@ newTab = true; } @@ -599,7 +599,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e aTab._endRemoveArgs = [closeWindow, newTab]; // swapBrowsersAndCloseOther will take care of closing the window without animation. -@@ -5283,13 +5437,7 @@ +@@ -5303,13 +5457,7 @@ aTab._mouseleave(); if (newTab) { @@ -614,7 +614,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } else { TabBarVisibility.update(); } -@@ -5422,6 +5570,7 @@ +@@ -5442,6 +5590,7 @@ this.tabs[i]._tPos = i; } @@ -622,7 +622,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (!this._windowIsClosing) { // update tab close buttons state this.tabContainer._updateCloseButtons(); -@@ -5643,6 +5792,7 @@ +@@ -5663,6 +5812,7 @@ } let excludeTabs = new Set(aExcludeTabs); @@ -630,7 +630,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e // If this tab has a successor, it should be selectable, since // hiding or closing a tab removes that tab as a successor. -@@ -5655,13 +5805,13 @@ +@@ -5675,13 +5825,13 @@ !excludeTabs.has(aTab.owner) && Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") ) { @@ -646,7 +646,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e ); let tab = this.tabContainer.findNextTab(aTab, { -@@ -5677,7 +5827,7 @@ +@@ -5697,7 +5847,7 @@ } if (tab) { @@ -655,7 +655,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } // If no qualifying visible tab was found, see if there is a tab in -@@ -5698,7 +5848,7 @@ +@@ -5718,7 +5868,7 @@ }); } @@ -664,7 +664,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } _blurTab(aTab) { -@@ -6104,10 +6254,10 @@ +@@ -6124,10 +6274,10 @@ SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); } @@ -677,7 +677,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e aTab.selected || aTab.closing || // Tabs that are sharing the screen, microphone or camera cannot be hidden. -@@ -6166,6 +6316,7 @@ +@@ -6186,6 +6336,7 @@ * @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab */ replaceTabWithWindow(aTab, aOptions) { @@ -685,7 +685,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (this.tabs.length == 1) { return null; } -@@ -6299,7 +6450,7 @@ +@@ -6319,7 +6470,7 @@ * `true` if element is a `` */ isTabGroup(element) { @@ -694,7 +694,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } /** -@@ -6375,8 +6526,8 @@ +@@ -6404,8 +6555,8 @@ } // Don't allow mixing pinned and unpinned tabs. @@ -705,7 +705,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } else { tabIndex = Math.max(tabIndex, this.pinnedTabCount); } -@@ -6402,10 +6553,16 @@ +@@ -6431,10 +6582,16 @@ this.#handleTabMove( element, () => { @@ -724,7 +724,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e if (neighbor && this.isTab(element) && tabIndex > element._tPos) { neighbor.after(element); } else { -@@ -6463,23 +6620,28 @@ +@@ -6492,23 +6649,28 @@ #moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) { if (this.isTabGroupLabel(targetElement)) { targetElement = targetElement.group; @@ -759,7 +759,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } 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 -@@ -6492,14 +6654,34 @@ +@@ -6521,14 +6683,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. @@ -795,7 +795,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e element.pinned ? this.tabContainer.pinnedTabsContainer : this.tabContainer; -@@ -6508,7 +6690,7 @@ +@@ -6537,7 +6719,7 @@ element, () => { if (moveBefore) { @@ -804,7 +804,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e } else if (targetElement) { targetElement.after(element); } else { -@@ -6580,10 +6762,10 @@ +@@ -6607,10 +6789,10 @@ * @param {TabMetricsContext} [metricsContext] */ moveTabToGroup(aTab, aGroup, metricsContext) { @@ -817,7 +817,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e return; } if (aTab.group && aTab.group.id === aGroup.id) { -@@ -6613,6 +6795,7 @@ +@@ -6656,6 +6838,7 @@ let state = { tabIndex: tab._tPos, @@ -825,7 +825,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e }; if (tab.visible) { state.elementIndex = tab.elementIndex; -@@ -6639,7 +6822,7 @@ +@@ -6682,7 +6865,7 @@ let changedTabGroup = previousTabState.tabGroupId != currentTabState.tabGroupId; @@ -834,7 +834,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e tab.dispatchEvent( new CustomEvent("TabMove", { bubbles: true, -@@ -6676,6 +6859,10 @@ +@@ -6723,6 +6906,10 @@ moveActionCallback(); @@ -845,7 +845,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e // Clear tabs cache after moving nodes because the order of tabs may have // changed. this.tabContainer._invalidateCachedTabs(); -@@ -7576,7 +7763,7 @@ +@@ -7623,7 +7810,7 @@ // preventDefault(). It will still raise the window if appropriate. break; } @@ -854,7 +854,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e window.focus(); aEvent.preventDefault(); break; -@@ -7593,7 +7780,6 @@ +@@ -7640,7 +7827,6 @@ } case "TabGroupCollapse": aEvent.target.tabs.forEach(tab => { @@ -862,7 +862,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e }); break; case "TabGroupCreateByUser": -@@ -8542,6 +8728,7 @@ +@@ -8589,6 +8775,7 @@ aWebProgress.isTopLevel ) { this.mTab.setAttribute("busy", "true"); @@ -870,7 +870,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e gBrowser._tabAttrModified(this.mTab, ["busy"]); this.mTab._notselectedsinceload = !this.mTab.selected; } -@@ -9543,7 +9730,7 @@ var TabContextMenu = { +@@ -9623,7 +9810,7 @@ var TabContextMenu = { ); contextUnpinSelectedTabs.hidden = !this.contextTab.pinned || !this.multiselected; @@ -879,7 +879,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e // Build Ask Chat items TabContextMenu.GenAI.buildTabMenu( document.getElementById("context_askChat"), -@@ -9863,6 +10050,7 @@ var TabContextMenu = { +@@ -9943,6 +10130,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 49d3342cf..3842442c7 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 aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41fbf97ac20 100644 +index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057ebc71c2f5f 100644 --- a/browser/components/tabbrowser/content/tabgroup.js +++ b/browser/components/tabbrowser/content/tabgroup.js @@ -14,11 +14,11 @@ @@ -87,7 +87,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f resetDefaultGroupName = () => { this.#defaultGroupName = ""; -@@ -227,7 +248,10 @@ +@@ -211,7 +232,10 @@ } }); } @@ -99,7 +99,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f } get color() { -@@ -321,6 +345,9 @@ +@@ -305,6 +329,9 @@ } set collapsed(val) { @@ -109,7 +109,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f if (!!val == this.collapsed) { return; } -@@ -406,7 +433,6 @@ +@@ -391,7 +418,6 @@ tabGroupName, }) .then(result => { @@ -117,11 +117,14 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f }); } -@@ -425,7 +451,57 @@ +@@ -466,13 +492,57 @@ * @returns {MozTabbrowserTab[]} */ get tabs() { -- return Array.from(this.children).filter(node => node.matches("tab")); +- let childrenArray = Array.from(this.children); +- for (let i = childrenArray.length - 1; i >= 0; i--) { +- if (childrenArray[i].tagName == "tab-split-view-wrapper") { +- childrenArray.splice(i, 1, ...childrenArray[i].tabs); + // add other group tabs if they are under this group + let childs = Array.from(this.querySelector(".tab-group-container")?.children ?? []); + const tabsCollect = []; @@ -166,8 +169,9 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f + currentGroup = currentGroup?.group; + if (currentGroup.collapsed) { + return false; -+ } -+ } + } + } +- return childrenArray.filter(node => node.matches("tab")); + return true; + } + @@ -176,7 +180,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f } /** -@@ -506,7 +582,6 @@ +@@ -553,7 +623,6 @@ addTabs(tabs, metricsContext) { for (let tab of tabs) { if (tab.pinned) { @@ -184,7 +188,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f } let tabToMove = this.ownerGlobal === tab.ownerGlobal -@@ -569,7 +644,7 @@ +@@ -616,7 +685,7 @@ */ on_click(event) { let isToggleElement = @@ -193,7 +197,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f event.target === this.#overflowCountLabel; if (isToggleElement && event.button === 0) { event.preventDefault(); -@@ -638,5 +713,6 @@ +@@ -687,5 +756,6 @@ } } diff --git a/src/browser/components/tabbrowser/content/tabs-js.patch b/src/browser/components/tabbrowser/content/tabs-js.patch index b8834ec23..ef5bb94e3 100644 --- a/src/browser/components/tabbrowser/content/tabs-js.patch +++ b/src/browser/components/tabbrowser/content/tabs-js.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js -index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2a736d9f8 100644 +index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac8793422474052f476573 100644 --- a/browser/components/tabbrowser/content/tabs.js +++ b/browser/components/tabbrowser/content/tabs.js -@@ -411,7 +411,7 @@ +@@ -436,7 +436,7 @@ // and we're not hitting the scroll buttons. if ( event.button != 0 || @@ -11,7 +11,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 event.composedTarget.localName == "toolbarbutton" ) { return; -@@ -492,7 +492,6 @@ +@@ -517,7 +517,6 @@ }); } } else if (isTabGroupLabel(event.target)) { @@ -19,7 +19,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 } else if ( event.originalTarget.closest("scrollbox") && !Services.prefs.getBoolPref( -@@ -528,6 +527,9 @@ +@@ -553,6 +552,9 @@ } on_keydown(event) { @@ -29,15 +29,15 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 let { altKey, shiftKey } = event; let [accel, nonAccel] = AppConstants.platform == "macosx" -@@ -720,7 +722,6 @@ - - this.toggleAttribute("overflow", true); +@@ -747,7 +749,6 @@ this._updateCloseButtons(); -- this._handleTabSelect(true); + + if (!this.#animatingGroups.size) { +- this._handleTabSelect(true); + } document - .getElementById("tab-preview-panel") -@@ -780,7 +781,7 @@ +@@ -808,7 +809,7 @@ } get newTabButton() { @@ -46,7 +46,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 } get verticalMode() { -@@ -796,6 +797,7 @@ +@@ -824,6 +825,7 @@ } get overflowing() { @@ -54,7 +54,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 return this.hasAttribute("overflow"); } -@@ -809,29 +811,54 @@ +@@ -837,29 +839,54 @@ if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") { pinnedChildren.pop(); } @@ -119,7 +119,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 } /** -@@ -898,17 +925,10 @@ +@@ -926,17 +953,10 @@ let elementIndex = 0; @@ -139,7 +139,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 if (isTab(child) && child.visible) { child.elementIndex = elementIndex++; focusableItems.push(child); -@@ -916,11 +936,13 @@ +@@ -944,11 +964,13 @@ child.labelElement.elementIndex = elementIndex++; focusableItems.push(child.labelElement); @@ -154,7 +154,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 } else if (child.tagName == "tab-split-view-wrapper") { let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible); visibleTabsInSplitView.forEach(tab => { -@@ -964,6 +986,7 @@ +@@ -992,6 +1014,7 @@ _invalidateCachedTabs() { this.#allTabs = null; this._invalidateCachedVisibleTabs(); @@ -162,7 +162,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 } _invalidateCachedVisibleTabs() { -@@ -1067,7 +1090,7 @@ +@@ -1095,7 +1118,7 @@ if (node == null) { // We have a container for non-tab elements at the end of the scrollbox. @@ -171,7 +171,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 } node.before(tab); -@@ -1162,7 +1185,7 @@ +@@ -1193,7 +1216,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. @@ -180,7 +180,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 const newTab2 = this.newTabButton; const newTabVertical = document.getElementById( "vertical-tabs-newtab-button" -@@ -1263,8 +1286,10 @@ +@@ -1294,8 +1317,10 @@ */ _handleTabSelect(aInstant) { let selectedTab = this.selectedItem; @@ -191,7 +191,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 selectedTab._notselectedsinceload = false; } -@@ -1273,7 +1298,7 @@ +@@ -1304,7 +1329,7 @@ * @param {boolean} [shouldScrollInstantly=false] */ #ensureTabIsVisible(tab, shouldScrollInstantly = false) { @@ -200,7 +200,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2 if (arrowScrollbox?.overflowing) { arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly); } -@@ -1406,7 +1431,7 @@ +@@ -1437,7 +1462,7 @@ } _notifyBackgroundTab(aTab) { diff --git a/src/browser/components/urlbar/UrlbarController-sys-mjs.patch b/src/browser/components/urlbar/UrlbarController-sys-mjs.patch index dc004d516..2323991d8 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 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bfe907f0e2 100644 +index 09c1a7d4e156fe5e606f097277420333efe88976..f31e183e7b92c616d81dae509ef0448c4d507cc7 100644 --- a/browser/components/urlbar/UrlbarController.sys.mjs +++ b/browser/components/urlbar/UrlbarController.sys.mjs -@@ -299,7 +299,6 @@ export class UrlbarController { +@@ -296,7 +296,6 @@ export class UrlbarController { const isMac = AppConstants.platform == "macosx"; // Handle readline/emacs-style navigation bindings on Mac. if ( @@ -10,7 +10,7 @@ index 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bf this.view.isOpen && event.ctrlKey && (event.key == "n" || event.key == "p") -@@ -443,6 +442,8 @@ export class UrlbarController { +@@ -445,6 +444,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 13c96ab97..d0ef058f5 100644 --- a/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch @@ -1,10 +1,10 @@ diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs -index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c10e8a36f2 100644 +index 6ad064710da20f7a13fda3517780c2f38b3d2865..58a01eef024d8b9992068a6a5b7be68f5f45accf 100644 --- a/browser/components/urlbar/UrlbarInput.sys.mjs +++ b/browser/components/urlbar/UrlbarInput.sys.mjs -@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () => - lazy.UrlbarUtils.getLogger({ prefix: "Input" }) - ); +@@ -68,6 +68,13 @@ const lazy = XPCOMUtils.declareLazy({ + logger: () => lazy.UrlbarUtils.getLogger({ prefix: "Input" }), + }); +XPCOMUtils.defineLazyPreferenceGetter( + lazy, @@ -16,7 +16,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 const DEFAULT_FORM_HISTORY_NAME = "searchbar-history"; const UNLIMITED_MAX_RESULTS = 99; -@@ -454,7 +461,16 @@ export class UrlbarInput { +@@ -445,7 +452,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 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 this._suppressPrimaryAdjustment = false; } -@@ -530,6 +546,10 @@ export class UrlbarInput { +@@ -521,6 +537,10 @@ export class UrlbarInput { hideSearchTerms = false, isSameDocument = false ) { @@ -41,10 +41,10 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 + return; + } + - if (!this.isAddressbar) { + if (!this.#isAddressbar) { throw new Error( "Cannot set URI for UrlbarInput that is not an address bar" -@@ -807,8 +827,16 @@ export class UrlbarInput { +@@ -798,8 +818,16 @@ export class UrlbarInput { return; } } @@ -62,7 +62,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 } /** -@@ -1224,7 +1252,11 @@ export class UrlbarInput { +@@ -1215,7 +1243,11 @@ export class UrlbarInput { } if (!this.#providesSearchMode(result)) { @@ -75,7 +75,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 } if (isCanonized) { -@@ -2347,6 +2379,32 @@ export class UrlbarInput { +@@ -2335,6 +2367,32 @@ export class UrlbarInput { await this.#updateLayoutBreakoutDimensions(); } @@ -108,7 +108,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 startLayoutExtend() { if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) { // Do not expand if the Urlbar does not support being expanded or it is -@@ -2361,6 +2419,13 @@ export class UrlbarInput { +@@ -2349,6 +2407,13 @@ export class UrlbarInput { this.setAttribute("breakout-extend", "true"); @@ -122,7 +122,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 // 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")) { -@@ -2380,6 +2445,24 @@ export class UrlbarInput { +@@ -2368,6 +2433,24 @@ export class UrlbarInput { return; } @@ -147,7 +147,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 this.removeAttribute("breakout-extend"); this.#updateTextboxPosition(); } -@@ -2410,7 +2493,7 @@ export class UrlbarInput { +@@ -2398,7 +2481,7 @@ export class UrlbarInput { forceUnifiedSearchButtonAvailable = false ) { let prevState = this.getAttribute("pageproxystate"); @@ -156,7 +156,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 this.setAttribute("pageproxystate", state); this._inputContainer.setAttribute("pageproxystate", state); this._identityBox?.setAttribute("pageproxystate", state); -@@ -2646,10 +2729,12 @@ export class UrlbarInput { +@@ -2635,10 +2718,12 @@ export class UrlbarInput { return; } this.textbox.style.top = px( @@ -169,7 +169,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 ); } -@@ -2709,9 +2794,10 @@ export class UrlbarInput { +@@ -2698,9 +2783,10 @@ export class UrlbarInput { return; } @@ -181,7 +181,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 ); this.textbox.style.setProperty( "--urlbar-height", -@@ -3144,6 +3230,7 @@ export class UrlbarInput { +@@ -3134,6 +3220,7 @@ export class UrlbarInput { } _toggleActionOverride(event) { @@ -189,8 +189,8 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 if ( event.keyCode == KeyEvent.DOM_VK_SHIFT || event.keyCode == KeyEvent.DOM_VK_ALT || -@@ -3247,8 +3334,8 @@ export class UrlbarInput { - if (!this.isAddressbar) { +@@ -3237,8 +3324,8 @@ export class UrlbarInput { + if (!this.#isAddressbar) { return val; } - let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") @@ -200,15 +200,15 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 : val; // Only trim value if the directionality doesn't change to RTL and we're not // showing a strikeout https protocol. -@@ -3552,6 +3639,7 @@ export class UrlbarInput { +@@ -3544,6 +3631,7 @@ export class UrlbarInput { resultDetails = null, browser = this.window.gBrowser.selectedBrowser ) { + openUILinkWhere = this.window.gZenUIManager.getOpenUILinkWhere(url, browser, openUILinkWhere); - if (this.isAddressbar) { + if (this.#isAddressbar) { this.#prepareAddressbarLoad( url, -@@ -3659,6 +3747,10 @@ export class UrlbarInput { +@@ -3651,6 +3739,10 @@ export class UrlbarInput { } reuseEmpty = true; } @@ -219,7 +219,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 if ( where == "tab" && reuseEmpty && -@@ -3666,6 +3758,9 @@ export class UrlbarInput { +@@ -3658,6 +3750,9 @@ export class UrlbarInput { ) { where = "current"; } @@ -229,7 +229,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 return where; } -@@ -3923,6 +4018,7 @@ export class UrlbarInput { +@@ -3909,6 +4004,7 @@ export class UrlbarInput { this.setResultForCurrentValue(null); this.handleCommand(); this.controller.clearLastQueryContextCache(); @@ -237,7 +237,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 this._suppressStartQuery = false; }); -@@ -3930,7 +4026,6 @@ export class UrlbarInput { +@@ -3916,7 +4012,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. @@ -245,7 +245,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 let controller = this.document.commandDispatcher.getControllerForCommand("cmd_paste"); -@@ -4040,7 +4135,11 @@ export class UrlbarInput { +@@ -4026,7 +4121,11 @@ export class UrlbarInput { if (!engineName && !source && !this.hasAttribute("searchmode")) { return; } @@ -258,7 +258,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 if (this._searchModeIndicatorTitle) { this._searchModeIndicatorTitle.textContent = ""; this._searchModeIndicatorTitle.removeAttribute("data-l10n-id"); -@@ -4351,6 +4450,7 @@ export class UrlbarInput { +@@ -4338,6 +4437,7 @@ export class UrlbarInput { this.document.l10n.setAttributes( this.inputField, @@ -266,7 +266,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 l10nId, l10nId == "urlbar-placeholder-with-name" ? { name } : undefined ); -@@ -4462,6 +4562,11 @@ export class UrlbarInput { +@@ -4449,6 +4549,11 @@ export class UrlbarInput { } _on_click(event) { @@ -278,7 +278,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 if ( event.target == this.inputField || event.target == this._inputContainer -@@ -4534,7 +4639,7 @@ export class UrlbarInput { +@@ -4521,7 +4626,7 @@ export class UrlbarInput { } } @@ -287,7 +287,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 this.view.autoOpen({ event }); } else { if (this._untrimOnFocusAfterKeydown) { -@@ -4574,9 +4679,16 @@ export class UrlbarInput { +@@ -4561,9 +4666,16 @@ export class UrlbarInput { } _on_mousedown(event) { @@ -305,7 +305,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 if ( event.target != this.inputField && -@@ -4587,6 +4699,10 @@ export class UrlbarInput { +@@ -4574,6 +4686,10 @@ export class UrlbarInput { this.focusedViaMousedown = !this.focused; this._preventClickSelectsAll = this.focused; @@ -316,7 +316,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 // Keep the focus status, since the attribute may be changed // upon calling this.focus(). -@@ -4622,7 +4738,7 @@ export class UrlbarInput { +@@ -4609,7 +4725,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. @@ -325,7 +325,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c1 break; } -@@ -4939,7 +5055,7 @@ export class UrlbarInput { +@@ -4930,7 +5046,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/UrlbarPrefs-sys-mjs.patch b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch index b4a67ce95..e4d68bcc3 100644 --- a/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs -index 531cecb9da3465d392ea82248e6ebb3fe6476b47..f3cce2a66bb8465ae022df0c1b9823e7e88cba21 100644 +index 0cc0db4889d66872bce2aa775a79a4c68e8cec51..604106e328843b3a6eb0922cc8663474ddb008f4 100644 --- a/browser/components/urlbar/UrlbarPrefs.sys.mjs +++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs -@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) { +@@ -763,6 +763,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) { */ let rootGroup = { children: [ diff --git a/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch b/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch index 396ba65f0..31608dbe0 100644 --- a/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs -index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58bc893ac14 100644 +index 4db61038e5e476bad3a61dbdb707e5222c1f08f8..9eca13d9cfac3b762917aaaa942267effb743cf7 100644 --- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs +++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs -@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") { +@@ -45,11 +45,13 @@ function defaultQuery(conditions = "") { let query = ` SELECT h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT}, h.id, t.open_count, ${lazy.PAGES_FRECENCY_FIELD} AS frecency, t.userContextId, @@ -17,7 +17,7 @@ index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58b WHERE ( (:switchTabsEnabled AND t.open_count > 0) OR ${lazy.PAGES_FRECENCY_FIELD} <> 0 -@@ -62,7 +64,7 @@ function defaultQuery(conditions = "") { +@@ -63,7 +65,7 @@ function defaultQuery(conditions = "") { :matchBehavior, :searchBehavior, NULL) ELSE AUTOCOMPLETE_MATCH(:searchString, h.url, @@ -26,7 +26,7 @@ index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58b h.visit_count, h.typed, 0, t.open_count, :matchBehavior, :searchBehavior, NULL) -@@ -1126,11 +1128,13 @@ Search.prototype = { +@@ -1176,11 +1178,13 @@ class Search { ? 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 d2dbed260..0ff16663b 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 b864cf9a9159d1f4e162ff5e8895a2bc95dee881..b30ee47b4f6d9025648ca5d93ee79f993cb6f4c2 100644 +index 15dd29152cf349b5ed23f1bae0a74a8d7dbe4c3d..f44f5dd87f778f432b0028969ca5732305c98915 100644 --- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs +++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs -@@ -873,6 +873,7 @@ export class Query { +@@ -883,6 +883,7 @@ export class Query { if ( result.heuristic && this.context.searchMode && diff --git a/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch b/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch index 8aa60156a..97c731865 100644 --- a/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/components/urlbar/UrlbarResult.sys.mjs b/browser/components/urlbar/UrlbarResult.sys.mjs -index 0882c0a01d17184cadb56aa1236ca97adf7f866b..4a5842eda6280205b96f9aee9b6f3b49fac7077c 100644 +index 99f331b2c6e4f8eda1bda02cbc6bc6d3f9f4a572..d504632a3f689aefb7d22b863649cb1a8bb3c6a4 100644 --- a/browser/components/urlbar/UrlbarResult.sys.mjs +++ b/browser/components/urlbar/UrlbarResult.sys.mjs -@@ -172,6 +172,10 @@ export class UrlbarResult { +@@ -179,6 +179,10 @@ export class UrlbarResult { return this.#heuristic; } diff --git a/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch index f2d58b268..d6d4318cc 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 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b033e5a4394 100644 +index 7e9ede3dae5c2099c45e0221ad1cb8ebd622fc39..f82db27dbd07961ad6af7dbe2cb5d79e5f7a9828 100644 --- a/browser/components/urlbar/UrlbarUtils.sys.mjs +++ b/browser/components/urlbar/UrlbarUtils.sys.mjs -@@ -77,6 +77,7 @@ export var UrlbarUtils = { +@@ -79,6 +79,7 @@ export var UrlbarUtils = { RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword", SUGGESTED_INDEX: "suggestedIndex", TAIL_SUGGESTION: "tailSuggestion", @@ -10,7 +10,7 @@ index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b03 }), // Defines provider types. -@@ -136,6 +137,7 @@ export var UrlbarUtils = { +@@ -138,6 +139,7 @@ export var UrlbarUtils = { OTHER_NETWORK: 6, ADDON: 7, ACTIONS: 8, @@ -18,7 +18,7 @@ index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b03 }), // Per-result exposure telemetry. -@@ -547,6 +549,8 @@ export var UrlbarUtils = { +@@ -549,6 +551,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 4a44486be..d469e3a14 100644 --- a/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch @@ -1,10 +1,28 @@ diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs -index beff1d41e47efad09256459589176d96c69f7a8a..c850dad31454d61c4edb6e183db07b2d51fb9fc8 100644 +index 307b3cac259c05e616cf7d5eb1ce50a146550cd9..72252a6363154b6c5f926bf2acf3282e8396d2ad 100644 --- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs +++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs -@@ -585,6 +585,7 @@ export class UrlbarValueFormatter { - this.window.requestAnimationFrame(() => { - if (instance == this._resizeInstance) { +@@ -76,7 +76,7 @@ export class UrlbarValueFormatter { + if (this.#updateInstance != instance) { + return; + } +- this.#formattingApplied = this.#formatURL() || this.#formatSearchAlias(); ++ this.#formattingApplied = this._formatURL() || this.#formatSearchAlias(); + }); + } + +@@ -370,7 +370,7 @@ export class UrlbarValueFormatter { + * @returns {boolean} + * True if formatting was applied and false if not. + */ +- #formatURL() { ++ _formatURL() { + let urlMetaData = this.#getUrlMetaData(); + if (!urlMetaData) { + return false; +@@ -639,6 +639,7 @@ export class UrlbarValueFormatter { + this.#window.requestAnimationFrame(() => { + if (instance == this.#resizeInstance) { this.#ensureFormattedHostVisible(); + this._formatURL(); } diff --git a/src/browser/components/urlbar/UrlbarView-sys-mjs.patch b/src/browser/components/urlbar/UrlbarView-sys-mjs.patch index ad96d3e95..2f9b688a7 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 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2ef873b348 100644 +index c58bc4871fbfb5ca924df822a09d783f21db616a..68fd73055d30ec4f4128fb8639369f07b167955a 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 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2e // 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. -@@ -2751,6 +2751,8 @@ export class UrlbarView { +@@ -2855,6 +2855,8 @@ export class UrlbarView { if (row?.hasAttribute("row-selectable")) { row?.toggleAttribute("selected", true); } @@ -20,7 +20,7 @@ index 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2e if (element != row) { row?.toggleAttribute("descendant-selected", true); } -@@ -3232,7 +3234,7 @@ export class UrlbarView { +@@ -3336,7 +3338,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 20abe082c..84d8a7803 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 7e50d7f5512cb4304d6fd2ecb6952fbff0b8f98e..ba09805f07b754b4b36d5a650252d5578184d031 100644 +index bd453da1b0eca276f319aadf451258e7db021365..da64e88eb58ba1b15c31034684f9d259339f4438 100644 --- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs +++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs -@@ -250,7 +250,7 @@ export const PREFS_CONFIG = new Map([ +@@ -251,7 +251,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 f4bb3e12d..b49cc0fd6 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 bb06e9224a4e195122d8a47ccf97c3481342cf86..959862e95ec00c7dc18256bd2572c1d7285415d4 100644 +index 6bb2e64906d6fe173c9129dd9c9c80b5323416b1..9f1fb4764c8c13a02cf0d384cfa71cc16e3c8701 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in -@@ -372,17 +372,17 @@ bin/libfreebl_64int_3.so +@@ -373,17 +373,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 09d60e5e3..5f2a50789 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 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad9eb7eaf8 100644 +index c6bb41695d70d17e5691e0d1856b79f7111d5026..8a9393a79a60aca23f80fc989fe2ae333ba54e39 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 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad # ARCH is used when it is necessary to differentiate the x64 registry keys from # the x86 registry keys (e.g. the uninstall registry key). -@@ -153,7 +153,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}" +@@ -152,7 +152,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 5c43ebe60..1b32fe7df 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 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8aa919456 100755 +index e877b4b8a8cc6fc233025d0b58de50a68ecb9fd9..9d7d9064d0b4c62a3de3b81e852b2b49170bf8a3 100755 --- a/browser/installer/windows/nsis/installer.nsi +++ b/browser/installer/windows/nsis/installer.nsi -@@ -842,7 +842,7 @@ Section "-InstallEndCleanup" +@@ -836,7 +836,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 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8 ${EndIf} SectionEnd -@@ -1970,5 +1970,5 @@ FunctionEnd +@@ -1964,5 +1964,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 2136ef157..55290f036 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 fd104f8ab0bd51d6a99c121b60e2695a54b0dfd0..9b117e5a1f5e8adac7d22cd65154529418fd2e5b +index 4eecccea6e053073fafad35cc97b326f7d0f5162..e4d077415294d456539637868144331ea9a46753 --- a/browser/installer/windows/nsis/uninstaller.nsi +++ b/browser/installer/windows/nsis/uninstaller.nsi -@@ -519,6 +519,7 @@ Section "Uninstall" +@@ -514,6 +514,7 @@ Section "Uninstall" ${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID" ${un.RegCleanFileHandler} ".webp" "FirefoxHTML-$AppUserModelID" ${un.RegCleanFileHandler} ".avif" "FirefoxHTML-$AppUserModelID" diff --git a/src/browser/modules/URILoadingHelper-sys-mjs.patch b/src/browser/modules/URILoadingHelper-sys-mjs.patch index d507c1852..b525e3bc6 100644 --- a/src/browser/modules/URILoadingHelper-sys-mjs.patch +++ b/src/browser/modules/URILoadingHelper-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs -index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410d016a5a3 100644 +index a3a84f96e54e5b74ad15f3825b380c30c117695f..ca702841c1df404a6f270ac08f962c8a225549d8 100644 --- a/browser/modules/URILoadingHelper.sys.mjs +++ b/browser/modules/URILoadingHelper.sys.mjs -@@ -541,7 +541,7 @@ export const URILoadingHelper = { +@@ -542,7 +542,7 @@ export const URILoadingHelper = { // page. If a load request bounces off for the currently selected tab, // we'll open a new tab instead. let tab = w.gBrowser.getTabForBrowser(targetBrowser); @@ -11,7 +11,7 @@ index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410 where = "tab"; targetBrowser = null; } else if ( -@@ -971,7 +971,7 @@ export const URILoadingHelper = { +@@ -972,7 +972,7 @@ export const URILoadingHelper = { ignoreQueryString || replaceQueryString, ignoreFragmentWhenComparing ); @@ -20,7 +20,7 @@ index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410 for (let i = 0; i < browsers.length; i++) { let browser = browsers[i]; let browserCompare = cleanURL( -@@ -1017,7 +1017,7 @@ export const URILoadingHelper = { +@@ -1018,7 +1018,7 @@ export const URILoadingHelper = { } if (!doAdopt) { diff --git a/src/browser/themes/linux/browser-css.patch b/src/browser/themes/linux/browser-css.patch index d22b13b43..03ca83a6f 100644 --- a/src/browser/themes/linux/browser-css.patch +++ b/src/browser/themes/linux/browser-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css -index b0ec88f361399cea255ef8fb6c7f2b87779a8e04..5b0d0bd663c309be3ddd0e946e1681b66938ee4d 100644 +index 646cf238ebfbd5ac1826cf47f578f66aa020199f..ba5a1950f683c4d8cb836ee9cd466c0b446f2241 100644 --- a/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css @@ -14,7 +14,6 @@ diff --git a/src/browser/themes/osx/browser-css.patch b/src/browser/themes/osx/browser-css.patch index 7cf8f61bb..9dbafc524 100644 --- a/src/browser/themes/osx/browser-css.patch +++ b/src/browser/themes/osx/browser-css.patch @@ -1,8 +1,8 @@ diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css -index 0a15e3d60d408f119bd03007567d5dd1fa178c36..443901657296d0d15a95e1d39e826b1c008aac4d 100644 +index 79f62b14809196e6ac073b8e560331e96be5d990..dcec04606e78c66673fb602b6a986321d20e1d4c 100644 --- a/browser/themes/osx/browser.css +++ b/browser/themes/osx/browser.css -@@ -38,7 +38,7 @@ +@@ -37,7 +37,7 @@ .titlebar-buttonbox { &:-moz-locale-dir(ltr) { diff --git a/src/browser/themes/shared/browser-shared-css.patch b/src/browser/themes/shared/browser-shared-css.patch index 2a7d63eb1..e3bfed1e3 100644 --- a/src/browser/themes/shared/browser-shared-css.patch +++ b/src/browser/themes/shared/browser-shared-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/browser-shared.css b/browser/themes/shared/browser-shared.css -index 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca26a4a5b8c 100644 +index 3cecc295f3ac764ed07094021372d35107df78ed..760f8bdcff87a6b803b115b249269438a27f8d80 100644 --- a/browser/themes/shared/browser-shared.css +++ b/browser/themes/shared/browser-shared.css @@ -102,7 +102,7 @@ body { @@ -20,7 +20,7 @@ index 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca2 } /* Themes define a set of toolbox foreground and background colors which we -@@ -282,13 +280,13 @@ body { +@@ -281,13 +279,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 6f4941ae0..575bfe1bf 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 d542e962d42b17140888e299ed43a838047ee48c..806bc4f9d7b7557abf316a84858046e04c4f7ff5 100644 +index 34e9206ff45592db2b1b24568f1f6f1bf16b4c3a..6fa3f13dd18f90bcc0c715c4896617fdfce4887e 100644 --- a/browser/themes/shared/identity-block/identity-block.css +++ b/browser/themes/shared/identity-block/identity-block.css @@ -7,7 +7,7 @@ diff --git a/src/browser/themes/shared/jar-inc-mn.patch b/src/browser/themes/shared/jar-inc-mn.patch index ca613d9f9..7e4a54e8e 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 6085ce0614c9ea7d650c9526b295953f46b30cb6..06b4af758d9ae033dd0b7436f08e6748047c8bbe 100644 +index ff198352720d7935b497e43f3e6b8ca04905e885..63e09db981a7ae35b1bb2c610133f624e8f61b74 100644 --- a/browser/themes/shared/jar.inc.mn +++ b/browser/themes/shared/jar.inc.mn -@@ -317,3 +317,5 @@ +@@ -323,3 +323,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 b719d9abf..f5d463470 100644 --- a/src/browser/themes/shared/tabbrowser/content-area-css.patch +++ b/src/browser/themes/shared/tabbrowser/content-area-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css -index db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f23063dbd 100644 +index 55f33b3f630ca0eea7e4bde19f9875802c8aec78..f11fdaab05baf85fe2b56fa07442ded3c9641abc 100644 --- a/browser/themes/shared/tabbrowser/content-area.css +++ b/browser/themes/shared/tabbrowser/content-area.css @@ -140,7 +140,6 @@ @@ -10,7 +10,7 @@ index db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f } browser[type="content"] { -@@ -323,7 +322,7 @@ +@@ -377,7 +376,7 @@ split-view-footer { .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 5393678e5..e9c53ae18 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 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7b8c4d3da 100644 +index ffda4922c675f6159c825334cba9d49658d316ba..7b3d4d2b5c6d732a1d0074e05cc48131fe57c630 100644 --- a/browser/themes/shared/tabbrowser/ctrlTab.css +++ b/browser/themes/shared/tabbrowser/ctrlTab.css @@ -11,6 +11,7 @@ @@ -8,5 +8,5 @@ index 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7 -moz-window-shadow: none; + --panel-shadow-margin: 0; @media not (-moz-platform: macos) { - font-weight: bold; + font-weight: var(--font-weight-bold); } diff --git a/src/browser/themes/shared/tabbrowser/tabs-css.patch b/src/browser/themes/shared/tabbrowser/tabs-css.patch index 2bd6bb28d..cd32f20e4 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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2bff889716 100644 +index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df432311b0081e1 100644 --- a/browser/themes/shared/tabbrowser/tabs.css +++ b/browser/themes/shared/tabbrowser/tabs.css @@ -21,7 +21,7 @@ @@ -23,7 +23,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b --tab-selected-bgcolor: var(--toolbar-bgcolor); --tab-selected-color-scheme: var(--toolbar-color-scheme); &[lwt-tab-selected="light"] { -@@ -267,7 +267,6 @@ +@@ -285,7 +285,6 @@ } :root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] { @@ -31,7 +31,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b } &:is([selected], [multiselected]) { -@@ -281,6 +280,7 @@ +@@ -299,6 +298,7 @@ border-radius: inherit; position: relative; overflow: hidden; @@ -39,7 +39,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b &::before { position: absolute; -@@ -480,14 +480,11 @@ +@@ -498,14 +498,11 @@ .tab-icon-image { -moz-context-properties: fill, stroke; fill: currentColor; @@ -55,7 +55,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b opacity: 0.5; /* Fade the favicon out */ transition-property: filter, opacity; -@@ -504,10 +501,6 @@ +@@ -522,10 +519,6 @@ /* stylelint-disable-next-line media-query-no-invalid */ @media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") { &[pending][discarded] { @@ -66,7 +66,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b opacity: 0.5; /* Fade the favicon out */ transition-property: filter, opacity; -@@ -575,7 +568,7 @@ +@@ -593,7 +586,7 @@ z-index: 1; /* Overlay tab title */ #tabbrowser-tabs[orient="vertical"] & { @@ -75,7 +75,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b } &[crashed] { -@@ -583,7 +576,7 @@ +@@ -601,7 +594,7 @@ } #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), @@ -84,7 +84,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b &[soundplaying] { list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); } -@@ -640,7 +633,7 @@ +@@ -658,7 +651,7 @@ } } @@ -93,7 +93,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b &[crashed] { display: revert; } -@@ -741,7 +734,7 @@ +@@ -759,7 +752,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b &:is([soundplaying], [muted], [activemedia-blocked]) { display: flex; } -@@ -1245,7 +1238,7 @@ tab-group { +@@ -1446,7 +1439,7 @@ tab-group { } #tabbrowser-tabs[orient="vertical"][expanded] { @@ -111,7 +111,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b &[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) { margin-inline-start: var(--space-medium); } -@@ -1692,7 +1685,7 @@ tab-group { +@@ -1893,7 +1886,7 @@ tab-group { } } @@ -120,7 +120,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b #vertical-tabs-newtab-button { appearance: none; min-height: var(--tab-min-height); -@@ -1703,7 +1696,7 @@ tab-group { +@@ -1904,7 +1897,7 @@ tab-group { margin-inline: var(--tab-inner-inline-margin); #tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text { @@ -129,7 +129,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b } &:hover { -@@ -1727,7 +1720,7 @@ tab-group { +@@ -1928,7 +1921,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b margin-block: var(--tab-block-margin); } -@@ -1915,7 +1908,6 @@ tab-group { +@@ -2116,7 +2109,6 @@ tab-group { &:not([expanded]) { .tabbrowser-tab[pinned] { @@ -146,7 +146,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b } .tab-background { -@@ -1955,8 +1947,8 @@ tab-group { +@@ -2156,8 +2148,8 @@ tab-group { display: block; position: absolute; inset: auto; @@ -157,7 +157,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b &:-moz-window-inactive { background-image: -@@ -2075,7 +2067,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { +@@ -2276,7 +2268,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 1c291ce84..b7a9ced81 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 15dcfbc95afab9f28bd58379da0ef3e24d1b4595..73827cc5cffe47099feea36cbeffb547e955b37e 100644 +index 45a87b96db14f64e0d8a3a3aae07f76c8f7e765f..d75f61cb2d27205aa2c47cf902d38e26098fbf2c 100644 --- a/browser/themes/shared/urlbar-searchbar.css +++ b/browser/themes/shared/urlbar-searchbar.css @@ -6,7 +6,7 @@ diff --git a/src/browser/themes/shared/urlbarView-css.patch b/src/browser/themes/shared/urlbarView-css.patch index 4c7e0779e..fa66900c8 100644 --- a/src/browser/themes/shared/urlbarView-css.patch +++ b/src/browser/themes/shared/urlbarView-css.patch @@ -1,5 +1,5 @@ diff --git a/browser/themes/shared/urlbarView.css b/browser/themes/shared/urlbarView.css -index e0a05846eb0a329fc58b660f806912a1afe7c6c9..0d02e227a84ff4229104dd9cf9cd20f50a8d136c 100644 +index d59a4e8514c3e8f16c2512abacf8e95d7e7255c5..5c226bed71203dc39723f07107b3de89e0d1776f 100644 --- a/browser/themes/shared/urlbarView.css +++ b/browser/themes/shared/urlbarView.css @@ -20,7 +20,7 @@ diff --git a/src/browser/themes/windows/browser-css.patch b/src/browser/themes/windows/browser-css.patch index c8e03bdee..7a420ac41 100644 --- a/src/browser/themes/windows/browser-css.patch +++ b/src/browser/themes/windows/browser-css.patch @@ -1,8 +1,8 @@ diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css -index e1a79cd22180738d2ca16e9a6c5591499d337325..d36996359bfa4dd7d98c4f5aeb192c7b144339bb 100644 +index b114781254018a27cd559c28d5d469fbab8673b5..79e6e21dd6e0a63237850bd315558540f050793c 100644 --- a/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css -@@ -31,7 +31,6 @@ +@@ -39,7 +39,6 @@ /* stylelint-disable-next-line media-query-no-invalid */ @media -moz-pref("widget.windows.mica.toplevel-backdrop", 2) { /* For acrylic, do the same we do for popups to guarantee some contrast */ @@ -10,7 +10,7 @@ index e1a79cd22180738d2ca16e9a6c5591499d337325..d36996359bfa4dd7d98c4f5aeb192c7b } /* Using a semitransparent background preserves the tinting from the backdrop. -@@ -60,14 +59,13 @@ +@@ -68,14 +67,13 @@ } /* This is needed for Windows 10, see bug 1961257 */ diff --git a/src/devtools/server/actors/animation-type-longhand-js.patch b/src/devtools/server/actors/animation-type-longhand-js.patch index 8ac01e934..37951d646 100644 --- a/src/devtools/server/actors/animation-type-longhand-js.patch +++ b/src/devtools/server/actors/animation-type-longhand-js.patch @@ -1,5 +1,5 @@ diff --git a/devtools/server/actors/animation-type-longhand.js b/devtools/server/actors/animation-type-longhand.js -index a0026f953e8383741221d60ed5c02d0c12740f09..fd5c49d0b8997f29d3dee8dc23e2c373341eb972 100644 +index 76c58a23422b923e191870f27090c7fc6d63884e..b19f47d31195774cec2c7e67903c892aa1329f3d 100644 --- a/devtools/server/actors/animation-type-longhand.js +++ b/devtools/server/actors/animation-type-longhand.js @@ -342,6 +342,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [ diff --git a/src/devtools/startup/DevToolsStartup-sys-mjs.patch b/src/devtools/startup/DevToolsStartup-sys-mjs.patch index 2293dd2d0..c21547187 100644 --- a/src/devtools/startup/DevToolsStartup-sys-mjs.patch +++ b/src/devtools/startup/DevToolsStartup-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs -index 7d26af162be5620649ff36d7cf7d3835a8ac7a20..c0fbd46c22f1eacc82058919714174d15e8106f1 100644 +index 50fd07c1365ad25dc31c806f11751368f0d27a46..e26e90ece2d5dc42312f95661b5a38eec3556986 100644 --- a/devtools/startup/DevToolsStartup.sys.mjs +++ b/devtools/startup/DevToolsStartup.sys.mjs -@@ -816,6 +816,7 @@ DevToolsStartup.prototype = { +@@ -829,6 +829,7 @@ DevToolsStartup.prototype = { // account (see bug 832984). const mainKeyset = doc.getElementById("mainKeyset"); mainKeyset.parentNode.insertBefore(keyset, mainKeyset); diff --git a/src/docshell/base/nsAboutRedirector-cpp.patch b/src/docshell/base/nsAboutRedirector-cpp.patch index 527a48635..f1a78228a 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 625640eef45baba74255c00c603f0834e1f0aa2c..8b7893cf3848edf9121f7cbefcc3a1c76894fa37 100644 +index 49779b7cc79a602e764c8346e17a02310808aab8..1b1000cf7177bd83ca6d6c484a1c3b48c7216fc9 100644 --- a/docshell/base/nsAboutRedirector.cpp +++ b/docshell/base/nsAboutRedirector.cpp -@@ -118,7 +118,7 @@ static const RedirEntry kRedirMap[] = { +@@ -117,7 +117,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 18ca663f2..46c246c18 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 55d24fe16311a286813f7668a227d2ef0cc7e5d7..1a7c2352daf1e04e38a8fb81f80a1f9a58ba2cb5 100644 +index 5a890d76ef8398c1a8dc6d84a6c43ec7e2b7c39e..aa25c68e36010004b95c14b8a8a88ca7e85de84d 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp -@@ -465,6 +465,7 @@ +@@ -461,6 +461,7 @@ #include "prtime.h" #include "prtypes.h" #include "xpcpublic.h" @@ -10,7 +10,7 @@ index 55d24fe16311a286813f7668a227d2ef0cc7e5d7..1a7c2352daf1e04e38a8fb81f80a1f9a // clang-format off #include "mozilla/Encoding.h" -@@ -3442,6 +3443,10 @@ void Document::FillStyleSetUserAndUASheets() { +@@ -3446,6 +3447,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 0ec931469..9c3e53f05 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 81d73c33af8c95e6f687c05354fb8a0e894dcd44..775742e1e4f84618dce45cbcb14229dc6c4f2b64 100644 +index 0635fe4dc5bf231300c1b53b093e2200c4fde134..c1d868cb7ebcf322885d562217ff9c03b16f7119 100644 --- a/dom/base/use_counter_metrics.yaml +++ b/dom/base/use_counter_metrics.yaml -@@ -21086,6 +21086,22 @@ use.counter.css.page: +@@ -21154,6 +21154,22 @@ use.counter.css.page: send_in_pings: - use-counters @@ -25,7 +25,7 @@ index 81d73c33af8c95e6f687c05354fb8a0e894dcd44..775742e1e4f84618dce45cbcb14229dc css_transform_origin: type: counter description: > -@@ -33056,6 +33072,22 @@ use.counter.css.doc: +@@ -33124,6 +33140,22 @@ use.counter.css.doc: send_in_pings: - use-counters diff --git a/src/dom/media/mediacontrol/MediaStatusManager-cpp.patch b/src/dom/media/mediacontrol/MediaStatusManager-cpp.patch index 9e005e88c..4ec84b181 100644 --- a/src/dom/media/mediacontrol/MediaStatusManager-cpp.patch +++ b/src/dom/media/mediacontrol/MediaStatusManager-cpp.patch @@ -1,5 +1,5 @@ diff --git a/dom/media/mediacontrol/MediaStatusManager.cpp b/dom/media/mediacontrol/MediaStatusManager.cpp -index 9d62b302fb519df9c00e26e8876dc6adcbc0b448..ece3509d2a99dee1cf7c22749b38959340c85976 100644 +index c1282b8b1d99327df972c8f0aa848816fcbc4b2b..acaaff389838886267f96993a7f0d27950f08624 100644 --- a/dom/media/mediacontrol/MediaStatusManager.cpp +++ b/dom/media/mediacontrol/MediaStatusManager.cpp @@ -427,7 +427,8 @@ void MediaStatusManager::UpdateGuessedPositionState( diff --git a/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch b/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch index 19c73e158..47846b210 100644 --- a/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch +++ b/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch @@ -1,8 +1,8 @@ diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp -index 3cb7a43dd9535ccf6ffaa60df39b487f07760208..ed3632e9f38ee88df39500356777ae5b3ba7202a 100644 +index f26c8c26354fd65ebf2c5f4797cb2bd200f764e6..90e0b81b471d8bfa0140fa3c7996f7b796564d50 100644 --- a/dom/media/mediaelement/HTMLMediaElement.cpp +++ b/dom/media/mediaelement/HTMLMediaElement.cpp -@@ -453,6 +453,7 @@ class HTMLMediaElement::MediaControlKeyListener final +@@ -451,6 +451,7 @@ class HTMLMediaElement::MediaControlKeyListener final // audible state. Therefore, in that case we would noitfy the audible state // when media starts playing. if (mState == MediaPlaybackState::ePlayed) { @@ -10,7 +10,7 @@ index 3cb7a43dd9535ccf6ffaa60df39b487f07760208..ed3632e9f38ee88df39500356777ae5b NotifyAudibleStateChanged(mIsOwnerAudible ? MediaAudibleState::eAudible : MediaAudibleState::eInaudible); -@@ -7234,6 +7235,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) { +@@ -7232,6 +7233,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) { QueueTask(std::move(runner)); mQueueTimeUpdateRunnerTime = TimeStamp::Now(); mLastCurrentTime = CurrentTime(); diff --git a/src/firefox-patches/147_windows_border_fix_1.patch b/src/firefox-patches/147_windows_border_fix_1.patch deleted file mode 100644 index fded21ca5..000000000 --- a/src/firefox-patches/147_windows_border_fix_1.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 433cc8224790300fdabe76bd225b644c1812da34 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= -Date: Thu, 27 Nov 2025 15:28:12 +0000 -Subject: [PATCH] Bug 1993474 - Ensure our WNDPROC has precedence over - WinAppSDK's. r=gstoll,win-reviewers - -See the comment for reasoning. WM_NCCALCSIZE wasn't getting called, and -we rely on that to get the right client area on things like maximized -windows. - -Differential Revision: https://phabricator.services.mozilla.com/D274281 ---- - widget/windows/nsWindow.cpp | 32 ++++++++++++++++++++++---------- - widget/windows/nsWindow.h | 2 ++ - 2 files changed, 24 insertions(+), 10 deletions(-) - -diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp -index 0b98d157097da..b357df236cfcd 100644 ---- a/widget/windows/nsWindow.cpp -+++ b/widget/windows/nsWindow.cpp -@@ -1520,12 +1520,31 @@ DWORD nsWindow::WindowExStyle() { - * - **************************************************************/ - -+bool nsWindow::ShouldAssociateWithWinAppSDK() const { -+ // We currently don't need any SDK functionality for for PiP windows, -+ // and using the SDK on these windows causes them to go under the -+ // taskbar (bug 1995838). -+ // -+ // TODO(emilio): That might not be true anymore after bug 1993474, -+ // consider re-testing and removing that special-case. -+ return IsTopLevelWidget() && !mIsPIPWindow; -+} -+ - bool nsWindow::AssociateWithNativeWindow() { - if (!mWnd || !IsWindow(mWnd)) { - NS_ERROR("Invalid window handle"); - return false; - } - -+ if (ShouldAssociateWithWinAppSDK()) { -+ // Make sure to call this here to associate our window with the -+ // Windows App SDK _before_ setting our WNDPROC, if needed. -+ // This is important because the SDKs WNDPROC might handle messages like -+ // WM_NCCALCSIZE without calling into us, and that can cause sizing issues, -+ // see bug 1993474. -+ WindowsUIUtils::SetIsTitlebarCollapsed(mWnd, mCustomNonClient); -+ } -+ - // Connect the this pointer to the native window handle. - // This should be done before SetWindowLongPtrW, because nsWindow::WindowProc - // uses WinUtils::GetNSWindowPtr internally. -@@ -1552,12 +1571,7 @@ void nsWindow::DissociateFromNativeWindow() { - DebugOnly wndProcBeforeDissociate = - reinterpret_cast(::SetWindowLongPtrW( - mWnd, GWLP_WNDPROC, reinterpret_cast(*mPrevWndProc))); -- // If we've used the Windows App SDK to remove the minimize/maximize/close -- // entries from the titlebar, then the Windows App SDK sets its own WNDPROC -- // own the window, so this assertion would fail. But we only do this if -- // Mica is available. -- NS_ASSERTION(WinUtils::MicaAvailable() || -- wndProcBeforeDissociate == nsWindow::WindowProc, -+ NS_ASSERTION(wndProcBeforeDissociate == nsWindow::WindowProc, - "Unstacked an unexpected native window procedure"); - - WinUtils::SetNSWindowPtr(mWnd, nullptr); -@@ -2835,9 +2849,7 @@ void nsWindow::SetCustomTitlebar(bool aCustomTitlebar) { - mCustomNonClientMetrics = {}; - ResetLayout(); - } -- // Not needed for PiP windows, and using the Windows App SDK on -- // these windows causes them to go under the taskbar (bug 1995838) -- if (!mPIPWindow) { -+ if (ShouldAssociateWithWinAppSDK()) { - WindowsUIUtils::SetIsTitlebarCollapsed(mWnd, mCustomNonClient); - } - } -diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h -index 20f016757dfee..2756b248368a3 100644 ---- a/widget/windows/nsWindow.h -+++ b/widget/windows/nsWindow.h -@@ -335,6 +335,8 @@ class nsWindow final : public nsIWidget { - - bool IsRTL() const { return mIsRTL; } - -+ bool ShouldAssociateWithWinAppSDK() const; -+ - /** - * AssociateDefaultIMC() associates or disassociates the default IMC for - * the window. diff --git a/src/firefox-patches/147_windows_border_fix_2.patch b/src/firefox-patches/147_windows_border_fix_2.patch deleted file mode 100644 index 1556c30a6..000000000 --- a/src/firefox-patches/147_windows_border_fix_2.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 418e274c76f9e6b2d1149048cb399f1f6d709553 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= -Date: Thu, 27 Nov 2025 15:31:40 +0000 -Subject: [PATCH] Bug 1993474 - Remove redundant nsWindow::mPIPWindow. - r=win-reviewers,gstoll - -nsIWidget already has a member for this. - -Differential Revision: https://phabricator.services.mozilla.com/D274282 ---- - widget/windows/nsWindow.cpp | 4 +--- - widget/windows/nsWindow.h | 3 --- - 2 files changed, 1 insertion(+), 6 deletions(-) - -diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp -index b357df236cfc..19f5980a106f 100644 ---- a/widget/windows/nsWindow.cpp -+++ b/widget/windows/nsWindow.cpp -@@ -817,7 +817,6 @@ static bool IsCloaked(HWND hwnd) { - nsWindow::nsWindow() - : nsBaseWidget(BorderStyle::Default), - mFrameState(std::in_place, this), -- mPIPWindow(false), - mMicaBackdrop(false), - mLastPaintEndTime(TimeStamp::Now()), - mCachedHitTestTime(TimeStamp::Now()), -@@ -1028,7 +1027,6 @@ nsresult nsWindow::Create(nsIWidget* aParent, const LayoutDeviceIntRect& aRect, - aParent ? (HWND)aParent->GetNativeData(NS_NATIVE_WINDOW) : nullptr; - - mIsRTL = aInitData->mRTL; -- mPIPWindow = aInitData->mPIPWindow; - mOpeningAnimationSuppressed = aInitData->mIsAnimationSuppressed; - mAlwaysOnTop = aInitData->mAlwaysOnTop; - mIsAlert = aInitData->mIsAlert; -@@ -2807,7 +2805,7 @@ bool nsWindow::UpdateNonClientMargins(bool aReflowWindow) { - // frame sizes for left, right and bottom since Windows will automagically - // position the edges "offscreen" for maximized windows. - metrics.mOffset.top = metrics.mCaptionHeight; -- } else if (mPIPWindow && -+ } else if (mIsPIPWindow && - !StaticPrefs::widget_windows_pip_decorations_enabled()) { - metrics.mOffset = metrics.DefaultMargins(); - } else { -diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h -index 2756b248368a..9e6b4d41d721 100644 ---- a/widget/windows/nsWindow.h -+++ b/widget/windows/nsWindow.h -@@ -852,9 +852,6 @@ class nsWindow final : public nsIWidget { - // Whether we're in the process of sending a WM_SETTEXT ourselves - bool mSendingSetText = false; - -- // Whether we're a PIP window. -- bool mPIPWindow : 1; -- - // Whether we are asked to render a mica backdrop. - bool mMicaBackdrop : 1; - diff --git a/src/firefox-patches/147_windows_border_fix_3.patch b/src/firefox-patches/147_windows_border_fix_3.patch deleted file mode 100644 index 5b7d03a47..000000000 --- a/src/firefox-patches/147_windows_border_fix_3.patch +++ /dev/null @@ -1,33 +0,0 @@ -From dd4460727998a53e9fa7372afba2a93a9546cec3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= -Date: Fri, 28 Nov 2025 15:06:26 +0000 -Subject: [PATCH] Bug 2002986 - Use IAppWindowTitlebar::ResetToDefault() for - non-collapsed titlebar. r=win-reviewers,gstoll - -This seems to actually go to the default DWM stuff and is the documented -way of doing so: - -https://learn.microsoft.com/en-us/windows/apps/develop/title-bar#reset-the-title-bar - -Differential Revision: https://phabricator.services.mozilla.com/D274413 ---- - widget/windows/WindowsUIUtils.cpp | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/widget/windows/WindowsUIUtils.cpp b/widget/windows/WindowsUIUtils.cpp -index a5a6c893e7056..abaabfba69dfa 100644 ---- a/widget/windows/WindowsUIUtils.cpp -+++ b/widget/windows/WindowsUIUtils.cpp -@@ -1394,7 +1394,11 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) { - MOZ_ASSERT_UNREACHABLE("IAppWindowTitleBar could not be acquired"); - return; - } -- hr = titleBar->put_ExtendsContentIntoTitleBar(aIsCollapsed); -+ if (aIsCollapsed) { -+ hr = titleBar->put_ExtendsContentIntoTitleBar(aIsCollapsed); -+ } else { -+ hr = titleBar->ResetToDefault(); -+ } - if (FAILED(hr)) { - MOZ_LOG(gWindowsLog, LogLevel::Error, - ("Skipping SetIsTitlebarCollapsed() because " diff --git a/src/firefox-patches/147_windows_border_fix_4.patch b/src/firefox-patches/147_windows_border_fix_4.patch deleted file mode 100644 index 597ffa21e..000000000 --- a/src/firefox-patches/147_windows_border_fix_4.patch +++ /dev/null @@ -1,221 +0,0 @@ -From bb40796bb2ff8be97e2adcdad78d9b9ea1d3ea18 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= -Date: Fri, 28 Nov 2025 15:27:41 +0000 -Subject: [PATCH] Bug 2002990 - Save some work on startup to associate a native - window with the app sdk. r=gstoll,win-reviewers - -We only need to grab its AppWindow for that to happen. Save some useless -QI while at it. - -I'm pretty sure bug 2002986 would also help here but this seems worth -doing regardless. - -Differential Revision: https://phabricator.services.mozilla.com/D274419 ---- - widget/windows/WindowsUIUtils.cpp | 126 ++++++++++++++---------------- - widget/windows/WindowsUIUtils.h | 1 + - widget/windows/nsWindow.cpp | 2 +- - 3 files changed, 62 insertions(+), 67 deletions(-) - -diff --git a/widget/windows/WindowsUIUtils.cpp b/widget/windows/WindowsUIUtils.cpp -index abaabfba69dfa..1ad39b98c20e0 100644 ---- a/widget/windows/WindowsUIUtils.cpp -+++ b/widget/windows/WindowsUIUtils.cpp -@@ -1211,7 +1211,35 @@ using GetWindowIdFromWindowType = HRESULT(STDAPICALLTYPE*)( - static GetWindowIdFromWindowType sGetWindowIdFromWindowProc = nullptr; - - // Returns whether initialization succeeded --bool InitializeWindowsAppSDKStatics() { -+[[nodiscard]] static bool InitializeWindowsAppSDKStatics() { -+ MOZ_ASSERT(NS_IsMainThread()); -+ // This function is needed to avoid drawing the titlebar buttons -+ // when the Windows mica backdrop is enabled. (bug 1934040) -+ // If it isn't possible for mica to be enabled, we don't need to do anything. -+ // The Windows App SDK that we use here doesn't support older versions of -+ // Windows 10 that Firefox does. -+ if (!widget::WinUtils::MicaAvailable()) { -+ MOZ_LOG( -+ gWindowsLog, LogLevel::Info, -+ ("Skipping SetIsTitlebarCollapsed() because mica is not available")); -+ return false; -+ } -+ // This pref is only false on certain test runs (most notably -+ // opt-talos-xperf), the Windows App SDK fails calling -+ // DCompositionCreateDevice3() with ERROR_ACCESS_DENIED, and the code assumes -+ // it is going to succeed so it proceeds to crash deferencing null. -+ // -+ // We're not exactly sure why this is happening right now, but I'm pretty sure -+ // it's specific to how we're running Firefox on those test runs, and -+ // I don't think any users will run into this. So those tests pass the -+ // --disable-windowsappsdk command line argument to avoid using -+ // the Windows App SDK. -+ if (!StaticPrefs::widget_windows_windowsappsdk_enabled()) { -+ MOZ_LOG(gWindowsLog, LogLevel::Info, -+ ("Skipping SetIsTitlebarCollapsed() because " -+ "widget.windows.windowsappsdk.enabled is false")); -+ return false; -+ } - if (!sGetWindowIdFromWindowProc) { - HMODULE frameworkUdkModule = - ::LoadLibraryW(L"Microsoft.Internal.FrameworkUdk.dll"); -@@ -1303,51 +1331,14 @@ bool InitializeWindowsAppSDKStatics() { - } - return true; - } --#endif - --void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) { --#ifndef __MINGW32__ -- // Used to avoid synchronization for loading libraries below -- MOZ_ASSERT(NS_IsMainThread()); -- // This function is needed to avoid drawing the titlebar buttons -- // when the Windows mica backdrop is enabled. (bug 1934040) -- // If it isn't possible for mica to be enabled, we don't need to do anything. -- // This also helps prevent problems because the Windows App SDK that we use -- // here doesn't support older versions of Windows 10 that Firefox does. -- if (!widget::WinUtils::MicaAvailable()) { -- MOZ_LOG( -- gWindowsLog, LogLevel::Info, -- ("Skipping SetIsTitlebarCollapsed() because mica is not available")); -- return; -- } -- // This pref is only false on certain test runs (most notably -- // opt-talos-xperf), the Windows App SDK fails calling -- // DCompositionCreateDevice3() with ERROR_ACCESS_DENIED, and the code assumes -- // it is going to succeed so it proceeds to crash deferencing null. -- // -- // We're not exactly sure why this is happening right now, but I'm pretty sure -- // it's specific to how we're running Firefox on those test runs, and -- // I don't think any users will run into this. So those tests pass the -- // --disable-windowsappsdk command line argument to avoid using -- // the Windows App SDK. -- if (!StaticPrefs::widget_windows_windowsappsdk_enabled()) { -- MOZ_LOG(gWindowsLog, LogLevel::Info, -- ("Skipping SetIsTitlebarCollapsed() because " -- "widget.windows.windowsappsdk.enabled is false")); -- return; -- } -+static RefPtr -+GetAppWindowForWindow(HWND aWnd) { - if (!InitializeWindowsAppSDKStatics()) { -- return; -+ return nullptr; - } -- -- // The Microsoft documentation says that we should be checking -- // AppWindowTitleBar::IsCustomizationSupported() before calling methods -- // on the title bar. However, it also says that customization is fully -- // supported since Windows App SDK v1.2 on Windows 11, and Mica is only -- // available on Windows 11, so it should be safe to skip this check. -- - // Retrieve the WindowId that corresponds to hWnd. -- struct winrt::Microsoft::UI::WindowId windowId; -+ struct winrt::Microsoft::UI::WindowId windowId{0}; - HRESULT hr = sGetWindowIdFromWindowProc(aWnd, &windowId); - if (FAILED(hr) || windowId.value == 0) { - MOZ_LOG(gWindowsLog, LogLevel::Error, -@@ -1355,25 +1346,40 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) { - "GetWindowIdFromWindow failed, hr=0x%" PRIX32, - static_cast(hr))); - MOZ_ASSERT_UNREACHABLE("GetWindowIdFromWindow failed"); -- return; -+ return nullptr; - } - - RefPtr appWindow; -- hr = (HRESULT)sAppWindowStatics->GetFromWindowId(windowId, -- getter_AddRefs(appWindow)); -- if (FAILED(hr) || !appWindow) { -- // Hedge our bets here and don't assert because it's possible this -- // is a weird sort of window or something. -+ sAppWindowStatics->GetFromWindowId(windowId, getter_AddRefs(appWindow)); -+ return appWindow; -+} -+#endif -+ -+void WindowsUIUtils::AssociateWithWinAppSDK(HWND aWnd) { -+#ifndef __MINGW32__ -+ RefPtr win = GetAppWindowForWindow(aWnd); -+ (void)win; -+#endif -+} -+ -+void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) { -+#ifndef __MINGW32__ -+ // The Microsoft documentation says that we should be checking -+ // AppWindowTitleBar::IsCustomizationSupported() before calling methods -+ // on the title bar. However, it also says that customization is fully -+ // supported since Windows App SDK v1.2 on Windows 11, and Mica is only -+ // available on Windows 11, so it should be safe to skip this check. -+ RefPtr appWindow = GetAppWindowForWindow(aWnd); -+ if (!appWindow) { - MOZ_LOG(gWindowsLog, LogLevel::Warning, - ("Skipping SetIsTitlebarCollapsed() because " -- "IAppWindow could not be acquired from window id, hr=%" PRIX32, -- static_cast(hr))); -+ "IAppWindow could not be acquired from window id")); - return; - } - -- RefPtr inspectableTitleBar; -- hr = appWindow->get_TitleBar(getter_AddRefs(inspectableTitleBar)); -- if (FAILED(hr) || !inspectableTitleBar) { -+ RefPtr titleBar; -+ HRESULT hr = appWindow->get_TitleBar(getter_AddRefs(titleBar)); -+ if (FAILED(hr) || !titleBar) { - // Hedge our bets here and don't assert because it's possible this - // is a weird sort of window or something. - MOZ_LOG(gWindowsLog, LogLevel::Warning, -@@ -1382,18 +1388,6 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) { - static_cast(hr))); - return; - } -- RefPtr titleBar; -- hr = inspectableTitleBar->QueryInterface( -- __uuidof(winrt::Microsoft::UI::Windowing::IAppWindowTitleBar), -- (void**)getter_AddRefs(titleBar)); -- if (FAILED(hr) || !titleBar) { -- MOZ_LOG(gWindowsLog, LogLevel::Error, -- ("Skipping SetIsTitlebarCollapsed() because " -- "IAppWindowTitleBar could not be acquired, hr=%" PRIX32, -- static_cast(hr))); -- MOZ_ASSERT_UNREACHABLE("IAppWindowTitleBar could not be acquired"); -- return; -- } - if (aIsCollapsed) { - hr = titleBar->put_ExtendsContentIntoTitleBar(aIsCollapsed); - } else { -@@ -1410,7 +1404,7 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) { - if (aIsCollapsed) { - // PreferredHeightOption is only valid if ExtendsContentIntoTitleBar is true - RefPtr titleBar2; -- hr = inspectableTitleBar->QueryInterface( -+ hr = titleBar->QueryInterface( - __uuidof(winrt::Microsoft::UI::Windowing::IAppWindowTitleBar2), - (void**)getter_AddRefs(titleBar2)); - if (FAILED(hr) || !titleBar2) { -diff --git a/widget/windows/WindowsUIUtils.h b/widget/windows/WindowsUIUtils.h -index 17a5aac583758..0abd4dfe9875a 100644 ---- a/widget/windows/WindowsUIUtils.h -+++ b/widget/windows/WindowsUIUtils.h -@@ -59,6 +59,7 @@ class WindowsUIUtils final : public nsIWindowsUIUtils { - static bool ComputeOverlayScrollbars(); - static double ComputeTextScaleFactor(); - static bool ComputeTransparencyEffects(); -+ static void AssociateWithWinAppSDK(HWND aWnd); - static void SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed); - - protected: -diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp -index 19f5980a106fb..a2a288e793046 100644 ---- a/widget/windows/nsWindow.cpp -+++ b/widget/windows/nsWindow.cpp -@@ -1540,7 +1540,7 @@ bool nsWindow::AssociateWithNativeWindow() { - // This is important because the SDKs WNDPROC might handle messages like - // WM_NCCALCSIZE without calling into us, and that can cause sizing issues, - // see bug 1993474. -- WindowsUIUtils::SetIsTitlebarCollapsed(mWnd, mCustomNonClient); -+ WindowsUIUtils::AssociateWithWinAppSDK(mWnd); - } - - // Connect the this pointer to the native window handle. diff --git a/src/firefox-patches/no_liquid_glass_icon.patch b/src/firefox-patches/no_liquid_glass_icon.patch new file mode 100644 index 000000000..3fa8021f7 --- /dev/null +++ b/src/firefox-patches/no_liquid_glass_icon.patch @@ -0,0 +1,13 @@ +diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in +index 0c4fb837a24490c66b284abf2bd9299c2e021de0..ea28831b90662b12bdcb137c35b6bb83626c77e7 100644 +--- a/browser/app/macbuild/Contents/Info.plist.in ++++ b/browser/app/macbuild/Contents/Info.plist.in +@@ -190,8 +190,6 @@ + @MAC_APP_NAME@ @APP_VERSION@ + CFBundleIconFile + firefox.icns +- CFBundleIconName +- AppIcon + CFBundleIdentifier + @MOZ_MACBUNDLE_ID@ + CFBundleInfoDictionaryVersion diff --git a/src/layout/generic/nsIFrame-cpp.patch b/src/layout/generic/nsIFrame-cpp.patch index 214996601..7e42fa2d6 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 a7b60e40e6947754374dcda2fc69cdb329c337ac..c7e025109c4c43865205cbd445d9d20305974974 100644 +index 794d02a892eaa180cb2aa4fdc46428e37aee2e1e..40daffbb32a2ec43ae2364bcadadbdb9813a3186 100644 --- a/layout/generic/nsIFrame.cpp +++ b/layout/generic/nsIFrame.cpp -@@ -11899,6 +11899,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { +@@ -11918,6 +11918,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms( uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel)); diff --git a/src/layout/style/nsStyleSheetService-h.patch b/src/layout/style/nsStyleSheetService-h.patch index 80f767f5b..553bd3fc6 100644 --- a/src/layout/style/nsStyleSheetService-h.patch +++ b/src/layout/style/nsStyleSheetService-h.patch @@ -1,8 +1,8 @@ diff --git a/layout/style/nsStyleSheetService.h b/layout/style/nsStyleSheetService.h -index 83fc829aad19f8b80692e67bddb781778fbc4f8d..04806a1f51686a82c1dc2555dae86a4397b181fb 100644 +index 86a6767302820221f879e31e06cf012137185ffd..50c8cdfb94f186ffdc9f1ebdedf8db294f8b8366 100644 --- a/layout/style/nsStyleSheetService.h +++ b/layout/style/nsStyleSheetService.h -@@ -50,6 +50,8 @@ class nsStyleSheetService final : public nsIStyleSheetService, +@@ -49,6 +49,8 @@ class nsStyleSheetService final : public nsIStyleSheetService, size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; diff --git a/src/layout/style/nsStyleStruct-cpp.patch b/src/layout/style/nsStyleStruct-cpp.patch index adc1c8369..0af32a1b4 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 9f86fdfe6a70394c5fcd9e07177e5f325c2e4951..f9b3bc2e366f0cee2fbc992c4babce068b954413 100644 +index ee49683ebfee306e23aed808006fd34f4db6d4c6..d7f55a861aa8a3d1e4d8c343b7da008ee559fd8a 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp -@@ -3233,6 +3233,9 @@ nsStyleUIReset::nsStyleUIReset() +@@ -3231,6 +3231,9 @@ nsStyleUIReset::nsStyleUIReset() mWindowShadow(StyleWindowShadow::Auto), mWindowOpacity(1.0), mMozWindowInputRegionMargin(StyleLength::Zero()), @@ -12,7 +12,7 @@ index 9f86fdfe6a70394c5fcd9e07177e5f325c2e4951..f9b3bc2e366f0cee2fbc992c4babce06 mTransitions( nsStyleAutoArray::WITH_SINGLE_INITIAL_ELEMENT), mTransitionTimingFunctionCount(1), -@@ -3277,6 +3280,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) +@@ -3275,6 +3278,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 dcc8877e3..19a0798dd 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 46f9312292b6f332947e68586ae770acffe8c418..2408eb06ab466faba99e83b5c92759cf3277edad 100644 +index 37945cdc8fc664f9a21999ee147fb241f3e55dfd..2694aae35e911cce2fa2c39409333960675fdeeb 100644 --- a/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h -@@ -2055,6 +2055,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset { +@@ -2087,6 +2087,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/layout/style/test/ListCSSProperties-cpp.patch b/src/layout/style/test/ListCSSProperties-cpp.patch index 31a2d1c8f..e410cc1ea 100644 --- a/src/layout/style/test/ListCSSProperties-cpp.patch +++ b/src/layout/style/test/ListCSSProperties-cpp.patch @@ -1,5 +1,5 @@ diff --git a/layout/style/test/ListCSSProperties.cpp b/layout/style/test/ListCSSProperties.cpp -index 673c1677703ef2de3fafbe86f0ffab720738f4cb..267556f66de3180fc6ae91d5b54b8648f1b41cc4 100644 +index 1870bfc3735255f2d41356b00dc52faf95d9d9f2..59ad4fb11c7d48d9ba84dceef09a67a42b486ed8 100644 --- a/layout/style/test/ListCSSProperties.cpp +++ b/layout/style/test/ListCSSProperties.cpp @@ -110,6 +110,7 @@ const char* gInaccessibleProperties[] = { diff --git a/src/modules/libpref/init/StaticPrefList-yaml.patch b/src/modules/libpref/init/StaticPrefList-yaml.patch index 7fd0507a6..5ab3dcbb6 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 34f519ad1107736f47719679be7f4fa20cd718c1..7f886071259d6ddd971ca5c92180de0cca9a0f5d 100644 +index 6c725ea8c727920cf85244ff5b13f24a41e93456..1a16c8cc6585786f87cbea54eb548099cf3a66b4 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml -@@ -19496,6 +19496,7 @@ +@@ -19534,6 +19534,7 @@ mirror: always #endif diff --git a/src/servo/components/style/gecko/media_features-rs.patch b/src/servo/components/style/gecko/media_features-rs.patch index 7c10d5265..513e9d502 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 ddbcd495260b5bcc4f55ebf7c06fcb6b5dc595c7..c629ac40f4fe3e03ffc765d3b65f3d348f4b05c6 100644 +index 26871fb68d4eae54c750b7fcc4db2cf73f9bb9c9..cca3546d0a25aa34be578427ced241856c6a63a7 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}; @@ -26,12 +26,12 @@ index ddbcd495260b5bcc4f55ebf7c06fcb6b5dc595c7..c629ac40f4fe3e03ffc765d3b65f3d34 fn eval_moz_mac_rtl(context: &Context) -> bool { unsafe { bindings::Gecko_MediaFeatures_MacRTL(context.device().document()) } -@@ -645,7 +655,13 @@ macro_rules! lnf_int_feature { +@@ -652,7 +662,13 @@ 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; 59] = [ -+pub static MEDIA_FEATURES: [QueryFeatureDescription; 60] = [ +-pub static MEDIA_FEATURES: [QueryFeatureDescription; 60] = [ ++pub static MEDIA_FEATURES: [QueryFeatureDescription; 61] = [ + feature!( + atom!("-moz-bool-pref"), + AllowsRanges::No, diff --git a/src/servo/components/style/queries/feature_expression-rs.patch b/src/servo/components/style/queries/feature_expression-rs.patch index 8265a0588..23eeb11f2 100644 --- a/src/servo/components/style/queries/feature_expression-rs.patch +++ b/src/servo/components/style/queries/feature_expression-rs.patch @@ -1,5 +1,5 @@ diff --git a/servo/components/style/queries/feature_expression.rs b/servo/components/style/queries/feature_expression.rs -index 91e1d1572cbd3682ec977f21751e067968ed8884..6e618ac765f698bf3d9ce120167a6906ae3ce5ff 100644 +index e0787193559ccd32b214272f1a0560cb058e3729..4388de8e2bcba9c3610dfc791fb751d916820e6f 100644 --- a/servo/components/style/queries/feature_expression.rs +++ b/servo/components/style/queries/feature_expression.rs @@ -11,7 +11,7 @@ use crate::parser::{Parse, ParserContext}; @@ -11,7 +11,7 @@ index 91e1d1572cbd3682ec977f21751e067968ed8884..6e618ac765f698bf3d9ce120167a6906 use crate::{Atom, Zero}; use cssparser::{Parser, Token}; use selectors::kleene_value::KleeneValue; -@@ -639,6 +639,10 @@ impl QueryFeatureExpression { +@@ -623,6 +623,10 @@ impl QueryFeatureExpression { .map(|v| *expect!(Enumerated, v)); return evaluator(context, computed); }, @@ -22,7 +22,7 @@ index 91e1d1572cbd3682ec977f21751e067968ed8884..6e618ac765f698bf3d9ce120167a6906 Evaluator::BoolInteger(eval) => { let computed = self .kind -@@ -677,6 +681,7 @@ pub enum QueryExpressionValue { +@@ -661,6 +665,7 @@ pub enum QueryExpressionValue { /// An enumerated value, defined by the variant keyword table in the /// feature's `mData` member. Enumerated(KeywordDiscriminant), @@ -30,7 +30,7 @@ index 91e1d1572cbd3682ec977f21751e067968ed8884..6e618ac765f698bf3d9ce120167a6906 } impl QueryExpressionValue { -@@ -695,6 +700,7 @@ impl QueryExpressionValue { +@@ -679,6 +684,7 @@ impl QueryExpressionValue { Evaluator::Enumerated { serializer, .. } => dest.write_str(&*serializer(value)), _ => unreachable!(), }, @@ -38,7 +38,7 @@ index 91e1d1572cbd3682ec977f21751e067968ed8884..6e618ac765f698bf3d9ce120167a6906 } } -@@ -732,6 +738,9 @@ impl QueryExpressionValue { +@@ -716,6 +722,9 @@ impl QueryExpressionValue { Evaluator::Resolution(..) => { QueryExpressionValue::Resolution(Resolution::parse(context, input)?) }, diff --git a/src/testing/mochitest/browser-test-js.patch b/src/testing/mochitest/browser-test-js.patch index 231a99e9b..80019526a 100644 --- a/src/testing/mochitest/browser-test-js.patch +++ b/src/testing/mochitest/browser-test-js.patch @@ -1,8 +1,8 @@ diff --git a/testing/mochitest/browser-test.js b/testing/mochitest/browser-test.js -index d5f320c5e97aae9bfd43d28e3d4a274d9bbc0787..24dc32a5bf6ae9abaa8f3fe8c37b031a76fb4d60 100644 +index 91bd995c2910fae5a3f67a960d15d90de3c997df..a7157331184e099ee468a719d6ec0f2d766dbed1 100644 --- a/testing/mochitest/browser-test.js +++ b/testing/mochitest/browser-test.js -@@ -438,10 +438,10 @@ Tester.prototype = { +@@ -442,10 +442,10 @@ Tester.prototype = { // But not the Thunderbird window, it doesn't have these things! if (AppConstants.MOZ_APP_NAME != "thunderbird") { // Remove stale tabs @@ -15,7 +15,7 @@ index d5f320c5e97aae9bfd43d28e3d4a274d9bbc0787..24dc32a5bf6ae9abaa8f3fe8c37b031a 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 = { +@@ -480,12 +480,6 @@ Tester.prototype = { // Replace the last tab with a fresh one if (window.gBrowser) { diff --git a/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch b/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch index 11a3e7f28..a71cb9a62 100644 --- a/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch +++ b/src/toolkit/actors/PictureInPictureChild-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs -index ea47bd1029de4571a045c1ee17c313dc9d62cad8..0f8afca693e0fc112839cfb998fd8baa20227f06 100644 +index 25ae1e984e3dbd610b60930492e1fa63ef889b9a..2680f2bdabf9884bc2c68b2db7b2fbedbb8af317 100644 --- a/toolkit/actors/PictureInPictureChild.sys.mjs +++ b/toolkit/actors/PictureInPictureChild.sys.mjs @@ -295,6 +295,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild { diff --git a/src/toolkit/components/pictureinpicture/PictureInPicture-sys-mjs.patch b/src/toolkit/components/pictureinpicture/PictureInPicture-sys-mjs.patch index 4b8069e8b..17604acc6 100644 --- a/src/toolkit/components/pictureinpicture/PictureInPicture-sys-mjs.patch +++ b/src/toolkit/components/pictureinpicture/PictureInPicture-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs -index 5644bad94bd4741c4c807eaf5633ee18aacd633f..f59eb65928f74c8080a0b26394e17a6ef6cc1977 100644 +index ad325b45b882e8444b1b4bfc9c78950cf090b411..14f7d840bb91dfef0887537ef95de733d5591265 100644 --- a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs +++ b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs @@ -122,6 +122,9 @@ export class PictureInPictureToggleParent extends JSWindowActorParent { diff --git a/src/toolkit/content/widgets/browser-custom-element-mjs.patch b/src/toolkit/content/widgets/browser-custom-element-mjs.patch index 52362b570..1bc326580 100644 --- a/src/toolkit/content/widgets/browser-custom-element-mjs.patch +++ b/src/toolkit/content/widgets/browser-custom-element-mjs.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/content/widgets/browser-custom-element.mjs b/toolkit/content/widgets/browser-custom-element.mjs -index b5eb24e15cc97b004f182c35901505cb740e8571..f2dd435ba072affff3b4fdada6c360a575c22910 100644 +index 98cbfdbe56bccc954aecca2b12950c74842fe201..303c86f29b532a7139f36f3cd86dfc72d2df8ab5 100644 --- a/toolkit/content/widgets/browser-custom-element.mjs +++ b/toolkit/content/widgets/browser-custom-element.mjs -@@ -483,11 +483,11 @@ class MozBrowser extends MozElements.MozElementMixin(XULFrameElement) { +@@ -495,11 +495,11 @@ export class MozBrowser extends MozElements.MozElementMixin(XULFrameElement) { if (!this.browsingContext) { return; } diff --git a/src/toolkit/content/widgets/infobar-css.patch b/src/toolkit/content/widgets/infobar-css.patch index e612fa27b..de241f2df 100644 --- a/src/toolkit/content/widgets/infobar-css.patch +++ b/src/toolkit/content/widgets/infobar-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/content/widgets/infobar.css b/toolkit/content/widgets/infobar.css -index a13978527bf921b412ec4729612ce8f831caccb9..8f0dfad852d7f5e4fbade48e2d114767bacdda36 100644 +index 4c224f90b747aa674743ac2182066f5da5e730e0..0ef2c8691459a5c3ace5b3530bfaf245b440678b 100644 --- a/toolkit/content/widgets/infobar.css +++ b/toolkit/content/widgets/infobar.css @@ -102,3 +102,18 @@ strong { diff --git a/src/toolkit/content/widgets/panel-js.patch b/src/toolkit/content/widgets/panel-js.patch index baa70cc0c..011e87349 100644 --- a/src/toolkit/content/widgets/panel-js.patch +++ b/src/toolkit/content/widgets/panel-js.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/content/widgets/panel.js b/toolkit/content/widgets/panel.js -index 1dd4fc2a839fc6fde1ce2fc6437625e8d22bbb90..04fcb049225148f1b1f9c4b16cf2d2537887fbec 100644 +index dc3e34847f1b6dfd58f5e036fd7d714ef51c1380..8d8e370ca8549d8208669d4fb344fc8abb54fadd 100644 --- a/toolkit/content/widgets/panel.js +++ b/toolkit/content/widgets/panel.js -@@ -138,6 +138,9 @@ +@@ -137,6 +137,9 @@ this.anchorNode.closest("toolbarbutton, .anchor-root") || this.anchorNode; anchorRoot.setAttribute("open", "true"); @@ -12,7 +12,7 @@ index 1dd4fc2a839fc6fde1ce2fc6437625e8d22bbb90..04fcb049225148f1b1f9c4b16cf2d253 } if (this.getAttribute("animate") != "false") { -@@ -208,6 +211,9 @@ +@@ -183,6 +186,9 @@ this.anchorNode.closest("toolbarbutton, .anchor-root") || this.anchorNode; anchorRoot.removeAttribute("open"); diff --git a/src/toolkit/content/widgets/tabbox-js.patch b/src/toolkit/content/widgets/tabbox-js.patch index 0d4d37b05..204071c79 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 cfe2da6e199667bd668f117cc8972212c7f57da2..470033466eae0e853855e21b86a0722627f9ed4b 100644 +index 4f5886c6142f8061f40a54aa3a5d99e47fd4d5ea..c57e169f5c73c4bc9b8253dd99ddb7f3c4547364 100644 --- a/toolkit/content/widgets/tabbox.js +++ b/toolkit/content/widgets/tabbox.js @@ -11,6 +11,23 @@ @@ -35,7 +35,7 @@ index cfe2da6e199667bd668f117cc8972212c7f57da2..470033466eae0e853855e21b86a07226 this._selectedPanel?.classList.add("deck-selected"); } this.setAttribute("selectedIndex", val); -@@ -697,7 +714,7 @@ +@@ -718,7 +735,7 @@ if (!tab) { return; } @@ -44,7 +44,7 @@ index cfe2da6e199667bd668f117cc8972212c7f57da2..470033466eae0e853855e21b86a07226 if (otherTab != tab && otherTab.selected) { otherTab._selected = false; } -@@ -733,6 +750,7 @@ +@@ -754,6 +771,7 @@ * @param {MozTab|null} [val] */ set selectedItem(val) { @@ -52,7 +52,7 @@ index cfe2da6e199667bd668f117cc8972212c7f57da2..470033466eae0e853855e21b86a07226 if (val && !val.selected) { // The selectedIndex setter ignores invalid values // such as -1 if |val| isn't one of our child nodes. -@@ -910,7 +928,7 @@ +@@ -931,7 +949,7 @@ if (tab == startTab) { return null; } @@ -61,7 +61,7 @@ index cfe2da6e199667bd668f117cc8972212c7f57da2..470033466eae0e853855e21b86a07226 return tab; } } -@@ -972,13 +990,30 @@ +@@ -993,13 +1011,30 @@ * @param {boolean} [aWrap] */ advanceSelectedTab(aDir, aWrap) { @@ -93,7 +93,7 @@ index cfe2da6e199667bd668f117cc8972212c7f57da2..470033466eae0e853855e21b86a07226 // Handle keyboard navigation for a hidden tab that can be selected, like the Firefox View tab, // which has a random placement in this.allTabs. if (startTab.hidden) { -@@ -991,7 +1026,7 @@ +@@ -1012,7 +1047,7 @@ newTab = this.findNextTab(startTab, { direction: aDir, wrap: aWrap, diff --git a/src/toolkit/modules/LightweightThemeConsumer-sys-mjs.patch b/src/toolkit/modules/LightweightThemeConsumer-sys-mjs.patch index 0429b305b..95321d291 100644 --- a/src/toolkit/modules/LightweightThemeConsumer-sys-mjs.patch +++ b/src/toolkit/modules/LightweightThemeConsumer-sys-mjs.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/modules/LightweightThemeConsumer.sys.mjs b/toolkit/modules/LightweightThemeConsumer.sys.mjs -index 1d16b3f191a53b6877122086de9bba1fbcaa71f4..64df5577aac095ddd3d9a381bf118496bf279276 100644 +index 57d5bf70c2584359f09b03932852a6e3fafb1008..39a798817f1a3e4a77a95fc04e9697c7b93ee044 100644 --- a/toolkit/modules/LightweightThemeConsumer.sys.mjs +++ b/toolkit/modules/LightweightThemeConsumer.sys.mjs -@@ -31,7 +31,7 @@ const toolkitVariableMap = [ +@@ -32,7 +32,7 @@ const toolkitVariableMap = [ lwtProperty: "accentcolor", processColor(rgbaChannels) { if (!rgbaChannels || rgbaChannels.a == 0) { @@ -12,11 +12,11 @@ index 1d16b3f191a53b6877122086de9bba1fbcaa71f4..64df5577aac095ddd3d9a381bf118496 // Remove the alpha channel const { r, g, b } = rgbaChannels; @@ -320,7 +320,7 @@ LightweightThemeConsumer.prototype = { - } - - let theme = useDarkTheme ? themeData.darkTheme : themeData.theme; -- if (!theme) { -+ if (!theme || Services.prefs.getBoolPref("zen.theme.disable-lightweight")) { + let forcedColorsThemeOverride = + this.FORCED_COLORS_OVERRIDE_ENABLED && + this.forcedColorsMediaQuery?.matches; +- if (!theme || forcedColorsThemeOverride) { ++ if (!theme || forcedColorsThemeOverride || Services.prefs.getBoolPref("zen.theme.disable-lightweight")) { theme = { id: DEFAULT_THEME_ID }; } - let hasTheme = theme.id != DEFAULT_THEME_ID; + let builtinThemeConfig = lazy.BuiltInThemeConfig.get(theme.id); diff --git a/src/toolkit/modules/moz-build.patch b/src/toolkit/modules/moz-build.patch index ee6a3f71a..256648972 100644 --- a/src/toolkit/modules/moz-build.patch +++ b/src/toolkit/modules/moz-build.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build -index a17e15c74c8e627cf805d1f026438759af7e4a97..fc6e1e6b2711e474d65a688b2481b7a26cad2a71 100644 +index abc630955c18de629d3ffff3e8f9aa29f57950be..97d6d5f25d0859684c405c659e0eef26007027c4 100644 --- a/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build -@@ -280,6 +280,7 @@ for var in ( +@@ -281,6 +281,7 @@ for var in ( "DLL_SUFFIX", "DEBUG_JS_MODULES", "OMNIJAR_NAME", diff --git a/src/toolkit/moz-configure.patch b/src/toolkit/moz-configure.patch index 2427976d1..6b6aade83 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 f3032042d34766b0e94c56872f91271f307ffc89..8c8540e8bf8d3df5b33e2f0da6b94a32e75684b5 100644 +index 52bca068f90cd8e214900e8f3159e1f7e37fb3e8..bfb5a38258141ed28def7c9a340a61253b0e3274 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project): @@ -46,7 +46,7 @@ index f3032042d34766b0e94c56872f91271f307ffc89..8c8540e8bf8d3df5b33e2f0da6b94a32 return True -@@ -2064,7 +2069,7 @@ set_define("A11Y_LOG", True, when=a11y_log) +@@ -2070,7 +2075,7 @@ set_define("A11Y_LOG", True, when=a11y_log) # ============================================================== @depends(milestone) def require_signing(milestone): diff --git a/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch b/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch index f0290fa86..6d7811e7c 100644 --- a/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch +++ b/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch @@ -1,5 +1,5 @@ diff --git a/toolkit/mozapps/extensions/content/aboutaddons.css b/toolkit/mozapps/extensions/content/aboutaddons.css -index 232fca6975de67bc0d84969204e75bad358b6bc7..4bbfb2abb9ea4812005734eb95a0bd7b8bbab7ce 100644 +index 60c64468fb23abc68296ebbe1a6fb7a260ab509c..25b93a2c6b587a50e9a900e822ef06e64959c7d0 100644 --- a/toolkit/mozapps/extensions/content/aboutaddons.css +++ b/toolkit/mozapps/extensions/content/aboutaddons.css @@ -105,6 +105,13 @@ h2 { diff --git a/src/toolkit/profile/nsToolkitProfileService-cpp.patch b/src/toolkit/profile/nsToolkitProfileService-cpp.patch index c796e9ba9..b11281d28 100644 --- a/src/toolkit/profile/nsToolkitProfileService-cpp.patch +++ b/src/toolkit/profile/nsToolkitProfileService-cpp.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp -index 1d8c95cc10d158e86254f45d8f955c8f8ce50394..3708da5d0780298589b89dbb4a03152749911dee 100644 +index c9f742dc4588a21db5011b3386999a5832defd33..4a4a6fc28822200c3e254d682d303b38d10d9c67 100644 --- a/toolkit/profile/nsToolkitProfileService.cpp +++ b/toolkit/profile/nsToolkitProfileService.cpp -@@ -84,6 +84,8 @@ using namespace mozilla; +@@ -83,6 +83,8 @@ using namespace mozilla; #define INSTALL_PREFIX_LENGTH 7 #define STORE_ID_PREF "toolkit.profiles.storeID" @@ -11,7 +11,7 @@ index 1d8c95cc10d158e86254f45d8f955c8f8ce50394..3708da5d0780298589b89dbb4a031527 struct KeyValue { KeyValue(const char* aKey, const char* aValue) : key(aKey), value(aValue) {} -@@ -1370,7 +1372,7 @@ nsresult nsToolkitProfileService::CreateDefaultProfile( +@@ -1369,7 +1371,7 @@ nsresult nsToolkitProfileService::CreateDefaultProfile( if (mUseDevEditionProfile) { name.AssignLiteral(DEV_EDITION_NAME); } else if (mUseDedicatedProfile) { diff --git a/src/toolkit/themes/shared/aboutReader-css.patch b/src/toolkit/themes/shared/aboutReader-css.patch index f037197ad..3c6aac2c4 100644 --- a/src/toolkit/themes/shared/aboutReader-css.patch +++ b/src/toolkit/themes/shared/aboutReader-css.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css -index e9dedcacb868fb0908c3432e1ccf3956b383aea7..6418c08550b9b4876df20ca5f93d093be0583f83 100644 +index f1166fb9b8251ee7d631c53c443e5986cbf4d29d..9233941bbdbf235c0ce6ce9b680002f2023d659c 100644 --- a/toolkit/themes/shared/aboutReader.css +++ b/toolkit/themes/shared/aboutReader.css -@@ -1181,3 +1181,43 @@ pre code { +@@ -1187,3 +1187,43 @@ pre code { display: block; overflow: auto; } 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 0f1788dfb..3a658eac0 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 2d068aa3472887e089254834d92f75b9f6d9894b..1a6d5b87fdcfb338222475bb6362820e3915955d 100644 +index 41f65a1f2c3065631780b02d820f632abdf542af..c01c2957367da968d106c83117e45800bb6b15e5 100644 --- a/toolkit/themes/shared/in-content/common-shared.css +++ b/toolkit/themes/shared/in-content/common-shared.css @@ -4,7 +4,7 @@ @@ -11,7 +11,7 @@ index 2d068aa3472887e089254834d92f75b9f6d9894b..1a6d5b87fdcfb338222475bb6362820e @namespace html "http://www.w3.org/1999/xhtml"; @namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; -@@ -68,7 +68,7 @@ +@@ -66,7 +66,7 @@ * this in forced colors mode, as we should be using system colours then. */ :root[dialogroot] { @@ -20,7 +20,7 @@ index 2d068aa3472887e089254834d92f75b9f6d9894b..1a6d5b87fdcfb338222475bb6362820e } } -@@ -706,7 +706,7 @@ html|*#categories[last-input-type="mouse"] > html|button.category:focus-visible +@@ -702,7 +702,7 @@ html|*#categories[last-input-type="mouse"] > html|button.category:focus-visible fill-opacity: 1; } @@ -29,7 +29,7 @@ index 2d068aa3472887e089254834d92f75b9f6d9894b..1a6d5b87fdcfb338222475bb6362820e :root { --in-content-sidebar-width: 118px; } -@@ -1096,7 +1096,7 @@ xul|*.sidebar-footer-link { +@@ -1092,7 +1092,7 @@ xul|*.sidebar-footer-link { user-select: none; } diff --git a/src/toolkit/themes/shared/menulist-css.patch b/src/toolkit/themes/shared/menulist-css.patch index d295c0745..091bd3be3 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 73149025f13e8805774c004820d57755d2bf89a9..f503e6bcd1c466757fc58e033aa0d68343685e28 100644 +index 56e61a11aa1180ed637104838a802d1dd2808e7b..3b44880e1aa194f0ff2f05760fd2f36d5e167738 100644 --- a/toolkit/themes/shared/menulist.css +++ b/toolkit/themes/shared/menulist.css @@ -53,7 +53,7 @@ diff --git a/src/toolkit/themes/shared/pictureinpicture/player-css.patch b/src/toolkit/themes/shared/pictureinpicture/player-css.patch index 1bdc8564d..e326f8855 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 12dba9ec5eee93476034b1e8b503a301fc18dbcb..b81c9e997d85e78cdf6ab460e14a5128117639bd 100644 +index 67d04f0f5a2ec003c4fa484df72c070afaa825c7..7cb0839d44c5c1988bc8a62d14ecd5e8cb581e2f 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/widget/gtk/nsAppShell-cpp.patch b/src/widget/gtk/nsAppShell-cpp.patch index 8b6af079a..fc6c0666a 100644 --- a/src/widget/gtk/nsAppShell-cpp.patch +++ b/src/widget/gtk/nsAppShell-cpp.patch @@ -1,8 +1,8 @@ diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp -index 99fd6dc873362de36dca4c93d5acc604cadb7caf..b5cf7ef750a489e32099884cc25af611ad622e8e 100644 +index 3e57fab78f630eba8401cc77d9cc7e024d482a76..248d1271ca257dbe415d477827f90c8d6902bb86 100644 --- a/widget/gtk/nsAppShell.cpp +++ b/widget/gtk/nsAppShell.cpp -@@ -420,7 +420,8 @@ nsresult nsAppShell::Init() { +@@ -504,7 +504,8 @@ nsresult nsAppShell::Init() { gchar* name = gdk_pixbuf_format_get_name(format); if (strcmp(name, "jpeg") && strcmp(name, "png") && strcmp(name, "gif") && strcmp(name, "bmp") && strcmp(name, "ico") && strcmp(name, "xpm") && diff --git a/src/xpfe/appshell/AppWindow-cpp.patch b/src/xpfe/appshell/AppWindow-cpp.patch index 61deb9ea7..6e5433301 100644 --- a/src/xpfe/appshell/AppWindow-cpp.patch +++ b/src/xpfe/appshell/AppWindow-cpp.patch @@ -1,13 +1,13 @@ diff --git a/xpfe/appshell/AppWindow.cpp b/xpfe/appshell/AppWindow.cpp -index 64f18c991b0b9a8bf3690a54624b447f347a210e..0b00a29956cd6a750d5feadd4b2a4ceb8338410b 100644 +index eba6c332249bfe936da285f73b7a1723cf480950..85db9031b6605da91987901d0c6ce31ddb56c3ad 100644 --- a/xpfe/appshell/AppWindow.cpp +++ b/xpfe/appshell/AppWindow.cpp -@@ -1874,7 +1874,7 @@ nsresult AppWindow::MaybeSaveEarlyWindowPersistentValues( +@@ -1873,7 +1873,7 @@ nsresult AppWindow::MaybeSaveEarlyWindowPersistentValues( } } - settings.verticalTabs = Preferences::GetBool("sidebar.verticalTabs", false); + settings.verticalTabs = Preferences::GetBool("zen.tabs.vertical", false); - Unused << PersistPreXULSkeletonUIValues(settings); + (void)PersistPreXULSkeletonUIValues(settings); #endif diff --git a/src/zen/@types/index.d.ts b/src/zen/@types/index.d.ts index b59acd110..2f6a529bc 100644 --- a/src/zen/@types/index.d.ts +++ b/src/zen/@types/index.d.ts @@ -19,8 +19,11 @@ /// /// Order of references matters here, for overriding type signatures. +/// /// +import type {} from './lib.gecko.augmentations.d.ts'; + declare global { const Cc: nsXPCComponents_Classes; const Ci: nsIXPCComponents_Interfaces; diff --git a/src/zen/@types/lib.gecko.darwin.d.ts b/src/zen/@types/lib.gecko.darwin.d.ts index 9fbe0954c..209fd23ae 100644 --- a/src/zen/@types/lib.gecko.darwin.d.ts +++ b/src/zen/@types/lib.gecko.darwin.d.ts @@ -18,6 +18,7 @@ declare global { readonly actionNames: string[]; getAttributeValue(attributeName: string): any; getParameterizedAttributeValue(attributeName: string, parameter: any): any; + getActionDescription(actionName: string): string; performAction(actionName: string): void; isAttributeSettable(attributeName: string): boolean; setAttributeValue(attributeName: string, attributeValue: any): void; @@ -173,13 +174,9 @@ declare global { // https://searchfox.org/mozilla-central/source/xpcom/io/nsILocalFileMac.idl interface nsILocalFileMac extends nsIFile { - readonly fileSizeWithResFork: i64; launchWithDoc(aDocToLoad: nsIFile, aLaunchInBackground: boolean): void; - openDocWithApp(aAppToOpenWith: nsIFile, aLaunchInBackground: boolean): void; isPackage(): boolean; readonly bundleDisplayName: string; - readonly bundleIdentifier: string; - readonly bundleContentsLastModifiedTime: i64; hasXAttr(aAttrName: string): boolean; getXAttr(aAttrName: string): u8[]; setXAttr(aAttrName: string, aAttrValue: u8[]): void; diff --git a/src/zen/@types/lib.gecko.dom.d.ts b/src/zen/@types/lib.gecko.dom.d.ts index e45189432..a10730211 100644 --- a/src/zen/@types/lib.gecko.dom.d.ts +++ b/src/zen/@types/lib.gecko.dom.d.ts @@ -349,7 +349,6 @@ interface BufferRange { interface CDMInformation { capabilities: string; clearlead: boolean; - isHDCP22Compatible: boolean; isHardwareDecryption: boolean; keySystemName: string; } @@ -1684,12 +1683,6 @@ interface InspectorVariationValue { value: number; } -interface InstallTriggerData { - Hash?: string | null; - IconURL?: string | null; - URL?: string; -} - interface InteractionData { interactionCount?: number; interactionTimeInMilliseconds?: number; @@ -1778,11 +1771,103 @@ interface LibcConstants { WNOHANG?: number; } +interface LlamaChatMessage { + content: string; + role: string; +} + +interface LlamaChatOptions { + deTokenizationOptions?: LlamaDeTokenizationOptions; + maxGeneratedTokens?: number; + minOutputBufferSize?: number; + prompt: string; + samplers?: LlamaSamplerConfig[]; + stopOnEndOfGenerationTokens?: boolean; + stopTokens?: number[]; + tokenizationOptions?: LlamaTokenizationOptions; +} + +interface LlamaContextOptions { + flashAttn?: boolean; + kCacheDtype?: LlamaKVCacheDtype; + nBatch?: number; + nCtx?: number; + nSeqMax?: number; + nThreads: number; + nThreadsBatch: number; + nUbatch?: number; + noPerf?: boolean; + offloadKqv?: boolean; + opOffload?: boolean; + swaFull?: boolean; + vCacheDtype?: LlamaKVCacheDtype; +} + +interface LlamaDeTokenizationOptions { + maxCharsPerToken?: number; + renderSpecialTokens?: boolean; +} + +interface LlamaFormatChatOptions { + addAssistant?: boolean; + messages: LlamaChatMessage[]; +} + +interface LlamaLogitBias { + bias: number; + token: number; +} + +interface LlamaModelOptions { + checkTensors?: boolean; + context?: LlamaContextOptions; + nGpuLayers?: number; + useMlock?: boolean; + useMmap?: boolean; +} + +interface LlamaSamplerConfig { + dryAllowedLength?: number; + dryBase?: number; + dryMultiplier?: number; + dryPenaltyLastN?: number; + dynatempExponent?: number; + dynatempRange?: number; + logitBias?: LlamaLogitBias[]; + minKeep?: number; + minP?: number; + mirostat?: number; + mirostatEta?: number; + mirostatTau?: number; + noPerf?: boolean; + penaltyFreq?: number; + penaltyLastN?: number; + penaltyPresent?: number; + penaltyRepeat?: number; + seed?: number; + temp?: number; + topK?: number; + topNSigma?: number; + topP?: number; + typP?: number; + type: LlamaSamplerType; + xtcProbability?: number; + xtcThreshold?: number; +} + +interface LlamaTokenizationOptions { + addBosAndEos?: boolean; + parseSpecilControlTokens?: boolean; +} + interface LoadURIOptions { + appLinkLaunchType?: number; baseURI?: URI | null; cancelContentJSEpoch?: number; + forceMediaDocument?: ForceMediaDocument; hasValidUserGestureActivation?: boolean; headers?: InputStream | null; + isCaptivePortalTab?: boolean; loadFlags?: number; policyContainer?: PolicyContainer | null; postData?: InputStream | null; @@ -2341,6 +2426,7 @@ interface NavigationCurrentEntryChangeEventInit extends EventInit { interface NavigationInterceptOptions { focusReset?: NavigationFocusReset; handler?: NavigationInterceptHandler; + precommitHandler?: NavigationPrecommitHandler; scroll?: NavigationScrollBehavior; } @@ -2927,6 +3013,7 @@ interface PublicKeyCredentialCreationOptions { challenge: BufferSource; excludeCredentials?: PublicKeyCredentialDescriptor[]; extensions?: AuthenticationExtensionsClientInputs; + hints?: string[]; pubKeyCredParams: PublicKeyCredentialParameters[]; rp: PublicKeyCredentialRpEntity; timeout?: number; @@ -2972,6 +3059,7 @@ interface PublicKeyCredentialRequestOptions { allowCredentials?: PublicKeyCredentialDescriptor[]; challenge: BufferSource; extensions?: AuthenticationExtensionsClientInputs; + hints?: string[]; rpId?: string; timeout?: number; userVerification?: string; @@ -2979,8 +3067,6 @@ interface PublicKeyCredentialRequestOptions { interface PublicKeyCredentialRequestOptionsJSON { allowCredentials?: PublicKeyCredentialDescriptorJSON[]; - attestation?: string; - attestationFormats?: string[]; challenge: Base64URLString; extensions?: AuthenticationExtensionsClientInputsJSON; hints?: string[]; @@ -3116,6 +3202,10 @@ interface RTCEncodedAudioFrameMetadata { synchronizationSource?: number; } +interface RTCEncodedAudioFrameOptions { + metadata?: RTCEncodedAudioFrameMetadata; +} + interface RTCEncodedVideoFrameMetadata { contributingSources?: number[]; dependencies?: number[]; @@ -3129,6 +3219,10 @@ interface RTCEncodedVideoFrameMetadata { width?: number; } +interface RTCEncodedVideoFrameOptions { + metadata?: RTCEncodedVideoFrameMetadata; +} + interface RTCIceCandidateInit { candidate?: string; sdpMLineIndex?: number | null; @@ -3550,8 +3644,14 @@ interface ReceiveMessageArgument { targetFrameLoader?: FrameLoader; } +interface RedirectBlockedEventInit extends EventInit { + redirectURI?: URI | null; + requestingWindow?: Window | null; +} + interface RegistrationOptions { scope?: string; + type?: WorkerType; updateViaCache?: ServiceWorkerUpdateViaCache; } @@ -3704,6 +3804,7 @@ interface ShadowRootInit { clonable?: boolean; delegatesFocus?: boolean; mode: ShadowRootMode; + referenceTarget?: string; serializable?: boolean; slotAssignment?: SlotAssignmentMode; } @@ -3834,6 +3935,7 @@ interface SynthesizeMouseEventData { interface SynthesizeMouseEventOptions { ignoreRootScrollFrame?: boolean; + isAsyncEnabled?: boolean; isDOMEventSynthesized?: boolean; isWidgetEventSynthesized?: boolean; toWindow?: boolean; @@ -3919,6 +4021,7 @@ interface ThreadInfoDictionary { interface ToggleEventInit extends EventInit { newState?: string; oldState?: string; + source?: Element | null; } interface TogglePopoverOptions extends ShowPopoverOptions { @@ -4217,6 +4320,7 @@ interface WebAccessibleResourceInit { } interface WebExtensionContentScriptInit extends MozDocumentMatcherInit { + cssOrigin?: ContentScriptCssOrigin; cssPaths?: string[]; jsPaths?: string[]; runAt?: ContentScriptRunAt; @@ -5721,6 +5825,7 @@ interface BrowsingContext extends LoadContextMixin { suspendMediaWhenInactive: boolean; readonly targetTopLevelLinkClicksToBlank: boolean; textZoom: number; + timezoneOverride: string; readonly top: BrowsingContext; readonly topWindowContext: WindowContext | null; readonly touchEventsOverride: TouchEventsOverride; @@ -5729,9 +5834,10 @@ interface BrowsingContext extends LoadContextMixin { readonly window: WindowProxy | null; getAllBrowsingContextsInSubtree(): BrowsingContext[]; resetNavigationRateLimit(): void; + resetOrientationOverride(): void; setGeolocationServiceOverride(position?: nsIDOMGeoPosition): void; + setOrientationOverride(type: OrientationType, rotationAngle: number): void; setRDMPaneMaxTouchPoints(maxTouchPoints: number): void; - setRDMPaneOrientation(type: OrientationType, rotationAngle: number): void; } declare var BrowsingContext: { @@ -5889,6 +5995,17 @@ declare var CSSCounterStyleRule: { isInstance: IsInstance; }; +interface CSSCustomMediaRule extends CSSRule { + readonly name: string; + readonly query: CustomMediaQuery; +} + +declare var CSSCustomMediaRule: { + prototype: CSSCustomMediaRule; + new (): CSSCustomMediaRule; + isInstance: IsInstance; +}; + interface CSSCustomPropertyRegisteredEvent extends Event { readonly propertyDefinition: InspectorCSSPropertyDefinition; } @@ -5998,7 +6115,7 @@ declare var CSSImportRule: { interface CSSKeyframeRule extends CSSRule { keyText: string; - readonly style: CSSStyleDeclaration; + readonly style: CSSStyleProperties; } declare var CSSKeyframeRule: { @@ -6212,7 +6329,7 @@ declare var CSSNamespaceRule: { }; interface CSSNestedDeclarations extends CSSRule { - readonly style: CSSStyleDeclaration; + readonly style: CSSStyleProperties; } declare var CSSNestedDeclarations: { @@ -6282,7 +6399,15 @@ declare var CSSOKLab: { isInstance: IsInstance; }; -interface CSSPageDescriptors {} +interface CSSPageDescriptors extends CSSStyleDeclaration { + margin: string; + marginBottom: string; + marginLeft: string; + marginRight: string; + marginTop: string; + pageOrientation: string; + size: string; +} interface CSSPageRule extends CSSGroupingRule { selectorText: string; @@ -6305,7 +6430,47 @@ declare var CSSPerspective: { isInstance: IsInstance; }; -interface CSSPositionTryDescriptors {} +interface CSSPositionTryDescriptors extends CSSStyleDeclaration { + alignSelf: string; + blockSize: string; + bottom: string; + height: string; + inlineSize: string; + inset: string; + insetBlock: string; + insetBlockEnd: string; + insetBlockStart: string; + insetInline: string; + insetInlineEnd: string; + insetInlineStart: string; + justifySelf: string; + left: string; + margin: string; + marginBlock: string; + marginBlockEnd: string; + marginBlockStart: string; + marginBottom: string; + marginInline: string; + marginInlineEnd: string; + marginInlineStart: string; + marginLeft: string; + marginRight: string; + marginTop: string; + maxBlockSize: string; + maxHeight: string; + maxInlineSize: string; + maxWidth: string; + minBlockSize: string; + minHeight: string; + minInlineSize: string; + minWidth: string; + placeSelf: string; + positionAnchor: string; + positionArea: string; + right: string; + top: string; + width: string; +} interface CSSPositionTryRule extends CSSRule { readonly name: string; @@ -6502,10 +6667,526 @@ declare var CSSStyleDeclaration: { isInstance: IsInstance; }; +interface CSSStyleProperties extends CSSStyleDeclaration { + MozAnimation: string; + MozAnimationDelay: string; + MozAnimationDirection: string; + MozAnimationDuration: string; + MozAnimationFillMode: string; + MozAnimationIterationCount: string; + MozAnimationName: string; + MozAnimationPlayState: string; + MozAnimationTimingFunction: string; + MozAppearance: string; + MozBackfaceVisibility: string; + MozBorderImage: string; + MozBoxAlign: string; + MozBoxCollapse: string; + MozBoxDirection: string; + MozBoxFlex: string; + MozBoxOrdinalGroup: string; + MozBoxOrient: string; + MozBoxPack: string; + MozBoxSizing: string; + MozContextProperties: string; + MozControlCharacterVisibility: string; + MozDefaultAppearance: string; + MozFloatEdge: string; + MozFontFeatureSettings: string; + MozFontLanguageOverride: string; + MozForceBrokenImageIcon: string; + MozOrient: string; + MozOsxFontSmoothing: string; + MozPerspective: string; + MozPerspectiveOrigin: string; + MozSubtreeHiddenOnlyVisually: string; + MozTextSizeAdjust: string; + MozTheme: string; + MozTransform: string; + MozTransformOrigin: string; + MozTransformStyle: string; + MozTransition: string; + MozTransitionDelay: string; + MozTransitionDuration: string; + MozTransitionProperty: string; + MozTransitionTimingFunction: string; + MozUserFocus: string; + MozWindowDragging: string; + MozWindowInputRegionMargin: string; + MozWindowOpacity: string; + MozWindowShadow: string; + MozWindowTransform: string; + accentColor: string; + alignContent: string; + alignItems: string; + alignSelf: string; + all: string; + anchorName: string; + anchorScope: string; + animation: string; + animationComposition: string; + animationDelay: string; + animationDirection: string; + animationDuration: string; + animationFillMode: string; + animationIterationCount: string; + animationName: string; + animationPlayState: string; + animationTimeline: string; + animationTimingFunction: string; + appearance: string; + aspectRatio: string; + backdropFilter: string; + backfaceVisibility: string; + background: string; + backgroundAttachment: string; + backgroundBlendMode: string; + backgroundClip: string; + backgroundColor: string; + backgroundImage: string; + backgroundOrigin: string; + backgroundPosition: string; + backgroundPositionX: string; + backgroundPositionY: string; + backgroundRepeat: string; + backgroundSize: string; + baselineSource: string; + blockSize: string; + border: string; + borderBlock: string; + borderBlockColor: string; + borderBlockEnd: string; + borderBlockEndColor: string; + borderBlockEndStyle: string; + borderBlockEndWidth: string; + borderBlockStart: string; + borderBlockStartColor: string; + borderBlockStartStyle: string; + borderBlockStartWidth: string; + borderBlockStyle: string; + borderBlockWidth: string; + borderBottom: string; + borderBottomColor: string; + borderBottomLeftRadius: string; + borderBottomRightRadius: string; + borderBottomStyle: string; + borderBottomWidth: string; + borderCollapse: string; + borderColor: string; + borderEndEndRadius: string; + borderEndStartRadius: string; + borderImage: string; + borderImageOutset: string; + borderImageRepeat: string; + borderImageSlice: string; + borderImageSource: string; + borderImageWidth: string; + borderInline: string; + borderInlineColor: string; + borderInlineEnd: string; + borderInlineEndColor: string; + borderInlineEndStyle: string; + borderInlineEndWidth: string; + borderInlineStart: string; + borderInlineStartColor: string; + borderInlineStartStyle: string; + borderInlineStartWidth: string; + borderInlineStyle: string; + borderInlineWidth: string; + borderLeft: string; + borderLeftColor: string; + borderLeftStyle: string; + borderLeftWidth: string; + borderRadius: string; + borderRight: string; + borderRightColor: string; + borderRightStyle: string; + borderRightWidth: string; + borderSpacing: string; + borderStartEndRadius: string; + borderStartStartRadius: string; + borderStyle: string; + borderTop: string; + borderTopColor: string; + borderTopLeftRadius: string; + borderTopRightRadius: string; + borderTopStyle: string; + borderTopWidth: string; + borderWidth: string; + bottom: string; + boxDecorationBreak: string; + boxShadow: string; + boxSizing: string; + breakAfter: string; + breakBefore: string; + breakInside: string; + captionSide: string; + caretColor: string; + clear: string; + clip: string; + clipPath: string; + clipRule: string; + color: string; + colorInterpolation: string; + colorInterpolationFilters: string; + colorScheme: string; + columnCount: string; + columnFill: string; + columnGap: string; + columnRule: string; + columnRuleColor: string; + columnRuleStyle: string; + columnRuleWidth: string; + columnSpan: string; + columnWidth: string; + columns: string; + contain: string; + containIntrinsicBlockSize: string; + containIntrinsicHeight: string; + containIntrinsicInlineSize: string; + containIntrinsicSize: string; + containIntrinsicWidth: string; + container: string; + containerName: string; + containerType: string; + content: string; + contentVisibility: string; + counterIncrement: string; + counterReset: string; + counterSet: string; + cssFloat: string; + cursor: string; + cx: string; + cy: string; + d: string; + direction: string; + display: string; + dominantBaseline: string; + emptyCells: string; + fieldSizing: string; + fill: string; + fillOpacity: string; + fillRule: string; + filter: string; + flex: string; + flexBasis: string; + flexDirection: string; + flexFlow: string; + flexGrow: string; + flexShrink: string; + flexWrap: string; + floodColor: string; + floodOpacity: string; + font: string; + fontFamily: string; + fontFeatureSettings: string; + fontKerning: string; + fontLanguageOverride: string; + fontOpticalSizing: string; + fontPalette: string; + fontSize: string; + fontSizeAdjust: string; + fontStretch: string; + fontStyle: string; + fontSynthesis: string; + fontSynthesisPosition: string; + fontSynthesisSmallCaps: string; + fontSynthesisStyle: string; + fontSynthesisWeight: string; + fontVariant: string; + fontVariantAlternates: string; + fontVariantCaps: string; + fontVariantEastAsian: string; + fontVariantEmoji: string; + fontVariantLigatures: string; + fontVariantNumeric: string; + fontVariantPosition: string; + fontVariationSettings: string; + fontWeight: string; + forcedColorAdjust: string; + gap: string; + grid: string; + gridArea: string; + gridAutoColumns: string; + gridAutoFlow: string; + gridAutoRows: string; + gridColumn: string; + gridColumnEnd: string; + gridColumnStart: string; + gridRow: string; + gridRowEnd: string; + gridRowStart: string; + gridTemplate: string; + gridTemplateAreas: string; + gridTemplateColumns: string; + gridTemplateRows: string; + height: string; + hyphenateCharacter: string; + hyphenateLimitChars: string; + hyphens: string; + imageOrientation: string; + imageRendering: string; + imeMode: string; + initialLetter: string; + inlineSize: string; + inset: string; + insetBlock: string; + insetBlockEnd: string; + insetBlockStart: string; + insetInline: string; + insetInlineEnd: string; + insetInlineStart: string; + isolation: string; + justifyContent: string; + justifyItems: string; + justifySelf: string; + left: string; + letterSpacing: string; + lightingColor: string; + lineBreak: string; + lineHeight: string; + listStyle: string; + listStyleImage: string; + listStylePosition: string; + listStyleType: string; + margin: string; + marginBlock: string; + marginBlockEnd: string; + marginBlockStart: string; + marginBottom: string; + marginInline: string; + marginInlineEnd: string; + marginInlineStart: string; + marginLeft: string; + marginRight: string; + marginTop: string; + marker: string; + markerEnd: string; + markerMid: string; + markerStart: string; + mask: string; + maskClip: string; + maskComposite: string; + maskImage: string; + maskMode: string; + maskOrigin: string; + maskPosition: string; + maskPositionX: string; + maskPositionY: string; + maskRepeat: string; + maskSize: string; + maskType: string; + masonryAutoFlow: string; + mathDepth: string; + mathShift: string; + mathStyle: string; + maxBlockSize: string; + maxHeight: string; + maxInlineSize: string; + maxWidth: string; + minBlockSize: string; + minHeight: string; + minInlineSize: string; + minWidth: string; + mixBlendMode: string; + objectFit: string; + objectPosition: string; + offset: string; + offsetAnchor: string; + offsetDistance: string; + offsetPath: string; + offsetPosition: string; + offsetRotate: string; + opacity: string; + order: string; + outline: string; + outlineColor: string; + outlineOffset: string; + outlineStyle: string; + outlineWidth: string; + overflow: string; + overflowAnchor: string; + overflowBlock: string; + overflowClipMargin: string; + overflowInline: string; + overflowWrap: string; + overflowX: string; + overflowY: string; + overscrollBehavior: string; + overscrollBehaviorBlock: string; + overscrollBehaviorInline: string; + overscrollBehaviorX: string; + overscrollBehaviorY: string; + padding: string; + paddingBlock: string; + paddingBlockEnd: string; + paddingBlockStart: string; + paddingBottom: string; + paddingInline: string; + paddingInlineEnd: string; + paddingInlineStart: string; + paddingLeft: string; + paddingRight: string; + paddingTop: string; + page: string; + pageBreakAfter: string; + pageBreakBefore: string; + pageBreakInside: string; + paintOrder: string; + perspective: string; + perspectiveOrigin: string; + placeContent: string; + placeItems: string; + placeSelf: string; + pointerEvents: string; + position: string; + positionAnchor: string; + positionArea: string; + positionTry: string; + positionTryFallbacks: string; + positionTryOrder: string; + positionVisibility: string; + printColorAdjust: string; + quotes: string; + r: string; + resize: string; + right: string; + rotate: string; + rowGap: string; + rubyAlign: string; + rubyPosition: string; + rx: string; + ry: string; + scale: string; + scrollBehavior: string; + scrollMargin: string; + scrollMarginBlock: string; + scrollMarginBlockEnd: string; + scrollMarginBlockStart: string; + scrollMarginBottom: string; + scrollMarginInline: string; + scrollMarginInlineEnd: string; + scrollMarginInlineStart: string; + scrollMarginLeft: string; + scrollMarginRight: string; + scrollMarginTop: string; + scrollPadding: string; + scrollPaddingBlock: string; + scrollPaddingBlockEnd: string; + scrollPaddingBlockStart: string; + scrollPaddingBottom: string; + scrollPaddingInline: string; + scrollPaddingInlineEnd: string; + scrollPaddingInlineStart: string; + scrollPaddingLeft: string; + scrollPaddingRight: string; + scrollPaddingTop: string; + scrollSnapAlign: string; + scrollSnapStop: string; + scrollSnapType: string; + scrollTimeline: string; + scrollTimelineAxis: string; + scrollTimelineName: string; + scrollbarColor: string; + scrollbarGutter: string; + scrollbarWidth: string; + shapeImageThreshold: string; + shapeMargin: string; + shapeOutside: string; + shapeRendering: string; + stopColor: string; + stopOpacity: string; + stroke: string; + strokeDasharray: string; + strokeDashoffset: string; + strokeLinecap: string; + strokeLinejoin: string; + strokeMiterlimit: string; + strokeOpacity: string; + strokeWidth: string; + tabSize: string; + tableLayout: string; + textAlign: string; + textAlignLast: string; + textAnchor: string; + textAutospace: string; + textCombineUpright: string; + textDecoration: string; + textDecorationColor: string; + textDecorationInset: string; + textDecorationLine: string; + textDecorationSkipInk: string; + textDecorationStyle: string; + textDecorationThickness: string; + textEmphasis: string; + textEmphasisColor: string; + textEmphasisPosition: string; + textEmphasisStyle: string; + textIndent: string; + textJustify: string; + textOrientation: string; + textOverflow: string; + textRendering: string; + textShadow: string; + textTransform: string; + textUnderlineOffset: string; + textUnderlinePosition: string; + textWrap: string; + textWrapMode: string; + textWrapStyle: string; + top: string; + touchAction: string; + transform: string; + transformBox: string; + transformOrigin: string; + transformStyle: string; + transition: string; + transitionBehavior: string; + transitionDelay: string; + transitionDuration: string; + transitionProperty: string; + transitionTimingFunction: string; + translate: string; + unicodeBidi: string; + userSelect: string; + vectorEffect: string; + verticalAlign: string; + viewTimeline: string; + viewTimelineAxis: string; + viewTimelineInset: string; + viewTimelineName: string; + viewTransitionClass: string; + viewTransitionName: string; + visibility: string; + webkitLineClamp: string; + webkitTextFillColor: string; + webkitTextSecurity: string; + webkitTextStroke: string; + webkitTextStrokeColor: string; + webkitTextStrokeWidth: string; + whiteSpace: string; + whiteSpaceCollapse: string; + width: string; + willChange: string; + wordBreak: string; + wordSpacing: string; + writingMode: string; + x: string; + y: string; + zIndex: string; + zoom: string; +} + +declare var CSSStyleProperties: { + prototype: CSSStyleProperties; + new (): CSSStyleProperties; + isInstance: IsInstance; +}; + interface CSSStyleRule extends CSSGroupingRule { readonly selectorCount: number; selectorText: string; - readonly style: CSSStyleDeclaration; + readonly style: CSSStyleProperties; readonly styleMap: StylePropertyMap; getScopeRootFor( selectorIndex: number, @@ -8344,8 +9025,6 @@ interface DocumentEventMap extends GlobalEventHandlersEventMap, OnErrorEventHandlerForNodesEventMap, TouchEventHandlersEventMap { - afterscriptexecute: Event; - beforescriptexecute: Event; fullscreenchange: Event; fullscreenerror: Event; pointerlockchange: Event; @@ -8400,6 +9079,7 @@ interface Document readonly embeds: HTMLCollection; readonly featurePolicy: FeaturePolicy; fgColor: string; + forceNonNativeTheme: boolean; readonly forms: HTMLCollection; readonly fragmentDirective: FragmentDirective; readonly fullscreen: boolean; @@ -8427,8 +9107,6 @@ interface Document readonly mozFullScreen: boolean; readonly mozFullScreenEnabled: boolean; readonly mozSyntheticDocument: boolean; - onafterscriptexecute: ((this: Document, ev: Event) => any) | null; - onbeforescriptexecute: ((this: Document, ev: Event) => any) | null; onfullscreenchange: ((this: Document, ev: Event) => any) | null; onfullscreenerror: ((this: Document, ev: Event) => any) | null; onpointerlockchange: ((this: Document, ev: Event) => any) | null; @@ -8540,8 +9218,6 @@ interface Document createEvent(eventInterface: 'MouseEvents'): MouseEvent; createEvent(eventInterface: 'MouseScrollEvent'): MouseScrollEvent; createEvent(eventInterface: 'MozSharedMapChangeEvent'): MozSharedMapChangeEvent; - createEvent(eventInterface: 'MutationEvent'): MutationEvent; - createEvent(eventInterface: 'MutationEvents'): MutationEvent; createEvent(eventInterface: 'NavigateEvent'): NavigateEvent; createEvent( eventInterface: 'NavigationCurrentEntryChangeEvent' @@ -8564,6 +9240,7 @@ interface Document createEvent(eventInterface: 'RTCDataChannelEvent'): RTCDataChannelEvent; createEvent(eventInterface: 'RTCPeerConnectionIceEvent'): RTCPeerConnectionIceEvent; createEvent(eventInterface: 'RTCTrackEvent'): RTCTrackEvent; + createEvent(eventInterface: 'RedirectBlockedEvent'): RedirectBlockedEvent; createEvent(eventInterface: 'ScrollAreaEvent'): ScrollAreaEvent; createEvent(eventInterface: 'SecurityPolicyViolationEvent'): SecurityPolicyViolationEvent; createEvent(eventInterface: 'SimpleGestureEvent'): SimpleGestureEvent; @@ -9058,7 +9735,7 @@ declare var Element: { interface ElementCSSInlineStyle { readonly attributeStyleMap: StylePropertyMap; - readonly style: CSSStyleDeclaration; + readonly style: CSSStyleProperties; } interface ElementInternals extends ARIAMixin { @@ -14005,6 +14682,7 @@ interface HTMLTemplateElement extends HTMLElement { shadowRootClonable: boolean; shadowRootDelegatesFocus: boolean; shadowRootMode: string; + shadowRootReferenceTarget: string; shadowRootSerializable: boolean; addEventListener( type: K, @@ -15051,31 +15729,6 @@ declare var InspectorFontFace: { isInstance: IsInstance; }; -interface InstallTriggerImpl { - enabled(): boolean; - install( - installs: Record, - callback?: InstallTriggerCallback - ): boolean; - installChrome(type: number, url: string, skin: string): boolean; - startSoftwareUpdate(url: string, flags?: number): boolean; - updateEnabled(): boolean; - readonly SKIN: 1; - readonly LOCALE: 2; - readonly CONTENT: 4; - readonly PACKAGE: 7; -} - -declare var InstallTriggerImpl: { - prototype: InstallTriggerImpl; - new (): InstallTriggerImpl; - readonly SKIN: 1; - readonly LOCALE: 2; - readonly CONTENT: 4; - readonly PACKAGE: 7; - isInstance: IsInstance; -}; - interface IntersectionObserver { readonly root: Node | null; readonly rootMargin: string; @@ -15892,6 +16545,18 @@ interface LinkStyle { readonly sheet: StyleSheet | null; } +interface LlamaRunner { + createGenerationStream(options: LlamaChatOptions): ReadableStream; + formatChat(options: LlamaFormatChatOptions): Promise; + initialize(options: LlamaModelOptions, modelBlob: Blob): Promise; +} + +declare var LlamaRunner: { + prototype: LlamaRunner; + new (): LlamaRunner; + isInstance: IsInstance; +}; + interface LoadContextMixin { readonly associatedWindow: WindowProxy | null; readonly isContent: boolean; @@ -17411,36 +18076,6 @@ declare var MozWritableSharedMap: { isInstance: IsInstance; }; -interface MutationEvent extends Event { - readonly attrChange: number; - readonly attrName: string; - readonly newValue: string; - readonly prevValue: string; - readonly relatedNode: Node | null; - initMutationEvent( - type: string, - canBubble?: boolean, - cancelable?: boolean, - relatedNode?: Node | null, - prevValue?: string, - newValue?: string, - attrName?: string, - attrChange?: number - ): void; - readonly MODIFICATION: 1; - readonly ADDITION: 2; - readonly REMOVAL: 3; -} - -declare var MutationEvent: { - prototype: MutationEvent; - new (): MutationEvent; - readonly MODIFICATION: 1; - readonly ADDITION: 2; - readonly REMOVAL: 3; - isInstance: IsInstance; -}; - interface MutationObserver { mergeAttributeRecords: boolean; readonly mutationCallback: MutationCallback; @@ -17650,6 +18285,16 @@ declare var NavigationHistoryEntry: { isInstance: IsInstance; }; +interface NavigationPrecommitController { + redirect(url: string | URL, options?: NavigationNavigateOptions): void; +} + +declare var NavigationPrecommitController: { + prototype: NavigationPrecommitController; + new (): NavigationPrecommitController; + isInstance: IsInstance; +}; + /** Available only in secure contexts. */ interface NavigationPreloadManager { disable(): Promise; @@ -17665,6 +18310,7 @@ declare var NavigationPreloadManager: { }; interface NavigationTransition { + readonly committed: Promise; readonly finished: Promise; readonly from: NavigationHistoryEntry; readonly navigationType: NavigationType; @@ -19607,6 +20253,7 @@ declare var RTCDTMFToneChangeEvent: { interface RTCDataChannelEventMap { bufferedamountlow: Event; close: Event; + closing: Event; error: Event; message: Event; open: Event; @@ -19623,6 +20270,7 @@ interface RTCDataChannel extends EventTarget { readonly negotiated: boolean; onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null; onclose: ((this: RTCDataChannel, ev: Event) => any) | null; + onclosing: ((this: RTCDataChannel, ev: Event) => any) | null; onerror: ((this: RTCDataChannel, ev: Event) => any) | null; onmessage: ((this: RTCDataChannel, ev: Event) => any) | null; onopen: ((this: RTCDataChannel, ev: Event) => any) | null; @@ -19716,7 +20364,10 @@ interface RTCEncodedAudioFrame { declare var RTCEncodedAudioFrame: { prototype: RTCEncodedAudioFrame; - new (): RTCEncodedAudioFrame; + new ( + originalFrame: RTCEncodedAudioFrame, + options?: RTCEncodedAudioFrameOptions + ): RTCEncodedAudioFrame; isInstance: IsInstance; }; @@ -19729,7 +20380,10 @@ interface RTCEncodedVideoFrame { declare var RTCEncodedVideoFrame: { prototype: RTCEncodedVideoFrame; - new (): RTCEncodedVideoFrame; + new ( + originalFrame: RTCEncodedVideoFrame, + options?: RTCEncodedVideoFrameOptions + ): RTCEncodedVideoFrame; isInstance: IsInstance; }; @@ -20238,6 +20892,17 @@ interface ReadableStreamGenericReader { cancel(reason?: any): Promise; } +interface RedirectBlockedEvent extends Event { + readonly redirectURI: URI | null; + readonly requestingWindow: Window | null; +} + +declare var RedirectBlockedEvent: { + prototype: RedirectBlockedEvent; + new (type: string, eventInitDict?: RedirectBlockedEventInit): RedirectBlockedEvent; + isInstance: IsInstance; +}; + interface Report { readonly body: ReportBody | null; readonly type: string; @@ -22360,7 +23025,7 @@ interface SVGMatrix { flipX(): SVGMatrix; flipY(): SVGMatrix; inverse(): SVGMatrix; - multiply(secondMatrix: SVGMatrix): SVGMatrix; + multiply(secondMatrix?: DOMMatrix2DInit): SVGMatrix; rotate(angle: number): SVGMatrix; rotateFromVector(x: number, y: number): SVGMatrix; scale(scaleFactor: number): SVGMatrix; @@ -23342,15 +24007,15 @@ interface SVGZoomAndPan { } interface Sanitizer { - allowAttribute(attribute: SanitizerAttribute): void; - allowElement(element: SanitizerElementWithAttributes): void; + allowAttribute(attribute: SanitizerAttribute): boolean; + allowElement(element: SanitizerElementWithAttributes): boolean; get(): SanitizerConfig; - removeAttribute(attribute: SanitizerAttribute): void; - removeElement(element: SanitizerElement): void; - removeUnsafe(): void; - replaceElementWithChildren(element: SanitizerElement): void; - setComments(allow: boolean): void; - setDataAttributes(allow: boolean): void; + removeAttribute(attribute: SanitizerAttribute): boolean; + removeElement(element: SanitizerElement): boolean; + removeUnsafe(): boolean; + replaceElementWithChildren(element: SanitizerElement): boolean; + setComments(allow: boolean): boolean; + setDataAttributes(allow: boolean): boolean; } declare var Sanitizer: { @@ -23789,6 +24454,7 @@ interface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot { innerHTML: TrustedHTML | string; readonly mode: ShadowRootMode; onslotchange: ((this: ShadowRoot, ev: Event) => any) | null; + referenceTarget: string; readonly serializable: boolean; readonly slotAssignment: SlotAssignmentMode; createElementAndAppendChildAt(parentNode: Node, localName: string): Node; @@ -25452,6 +26118,7 @@ declare var TimeRanges: { interface ToggleEvent extends Event { readonly newState: string; readonly oldState: string; + readonly source: Element | null; } declare var ToggleEvent: { @@ -26781,6 +27448,7 @@ interface WebBrowserPersistable { } interface WebExtensionContentScript extends MozDocumentMatcher { + readonly cssOrigin: ContentScriptCssOrigin; readonly cssPaths: string[]; readonly jsPaths: string[]; readonly runAt: ContentScriptRunAt; @@ -30027,7 +30695,7 @@ interface Window WindowSessionStorage { readonly Glean: GleanImpl; readonly GleanPings: GleanPingsImpl; - readonly InstallTrigger: InstallTriggerImpl | null; + readonly InstallTrigger: any; browserDOMWindow: nsIBrowserDOMWindow | null; readonly browsingContext: BrowsingContext; readonly clientInformation: Navigator; @@ -30051,6 +30719,7 @@ interface Window readonly innerWidth: number; readonly intlUtils: IntlUtils; readonly isChromeWindow: boolean; + readonly isCloaked: boolean; readonly isFullyOccluded: boolean; readonly isInFullScreenTransition: boolean; readonly length: number; @@ -30131,7 +30800,7 @@ interface Window focus(): void; getAttention(): void; getAttentionWithCycleCount(aCycleCount: number): void; - getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration | null; + getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleProperties | null; getDefaultComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration | null; getGroupMessageManager(aGroup: string): ChromeMessageBroadcaster; getInterface(iid: any): any; @@ -30188,7 +30857,8 @@ interface Window offsetX: number, offsetY: number, mouseEventData?: SynthesizeMouseEventData, - options?: SynthesizeMouseEventOptions + options?: SynthesizeMouseEventOptions, + callback?: VoidFunction ): boolean; updateCommands(action: string): void; readonly STATE_MAXIMIZED: 1; @@ -30405,6 +31075,7 @@ interface WindowOrWorkerGlobalScope { aOptions?: ImageBitmapOptions ): Promise; fetch(input: RequestInfo | URL, init?: RequestInit): Promise; + isRFPTargetActive(aTargetName: string): boolean; queueMicrotask(callback: VoidFunction): void; reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...unused: any[]): number; @@ -31644,6 +32315,8 @@ declare namespace ChromeUtils { aOptions?: ImportESModuleOptionsDictionary ): void; function defineLazyGetter(aTarget: any, aName: any, aLambda: any): void; + function enableAllPerfStatsFeatures(): void; + function encodeURIForSrcset(uri: string): string; function endWheelTransaction(window: WindowProxy): Promise; function ensureHeadlessContentProcess(aRemoteType: string): Promise; function ensureJSOracleStarted(): void; @@ -31658,6 +32331,7 @@ declare namespace ChromeUtils { function getClassName(obj: any, unwrap?: boolean): string; function getFormAutofillConfidences(elements: Element[]): FormAutofillConfidences[]; function getGMPContentDecryptionModuleInformation(): Promise; + function getGlobalWindowCommandEnabled(name: string): boolean | null; function getLibcConstants(): LibcConstants; function getObjectNodeId(obj: any): NodeId; function getPartitionKeyFromURL( @@ -31701,7 +32375,7 @@ declare namespace ChromeUtils { function resetLastExternalProtocolIframeAllowed(): void; function saveHeapSnapshot(boundaries?: HeapSnapshotBoundaries): string; function saveHeapSnapshotGetId(boundaries?: HeapSnapshotBoundaries): string; - function setPerfStatsCollectionMask(aCollectionMask: number): void; + function setPerfStatsFeatures(aMetrics: string[]): void; function shallowClone(obj: any, target?: any): any; function shouldResistFingerprinting( target: JSRFPTarget, @@ -31721,6 +32395,7 @@ declare namespace FuzzingFunctions { function enableAccessibility(): void; function garbageCollect(): void; function garbageCollectCompacting(): void; + function killGPUProcess(): void; function memoryPressure(): void; function signalIPCReady(): void; function spinEventLoopFor(aMilliseconds: number): void; @@ -31767,7 +32442,11 @@ declare namespace IOUtils { function setMacXAttr(path: string, attr: string, value: Uint8Array): Promise; function setModificationTime(path: string, modification?: number): Promise; function setPermissions(path: string, permissions: number, honorUmask?: boolean): Promise; - function setWindowsAttributes(path: string, attrs?: WindowsFileAttributes): Promise; + function setWindowsAttributes( + path: string, + attrs?: WindowsFileAttributes, + recursive?: boolean + ): Promise; function stat(path: string): Promise; function write(path: string, data: Uint8Array, options?: WriteOptions): Promise; function writeJSON(path: string, value: any, options?: WriteOptions): Promise; @@ -31799,6 +32478,7 @@ declare namespace InspectorUtils { includeAssignedNodes: boolean ): Node[]; function getContentState(element: Element): number; + function getGridContainerType(aElement: Element): number; function getMatchingCSSRules( element: Element, pseudo?: string, @@ -31824,7 +32504,8 @@ declare namespace InspectorUtils { ): InspectorFontFace[]; function hasPseudoClassLock(element: Element, pseudoClass: string): boolean; function hasRulesModifiedByCSSOM(sheet: CSSStyleSheet): boolean; - function hsvToRgb(r: number, g: number, b: number): number[] | Float32Array; + function hsvToRgb(h: number, s: number, v: number): number[] | Float32Array; + function isBlockContainer(element: Element): boolean; function isCustomElementName(name: string | null, namespaceURI: string | null): boolean; function isElementThemed(element: Element): boolean; function isIgnorableWhitespace(dataNode: CharacterData): boolean; @@ -32140,10 +32821,6 @@ interface IdleRequestCallback { (deadline: IdleDeadline): void; } -interface InstallTriggerCallback { - (url: string, status: number): void; -} - interface IntersectionCallback { (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void; } @@ -32164,6 +32841,10 @@ interface NavigationInterceptHandler { (): void | PromiseLike; } +interface NavigationPrecommitHandler { + (controller: NavigationPrecommitController): void | PromiseLike; +} + interface NavigatorUserMediaErrorCallback { (error: MediaStreamError): void; } @@ -32490,7 +33171,7 @@ declare var webkitSpeechRecognition: { }; declare var Glean: GleanImpl; declare var GleanPings: GleanPingsImpl; -declare var InstallTrigger: InstallTriggerImpl | null; +declare var InstallTrigger: any; declare var browserDOMWindow: nsIBrowserDOMWindow | null; declare var browsingContext: BrowsingContext; declare var clientInformation: Navigator; @@ -32514,6 +33195,7 @@ declare var innerHeight: number; declare var innerWidth: number; declare var intlUtils: IntlUtils; declare var isChromeWindow: boolean; +declare var isCloaked: boolean; declare var isFullyOccluded: boolean; declare var isInFullScreenTransition: boolean; declare var length: number; @@ -32598,7 +33280,7 @@ declare function getAttentionWithCycleCount(aCycleCount: number): void; declare function getComputedStyle( elt: Element, pseudoElt?: string | null -): CSSStyleDeclaration | null; +): CSSStyleProperties | null; declare function getDefaultComputedStyle( elt: Element, pseudoElt?: string @@ -32661,7 +33343,8 @@ declare function synthesizeMouseEvent( offsetX: number, offsetY: number, mouseEventData?: SynthesizeMouseEventData, - options?: SynthesizeMouseEventOptions + options?: SynthesizeMouseEventOptions, + callback?: VoidFunction ): boolean; declare function updateCommands(action: string): void; declare function toString(): string; @@ -32822,6 +33505,7 @@ declare function createImageBitmap( aOptions?: ImageBitmapOptions ): Promise; declare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise; +declare function isRFPTargetActive(aTargetName: string): boolean; declare function queueMicrotask(callback: VoidFunction): void; declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...unused: any[]): number; @@ -32883,6 +33567,7 @@ type ConstrainLong = number | ConstrainLongRange; type ContentSecurityPolicy = nsIContentSecurityPolicy; type Cookie = nsICookie; type CookieList = CookieListItem[]; +type CustomMediaQuery = MediaList | boolean; type DOMHighResTimeStamp = number; type DOMTimeStamp = number; type EpochTimeStamp = number; @@ -33121,6 +33806,7 @@ type ConsoleLogLevel = | 'TimeLog' | 'Trace' | 'Warn'; +type ContentScriptCssOrigin = 'author' | 'user'; type ContentScriptExecutionWorld = 'ISOLATED' | 'MAIN' | 'USER_SCRIPT'; type ContentScriptRunAt = 'document_end' | 'document_idle' | 'document_start'; type CookieSameSite = 'lax' | 'none' | 'strict'; @@ -33142,6 +33828,7 @@ type DebuggerNotificationType = | 'setTimeoutCallback'; type DeclarationOrigin = | 'animations' + | 'position-fallback' | 'pres-hints' | 'smil' | 'style-attribute' @@ -33180,6 +33867,7 @@ type FlexLineGrowthState = 'growing' | 'shrinking'; type FlexPhysicalDirection = 'horizontal-lr' | 'horizontal-rl' | 'vertical-bt' | 'vertical-tb'; type FontFaceLoadStatus = 'error' | 'loaded' | 'loading' | 'unloaded'; type FontFaceSetLoadStatus = 'loaded' | 'loading'; +type ForceMediaDocument = 'image' | 'none' | 'video'; type ForcedColorsOverride = 'active' | 'none'; type GPUAddressMode = 'clamp-to-edge' | 'mirror-repeat' | 'repeat'; type GPUAutoLayoutMode = 'auto'; @@ -33224,6 +33912,7 @@ type GPUFeatureName = | 'float32-blendable' | 'float32-filterable' | 'indirect-first-instance' + | 'primitive-index' | 'rg11b10ufloat-renderable' | 'shader-f16' | 'subgroups' @@ -33433,6 +34122,22 @@ type JSRFPTarget = type L10nFileSourceHasFileStatus = 'missing' | 'present' | 'unknown'; type LatencyMode = 'quality' | 'realtime'; type LineAlignSetting = 'center' | 'end' | 'start'; +type LlamaKVCacheDtype = 'f16' | 'f32' | 'q4_0' | 'q4_1' | 'q5_0' | 'q5_1' | 'q8_0'; +type LlamaSamplerType = + | 'dist' + | 'dry' + | 'infill' + | 'logit-bias' + | 'min-p' + | 'mirostat' + | 'penalties' + | 'temperature' + | 'temperature-ext' + | 'top-k' + | 'top-n-sigma' + | 'top-p' + | 'typical' + | 'xtc'; type LockMode = 'exclusive' | 'shared'; type LoginStatus = 'logged-in' | 'logged-out'; type MIDIPortConnectionState = 'closed' | 'open' | 'pending'; @@ -33700,7 +34405,7 @@ type RTCStatsIceCandidatePairState = | 'cancelled' | 'failed' | 'frozen' - | 'inprogress' + | 'in-progress' | 'succeeded' | 'waiting'; type RTCStatsType = @@ -33777,7 +34482,7 @@ type ScrollRestoration = 'auto' | 'manual'; type ScrollSetting = '' | 'up'; type SecurityPolicyViolationEventDisposition = 'enforce' | 'report'; type SelectionMode = 'end' | 'preserve' | 'select' | 'start'; -type SelectorWarningKind = 'UnconstrainedHas'; +type SelectorWarningKind = 'SiblingCombinatorAfterScope' | 'UnconstrainedHas'; type ServiceWorkerState = | 'activated' | 'activating' diff --git a/src/zen/@types/lib.gecko.glean.d.ts b/src/zen/@types/lib.gecko.glean.d.ts index 6b62c5590..efcc19d50 100644 --- a/src/zen/@types/lib.gecko.glean.d.ts +++ b/src/zen/@types/lib.gecko.glean.d.ts @@ -82,10 +82,6 @@ interface GleanImpl { cacheMetadataFirstReadTime: GleanTimingDistribution; cacheMetadataSecondReadTime: GleanTimingDistribution; cacheMetadataSize: GleanMemoryDistribution; - cachePurgeDueToMemoryLimit: Record< - 'cache_memory_limit' | 'meta_data_file_size_limit', - GleanCounter - >; cookieAccessFixupDiff: GleanCustomDistribution; cookieChipsPartitionLimitOverflow: GleanCustomDistribution; cookieCountPartByKey: GleanCustomDistribution; @@ -122,8 +118,6 @@ interface GleanImpl { dnsNativeHttpsCallTime: GleanTimingDistribution; dnsRenewalTime: GleanTimingDistribution; dnsRenewalTimeForTtl: GleanTimingDistribution; - fetchKeepaliveDiscardCount: Record<'per_origin_limit' | 'total_keepalive_limit', GleanCounter>; - fetchKeepaliveRequestCount: Record<'main' | 'worker', GleanCounter>; http3ChannelOnstartSuccess: GleanDualLabeledCounter; http1DownloadThroughput: GleanCustomDistribution; http1DownloadThroughput100: GleanCustomDistribution; @@ -310,13 +304,6 @@ interface GleanImpl { httpChannelPageOpenToFirstSentHttpsRr: GleanTimingDistribution; httpChannelSubOpenToFirstSent: GleanTimingDistribution; httpChannelSubOpenToFirstSentHttpsRr: GleanTimingDistribution; - httpContentCssloaderOndatafinishedToOnstopDelay: GleanTimingDistribution; - httpContentHtml5parserOndatafinishedToOnstopDelay: GleanTimingDistribution; - httpContentOndatafinishedDelay: GleanTimingDistribution; - httpContentOndatafinishedDelay2: GleanTimingDistribution; - httpContentOndatafinishedToOnstopDelay: GleanTimingDistribution; - httpContentOnstartDelay: GleanTimingDistribution; - httpContentOnstopDelay: GleanTimingDistribution; httpOnstartSuspendTotalTime: GleanTimingDistribution; httpRedirectToSchemeSubresource: Record; httpRedirectToSchemeTopLevel: Record; @@ -411,10 +398,6 @@ interface GleanImpl { >; residualCacheFolderCount: GleanCounter; residualCacheFolderRemoval: Record<'failure' | 'success', GleanCounter>; - setCookie: GleanDenominator; - setCookieForeign: GleanNumerator; - setCookieForeignPartitioned: GleanNumerator; - setCookiePartitioned: GleanNumerator; speculativeConnectOutcome: Record< 'aborted_https_not_enabled' | 'aborted_socket_fail' | 'aborted_socket_limit' | 'successful', GleanCounter @@ -757,11 +740,15 @@ interface GleanImpl { }; browserBackup: { + archiveDisabledReason: GleanString; + archiveEnabled: GleanBoolean; + backupStart: GleanEventWithExtras<{ reason?: string }>; + backupThrottled: GleanEventNoExtras; browserExtensionDataSize: GleanQuantity; changeLocation: GleanEventNoExtras; compressedArchiveSize: GleanMemoryDistribution; cookiesSize: GleanQuantity; - created: GleanEventNoExtras; + created: GleanEventWithExtras<{ encrypted?: string; location?: string; size?: string }>; credentialsDataSize: GleanQuantity; enabled: GleanBoolean; error: GleanEventWithExtras<{ backup_step?: string; error_code?: string }>; @@ -782,13 +769,15 @@ interface GleanImpl { preferencesSize: GleanQuantity; profDDiskSpace: GleanQuantity; pswdEncrypted: GleanBoolean; + restoreDisabledReason: GleanString; + restoreEnabled: GleanBoolean; schedulerEnabled: GleanBoolean; securityDataSize: GleanQuantity; sessionStoreBackupsDirectorySize: GleanQuantity; sessionStoreSize: GleanQuantity; storageSyncSize: GleanQuantity; toggleOff: GleanEventNoExtras; - toggleOn: GleanEventNoExtras; + toggleOn: GleanEventWithExtras<{ encrypted?: string; location?: string }>; totalBackupSize: GleanMemoryDistribution; totalBackupTime: GleanTimingDistribution; }; @@ -1374,22 +1363,6 @@ interface GleanImpl { user_prefs?: string; value?: string; }>; - eventFakespotCategory: GleanEventWithExtras<{ - action_position?: string; - addon_version?: string; - page?: string; - session_id?: string; - user_prefs?: string; - value?: string; - }>; - eventFakespotClick: GleanEventWithExtras<{ - action_position?: string; - addon_version?: string; - page?: string; - session_id?: string; - user_prefs?: string; - value?: string; - }>; eventHidePersonalize: GleanEventWithExtras<{ action_position?: string; addon_version?: string; @@ -1682,27 +1655,13 @@ interface GleanImpl { addonXpiUsed: GleanBoolean; blockedSponsors: GleanStringList; closed: GleanEventWithExtras<{ newtab_visit_id?: string }>; - fakespotAboutClick: GleanEventWithExtras<{ newtab_visit_id?: string }>; - fakespotCategory: GleanEventWithExtras<{ category?: string; newtab_visit_id?: string }>; - fakespotClick: GleanEventWithExtras<{ - category?: string; - newtab_visit_id?: string; - product_id?: string; - }>; - fakespotCtaClick: GleanEventWithExtras<{ newtab_visit_id?: string }>; - fakespotDismiss: GleanEventWithExtras<{ newtab_visit_id?: string }>; - fakespotProductImpression: GleanEventWithExtras<{ - category?: string; - newtab_visit_id?: string; - product_id?: string; - product_title?: string; - }>; featureHighlightDismiss: GleanEventWithExtras<{ feature?: string; newtab_visit_id?: string }>; featureHighlightImpression: GleanEventWithExtras<{ feature?: string; newtab_visit_id?: string; }>; featureHighlightOpen: GleanEventWithExtras<{ feature?: string; newtab_visit_id?: string }>; + highlightsEnabled: GleanBoolean; homepageCategory: GleanString; inlineSelectionClick: GleanEventWithExtras<{ is_followed?: string; @@ -1799,11 +1758,16 @@ interface GleanImpl { newtab_visit_id?: string; weather_display_mode?: string; }>; + weatherDetectLocation: GleanEventWithExtras<{ newtab_visit_id?: string }>; weatherEnabled: GleanBoolean; weatherImpression: GleanEventWithExtras<{ newtab_visit_id?: string }>; weatherLoadError: GleanEventWithExtras<{ newtab_visit_id?: string }>; weatherLocationSelected: GleanEventWithExtras<{ newtab_visit_id?: string }>; weatherOpenProviderUrl: GleanEventWithExtras<{ newtab_visit_id?: string }>; + weatherOptInSelection: GleanEventWithExtras<{ + newtab_visit_id?: string; + user_selection?: string; + }>; widgetsListsChangeDisplay: GleanEventWithExtras<{ display_status?: string; newtab_visit_id?: string; @@ -1839,7 +1803,6 @@ interface GleanImpl { click: GleanEventWithExtras<{ corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; is_sponsored?: string; matches_selected_topic?: string; @@ -1876,7 +1839,6 @@ interface GleanImpl { impression: GleanEventWithExtras<{ corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; is_sponsored?: string; position?: string; @@ -1937,7 +1899,6 @@ interface GleanImpl { thumbVotingInteraction: GleanEventWithExtras<{ corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; position?: string; received_rank?: string; @@ -1960,7 +1921,6 @@ interface GleanImpl { corpus_item_id?: string; event_source?: string; format?: string; - is_list_card?: string; is_section_followed?: string; is_sponsored?: string; layout_name?: string; @@ -1978,9 +1938,9 @@ interface GleanImpl { topic?: string; }>; dismiss: GleanEventWithExtras<{ + content_redacted?: string; corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; is_sponsored?: string; newtab_visit_id?: string; @@ -1999,7 +1959,6 @@ interface GleanImpl { content_redacted?: string; corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; is_sponsored?: string; layout_name?: string; @@ -2020,7 +1979,6 @@ interface GleanImpl { save: GleanEventWithExtras<{ corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; is_sponsored?: string; matches_selected_topic?: string; @@ -2042,7 +2000,6 @@ interface GleanImpl { content_redacted?: string; corpus_item_id?: string; format?: string; - is_list_card?: string; is_section_followed?: string; newtab_visit_id?: string; position?: string; @@ -2084,6 +2041,8 @@ interface GleanImpl { is_sponsored?: string; newtab_visit_id?: string; position?: string; + smart_scores?: string; + smart_weights?: string; tile_id?: string; visible_topsites?: string; }>; @@ -2111,6 +2070,8 @@ interface GleanImpl { is_sponsored?: string; newtab_visit_id?: string; position?: string; + smart_scores?: string; + smart_weights?: string; tile_id?: string; visible_topsites?: string; }>; @@ -2654,6 +2615,12 @@ interface GleanImpl { browserUiInteraction: { allTabsPanelDragstartTabEventCount: GleanCounter; allTabsPanelEntrypoint: Record; + tabMovement: Record< + | 'from_external_app_next_to_active_tab' + | 'from_external_app_tab_strip_end' + | 'not_from_external_app', + GleanCounter + >; textrecognitionError: GleanCounter; appMenu: Record; bookmarksBar: Record; @@ -2682,6 +2649,12 @@ interface GleanImpl { keyboard: Record; }; + linkHandling: { + openFromExternalApp: GleanEventWithExtras<{ next_to_active_tab?: string }>; + openNextToActiveTabSettingsChange: GleanEventWithExtras<{ checked?: string }>; + openNextToActiveTabSettingsEnabled: GleanBoolean; + }; + tabgroup: { activeGroups: Record<'collapsed' | 'expanded', GleanQuantity>; addTab: GleanEventWithExtras<{ @@ -2766,10 +2739,11 @@ interface GleanImpl { activate: GleanEventNoExtras; eject: GleanEventNoExtras; install: GleanEventNoExtras; + installedWebAppCount: GleanQuantity; moveToTaskbar: GleanEventNoExtras; pin: GleanEventWithExtras<{ result?: string }>; uninstall: GleanEventNoExtras; - unpin: GleanEventWithExtras<{ result?: string }>; + unpin: GleanEventWithExtras<{ removal_result?: string; result?: string }>; usageTime: GleanTimingDistribution; }; @@ -2898,16 +2872,12 @@ interface GleanImpl { heuristicResultMissing: GleanRate; keywordExposure: GleanEventWithExtras<{ keyword?: string; result?: string; terminal?: string }>; prefMaxResults: GleanQuantity; - prefSuggestDataCollection: GleanBoolean; - prefSuggestNonsponsored: GleanBoolean; + prefSuggestAll: GleanBoolean; + prefSuggestOnlineAvailable: GleanBoolean; + prefSuggestOnlineEnabled: GleanBoolean; prefSuggestSponsored: GleanBoolean; prefSuggestTopsites: GleanBoolean; prefSwitchTabsSearchAllContainers: GleanBoolean; - quickSuggestContextualOptIn: GleanEventWithExtras<{ - interaction?: string; - say_hello?: string; - top_position?: string; - }>; }; urlbarMerino: { @@ -4277,9 +4247,6 @@ interface GleanImpl { cssOverflow: GleanCounter; cssOverflowAnchor: GleanCounter; cssOverflowBlock: GleanCounter; - cssOverflowClipBox: GleanCounter; - cssOverflowClipBoxBlock: GleanCounter; - cssOverflowClipBoxInline: GleanCounter; cssOverflowClipMargin: GleanCounter; cssOverflowInline: GleanCounter; cssOverflowWrap: GleanCounter; @@ -4388,11 +4355,11 @@ interface GleanImpl { cssTextCombineUpright: GleanCounter; cssTextDecoration: GleanCounter; cssTextDecorationColor: GleanCounter; + cssTextDecorationInset: GleanCounter; cssTextDecorationLine: GleanCounter; cssTextDecorationSkipInk: GleanCounter; cssTextDecorationStyle: GleanCounter; cssTextDecorationThickness: GleanCounter; - cssTextDecorationTrim: GleanCounter; cssTextEmphasis: GleanCounter; cssTextEmphasisColor: GleanCounter; cssTextEmphasisPosition: GleanCounter; @@ -4987,9 +4954,6 @@ interface GleanImpl { cssOverflow: GleanCounter; cssOverflowAnchor: GleanCounter; cssOverflowBlock: GleanCounter; - cssOverflowClipBox: GleanCounter; - cssOverflowClipBoxBlock: GleanCounter; - cssOverflowClipBoxInline: GleanCounter; cssOverflowClipMargin: GleanCounter; cssOverflowInline: GleanCounter; cssOverflowWrap: GleanCounter; @@ -5098,11 +5062,11 @@ interface GleanImpl { cssTextCombineUpright: GleanCounter; cssTextDecoration: GleanCounter; cssTextDecorationColor: GleanCounter; + cssTextDecorationInset: GleanCounter; cssTextDecorationLine: GleanCounter; cssTextDecorationSkipInk: GleanCounter; cssTextDecorationStyle: GleanCounter; cssTextDecorationThickness: GleanCounter; - cssTextDecorationTrim: GleanCounter; cssTextEmphasis: GleanCounter; cssTextEmphasisColor: GleanCounter; cssTextEmphasisPosition: GleanCounter; @@ -5329,10 +5293,8 @@ interface GleanImpl { }; useCounterDeprecatedOpsDoc: { - afterScriptExecuteEvent: GleanCounter; ambientLightEvent: GleanCounter; appCache: GleanCounter; - beforeScriptExecuteEvent: GleanCounter; components: GleanCounter; createImageBitmapCanvasRenderingContext2D: GleanCounter; deprecatedTestingAttribute: GleanCounter; @@ -5345,6 +5307,7 @@ interface GleanImpl { elementSetCapture: GleanCounter; externalAddSearchProvider: GleanCounter; formSubmissionUntrustedEvent: GleanCounter; + fullscreenAttribute: GleanCounter; idbobjectStoreCreateIndexLocale: GleanCounter; idbopenDboptionsStorageType: GleanCounter; imageBitmapRenderingContextTransferImageBitmap: GleanCounter; @@ -5378,10 +5341,8 @@ interface GleanImpl { }; useCounterDeprecatedOpsPage: { - afterScriptExecuteEvent: GleanCounter; ambientLightEvent: GleanCounter; appCache: GleanCounter; - beforeScriptExecuteEvent: GleanCounter; components: GleanCounter; createImageBitmapCanvasRenderingContext2D: GleanCounter; deprecatedTestingAttribute: GleanCounter; @@ -5394,6 +5355,7 @@ interface GleanImpl { elementSetCapture: GleanCounter; externalAddSearchProvider: GleanCounter; formSubmissionUntrustedEvent: GleanCounter; + fullscreenAttribute: GleanCounter; idbobjectStoreCreateIndexLocale: GleanCounter; idbopenDboptionsStorageType: GleanCounter; imageBitmapRenderingContextTransferImageBitmap: GleanCounter; @@ -5615,6 +5577,8 @@ interface GleanImpl { svgsvgelementGetelementbyid: GleanCounter; textDirectiveNotCreated: GleanCounter; textDirectivePages: GleanCounter; + webgpuRenderOutput: GleanCounter; + webgpuRequestAdapter: GleanCounter; windowAbsoluteorientationsensor: GleanCounter; windowAccelerometer: GleanCounter; windowBackgroundfetchmanager: GleanCounter; @@ -5973,6 +5937,8 @@ interface GleanImpl { svgsvgelementGetelementbyid: GleanCounter; textDirectiveNotCreated: GleanCounter; textDirectivePages: GleanCounter; + webgpuRenderOutput: GleanCounter; + webgpuRequestAdapter: GleanCounter; windowAbsoluteorientationsensor: GleanCounter; windowAccelerometer: GleanCounter; windowBackgroundfetchmanager: GleanCounter; @@ -6196,6 +6162,7 @@ interface GleanImpl { pushmanagerSubscribe: GleanCounter; pushsubscriptionUnsubscribe: GleanCounter; schedulerPosttask: GleanCounter; + webgpuRequestAdapter: GleanCounter; }; useCounterWorkerService: { @@ -6252,6 +6219,7 @@ interface GleanImpl { pushmanagerSubscribe: GleanCounter; pushsubscriptionUnsubscribe: GleanCounter; schedulerPosttask: GleanCounter; + webgpuRequestAdapter: GleanCounter; }; useCounterWorkerShared: { @@ -6308,6 +6276,7 @@ interface GleanImpl { pushmanagerSubscribe: GleanCounter; pushsubscriptionUnsubscribe: GleanCounter; schedulerPosttask: GleanCounter; + webgpuRequestAdapter: GleanCounter; }; canvas: { @@ -6358,11 +6327,7 @@ interface GleanImpl { mediadrm: { decryption: Record< - | 'has_hardware_clearlead' - | 'has_hardware_decryption' - | 'has_hdcp22_plus' - | 'has_software_clearlead' - | 'has_wmf', + 'has_hardware_clearlead' | 'has_hardware_decryption' | 'has_software_clearlead' | 'has_wmf', GleanBoolean >; emePlayback: GleanEventWithExtras<{ @@ -6503,6 +6468,49 @@ interface GleanImpl { notSupportedVideoPerMimeType: Record; }; + mediaRecorder: { + mimeTypeQuery: Record< + | 'empty' + | 'mkv_aac' + | 'mkv_av1' + | 'mkv_flac' + | 'mkv_h264' + | 'mkv_h265' + | 'mkv_opus' + | 'mkv_others' + | 'mkv_pcm' + | 'mkv_unspecified' + | 'mkv_vorbis' + | 'mkv_vp8' + | 'mkv_vp9' + | 'mp4_aac' + | 'mp4_av1' + | 'mp4_flac' + | 'mp4_h264' + | 'mp4_h265' + | 'mp4_opus' + | 'mp4_others' + | 'mp4_unspecified' + | 'mp4_vp9' + | 'ogg_flac' + | 'ogg_opus' + | 'ogg_others' + | 'ogg_unspecified' + | 'ogg_vorbis' + | 'ogg_vp8' + | 'ogg_vp9' + | 'others' + | 'webm_av1' + | 'webm_opus' + | 'webm_others' + | 'webm_unspecified' + | 'webm_vorbis' + | 'webm_vp8' + | 'webm_vp9', + GleanCounter + >; + }; + mediaMp4Parse: { numSampleDescriptionEntries: GleanCustomDistribution; sampleDescriptionEntriesHaveMultipleCodecs: Record<'false' | 'true', GleanCounter>; @@ -6726,6 +6734,8 @@ interface GleanImpl { using_webdriver?: string; }>; pageLoadDomain: GleanEventWithExtras<{ + app_version_major?: string; + channel?: string; document_features?: string; domain?: string; http_ver?: string; @@ -6975,7 +6985,6 @@ interface GleanImpl { supportsHdr: GleanBoolean; adapters: GleanObject; contentBackend: GleanString; - d2dEnabled: GleanBoolean; dwriteEnabled: GleanBoolean; headless: GleanBoolean; monitors: GleanObject; @@ -9268,16 +9277,16 @@ interface GleanImpl { imagesContentUsedUncompressed: GleanMemoryDistribution; jsCompartmentsSystem: GleanCustomDistribution; jsCompartmentsUser: GleanCustomDistribution; - jsGcHeap: GleanMemoryDistribution; + jsGcHeap: Record; jsRealmsSystem: GleanCustomDistribution; jsRealmsUser: GleanCustomDistribution; lowMemoryEventsPhysical: GleanCustomDistribution; pageFaultsHard: GleanCustomDistribution; - residentFast: GleanMemoryDistribution; - residentPeak: GleanMemoryDistribution; + residentFast: Record; + residentPeak: Record; storageSqlite: GleanMemoryDistribution; total: GleanMemoryDistribution; - unique: GleanMemoryDistribution; + unique: Record; uniqueContentStartup: GleanMemoryDistribution; vsize: GleanMemoryDistribution; vsizeMaxContiguous: GleanMemoryDistribution; @@ -9388,6 +9397,13 @@ interface GleanImpl { has_olddata?: string; }>; migrateResultCount: Record<'failure' | 'success', GleanCounter>; + storageLocalCorruptedReset: GleanEventWithExtras<{ + addon_id?: string; + after_reset?: string; + reason?: string; + reset_disabled?: string; + reset_error_name?: string; + }>; storageLocalError: GleanEventWithExtras<{ addon_id?: string; error_name?: string; @@ -9674,7 +9690,7 @@ interface GleanImpl { }; geckoTrace: { - traces: GleanObject; + tracesData: GleanObject; }; fog: { @@ -9819,7 +9835,17 @@ interface GleanImpl { reachFxmsMessage13: GleanEventWithExtras<{ branches?: string; value?: string }>; reachFxmsMessage14: GleanEventWithExtras<{ branches?: string; value?: string }>; reachFxmsMessage15: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage16: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage17: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage18: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage19: GleanEventWithExtras<{ branches?: string; value?: string }>; reachFxmsMessage2: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage20: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage21: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage22: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage23: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage24: GleanEventWithExtras<{ branches?: string; value?: string }>; + reachFxmsMessage25: GleanEventWithExtras<{ branches?: string; value?: string }>; reachFxmsMessage3: GleanEventWithExtras<{ branches?: string; value?: string }>; reachFxmsMessage4: GleanEventWithExtras<{ branches?: string; value?: string }>; reachFxmsMessage5: GleanEventWithExtras<{ branches?: string; value?: string }>; @@ -9849,12 +9875,24 @@ interface GleanImpl { | 'ml-suggest-intent' | 'ml-suggest-ner' | 'pdfjs' + | 'smart-intent' | 'smart-tab-embedding-engine' | 'smart-tab-topic-engine' | 'webextension' | 'wllamapreview', GleanTimingDistribution >; + engineRun: GleanEventWithExtras<{ + backend?: string; + cores?: string; + cpu_milliseconds?: string; + cpu_utilization?: string; + engine_id?: string; + feature_id?: string; + memory_bytes?: string; + model_id?: string; + wall_milliseconds?: string; + }>; modelDeletion: GleanEventWithExtras<{ deletedBy?: string; error?: string; @@ -9884,6 +9922,7 @@ interface GleanImpl { | 'ml-suggest-intent' | 'ml-suggest-ner' | 'pdfjs' + | 'smart-intent' | 'smart-tab-embedding-engine' | 'smart-tab-topic-engine' | 'webextension' @@ -9968,12 +10007,10 @@ interface GleanImpl { migration_id?: string; success?: string; }>; - remoteSettingsSync: GleanEventWithExtras<{ - experiments_empty?: string; - experiments_success?: string; + remoteSettingsSyncError: GleanEventWithExtras<{ + collection?: string; force_sync?: string; - secure_experiments_empty?: string; - secure_experiments_success?: string; + reason?: string; trigger?: string; }>; startupDatabaseConsistency: GleanEventWithExtras<{ @@ -10033,6 +10070,7 @@ interface GleanImpl { os: GleanObject; primaryResolution: GleanObject; profileAgeCreated: GleanQuantity; + profileGroupProfileCount: GleanQuantity; region: GleanString; totalBookmarksCount: GleanQuantity; userMonthlyActivity: GleanObject; @@ -10071,6 +10109,7 @@ interface GleanImpl { | 'os' | 'primaryResolution' | 'profileAgeCreated' + | 'profileGroupProfileCount' | 'region' | 'totalBookmarksCount' | 'userMonthlyActivity' @@ -10088,8 +10127,10 @@ interface GleanImpl { | 'browser.newtabpage.activity-stream.showSearch' | 'browser.newtabpage.activity-stream.showSponsoredTopSites' | 'browser.newtabpage.enabled' + | 'browser.profiles.created' | 'browser.startup.page' | 'browser.toolbars.bookmarks.visibility' + | 'browser.urlbar.lastUrlbarSearchSeconds' | 'browser.urlbar.quicksuggest.dataCollection.enabled' | 'browser.urlbar.showSearchSuggestionsFirst' | 'browser.urlbar.suggest.quicksuggest.sponsored' @@ -10101,6 +10142,7 @@ interface GleanImpl { | 'nimbus.qa.pref-1' | 'nimbus.qa.pref-2' | 'security.sandbox.content.level' + | 'termsofuse.acceptedDate' | 'trailhead.firstrun.didSeeAboutWelcome', GleanCounter >; @@ -10470,6 +10512,26 @@ interface GleanImpl { value?: string; }>; requireOsReauthToggle: GleanEventWithExtras<{ toggle_state?: string }>; + rustIncompatibleLoginFormat: GleanEventWithExtras<{ + issue?: string; + operation?: string; + run_id?: string; + }>; + rustMigrationFailure: GleanEventWithExtras<{ error_message?: string; run_id?: string }>; + rustMigrationStatus: GleanEventWithExtras<{ + duration_ms?: string; + had_errors?: string; + number_of_logins_migrated?: string; + number_of_logins_to_migrate?: string; + run_id?: string; + }>; + rustMirrorStatus: GleanEventWithExtras<{ + error_message?: string; + operation?: string; + poisoned?: string; + run_id?: string; + status?: string; + }>; saveExistingLogin: GleanEventWithExtras<{ breached?: string; vulnerable?: string }>; saveNewLogin: GleanEventWithExtras<{ breached?: string; vulnerable?: string }>; savedLoginUsedAuthLogin: GleanEventWithExtras<{ filled?: string }>; @@ -10547,16 +10609,10 @@ interface GleanImpl { used: GleanCounter; }; - pdfjsDigitalSignature: { - certificate: Record< - | 'adbe_pkcs7_detached' - | 'adbe_pkcs7_sha1' - | 'adbe_x509_rsa_sha1' - | 'etsi_cades_detached' - | 'etsi_rfc3161' - | 'unsupported', - GleanCounter - >; + pdfjsComment: { + edit: Record<'deleted' | 'edited', GleanCounter>; + save: GleanEventWithExtras<{ deleted?: string; edited?: string }>; + sidebar: GleanEventWithExtras<{ comments_count?: string }>; }; pdfjsEditingHighlight: { @@ -10766,6 +10822,7 @@ interface GleanImpl { | 'extension' | 'gmplugin' | 'gpu' + | 'inference' | 'parent.active' | 'parent.active.playing-audio' | 'parent.active.playing-video' @@ -10790,6 +10847,7 @@ interface GleanImpl { | 'extension' | 'gmplugin' | 'gpu' + | 'inference' | 'parent.active' | 'parent.active.playing-audio' | 'parent.active.playing-video' @@ -10811,6 +10869,7 @@ interface GleanImpl { | 'extension' | 'gmplugin' | 'gpu' + | 'inference' | 'parent.active' | 'parent.active.playing-audio' | 'parent.active.playing-video' @@ -10834,6 +10893,7 @@ interface GleanImpl { | 'extension' | 'gmplugin' | 'gpu' + | 'inference' | 'parent.active' | 'parent.active.playing-audio' | 'parent.active.playing-video' @@ -10921,6 +10981,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11031,6 +11092,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11141,6 +11203,118 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' + | 'pacerthread' + | 'permission' + | 'playeventsound' + | 'processhangmon' + | 'profilerchild' + | 'proxyresolution' + | 'quotamanager_io' + | 'registerfonts' + | 'remotebackbuffer' + | 'remotelzystream' + | 'remvidchild' + | 'renderer' + | 'sandboxreporter' + | 'savescripts' + | 'socket_thread' + | 'softwarevsyncthread' + | 'sqldb_content-prefs_sqlite' + | 'sqldb_cookies_sqlite' + | 'sqldb_formhistory_sqlite' + | 'ssl_cert' + | 'startupcache' + | 'streamtrans' + | 'stylethread' + | 'swcomposite' + | 'taskcontroller' + | 'timer' + | 'toastbgthread' + | 'trr_background' + | 'untrusted_modules' + | 'url_classifier' + | 'videocapture' + | 'vsynciothread' + | 'webrtccallthread' + | 'webrtcworker' + | 'wifi_tickler' + | 'wincompositor' + | 'windowsvsyncthread' + | 'winwindowocclusioncalc' + | 'worker_launcher' + | 'wrrenderbackend' + | 'wrscenebuilder' + | 'wrscenebuilderlp' + | 'wrworker' + | 'wrworkerlp', + GleanCounter + >; + inferenceProcess: Record< + | 'androidui' + | 'asynclogger' + | 'audioipc' + | 'audioipc_callback_rpc' + | 'audioipc_client_callback' + | 'audioipc_client_rpc' + | 'audioipc_devicecollection_rpc' + | 'audioipc_server_callback' + | 'audioipc_server_rpc' + | 'backgroundthreadpool' + | 'bgiothreadpool' + | 'bgreadurls' + | 'bhmgr_monitor' + | 'bhmgr_processor' + | 'cameras_ipc' + | 'canvasrenderer' + | 'capturethread' + | 'classifier_update' + | 'com_mta' + | 'compositor' + | 'convolverworker' + | 'cookie' + | 'cubeboperation' + | 'datachannel_io' + | 'dns_resolver' + | 'dom_worker' + | 'dom_worklet' + | 'domcachethread' + | 'extensionprotocolhandler' + | 'font_loader' + | 'fontenumthread' + | 'fs_broker' + | 'geckomain' + | 'gmpthread' + | 'graphrunner' + | 'hrtfdatabaseldr' + | 'html5_parser' + | 'imagebridgechld' + | 'imageio' + | 'indexeddb' + | 'indexeddb_io' + | 'initfontlist' + | 'inotifyeventthread' + | 'ipc_i_o_child' + | 'ipc_i_o_parent' + | 'ipc_launch' + | 'ipdl_background' + | 'js_watchdog' + | 'jump_list' + | 'libwebrtcmodulethread' + | 'link_monitor' + | 'ls_thread' + | 'mdns_service' + | 'mediacache' + | 'mediadecoderstatemachine' + | 'mediapdecoder' + | 'mediasupervisor' + | 'mediatimer' + | 'mediatrackgrph' + | 'memorypoller' + | 'mozstorage' + | 'mtransport' + | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11251,6 +11425,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11361,6 +11536,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11474,6 +11650,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11584,6 +11761,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11694,6 +11872,118 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' + | 'pacerthread' + | 'permission' + | 'playeventsound' + | 'processhangmon' + | 'profilerchild' + | 'proxyresolution' + | 'quotamanager_io' + | 'registerfonts' + | 'remotebackbuffer' + | 'remotelzystream' + | 'remvidchild' + | 'renderer' + | 'sandboxreporter' + | 'savescripts' + | 'socket_thread' + | 'softwarevsyncthread' + | 'sqldb_content-prefs_sqlite' + | 'sqldb_cookies_sqlite' + | 'sqldb_formhistory_sqlite' + | 'ssl_cert' + | 'startupcache' + | 'streamtrans' + | 'stylethread' + | 'swcomposite' + | 'taskcontroller' + | 'timer' + | 'toastbgthread' + | 'trr_background' + | 'untrusted_modules' + | 'url_classifier' + | 'videocapture' + | 'vsynciothread' + | 'webrtccallthread' + | 'webrtcworker' + | 'wifi_tickler' + | 'wincompositor' + | 'windowsvsyncthread' + | 'winwindowocclusioncalc' + | 'worker_launcher' + | 'wrrenderbackend' + | 'wrscenebuilder' + | 'wrscenebuilderlp' + | 'wrworker' + | 'wrworkerlp', + GleanCounter + >; + inferenceProcess: Record< + | 'androidui' + | 'asynclogger' + | 'audioipc' + | 'audioipc_callback_rpc' + | 'audioipc_client_callback' + | 'audioipc_client_rpc' + | 'audioipc_devicecollection_rpc' + | 'audioipc_server_callback' + | 'audioipc_server_rpc' + | 'backgroundthreadpool' + | 'bgiothreadpool' + | 'bgreadurls' + | 'bhmgr_monitor' + | 'bhmgr_processor' + | 'cameras_ipc' + | 'canvasrenderer' + | 'capturethread' + | 'classifier_update' + | 'com_mta' + | 'compositor' + | 'convolverworker' + | 'cookie' + | 'cubeboperation' + | 'datachannel_io' + | 'dns_resolver' + | 'dom_worker' + | 'dom_worklet' + | 'domcachethread' + | 'extensionprotocolhandler' + | 'font_loader' + | 'fontenumthread' + | 'fs_broker' + | 'geckomain' + | 'gmpthread' + | 'graphrunner' + | 'hrtfdatabaseldr' + | 'html5_parser' + | 'imagebridgechld' + | 'imageio' + | 'indexeddb' + | 'indexeddb_io' + | 'initfontlist' + | 'inotifyeventthread' + | 'ipc_i_o_child' + | 'ipc_i_o_parent' + | 'ipc_launch' + | 'ipdl_background' + | 'js_watchdog' + | 'jump_list' + | 'libwebrtcmodulethread' + | 'link_monitor' + | 'ls_thread' + | 'mdns_service' + | 'mediacache' + | 'mediadecoderstatemachine' + | 'mediapdecoder' + | 'mediasupervisor' + | 'mediatimer' + | 'mediatrackgrph' + | 'memorypoller' + | 'mozstorage' + | 'mtransport' + | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11804,6 +12094,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -11914,6 +12205,7 @@ interface GleanImpl { | 'mozstorage' | 'mtransport' | 'netlink_monitor' + | 'onnx_worker' | 'pacerthread' | 'permission' | 'playeventsound' @@ -12050,9 +12342,10 @@ interface GleanImpl { }; webcompatreporting: { + learnMore: GleanEventNoExtras; opened: GleanEventWithExtras<{ source?: string }>; reasonDropdown: GleanEventWithExtras<{ setting?: string }>; - send: GleanEventNoExtras; + send: GleanEventWithExtras<{ sent_with_blocked_trackers?: string }>; sendMoreInfo: GleanEventNoExtras; }; @@ -12600,7 +12893,6 @@ interface GleanImpl { enginePerformance: GleanEventWithExtras<{ average_words_per_request?: string; average_words_per_second?: string; - flow_id?: string; from_language?: string; to_language?: string; total_completed_requests?: string; @@ -12608,6 +12900,17 @@ interface GleanImpl { total_translated_words?: string; }>; error: GleanEventWithExtras<{ flow_id?: string; reason?: string }>; + identifyPageLanguage: GleanEventWithExtras<{ + confident?: string; + extracted_code_units?: string; + extraction_time?: string; + html_lang_attribute?: string; + identification_time?: string; + identified_language?: string; + is_lang_attribute_valid?: string; + lang_tags_match?: string; + total_time?: string; + }>; requestCount: Record<'full_page' | 'select', GleanCounter>; restorePage: GleanEventWithExtras<{ flow_id?: string }>; translationRequest: GleanEventWithExtras<{ @@ -12903,6 +13206,7 @@ interface GleanImpl { loadAboutcerterror: GleanEventWithExtras<{ channel_status?: string; has_sts?: string; + hyphen_compat?: string; is_frame?: string; issued_by_cca?: string; value?: string; @@ -13693,6 +13997,7 @@ interface GleanImpl { stateCodePartialStartup: GleanCustomDistribution; stateCodeUnknownStage: GleanCustomDistribution; stateCodeUnknownStartup: GleanCustomDistribution; + stateWriteFailure: GleanCounter; statusErrorCodeCompleteStage: GleanCustomDistribution; statusErrorCodeCompleteStartup: GleanCustomDistribution; statusErrorCodePartialStage: GleanCustomDistribution; @@ -13764,7 +14069,6 @@ interface GleanImpl { gfxFeatures: { compositor: GleanString; - d2d: GleanObject; d3d11: GleanObject; gpuProcess: GleanObject; hwCompositing: GleanObject; @@ -13866,7 +14170,6 @@ interface GleanPingsImpl { newtabContent: GleanPingWithReason<'component_init' | 'newtab_session_end'>; spoc: GleanPingWithReason<'click' | 'impression' | 'save'>; topSites: GleanPingNoReason; - pocketButton: GleanPingNoReason; profiles: GleanPingNoReason; searchWith: GleanPingNoReason; serpCategorization: GleanPingWithReason<'inactivity' | 'startup' | 'threshold_reached'>; @@ -13887,7 +14190,7 @@ interface GleanPingsImpl { backgroundTasks: GleanPingNoReason; captchaDetection: GleanPingNoReason; crash: GleanPingWithReason<'crash' | 'event_found'>; - traces: GleanPingWithReason<'buffer_full' | 'idle' | 'shutdown'>; + geckoTrace: GleanPingWithReason<'buffer_full' | 'idle' | 'shutdown'>; dauReporting: GleanPingWithReason<'active' | 'dirty_startup' | 'inactive'>; tempFogInitialState: GleanPingWithReason<'startup'>; collectionDisabledPing: GleanPingNoReason; diff --git a/src/zen/@types/lib.gecko.modules.d.ts b/src/zen/@types/lib.gecko.modules.d.ts index baaabf92f..948968db9 100644 --- a/src/zen/@types/lib.gecko.modules.d.ts +++ b/src/zen/@types/lib.gecko.modules.d.ts @@ -55,10 +55,10 @@ export interface Modules { 'chrome://mochitests/content/browser/accessible/tests/browser/Common.sys.mjs': typeof import('chrome://mochitests/content/browser/accessible/tests/browser/Common.sys.mjs'); 'chrome://mochitests/content/browser/accessible/tests/browser/Layout.sys.mjs': typeof import('chrome://mochitests/content/browser/accessible/tests/browser/Layout.sys.mjs'); 'chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/examples/worker-esm-dep.mjs': typeof import('chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/examples/worker-esm-dep.mjs'); + 'chrome://mochitests/content/browser/devtools/shared/test-helpers/trace-objects.sys.mjs': typeof import('chrome://mochitests/content/browser/devtools/shared/test-helpers/trace-objects.sys.mjs'); 'chrome://mochitests/content/browser/js/xpconnect/tests/browser/worker_source.mjs': typeof import('chrome://mochitests/content/browser/js/xpconnect/tests/browser/worker_source.mjs'); 'chrome://mochitests/content/browser/remote/shared/messagehandler/test/browser/resources/modules/ModuleRegistry.sys.mjs': typeof import('chrome://mochitests/content/browser/remote/shared/messagehandler/test/browser/resources/modules/ModuleRegistry.sys.mjs'); 'chrome://mochitests/content/browser/toolkit/components/translations/tests/browser/translations-test.mjs': typeof import('chrome://mochitests/content/browser/toolkit/components/translations/tests/browser/translations-test.mjs'); - 'chrome://mochitests/content/browser/tools/profiler/tests/browser/value_summary_reader.mjs': typeof import('chrome://mochitests/content/browser/tools/profiler/tests/browser/value_summary_reader.mjs'); 'chrome://mochitests/content/chrome/dom/network/tests/tcpsocket_test.sys.mjs': typeof import('chrome://mochitests/content/chrome/dom/network/tests/tcpsocket_test.sys.mjs'); 'chrome://mochitests/content/chrome/dom/url/tests/file_worker_url.sys.mjs': typeof import('chrome://mochitests/content/chrome/dom/url/tests/file_worker_url.sys.mjs'); 'chrome://mochitests/content/chrome/dom/url/tests/test_bug883784.sys.mjs': typeof import('chrome://mochitests/content/chrome/dom/url/tests/test_bug883784.sys.mjs'); @@ -99,6 +99,7 @@ export interface Modules { 'chrome://remote/content/shared/Format.sys.mjs': typeof import('chrome://remote/content/shared/Format.sys.mjs'); 'chrome://remote/content/shared/Log.sys.mjs': typeof import('chrome://remote/content/shared/Log.sys.mjs'); 'chrome://remote/content/shared/MobileTabBrowser.sys.mjs': typeof import('chrome://remote/content/shared/MobileTabBrowser.sys.mjs'); + 'chrome://remote/content/shared/NavigableManager.sys.mjs': typeof import('chrome://remote/content/shared/NavigableManager.sys.mjs'); 'chrome://remote/content/shared/Navigate.sys.mjs': typeof import('chrome://remote/content/shared/Navigate.sys.mjs'); 'chrome://remote/content/shared/NavigationManager.sys.mjs': typeof import('chrome://remote/content/shared/NavigationManager.sys.mjs'); 'chrome://remote/content/shared/NetworkCacheManager.sys.mjs': typeof import('chrome://remote/content/shared/NetworkCacheManager.sys.mjs'); @@ -254,7 +255,6 @@ export interface Modules { 'moz-src:///browser/components/urlbar/MerinoClient.sys.mjs': typeof import('moz-src:///browser/components/urlbar/MerinoClient.sys.mjs'); 'moz-src:///browser/components/urlbar/QuickActionsLoaderDefault.sys.mjs': typeof import('moz-src:///browser/components/urlbar/QuickActionsLoaderDefault.sys.mjs'); 'moz-src:///browser/components/urlbar/QuickSuggest.sys.mjs': typeof import('moz-src:///browser/components/urlbar/QuickSuggest.sys.mjs'); - 'moz-src:///browser/components/urlbar/SearchModeSwitcher.sys.mjs': typeof import('moz-src:///browser/components/urlbar/SearchModeSwitcher.sys.mjs'); 'moz-src:///browser/components/urlbar/UrlbarController.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarController.sys.mjs'); 'moz-src:///browser/components/urlbar/UrlbarEventBufferer.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarEventBufferer.sys.mjs'); 'moz-src:///browser/components/urlbar/UrlbarInput.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarInput.sys.mjs'); @@ -280,7 +280,6 @@ export interface Modules { 'moz-src:///browser/components/urlbar/UrlbarSearchUtils.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarSearchUtils.sys.mjs'); 'moz-src:///browser/components/urlbar/UrlbarTokenizer.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarTokenizer.sys.mjs'); 'moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs'); - 'moz-src:///browser/components/urlbar/UrlbarValueFormatter.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarValueFormatter.sys.mjs'); 'moz-src:///browser/components/urlbar/UrlbarView.sys.mjs': typeof import('moz-src:///browser/components/urlbar/UrlbarView.sys.mjs'); 'moz-src:///browser/components/urlbar/private/AmpSuggestions.sys.mjs': typeof import('moz-src:///browser/components/urlbar/private/AmpSuggestions.sys.mjs'); 'moz-src:///browser/components/urlbar/private/GeolocationUtils.sys.mjs': typeof import('moz-src:///browser/components/urlbar/private/GeolocationUtils.sys.mjs'); @@ -301,6 +300,7 @@ export interface Modules { 'moz-src:///toolkit/components/doh/DoHController.sys.mjs': typeof import('moz-src:///toolkit/components/doh/DoHController.sys.mjs'); 'moz-src:///toolkit/components/doh/DoHHeuristics.sys.mjs': typeof import('moz-src:///toolkit/components/doh/DoHHeuristics.sys.mjs'); 'moz-src:///toolkit/components/doh/TRRPerformance.sys.mjs': typeof import('moz-src:///toolkit/components/doh/TRRPerformance.sys.mjs'); + 'moz-src:///toolkit/components/pageextractor/DOMExtractor.sys.mjs': typeof import('moz-src:///toolkit/components/pageextractor/DOMExtractor.sys.mjs'); 'moz-src:///toolkit/components/reader/AboutReader.sys.mjs': typeof import('moz-src:///toolkit/components/reader/AboutReader.sys.mjs'); 'moz-src:///toolkit/components/reader/ReaderMode.sys.mjs': typeof import('moz-src:///toolkit/components/reader/ReaderMode.sys.mjs'); 'moz-src:///toolkit/components/reader/ReaderWorker.sys.mjs': typeof import('moz-src:///toolkit/components/reader/ReaderWorker.sys.mjs'); @@ -325,6 +325,7 @@ export interface Modules { 'moz-src:///toolkit/components/uniffi-bindgen-gecko-js/components/generated/RustWebextstorage.sys.mjs': typeof import('moz-src:///toolkit/components/uniffi-bindgen-gecko-js/components/generated/RustWebextstorage.sys.mjs'); 'moz-src:///toolkit/components/uniffi-bindgen-gecko-js/tests/generated/RustUniffiBindingsTests.sys.mjs': typeof import('moz-src:///toolkit/components/uniffi-bindgen-gecko-js/tests/generated/RustUniffiBindingsTests.sys.mjs'); 'moz-src:///toolkit/components/uniffi-bindgen-gecko-js/tests/generated/RustUniffiBindingsTestsExternalTypes.sys.mjs': typeof import('moz-src:///toolkit/components/uniffi-bindgen-gecko-js/tests/generated/RustUniffiBindingsTestsExternalTypes.sys.mjs'); + 'moz-src:///toolkit/modules/PrefUtils.sys.mjs': typeof import('moz-src:///toolkit/modules/PrefUtils.sys.mjs'); 'moz-src:///toolkit/profile/ProfilesDatastoreService.sys.mjs': typeof import('moz-src:///toolkit/profile/ProfilesDatastoreService.sys.mjs'); 'resource:///actors/AboutLoginsParent.sys.mjs': typeof import('resource:///actors/AboutLoginsParent.sys.mjs'); 'resource:///actors/AboutNewTabParent.sys.mjs': typeof import('resource:///actors/AboutNewTabParent.sys.mjs'); @@ -462,9 +463,14 @@ export interface Modules { 'resource:///modules/firefox-view-tabs-setup-manager.sys.mjs': typeof import('resource:///modules/firefox-view-tabs-setup-manager.sys.mjs'); 'resource:///modules/ipprotection/GuardianClient.sys.mjs': typeof import('resource:///modules/ipprotection/GuardianClient.sys.mjs'); 'resource:///modules/ipprotection/IPPChannelFilter.sys.mjs': typeof import('resource:///modules/ipprotection/IPPChannelFilter.sys.mjs'); + 'resource:///modules/ipprotection/IPPExceptionsManager.sys.mjs': typeof import('resource:///modules/ipprotection/IPPExceptionsManager.sys.mjs'); 'resource:///modules/ipprotection/IPPNetworkErrorObserver.sys.mjs': typeof import('resource:///modules/ipprotection/IPPNetworkErrorObserver.sys.mjs'); + 'resource:///modules/ipprotection/IPPNimbusHelper.sys.mjs': typeof import('resource:///modules/ipprotection/IPPNimbusHelper.sys.mjs'); 'resource:///modules/ipprotection/IPPProxyManager.sys.mjs': typeof import('resource:///modules/ipprotection/IPPProxyManager.sys.mjs'); + 'resource:///modules/ipprotection/IPPSignInWatcher.sys.mjs': typeof import('resource:///modules/ipprotection/IPPSignInWatcher.sys.mjs'); + 'resource:///modules/ipprotection/IPPStartupCache.sys.mjs': typeof import('resource:///modules/ipprotection/IPPStartupCache.sys.mjs'); 'resource:///modules/ipprotection/IPProtection.sys.mjs': typeof import('resource:///modules/ipprotection/IPProtection.sys.mjs'); + 'resource:///modules/ipprotection/IPProtectionHelpers.sys.mjs': typeof import('resource:///modules/ipprotection/IPProtectionHelpers.sys.mjs'); 'resource:///modules/ipprotection/IPProtectionPanel.sys.mjs': typeof import('resource:///modules/ipprotection/IPProtectionPanel.sys.mjs'); 'resource:///modules/ipprotection/IPProtectionServerlist.sys.mjs': typeof import('resource:///modules/ipprotection/IPProtectionServerlist.sys.mjs'); 'resource:///modules/ipprotection/IPProtectionService.sys.mjs': typeof import('resource:///modules/ipprotection/IPProtectionService.sys.mjs'); @@ -538,6 +544,7 @@ export interface Modules { 'resource://devtools/client/shared/components/reps/reps/rep.mjs': typeof import('resource://devtools/client/shared/components/reps/reps/rep.mjs'); 'resource://devtools/client/shared/components/reps/reps/string.mjs': typeof import('resource://devtools/client/shared/components/reps/reps/string.mjs'); 'resource://devtools/client/shared/components/reps/reps/text-node.mjs': typeof import('resource://devtools/client/shared/components/reps/reps/text-node.mjs'); + 'resource://devtools/client/shared/components/reps/reps/value-summary-reader.mjs': typeof import('resource://devtools/client/shared/components/reps/reps/value-summary-reader.mjs'); 'resource://devtools/client/shared/components/tabs/Tabs.mjs': typeof import('resource://devtools/client/shared/components/tabs/Tabs.mjs'); 'resource://devtools/client/shared/components/tree/LabelCell.mjs': typeof import('resource://devtools/client/shared/components/tree/LabelCell.mjs'); 'resource://devtools/client/shared/components/tree/ObjectProvider.mjs': typeof import('resource://devtools/client/shared/components/tree/ObjectProvider.mjs'); @@ -888,6 +895,7 @@ export interface Modules { 'resource://gre/modules/UpdateTimerManager.sys.mjs': typeof import('resource://gre/modules/UpdateTimerManager.sys.mjs'); 'resource://gre/modules/UpdateUtils.sys.mjs': typeof import('resource://gre/modules/UpdateUtils.sys.mjs'); 'resource://gre/modules/UrlClassifierRemoteSettingsService.sys.mjs': typeof import('resource://gre/modules/UrlClassifierRemoteSettingsService.sys.mjs'); + 'resource://gre/modules/UrlUtils.sys.mjs': typeof import('resource://gre/modules/UrlUtils.sys.mjs'); 'resource://gre/modules/UsageReporting.sys.mjs': typeof import('resource://gre/modules/UsageReporting.sys.mjs'); 'resource://gre/modules/WPTEventsParent.sys.mjs': typeof import('resource://gre/modules/WPTEventsParent.sys.mjs'); 'resource://gre/modules/WebAuthnFeature.sys.mjs': typeof import('resource://gre/modules/WebAuthnFeature.sys.mjs'); @@ -949,6 +957,7 @@ export interface Modules { 'resource://gre/modules/shared/AddressMetaDataExtension.sys.mjs': typeof import('resource://gre/modules/shared/AddressMetaDataExtension.sys.mjs'); 'resource://gre/modules/shared/AddressMetaDataLoader.sys.mjs': typeof import('resource://gre/modules/shared/AddressMetaDataLoader.sys.mjs'); 'resource://gre/modules/shared/AddressParser.sys.mjs': typeof import('resource://gre/modules/shared/AddressParser.sys.mjs'); + 'resource://gre/modules/shared/AddressRecord.sys.mjs': typeof import('resource://gre/modules/shared/AddressRecord.sys.mjs'); 'resource://gre/modules/shared/AutofillFormFactory.sys.mjs': typeof import('resource://gre/modules/shared/AutofillFormFactory.sys.mjs'); 'resource://gre/modules/shared/AutofillTelemetry.sys.mjs': typeof import('resource://gre/modules/shared/AutofillTelemetry.sys.mjs'); 'resource://gre/modules/shared/CreditCardRecord.sys.mjs': typeof import('resource://gre/modules/shared/CreditCardRecord.sys.mjs'); @@ -962,10 +971,12 @@ export interface Modules { 'resource://gre/modules/shared/FormStateManager.sys.mjs': typeof import('resource://gre/modules/shared/FormStateManager.sys.mjs'); 'resource://gre/modules/shared/LabelUtils.sys.mjs': typeof import('resource://gre/modules/shared/LabelUtils.sys.mjs'); 'resource://gre/modules/shared/LoginFormFactory.sys.mjs': typeof import('resource://gre/modules/shared/LoginFormFactory.sys.mjs'); + 'resource://gre/modules/shared/NewPasswordModel.sys.mjs': typeof import('resource://gre/modules/shared/NewPasswordModel.sys.mjs'); 'resource://gre/modules/shared/PasswordGenerator.sys.mjs': typeof import('resource://gre/modules/shared/PasswordGenerator.sys.mjs'); 'resource://gre/modules/shared/PasswordRulesParser.sys.mjs': typeof import('resource://gre/modules/shared/PasswordRulesParser.sys.mjs'); 'resource://gre/modules/shared/PhoneNumber.sys.mjs': typeof import('resource://gre/modules/shared/PhoneNumber.sys.mjs'); 'resource://gre/modules/shared/PhoneNumberNormalizer.sys.mjs': typeof import('resource://gre/modules/shared/PhoneNumberNormalizer.sys.mjs'); + 'resource://gre/modules/storage-rust.sys.mjs': typeof import('resource://gre/modules/storage-rust.sys.mjs'); 'resource://gre/modules/subprocess/subprocess_unix.sys.mjs': typeof import('resource://gre/modules/subprocess/subprocess_unix.sys.mjs'); 'resource://gre/modules/subprocess/subprocess_win.sys.mjs': typeof import('resource://gre/modules/subprocess/subprocess_win.sys.mjs'); 'resource://gre/modules/third_party/jsesc/jsesc.mjs': typeof import('resource://gre/modules/third_party/jsesc/jsesc.mjs'); @@ -993,6 +1004,8 @@ export interface Modules { 'resource://newtab/lib/InferredModel/FeatureModel.sys.mjs': typeof import('resource://newtab/lib/InferredModel/FeatureModel.sys.mjs'); 'resource://newtab/lib/InferredModel/GreedyContentRanker.mjs': typeof import('resource://newtab/lib/InferredModel/GreedyContentRanker.mjs'); 'resource://newtab/lib/InferredPersonalizationFeed.sys.mjs': typeof import('resource://newtab/lib/InferredPersonalizationFeed.sys.mjs'); + 'resource://newtab/lib/NewTabAttributionFeed.sys.mjs': typeof import('resource://newtab/lib/NewTabAttributionFeed.sys.mjs'); + 'resource://newtab/lib/NewTabAttributionService.sys.mjs': typeof import('resource://newtab/lib/NewTabAttributionService.sys.mjs'); 'resource://newtab/lib/NewTabContentPing.sys.mjs': typeof import('resource://newtab/lib/NewTabContentPing.sys.mjs'); 'resource://newtab/lib/NewTabGleanUtils.sys.mjs': typeof import('resource://newtab/lib/NewTabGleanUtils.sys.mjs'); 'resource://newtab/lib/NewTabInit.sys.mjs': typeof import('resource://newtab/lib/NewTabInit.sys.mjs'); @@ -1057,7 +1070,6 @@ export interface Modules { 'resource://normandy/lib/NormandyAddonManager.sys.mjs': typeof import('resource://normandy/lib/NormandyAddonManager.sys.mjs'); 'resource://normandy/lib/NormandyApi.sys.mjs': typeof import('resource://normandy/lib/NormandyApi.sys.mjs'); 'resource://normandy/lib/NormandyUtils.sys.mjs': typeof import('resource://normandy/lib/NormandyUtils.sys.mjs'); - 'resource://normandy/lib/PrefUtils.sys.mjs': typeof import('resource://normandy/lib/PrefUtils.sys.mjs'); 'resource://normandy/lib/PreferenceExperiments.sys.mjs': typeof import('resource://normandy/lib/PreferenceExperiments.sys.mjs'); 'resource://normandy/lib/PreferenceRollouts.sys.mjs': typeof import('resource://normandy/lib/PreferenceRollouts.sys.mjs'); 'resource://normandy/lib/RecipeRunner.sys.mjs': typeof import('resource://normandy/lib/RecipeRunner.sys.mjs'); diff --git a/src/zen/@types/lib.gecko.nsresult.d.ts b/src/zen/@types/lib.gecko.nsresult.d.ts index 615709a0d..450bac34b 100644 --- a/src/zen/@types/lib.gecko.nsresult.d.ts +++ b/src/zen/@types/lib.gecko.nsresult.d.ts @@ -570,6 +570,20 @@ interface nsIXPCComponents_Results { /** The PKCS#7 information is not signed. */ NS_ERROR_CMS_VERIFY_NOT_SIGNED: 0x805a0400; + // Codes related to pdf signature verification + + /** The PKCS#7 parsing has failed. */ + NS_ERROR_CMS_VERIFY_ERROR_PROCESSING: 0x805a0408; + + /** The PKCS#7 certificate verification was cancelled. */ + NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED: 0x805a040f; + + /** Invalid signature. */ + NS_ERROR_CMS_VERIFY_BAD_SIGNATURE: 0x805a0409; + + /** No certificate was found. */ + NS_ERROR_CMS_VERIFY_NOCERT: 0x805a0404; + // Codes related to signed manifests /** The signed app manifest or signature file is invalid. */ diff --git a/src/zen/@types/lib.gecko.tweaks.d.ts b/src/zen/@types/lib.gecko.tweaks.d.ts index 3f3392bf2..1169d5521 100644 --- a/src/zen/@types/lib.gecko.tweaks.d.ts +++ b/src/zen/@types/lib.gecko.tweaks.d.ts @@ -7,7 +7,7 @@ // More specific types for parent process browsing contexts. interface CanonicalBrowsingContext extends LoadContextMixin { - embedderElement: XULBrowserElement; + embedderElement: MozBrowser; currentWindowContext: WindowGlobalParent; parent: CanonicalBrowsingContext; parentWindowContext: WindowGlobalParent; @@ -29,7 +29,7 @@ interface ChromeWindow extends Window { } interface Document { - createXULElement(name: 'browser'): XULBrowserElement; + createXULElement(name: 'browser'): MozBrowser; } type nsIGleanPingNoReason = { @@ -127,15 +127,6 @@ interface WindowGlobalParent extends WindowContext { readonly browsingContext: CanonicalBrowsingContext; } -// Hand-crafted artisanal types. -interface XULBrowserElement extends XULFrameElement, FrameLoader { - currentURI: nsIURI; - documentURI: nsIURI | null; - docShellIsActive: boolean; - isRemoteBrowser: boolean; - remoteType: string; -} - // https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1736 interface Localization { formatValuesSync(aKeys: L10nKey[]): (string | null)[]; diff --git a/src/zen/@types/lib.gecko.xpcom.d.ts b/src/zen/@types/lib.gecko.xpcom.d.ts index 17b7fa253..84facb30b 100644 --- a/src/zen/@types/lib.gecko.xpcom.d.ts +++ b/src/zen/@types/lib.gecko.xpcom.d.ts @@ -467,6 +467,8 @@ declare global { readonly RELATION_ERRORMSG?: 23; readonly RELATION_ERRORMSG_FOR?: 24; readonly RELATION_LINKS_TO?: 25; + readonly RELATION_ACTION?: 32; + readonly RELATION_ACTION_FOR?: 33; readonly relationType: u32; readonly targetsCount: u32; @@ -1736,6 +1738,38 @@ declare global { RunPluginCrashCallbacks(pluginId: u32, pluginName: string): void; } + // https://searchfox.org/mozilla-central/source/toolkit/components/dap/nsIDAPTelemetry.idl + + interface nsIDAPTelemetry extends nsISupports { + GetReportPrioSum( + leaderHpkeConfig: u8[], + helperHpkeConfig: u8[], + measurement: u32, + task_id: u8[], + bits: u32, + time_precision: u64, + report: OutParam + ): void; + GetReportPrioSumVec( + leaderHpkeConfig: u8[], + helperHpkeConfig: u8[], + measurement: u32[], + task_id: u8[], + bits: u32, + time_precision: u64, + report: OutParam + ): void; + GetReportPrioHistogram( + leaderHpkeConfig: u8[], + helperHpkeConfig: u8[], + measurement: u32, + task_id: u8[], + length: u32, + time_precision: u64, + report: OutParam + ): void; + } + // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShell.idl } // global @@ -3285,6 +3319,7 @@ declare global { setAsyncZoom(aRootElement: Element, aValue: float): void; flushApzRepaints(aElement?: Element): boolean; disableApzForElement(aElement: Element): void; + isApzDisabledForElement(aElement: Element): boolean; zoomToFocusedInput(): void; computeAnimationDistance( element: Element, @@ -6050,7 +6085,8 @@ declare global { height: u32, stride: u32, inputFormat: u32, - outputOptions: string + outputOptions: string, + randomizationKey: string ): void; startImageEncode(width: u32, height: u32, inputFormat: u32, outputOptions: string): void; addImageFrame( @@ -6567,6 +6603,11 @@ declare global { availableLocales: string[]; readonly isAppLocaleRTL: boolean; readonly packagedLocales: string[]; + readonly ellipsis: string; + readonly alwaysAppendAccesskeys: boolean; + readonly insertSeparatorBeforeAccesskeys: boolean; + readonly acceptLanguages: string; + readonly fontLanguageGroup: string; } // https://searchfox.org/mozilla-central/source/intl/locale/mozIOSPreferences.idl @@ -8451,7 +8492,6 @@ declare global { aHost: string, aPort: i32, aPathTemplate: string, - aAlpn: string, aProxyAuthorizationHeader: string, aConnectionIsolationKey: string, aFlags: u32, @@ -8521,7 +8561,6 @@ declare global { readonly proxyAuthorizationHeader: string; readonly connectionIsolationKey: string; pathTemplate: string; - alpn: string; } // https://searchfox.org/mozilla-central/source/netwerk/base/nsIRandomGenerator.idl @@ -9277,12 +9316,14 @@ declare global { readonly CONTENT_TYPE_MEDIA?: 4; readonly CONTENT_TYPE_STYLESHEET?: 5; readonly CONTENT_TYPE_WASM?: 6; - readonly CONTENT_TYPE_LAST?: 7; + readonly CONTENT_TYPE_DICTIONARY?: 7; + readonly CONTENT_TYPE_LAST?: 8; readonly NO_EXPIRATION_TIME?: 4294967295; readonly key: string; readonly cacheEntryId: u64; readonly persistent: boolean; + readonly readyOrRevalidating: boolean; readonly fetchCount: u32; readonly lastFetched: u32; readonly lastModified: u32; @@ -9302,6 +9343,7 @@ declare global { asyncDoom(listener: nsICacheEntryDoomCallback): void; getMetaDataElement(key: string): string; setMetaDataElement(key: string, value: string): void; + readonly isEmpty: boolean; visitMetaData(visitor: nsICacheEntryMetaDataVisitor): void; metaDataReady(): void; setValid(): void; @@ -9314,6 +9356,7 @@ declare global { openAlternativeOutputStream(type: string, predictedSize: i64): nsIAsyncOutputStream; openAlternativeInputStream(type: string): nsIInputStream; readonly loadContextInfo: nsILoadContextInfo; + setBypassWriterLock(aBypass: boolean): void; } interface nsICacheEntryMetaDataVisitor extends nsISupports { @@ -9358,6 +9401,7 @@ declare global { readonly CHECK_MULTITHREADED?: 16; readonly OPEN_SECRETLY?: 32; readonly OPEN_INTERCEPTED?: 64; + readonly OPEN_COMPLETE_ONLY?: 128; asyncOpenURI( aURI: nsIURI, @@ -9365,6 +9409,12 @@ declare global { aFlags: u32, aCallback: nsICacheEntryOpenCallback ): void; + asyncOpenURIString( + aURI: string, + aIdExtension: string, + aFlags: u32, + aCallback: nsICacheEntryOpenCallback + ): void; openTruncate(aURI: nsIURI, aIdExtension: string): nsICacheEntry; exists(aURI: nsIURI, aIdExtension: string): boolean; getCacheIndexEntryAttrs( @@ -9392,6 +9442,8 @@ declare global { clearBaseDomain(aBaseDomain: string): void; clearOriginsByOriginAttributes(aOriginAttributes: string): void; clear(): void; + clearOriginDictionary(aURI: nsIURI): void; + clearAllOriginDictionaries(): void; purgeFromMemory(aWhat: u32): void; readonly ioTarget: nsIEventTarget; asyncGetDiskConsumption(aObserver: nsICacheStorageConsumptionObserver): void; @@ -9467,6 +9519,7 @@ declare global { readonly isSession: boolean; readonly isHttpOnly: boolean; readonly creationTime: i64; + readonly updateTime: i64; readonly lastAccessed: i64; readonly sameSite: i32; readonly schemeMap: nsICookie.schemeType; @@ -10163,7 +10216,6 @@ declare global { visitOriginalResponseHeaders(aVisitor: nsIHttpHeaderVisitor): void; isNoStoreResponse(): boolean; isNoCacheResponse(): boolean; - isPrivateResponse(): boolean; redirectTo(aTargetURI: nsIURI): void; upgradeToSecure(): void; topLevelContentWindowId: u64; @@ -11395,7 +11447,7 @@ declare global { readonly securityState: u32; readonly errorCode: i32; readonly errorCodeString: string; - readonly failedCertChain: nsIX509Cert[]; + readonly handshakeCertificates: nsIX509Cert[]; readonly serverCert: nsIX509Cert; readonly succeededCertChain: nsIX509Cert[]; readonly cipherName: string; @@ -11481,6 +11533,12 @@ declare global { ): void; }>; + interface nsIPDFVerificationResult extends nsISupports { + readonly signatureResult: nsresult; + readonly certificateResult: nsresult; + readonly signerCertificate: nsIX509Cert; + } + type nsICertVerificationCallback = Callable<{ verifyCertFinished( aPRErrorCode: i32, @@ -11500,12 +11558,30 @@ declare enum nsIX509CertDB_VerifyUsage { verifyUsageEmailCA = 7, } +declare enum nsIX509CertDB_QWACType { + OneQWAC = 0, + TwoQWAC = 1, +} + +declare enum nsIX509CertDB_PDFSignatureAlgorithm { + ADBE_PKCS7_DETACHED = 0, + ADBE_PKCS7_SHA1 = 1, +} + declare global { namespace nsIX509CertDB { type VerifyUsage = nsIX509CertDB_VerifyUsage; + type QWACType = nsIX509CertDB_QWACType; + type PDFSignatureAlgorithm = nsIX509CertDB_PDFSignatureAlgorithm; } - interface nsIX509CertDB extends nsISupports, Enums { + interface nsIX509CertDB + extends nsISupports, + Enums< + typeof nsIX509CertDB_VerifyUsage & + typeof nsIX509CertDB_QWACType & + typeof nsIX509CertDB_PDFSignatureAlgorithm + > { readonly UNTRUSTED?: 0; readonly TRUSTED_SSL?: 1; readonly TRUSTED_EMAIL?: 2; @@ -11557,6 +11633,17 @@ declare global { getCerts(): nsIX509Cert[]; asPKCS7Blob(certList: nsIX509Cert[]): string; getAndroidCertificateFromAlias(alias: string): nsIX509Cert; + asyncVerifyQWAC( + type: nsIX509CertDB.QWACType, + cert: nsIX509Cert, + hostname: string, + collectedCerts: nsIX509Cert[] + ): Promise; + asyncVerifyPKCS7Object( + pkcs7: u8[], + data: u8[][], + signatureType: nsIX509CertDB.PDFSignatureAlgorithm + ): Promise; } // https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509CertValidity.idl @@ -11603,26 +11690,39 @@ declare global { } // https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIPlacesAutoComplete.idl +} // global - interface mozIPlacesAutoComplete extends nsISupports { - readonly MATCH_ANYWHERE?: 0; - readonly MATCH_BOUNDARY_ANYWHERE?: 1; - readonly MATCH_BOUNDARY?: 2; - readonly MATCH_BEGINNING?: 3; - readonly MATCH_ANYWHERE_UNMODIFIED?: 4; - readonly MATCH_BEGINNING_CASE_SENSITIVE?: 5; - readonly BEHAVIOR_HISTORY?: 1; - readonly BEHAVIOR_BOOKMARK?: 2; - readonly BEHAVIOR_TAG?: 4; - readonly BEHAVIOR_TITLE?: 8; - readonly BEHAVIOR_URL?: 16; - readonly BEHAVIOR_TYPED?: 32; - readonly BEHAVIOR_JAVASCRIPT?: 64; - readonly BEHAVIOR_OPENPAGE?: 128; - readonly BEHAVIOR_RESTRICT?: 256; - readonly BEHAVIOR_SEARCH?: 512; +declare enum mozIPlacesAutoComplete_MatchBehaviors { + MATCH_ANYWHERE = 0, + MATCH_BOUNDARY = 2, + MATCH_ANYWHERE_UNMODIFIED = 4, +} + +declare enum mozIPlacesAutoComplete_SearchBehaviors { + BEHAVIOR_HISTORY = 1, + BEHAVIOR_BOOKMARK = 2, + BEHAVIOR_TAG = 4, + BEHAVIOR_TITLE = 8, + BEHAVIOR_URL = 16, + BEHAVIOR_TYPED = 32, + BEHAVIOR_JAVASCRIPT = 64, + BEHAVIOR_OPENPAGE = 128, + BEHAVIOR_RESTRICT = 256, + BEHAVIOR_SEARCH = 512, +} + +declare global { + namespace mozIPlacesAutoComplete { + type MatchBehaviors = mozIPlacesAutoComplete_MatchBehaviors; + type SearchBehaviors = mozIPlacesAutoComplete_SearchBehaviors; } + interface mozIPlacesAutoComplete + extends nsISupports, + Enums< + typeof mozIPlacesAutoComplete_MatchBehaviors & typeof mozIPlacesAutoComplete_SearchBehaviors + > {} + // https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIPlacesPendingOperation.idl interface mozIPlacesPendingOperation extends nsISupports { @@ -12284,7 +12384,7 @@ declare global { // https://searchfox.org/mozilla-central/source/toolkit/components/satchel/nsIFormFillController.idl interface nsIFormFillController extends nsISupports { - readonly focusedElement: Element; + controlledElement: Element; readonly passwordPopupAutomaticallyOpened: boolean; markAsAutoCompletableField(aElement: Element): void; showPopup(): void; @@ -12452,6 +12552,8 @@ declare global { GetChildAt(aIndex: i32): nsISHEntry; readonly bfcacheID: u64; wireframe: any; + navigationKey: nsID; + navigationId: nsID; } // https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHistory.idl @@ -12892,38 +12994,6 @@ declare global { gatherMemory(): Promise; } - // https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl - - interface nsIDAPTelemetry extends nsISupports { - GetReportPrioSum( - leaderHpkeConfig: u8[], - helperHpkeConfig: u8[], - measurement: u32, - task_id: u8[], - bits: u32, - time_precision: u64, - report: OutParam - ): void; - GetReportPrioSumVec( - leaderHpkeConfig: u8[], - helperHpkeConfig: u8[], - measurement: u32[], - task_id: u8[], - bits: u32, - time_precision: u64, - report: OutParam - ): void; - GetReportPrioHistogram( - leaderHpkeConfig: u8[], - helperHpkeConfig: u8[], - measurement: u32, - task_id: u8[], - length: u32, - time_precision: u64, - report: OutParam - ): void; - } - // https://searchfox.org/mozilla-central/source/netwerk/test/httpserver/nsIHttpServer.idl interface nsIHttpServer extends nsISupports { @@ -14162,6 +14232,7 @@ declare global { readonly DOWNLOAD_SUCCESS?: 1; readonly DOWNLOAD_FAILURE_CANNOT_RESUME_IN_BACKGROUND?: 2; readonly DOWNLOAD_FAILURE_GENERIC?: 3; + readonly DOWNLOAD_FAILURE_CANNOT_WRITE_STATE?: 4; readonly STATE_IDLE?: 1; readonly STATE_DOWNLOADING?: 2; readonly STATE_STAGING?: 4; @@ -15598,13 +15669,11 @@ declare global { interface nsIGfxInfo extends nsISupports, Enums { - readonly D2DEnabled: boolean; readonly DWriteEnabled: boolean; readonly EmbeddedInFirefoxReality: boolean; readonly AzureCanvasBackend: string; readonly AzureContentBackend: string; readonly usingGPUProcess: boolean; - readonly usingRemoteCanvas: boolean; readonly usingAcceleratedCanvas: boolean; readonly hasBattery: boolean; readonly DWriteVersion: string; @@ -18392,6 +18461,7 @@ declare global { nsIEventListenerService: nsJSIID; mozIGeckoMediaPluginChromeService: nsJSIID; mozIGeckoMediaPluginService: nsJSIID; + nsIDAPTelemetry: nsJSIID; nsIDocShell: nsJSIID< nsIDocShell, typeof nsIDocShell_DocShellEnumeratorDirection & @@ -19064,15 +19134,24 @@ declare global { typeof nsIAppSignatureInfo_SignatureAlgorithm >; nsIOpenSignedAppFileCallback: nsJSIID; + nsIPDFVerificationResult: nsJSIID; nsICertVerificationCallback: nsJSIID; - nsIX509CertDB: nsJSIID; + nsIX509CertDB: nsJSIID< + nsIX509CertDB, + typeof nsIX509CertDB_VerifyUsage & + typeof nsIX509CertDB_QWACType & + typeof nsIX509CertDB_PDFSignatureAlgorithm + >; nsIX509CertValidity: nsJSIID; mozIVisitInfo: nsJSIID; mozIPlaceInfo: nsJSIID; mozIVisitInfoCallback: nsJSIID; mozIVisitedStatusCallback: nsJSIID; mozIAsyncHistory: nsJSIID; - mozIPlacesAutoComplete: nsJSIID; + mozIPlacesAutoComplete: nsJSIID< + mozIPlacesAutoComplete, + typeof mozIPlacesAutoComplete_MatchBehaviors & typeof mozIPlacesAutoComplete_SearchBehaviors + >; mozIPlacesPendingOperation: nsJSIID; mozISyncedBookmarksMirrorProgressListener: nsJSIID; mozISyncedBookmarksMirrorCallback: nsJSIID; @@ -19157,7 +19236,6 @@ declare global { mozIStorageValueArray: nsJSIID; nsIFetchTelemetryDataCallback: nsJSIID; nsITelemetry: nsJSIID; - nsIDAPTelemetry: nsJSIID; nsIHttpServer: nsJSIID; nsIHttpServerStoppedCallback: nsJSIID; nsIHttpServerIdentity: nsJSIID; diff --git a/src/zen/mods/nsZenModsBackend.cpp b/src/zen/mods/nsZenModsBackend.cpp index 346adb7a5..7280d00a8 100644 --- a/src/zen/mods/nsZenModsBackend.cpp +++ b/src/zen/mods/nsZenModsBackend.cpp @@ -29,10 +29,10 @@ static auto GetZenStyleSheetCache() -> ZenStyleSheetCache* { NS_IMPL_ISUPPORTS(nsZenModsBackend, nsIZenModsBackend) nsZenModsBackend::nsZenModsBackend() { - mozilla::Unused << CheckEnabled(); + (void)CheckEnabled(); } -auto nsZenModsBackend::CheckEnabled() -> bool { +auto nsZenModsBackend::CheckEnabled() -> void { // Check if the mods backend is enabled based on the preference. nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); @@ -42,7 +42,6 @@ auto nsZenModsBackend::CheckEnabled() -> bool { } mEnabled = !inSafeMode && !mozilla::Preferences::GetBool("zen.themes.disable-all", false); - return mEnabled; } auto nsZenModsBackend::RebuildModsStyles(const nsACString& aContents) -> nsresult { diff --git a/src/zen/mods/nsZenModsBackend.h b/src/zen/mods/nsZenModsBackend.h index 21ffbf9f4..2c5e1fa6b 100644 --- a/src/zen/mods/nsZenModsBackend.h +++ b/src/zen/mods/nsZenModsBackend.h @@ -24,7 +24,7 @@ class nsZenModsBackend final : public nsIZenModsBackend { /** * @brief Check for the preference and see if the app is on safe mode. */ - auto CheckEnabled() -> bool; + auto CheckEnabled() -> void; private: ~nsZenModsBackend() = default; diff --git a/src/zen/toolkit/common/cocoa/ZenShareInternal.mm b/src/zen/toolkit/common/cocoa/ZenShareInternal.mm index ae5bd5577..b59904b69 100644 --- a/src/zen/toolkit/common/cocoa/ZenShareInternal.mm +++ b/src/zen/toolkit/common/cocoa/ZenShareInternal.mm @@ -50,7 +50,6 @@ auto nsZenNativeShareInternal::ShowNativeDialog(nsCOMPtr& aW if (aUrl) { nsresult rv = aUrl->GetSpec(pageUrlAsStringTemp); MOZ_ASSERT(NS_SUCCEEDED(rv)); - mozilla::Unused << rv; } else { pageUrlAsStringTemp.SetIsVoid(true); } diff --git a/src/zen/toolkit/common/windows/ZenShareInternal.cpp b/src/zen/toolkit/common/windows/ZenShareInternal.cpp index 15b721585..3d7248ac4 100644 --- a/src/zen/toolkit/common/windows/ZenShareInternal.cpp +++ b/src/zen/toolkit/common/windows/ZenShareInternal.cpp @@ -27,7 +27,6 @@ auto nsZenNativeShareInternal::ShowNativeDialog( if (aUrl) { nsresult rv = aUrl->GetSpec(urlString); MOZ_ASSERT(NS_SUCCEEDED(rv)); - mozilla::Unused << rv; } else { urlString.SetIsVoid(true); } diff --git a/src/zen/urlbar/ZenUBActionsProvider.sys.mjs b/src/zen/urlbar/ZenUBActionsProvider.sys.mjs index 792bb4850..66de639a9 100644 --- a/src/zen/urlbar/ZenUBActionsProvider.sys.mjs +++ b/src/zen/urlbar/ZenUBActionsProvider.sys.mjs @@ -22,11 +22,11 @@ const MINIMUM_PREFIXED_QUERY_SCORE = 30; ChromeUtils.defineESModuleGetters(lazy, { UrlbarResult: 'moz-src:///browser/components/urlbar/UrlbarResult.sys.mjs', - UrlbarTokenizer: 'moz-src:///browser/components/urlbar/UrlbarTokenizer.sys.mjs', QueryScorer: 'moz-src:///browser/components/urlbar/UrlbarProviderInterventions.sys.mjs', BrowserWindowTracker: 'resource:///modules/BrowserWindowTracker.sys.mjs', AddonManager: 'resource://gre/modules/AddonManager.sys.mjs', zenUrlbarResultsLearner: 'resource:///modules/ZenUBResultsLearner.sys.mjs', + UrlUtils: 'resource://gre/modules/UrlUtils.sys.mjs', }); XPCOMUtils.defineLazyPreferenceGetter( @@ -72,7 +72,7 @@ export class ZenUrlbarProviderGlobalActions extends UrlbarProvider { queryContext.searchString && queryContext.searchString.length < UrlbarUtils.MAX_TEXT_LENGTH && queryContext.searchString.length > 2 && - !lazy.UrlbarTokenizer.REGEXP_LIKE_PROTOCOL.test(queryContext.searchString)) + !lazy.UrlUtils.REGEXP_LIKE_PROTOCOL.test(queryContext.searchString)) ); } diff --git a/surfer.json b/surfer.json index 2b561311c..cecf1e613 100644 --- a/surfer.json +++ b/surfer.json @@ -6,7 +6,7 @@ "version": { "product": "firefox", "version": "145.0.2", - "candidate": "145.0.2" + "candidate": "146.0" }, "buildOptions": { "generateBranding": true @@ -53,4 +53,4 @@ "licenseType": "MPL-2.0" }, "updateHostname": "updates.zen-browser.app" -} +} \ No newline at end of file