Firefox 141.0 (#9467)

This commit is contained in:
mr. m
2025-07-15 18:05:46 +02:00
committed by GitHub
parent ff0a25b704
commit def1008e2d
90 changed files with 464 additions and 652 deletions

1
.gitignore vendored
View File

@@ -14,3 +14,4 @@ venv/
win-cross/ win-cross/
!firefox-patches/ !firefox-patches/
.vscode/

View File

@@ -30,7 +30,7 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
### Firefox Versions ### Firefox Versions
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `140.0.4`! 🚀 - [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `140.0.4`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 140.0.4`! - [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 141.0`!
### Contributing ### Contributing

View File

@@ -1 +1 @@
48c1f420b7da724dd6072b6d83bb75b2e219b8cc 0fe7e8080d0be40666204b9ccbd55a0d9d344543

View File

@@ -1,8 +1,8 @@
diff --git a/Cargo.lock b/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock
index f7ebed9b2a71da90c5751cfd5d5f018cc8b73612..96e881c7782198f1e58be2578f167c7079a8191e 100644 index f223ba9af3edd60a42730a606aca2c48bbdddc0c..501cf2de684532203bfb2e96f8add919f3d6e739 100644
--- a/Cargo.lock --- a/Cargo.lock
+++ b/Cargo.lock +++ b/Cargo.lock
@@ -4014,8 +4014,6 @@ dependencies = [ @@ -4049,8 +4049,6 @@ dependencies = [
[[package]] [[package]]
name = "mime_guess" name = "mime_guess"
version = "2.0.4" version = "2.0.4"

View File

@@ -1,8 +1,8 @@
diff --git a/Cargo.toml b/Cargo.toml diff --git a/Cargo.toml b/Cargo.toml
index 8c6b99bc629ec26e01ab3746f2ae46174bfaa0b1..5791c7470923c7c15986089b40357ce80365e942 100644 index d402d783e2bbc30b87b2c59cf02e38b74d0484c1..b718ee7ed0519cac20d2828fee0350b44fc3f45a 100644
--- a/Cargo.toml --- a/Cargo.toml
+++ b/Cargo.toml +++ b/Cargo.toml
@@ -233,6 +233,9 @@ rure = { path = "third_party/rust/rure" } @@ -227,6 +227,9 @@ rure = { path = "third_party/rust/rure" }
# Patch `plist` to work with `indexmap` 2.* # Patch `plist` to work with `indexmap` 2.*
plist = { path = "third_party/rust/plist" } plist = { path = "third_party/rust/plist" }

View File

@@ -1,10 +1,10 @@
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 412e0879bbb0c7e7d1eb842212b064e1c77cab8f..bd23e5f2cd3f9c382f704fd1fcfdbb3edd71a454 100644 index 4050c0090e7fa9e0b3121194f47c7d29d4c394ab..138a17f5907540edbf39867a2ef9e63148e3ffa6 100644
--- a/browser/app/profile/firefox.js --- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js
@@ -3361,3 +3361,5 @@ pref("toolkit.contentRelevancy.log", false); @@ -3397,3 +3397,5 @@ pref("browser.contextual-services.contextId.rust-component.enabled", true);
// rotation altogether.
pref("browser.contextual-services.contextId.rotation-in-days", 0); // Pref to enable the IP protection feature
pref("browser.contextual-services.contextId.rust-component.enabled", false); pref("browser.ipProtection.enabled", false);
+ +
+#include zen-browser.js +#include zen-browser.js

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
index f4d5125d9a1c8f0aef24536ca7d2ef3f133d8a99..cacd7f465e67226de4a366354779c6cb0cbd0b4c 100644 index 061edde0e05e0744ba1aa80df5f9699e264fe69b..cc2b2f04758ee9690429ea6c4aad959d858218e8 100644
--- a/browser/base/content/browser-addons.js --- a/browser/base/content/browser-addons.js
+++ b/browser/base/content/browser-addons.js +++ b/browser/base/content/browser-addons.js
@@ -1057,7 +1057,7 @@ var gXPInstallObserver = { @@ -1057,7 +1057,7 @@ var gXPInstallObserver = {
@@ -46,8 +46,8 @@ index f4d5125d9a1c8f0aef24536ca7d2ef3f133d8a99..cacd7f465e67226de4a366354779c6cb
+ await gZenVerticalTabsManager._preCustomize(); + await gZenVerticalTabsManager._preCustomize();
CustomizableUI.addWidgetToArea(widgetId, newArea, newPosition); CustomizableUI.addWidgetToArea(widgetId, newArea, newPosition);
// addWidgetToArea() will trigger onWidgetAdded or onWidgetMoved as needed,
this.updateAttention(); // and our handlers will call updateAttention() as needed.
+ await gZenVerticalTabsManager._postCustomize(); + await gZenVerticalTabsManager._postCustomize();
}, },

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..dfacd5c40ef14319fe7398452c007f167003a583 100644 index 8e839c497bba9de04948ad8759679b6a6f61a65f..877ec60553fc64fea860de297dc0858eb05bae7f 100644
--- a/browser/base/content/browser.js --- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js +++ b/browser/base/content/browser.js
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, { @@ -29,6 +29,7 @@ ChromeUtils.defineESModuleGetters(this, {
ContextualIdentityService: ContextualIdentityService:
"resource://gre/modules/ContextualIdentityService.sys.mjs", "resource://gre/modules/ContextualIdentityService.sys.mjs",
CustomizableUI: "resource:///modules/CustomizableUI.sys.mjs", CustomizableUI: "resource:///modules/CustomizableUI.sys.mjs",
@@ -10,7 +10,7 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..dfacd5c40ef14319fe7398452c007f16
DevToolsSocketStatus: DevToolsSocketStatus:
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs", "resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs", DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
@@ -2340,6 +2341,10 @@ var XULBrowserWindow = { @@ -2282,6 +2283,10 @@ var XULBrowserWindow = {
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser); AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
TranslationsParent.onLocationChange(gBrowser.selectedBrowser); TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
@@ -21,7 +21,7 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..dfacd5c40ef14319fe7398452c007f16
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser); PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) { if (!gMultiProcessBrowser) {
@@ -4816,7 +4821,7 @@ function switchToTabHavingURI( @@ -4617,7 +4622,7 @@ function switchToTabHavingURI(
ignoreQueryString || replaceQueryString, ignoreQueryString || replaceQueryString,
ignoreFragmentWhenComparing ignoreFragmentWhenComparing
); );
@@ -30,7 +30,7 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..dfacd5c40ef14319fe7398452c007f16
for (let i = 0; i < browsers.length; i++) { for (let i = 0; i < browsers.length; i++) {
let browser = browsers[i]; let browser = browsers[i];
let browserCompare = cleanURL( let browserCompare = cleanURL(
@@ -4859,7 +4864,7 @@ function switchToTabHavingURI( @@ -4660,7 +4665,7 @@ function switchToTabHavingURI(
} }
if (!doAdopt) { if (!doAdopt) {
@@ -39,7 +39,7 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..dfacd5c40ef14319fe7398452c007f16
} }
return true; return true;
@@ -5717,6 +5722,9 @@ var ConfirmationHint = { @@ -5476,6 +5481,9 @@ var ConfirmationHint = {
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl"); MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl"); MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");
document.l10n.setAttributes(this._message, messageId, options.l10nArgs); document.l10n.setAttributes(this._message, messageId, options.l10nArgs);

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 8f8c5536cb6e54300897180ca3f950974c60e930..78076e29faf749b83d6c8e099af6767621f34d58 100644 index 665b048cf149b9a6d0ccc43f8d9199f077b8ada2..d031a99ae5c9c6e69cfd831c7d271d8a8d097dc8 100644
--- a/browser/base/content/browser.xhtml --- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml +++ b/browser/base/content/browser.xhtml
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
@@ -10,7 +10,7 @@ index 8f8c5536cb6e54300897180ca3f950974c60e930..78076e29faf749b83d6c8e099af67676
persist="screenX screenY width height sizemode" persist="screenX screenY width height sizemode"
data-l10n-sync="true"> data-l10n-sync="true">
<head> <head>
@@ -105,8 +106,10 @@ @@ -103,8 +104,10 @@
<title data-l10n-id="browser-main-window-default-title"></title> <title data-l10n-id="browser-main-window-default-title"></title>
@@ -21,7 +21,7 @@ index 8f8c5536cb6e54300897180ca3f950974c60e930..78076e29faf749b83d6c8e099af67676
</head> </head>
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
# All sets except for popupsets (commands, keys, and stringbundles) # All sets except for popupsets (commands, keys, and stringbundles)
@@ -128,9 +131,11 @@ @@ -126,9 +129,11 @@
</vbox> </vbox>
</html:template> </html:template>

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
index ad1515eb111bc2532b2f17ea28fc04463030d30d..899f4baf2cd3472abd5591f3c9987f0c02b9313f 100644 index 5f79e21271ad8b4e97604b9c84ed4e6e9de4a5f2..1c8cc6795d51130b29a32ecafa40e27ea6df655e 100644
--- a/browser/base/content/navigator-toolbox.inc.xhtml --- a/browser/base/content/navigator-toolbox.inc.xhtml
+++ b/browser/base/content/navigator-toolbox.inc.xhtml +++ b/browser/base/content/navigator-toolbox.inc.xhtml
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
@@ -22,15 +22,15 @@ index ad1515eb111bc2532b2f17ea28fc04463030d30d..899f4baf2cd3472abd5591f3c9987f0c
<toolbar id="TabsToolbar" <toolbar id="TabsToolbar"
class="browser-toolbar browser-titlebar" class="browser-toolbar browser-titlebar"
fullscreentoolbar="true" fullscreentoolbar="true"
@@ -50,6 +50,8 @@ @@ -56,6 +56,8 @@
tooltip="tabbrowser-tab-tooltip" # the current structure that we may want to revisit.
orient="horizontal" <arrowscrollbox id="pinned-tabs-container" orient="horizontal" tabindex="-1"></arrowscrollbox>
stopwatchid="tabClick"> <splitter orient="vertical" id="vertical-pinned-tabs-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
+<html:div id="zen-essentials" skipintoolbarset="true"></html:div> +<html:div id="zen-essentials" skipintoolbarset="true"></html:div>
+<html:div id="zen-tabs-wrapper"> +<html:div id="zen-tabs-wrapper">
<hbox class="tab-drop-indicator" hidden="true"/> <hbox class="tab-drop-indicator" hidden="true"/>
# If the name (tabbrowser-arrowscrollbox) or structure of this changes <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" clicktoscroll="" scrolledtostart="" scrolledtoend="">
# significantly, there is an optimization in <tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
@@ -75,6 +77,7 @@ @@ -75,6 +77,7 @@
tooltip="dynamic-shortcut-tooltip" tooltip="dynamic-shortcut-tooltip"
data-l10n-id="tabs-toolbar-new-tab"/> data-l10n-id="tabs-toolbar-new-tab"/>

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
index 3bd0ee8af8b696161d18fd2a978f9e25972ed3ad..9e602a942271bd54231dc66363f8db51aea9e78a 100644 index e5ae99edff6cef4964ff15a7d32b0f9c80625425..6b7b6e75c76b25319334113bf2f17817f67e1073 100644
--- a/browser/base/content/nsContextMenu.sys.mjs --- a/browser/base/content/nsContextMenu.sys.mjs
+++ b/browser/base/content/nsContextMenu.sys.mjs +++ b/browser/base/content/nsContextMenu.sys.mjs
@@ -1111,6 +1111,8 @@ export class nsContextMenu { @@ -1050,6 +1050,8 @@ export class nsContextMenu {
!this.isSecureAboutPage() !this.isSecureAboutPage()
); );

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/jar.mn b/browser/base/jar.mn diff --git a/browser/base/jar.mn b/browser/base/jar.mn
index 4401c78d34007fa7481f8b8eeb070d17110821ae..064f14a7adf4ce1b98d58302998272444466c3ee 100644 index ad10fe2c55c422090ebfc3989ca6858c1d958a10..0ff76c3bd768b2b337683a35f8dbd197f421905c 100644
--- a/browser/base/jar.mn --- a/browser/base/jar.mn
+++ b/browser/base/jar.mn +++ b/browser/base/jar.mn
@@ -105,3 +105,5 @@ browser.jar: @@ -105,3 +105,5 @@ browser.jar:

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/moz.build b/browser/base/moz.build diff --git a/browser/base/moz.build b/browser/base/moz.build
index 9da444880c4dbf188443d43e8d0a71d98311a2b7..3a654be6f78931e92479b30de6f0a6e50da81908 100644 index 803f8a5b62608af58fc43bd9fab298a63fa549a4..2e00cb9d02dade5cd9b8d3dea5d948ac6e829c26 100644
--- a/browser/base/moz.build --- a/browser/base/moz.build
+++ b/browser/base/moz.build +++ b/browser/base/moz.build
@@ -81,3 +81,5 @@ DEFINES["MOZ_APP_VERSION_DISPLAY"] = CONFIG["MOZ_APP_VERSION_DISPLAY"] @@ -82,3 +82,5 @@ DEFINES["MOZ_APP_VERSION_DISPLAY"] = CONFIG["MOZ_APP_VERSION_DISPLAY"]
DEFINES["APP_LICENSE_BLOCK"] = "%s/content/overrides/app-license.html" % SRCDIR DEFINES["APP_LICENSE_BLOCK"] = "%s/content/overrides/app-license.html" % SRCDIR
JAR_MANIFESTS += ["jar.mn"] JAR_MANIFESTS += ["jar.mn"]

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs
index e72feb538c0dc182211945a66e51bcea73d3d4a0..b4d9115873b7af414043c53fb817b611b78ec58f 100644 index 415d1d52507e0710a3c1daa5864618527b162100..f420fcb8db2ed6f33eb3b38ec9bd213809aa74c3 100644
--- a/browser/components/BrowserContentHandler.sys.mjs --- a/browser/components/BrowserContentHandler.sys.mjs
+++ b/browser/components/BrowserContentHandler.sys.mjs +++ b/browser/components/BrowserContentHandler.sys.mjs
@@ -1281,6 +1281,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) { @@ -1276,6 +1276,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
".avif", ".avif",
".htm", ".htm",
".html", ".html",

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
index bde641f7112adde948707c172b9f18d3635d8ef1..70c4769d265210084c8ee2910fa68a0a38d6fb34 100644 index 05a5063427e4038b3d57f6f5bae31b60428c7880..a01e25b52ffc3a68dddb513cb085b7df726d15b0 100644
--- a/browser/components/BrowserGlue.sys.mjs --- a/browser/components/BrowserGlue.sys.mjs
+++ b/browser/components/BrowserGlue.sys.mjs +++ b/browser/components/BrowserGlue.sys.mjs
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; @@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361efac34729 100644 index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1969f4fed 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs --- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
@@ -10,7 +10,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
HomePage: "resource:///modules/HomePage.sys.mjs", HomePage: "resource:///modules/HomePage.sys.mjs",
PanelMultiView: "resource:///modules/PanelMultiView.sys.mjs", PanelMultiView: "resource:///modules/PanelMultiView.sys.mjs",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs",
@@ -331,20 +332,14 @@ var CustomizableUIInternal = { @@ -331,19 +332,14 @@ var CustomizableUIInternal = {
"back-button", "back-button",
"forward-button", "forward-button",
"stop-reload-button", "stop-reload-button",
@@ -21,7 +21,6 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
"vertical-spacer", "vertical-spacer",
"urlbar-container", "urlbar-container",
"spring", "spring",
- "save-to-pocket-button",
- "downloads-button", - "downloads-button",
AppConstants.MOZ_DEV_EDITION ? "developer-button" : null, AppConstants.MOZ_DEV_EDITION ? "developer-button" : null,
- "fxa-toolbar-menu-button", - "fxa-toolbar-menu-button",
@@ -32,7 +31,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
this.registerArea( this.registerArea(
CustomizableUI.AREA_NAVBAR, CustomizableUI.AREA_NAVBAR,
{ {
@@ -352,8 +347,6 @@ var CustomizableUIInternal = { @@ -351,8 +347,6 @@ var CustomizableUIInternal = {
overflowable: true, overflowable: true,
defaultPlacements: navbarPlacements, defaultPlacements: navbarPlacements,
verticalTabsDefaultPlacements: [ verticalTabsDefaultPlacements: [
@@ -41,7 +40,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
], ],
defaultCollapsed: false, defaultCollapsed: false,
}, },
@@ -377,10 +370,7 @@ var CustomizableUIInternal = { @@ -376,10 +370,7 @@ var CustomizableUIInternal = {
{ {
type: CustomizableUI.TYPE_TOOLBAR, type: CustomizableUI.TYPE_TOOLBAR,
defaultPlacements: [ defaultPlacements: [
@@ -52,7 +51,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
], ],
verticalTabsDefaultPlacements: [], verticalTabsDefaultPlacements: [],
defaultCollapsed: null, defaultCollapsed: null,
@@ -462,6 +452,7 @@ var CustomizableUIInternal = { @@ -461,6 +452,7 @@ var CustomizableUIInternal = {
CustomizableUI.AREA_NAVBAR, CustomizableUI.AREA_NAVBAR,
CustomizableUI.AREA_BOOKMARKS, CustomizableUI.AREA_BOOKMARKS,
CustomizableUI.AREA_TABSTRIP, CustomizableUI.AREA_TABSTRIP,
@@ -60,7 +59,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
]); ]);
if (AppConstants.platform != "macosx") { if (AppConstants.platform != "macosx") {
toolbars.add(CustomizableUI.AREA_MENUBAR); toolbars.add(CustomizableUI.AREA_MENUBAR);
@@ -1262,6 +1253,9 @@ var CustomizableUIInternal = { @@ -1245,6 +1237,9 @@ var CustomizableUIInternal = {
placements = gPlacements.get(area); placements = gPlacements.get(area);
} }
@@ -70,7 +69,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
// For toolbars that need it, mark as dirty. // For toolbars that need it, mark as dirty.
let defaultPlacements = areaProperties.get("defaultPlacements"); let defaultPlacements = areaProperties.get("defaultPlacements");
if ( if (
@@ -1769,7 +1763,7 @@ var CustomizableUIInternal = { @@ -1752,7 +1747,7 @@ var CustomizableUIInternal = {
lazy.log.info( lazy.log.info(
"Widget " + aWidgetId + " not found, unable to remove from " + aArea "Widget " + aWidgetId + " not found, unable to remove from " + aArea
); );
@@ -79,7 +78,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
} }
this.notifyDOMChange(widgetNode, null, container, true, () => { this.notifyDOMChange(widgetNode, null, container, true, () => {
@@ -1779,7 +1773,7 @@ var CustomizableUIInternal = { @@ -1762,7 +1757,7 @@ var CustomizableUIInternal = {
// We also need to remove the panel context menu if it's there: // We also need to remove the panel context menu if it's there:
this.ensureButtonContextMenu(widgetNode); this.ensureButtonContextMenu(widgetNode);
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) { if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
@@ -88,7 +87,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
} else { } else {
window.gNavToolbox.palette.appendChild(widgetNode); window.gNavToolbox.palette.appendChild(widgetNode);
} }
@@ -1947,16 +1941,16 @@ var CustomizableUIInternal = { @@ -1930,16 +1925,16 @@ var CustomizableUIInternal = {
elem.setAttribute("skipintoolbarset", "true"); elem.setAttribute("skipintoolbarset", "true");
} }
} }
@@ -108,7 +107,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
// Handle initial state of vertical tabs. // Handle initial state of vertical tabs.
if (isVerticalTabs) { if (isVerticalTabs) {
// Show the vertical tabs toolbar // Show the vertical tabs toolbar
@@ -2198,6 +2192,10 @@ var CustomizableUIInternal = { @@ -2181,6 +2176,10 @@ var CustomizableUIInternal = {
* The identifier string of the area that aNode is being inserted into. * The identifier string of the area that aNode is being inserted into.
*/ */
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) { insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
@@ -119,7 +118,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => { this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
this.setLocationAttributes(aNode, aAreaId); this.setLocationAttributes(aNode, aAreaId);
aContainer.insertBefore(aNode, aNextNode); aContainer.insertBefore(aNode, aNextNode);
@@ -3321,7 +3319,6 @@ var CustomizableUIInternal = { @@ -3301,7 +3300,6 @@ var CustomizableUIInternal = {
if (!this.isWidgetRemovable(aWidgetId)) { if (!this.isWidgetRemovable(aWidgetId)) {
return; return;
} }
@@ -127,7 +126,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
let placements = gPlacements.get(oldPlacement.area); let placements = gPlacements.get(oldPlacement.area);
let position = placements.indexOf(aWidgetId); let position = placements.indexOf(aWidgetId);
if (position != -1) { if (position != -1) {
@@ -4556,7 +4553,7 @@ var CustomizableUIInternal = { @@ -4536,7 +4534,7 @@ var CustomizableUIInternal = {
* For all registered areas, builds those areas to reflect the current * For all registered areas, builds those areas to reflect the current
* placement state of all widgets. * placement state of all widgets.
*/ */
@@ -136,7 +135,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
for (let [areaId, areaNodes] of gBuildAreas) { for (let [areaId, areaNodes] of gBuildAreas) {
let placements = gPlacements.get(areaId); let placements = gPlacements.get(areaId);
let isFirstChangedToolbar = true; let isFirstChangedToolbar = true;
@@ -4567,7 +4564,7 @@ var CustomizableUIInternal = { @@ -4547,7 +4545,7 @@ var CustomizableUIInternal = {
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) { if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
let defaultCollapsed = area.get("defaultCollapsed"); let defaultCollapsed = area.get("defaultCollapsed");
let win = areaNode.ownerGlobal; let win = areaNode.ownerGlobal;
@@ -145,7 +144,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
win.setToolbarVisibility( win.setToolbarVisibility(
areaNode, areaNode,
typeof defaultCollapsed == "string" typeof defaultCollapsed == "string"
@@ -5858,6 +5855,7 @@ export var CustomizableUI = { @@ -5838,6 +5836,7 @@ export var CustomizableUI = {
unregisterArea(aName, aDestroyPlacements) { unregisterArea(aName, aDestroyPlacements) {
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements); CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
}, },
@@ -153,7 +152,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
/** /**
* Add a widget to an area. * Add a widget to an area.
* If the area to which you try to add is not known to CustomizableUI, * If the area to which you try to add is not known to CustomizableUI,
@@ -7905,11 +7903,11 @@ class OverflowableToolbar { @@ -7885,11 +7884,11 @@ class OverflowableToolbar {
parseFloat(style.paddingLeft) - parseFloat(style.paddingLeft) -
parseFloat(style.paddingRight) - parseFloat(style.paddingRight) -
toolbarChildrenWidth; toolbarChildrenWidth;
@@ -167,7 +166,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
}); });
lazy.log.debug( lazy.log.debug(
@@ -7919,7 +7917,8 @@ class OverflowableToolbar { @@ -7899,7 +7898,8 @@ class OverflowableToolbar {
// If the target has min-width: 0, their children might actually overflow // If the target has min-width: 0, their children might actually overflow
// it, so check for both cases explicitly. // it, so check for both cases explicitly.
let targetContentWidth = Math.max(targetWidth, targetChildrenWidth); let targetContentWidth = Math.max(targetWidth, targetChildrenWidth);
@@ -177,7 +176,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
return { isOverflowing, targetContentWidth, totalAvailWidth }; return { isOverflowing, targetContentWidth, totalAvailWidth };
} }
@@ -8013,7 +8012,7 @@ class OverflowableToolbar { @@ -7993,7 +7993,7 @@ class OverflowableToolbar {
} }
} }
if (!inserted) { if (!inserted) {
@@ -186,7 +185,7 @@ index 5bb6be19f7f855b129aac921af1ed5cfc63d732b..41230a61f3088a234903dcc10abd361e
} }
child.removeAttribute("cui-anchorid"); child.removeAttribute("cui-anchorid");
child.removeAttribute("overflowedItem"); child.removeAttribute("overflowedItem");
@@ -8358,7 +8357,7 @@ class OverflowableToolbar { @@ -8338,7 +8338,7 @@ class OverflowableToolbar {
break; break;
} }
case "mousedown": { case "mousedown": {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs
index 619bb2af5a3a0995fc93fa040696dd2854848ab5..14ad5f6122971a0a0dc20d22acdc073f84965dad 100644 index bc601c9cd248637f304b8f3219862e8e6f6c7506..da28068906ddeb81337696da568608edb43223b7 100644
--- a/browser/components/customizableui/CustomizeMode.sys.mjs --- a/browser/components/customizableui/CustomizeMode.sys.mjs
+++ b/browser/components/customizableui/CustomizeMode.sys.mjs +++ b/browser/components/customizableui/CustomizeMode.sys.mjs
@@ -500,7 +500,7 @@ export class CustomizeMode { @@ -502,7 +502,7 @@ export class CustomizeMode {
this.#transitioning = true; this.#transitioning = true;
let customizer = document.getElementById("customization-container"); let customizer = document.getElementById("customization-container");
@@ -11,7 +11,7 @@ index 619bb2af5a3a0995fc93fa040696dd2854848ab5..14ad5f6122971a0a0dc20d22acdc073f
browser.hidden = true; browser.hidden = true;
customizer.hidden = false; customizer.hidden = false;
@@ -637,7 +637,7 @@ export class CustomizeMode { @@ -639,7 +639,7 @@ export class CustomizeMode {
} }
let customizer = document.getElementById("customization-container"); let customizer = document.getElementById("customization-container");
@@ -20,7 +20,7 @@ index 619bb2af5a3a0995fc93fa040696dd2854848ab5..14ad5f6122971a0a0dc20d22acdc073f
customizer.hidden = true; customizer.hidden = true;
browser.hidden = false; browser.hidden = false;
@@ -1173,6 +1173,7 @@ export class CustomizeMode { @@ -1175,6 +1175,7 @@ export class CustomizeMode {
return ( return (
aNode.localName == "toolbarbutton" || aNode.localName == "toolbarbutton" ||
aNode.localName == "toolbaritem" || aNode.localName == "toolbaritem" ||
@@ -28,7 +28,7 @@ index 619bb2af5a3a0995fc93fa040696dd2854848ab5..14ad5f6122971a0a0dc20d22acdc073f
aNode.localName == "toolbarseparator" || aNode.localName == "toolbarseparator" ||
aNode.localName == "toolbarspring" || aNode.localName == "toolbarspring" ||
aNode.localName == "toolbarspacer" aNode.localName == "toolbarspacer"
@@ -3125,6 +3126,20 @@ export class CustomizeMode { @@ -3127,6 +3128,20 @@ export class CustomizeMode {
if (makeSpaceImmediately) { if (makeSpaceImmediately) {
aDraggedOverItem.setAttribute("notransition", "true"); aDraggedOverItem.setAttribute("notransition", "true");
} }

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
index b88b0166fb99bc3d44a2e05798650b8ad6ab9a46..2e66c8294f0ef4f91ae160bd55b7417b55e9f5b2 100644 index 0924175cecdceade096a325b2d4cd2656da24524..3c1e4a179d13aac740069c23e9bf8e40376d5032 100644
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs --- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs +++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
@@ -240,8 +240,8 @@ export var ToolbarContextMenu = { @@ -241,8 +241,8 @@ export var ToolbarContextMenu = {
// Show/hide sidebar and vertical tabs menu items // Show/hide sidebar and vertical tabs menu items
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp"); let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp");
let showSidebarActions = let showSidebarActions =

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2fab7474f1038a7a3cd2f4b4798d59696900cc85 100644 index b3c4898fa5aa7ba997d84a2b4fdce398978e1150..736d7aca6232e94a1de0afe2c292060c5c622565 100644
--- a/browser/components/customizableui/content/panelUI.js --- a/browser/components/customizableui/content/panelUI.js
+++ b/browser/components/customizableui/content/panelUI.js +++ b/browser/components/customizableui/content/panelUI.js
@@ -516,8 +516,7 @@ const PanelUI = { @@ -517,8 +517,7 @@ const PanelUI = {
tempPanel.setAttribute("animate", "false"); tempPanel.setAttribute("animate", "false");
} }
tempPanel.setAttribute("context", ""); tempPanel.setAttribute("context", "");
@@ -12,7 +12,7 @@ index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2fab7474f1038a7a3cd2f4b4798d5969
.appendChild(tempPanel); .appendChild(tempPanel);
let multiView = document.createXULElement("panelmultiview"); let multiView = document.createXULElement("panelmultiview");
@@ -608,10 +607,12 @@ const PanelUI = { @@ -609,10 +608,12 @@ const PanelUI = {
if (hasKids && !this.navbar.hasAttribute("nonemptyoverflow")) { if (hasKids && !this.navbar.hasAttribute("nonemptyoverflow")) {
this.navbar.setAttribute("nonemptyoverflow", "true"); this.navbar.setAttribute("nonemptyoverflow", "true");
this.overflowPanel.setAttribute("hasfixeditems", "true"); this.overflowPanel.setAttribute("hasfixeditems", "true");
@@ -25,7 +25,7 @@ index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2fab7474f1038a7a3cd2f4b4798d5969
} }
}, },
@@ -959,7 +960,7 @@ const PanelUI = { @@ -960,7 +961,7 @@ const PanelUI = {
el.removeAttribute("data-lazy-l10n-id"); el.removeAttribute("data-lazy-l10n-id");
}); });

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs
index c7c5c28e1ea6d05094ed9fe751c6b50ab9645370..72f1038aa37b0951a1e78331ee317f714e5b6e8b 100644 index 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543dce50234 100644
--- a/browser/components/places/PlacesUIUtils.sys.mjs --- a/browser/components/places/PlacesUIUtils.sys.mjs
+++ b/browser/components/places/PlacesUIUtils.sys.mjs +++ b/browser/components/places/PlacesUIUtils.sys.mjs
@@ -59,6 +59,7 @@ class BookmarkState { @@ -59,6 +59,7 @@ class BookmarkState {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/places/content/editBookmark.js b/browser/components/places/content/editBookmark.js diff --git a/browser/components/places/content/editBookmark.js b/browser/components/places/content/editBookmark.js
index 9ab4e96cc4738d0ba549dca67b8559e0f9534f37..07b9087b0b17e33853d78c66ea1e5321a2bfef80 100644 index ac84ff7b7623a279191c7608ef0b47363b54cd31..53919bae7a49f1e87edaedc8072ee08fb697811b 100644
--- a/browser/components/places/content/editBookmark.js --- a/browser/components/places/content/editBookmark.js
+++ b/browser/components/places/content/editBookmark.js +++ b/browser/components/places/content/editBookmark.js
@@ -386,6 +386,10 @@ var gEditItemOverlay = { @@ -386,6 +386,10 @@ var gEditItemOverlay = {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.js b/browser/components/preferences/dialogs/syncChooseWhatToSync.js diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.js b/browser/components/preferences/dialogs/syncChooseWhatToSync.js
index a38c2a235971f2fe470f9bee92fc9c1a6d9b8b15..564be3dabe01621a621ca586421cdb77e0220f8b 100644 index 64aa0d98a0622c01f3dcfff1a04bfcda368354d2..2013e04b0881ad2295d6897b91e1573cc6efc571 100644
--- a/browser/components/preferences/dialogs/syncChooseWhatToSync.js --- a/browser/components/preferences/dialogs/syncChooseWhatToSync.js
+++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.js +++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.js
@@ -13,6 +13,7 @@ Preferences.addAll([ @@ -21,6 +21,7 @@ Preferences.addAll([
{ id: "services.sync.engine.passwords", type: "bool" }, { id: "services.sync.engine.passwords", type: "bool" },
{ id: "services.sync.engine.addresses", type: "bool" }, { id: "services.sync.engine.addresses", type: "bool" },
{ id: "services.sync.engine.creditcards", type: "bool" }, { id: "services.sync.engine.creditcards", type: "bool" },

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
index 6e74bbce9096179d38db422879349013f3954fa9..859f8b9640ef49411164f8e5160d4d9b8db11e54 100644 index ef127a1bc2e3ea4221b641156c38a74edb3b44ae..acd39fe7f6dc7ec03ea50928e2d002791b834dcf 100644
--- a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml --- a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
+++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml +++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
@@ -27,6 +27,10 @@ @@ -27,6 +27,10 @@
@@ -13,7 +13,7 @@ index 6e74bbce9096179d38db422879349013f3954fa9..859f8b9640ef49411164f8e5160d4d9b
</linkset> </linkset>
<script src="chrome://global/content/preferencesBindings.js" /> <script src="chrome://global/content/preferencesBindings.js" />
<script src="chrome://browser/content/preferences/dialogs/syncChooseWhatToSync.js" /> <script src="chrome://browser/content/preferences/dialogs/syncChooseWhatToSync.js" />
@@ -79,6 +83,12 @@ @@ -87,6 +91,12 @@
preference="services.sync.engine.prefs" preference="services.sync.engine.prefs"
/> />
</html:div> </html:div>

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
index 2116a8a3b5746b79280f2d73b5e29b01c7a15993..448269adeab747fd2da419509e6923eefbb87d8a 100644 index a60831d9309ed73ea6d37725f9b9177dd6677501..c4d357d300b08b5adbe24d38eef5bd20842df665 100644
--- a/browser/components/preferences/main.js --- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js +++ b/browser/components/preferences/main.js
@@ -389,7 +389,7 @@ function getBundleForLocales(newLocales) { @@ -443,7 +443,7 @@ function getBundleForLocales(newLocales) {
]) ])
); );
return new Localization( return new Localization(

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
index 6a575e3148de0c73f7ab7ff9afbd3ff179bce313..b7c2f2818358b7b6b6fc62b298dc67a66ebd9e3b 100644 index b5af9af69fd715012af5c0613e0627dd9cf9c3b7..7f86bac8cce278c5b7b7e1230230b3a27b7cf49a 100644
--- a/browser/components/preferences/preferences.js --- a/browser/components/preferences/preferences.js
+++ b/browser/components/preferences/preferences.js +++ b/browser/components/preferences/preferences.js
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () { @@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
index b3b128cb5eb8c005c642965a8c8e5e68bf756e77..6e128d45c983b267e349b08097c56380dd04be3d 100644 index a50fc9cae85527a10c3949163594ce43b68b14c0..28cb5378a58daf0267553d925b0940f3ca2d1ef2 100644
--- a/browser/components/preferences/preferences.xhtml --- a/browser/components/preferences/preferences.xhtml
+++ b/browser/components/preferences/preferences.xhtml +++ b/browser/components/preferences/preferences.xhtml
@@ -44,6 +44,8 @@ @@ -44,6 +44,8 @@
@@ -11,19 +11,7 @@ index b3b128cb5eb8c005c642965a8c8e5e68bf756e77..6e128d45c983b267e349b08097c56380
<link rel="localization" href="branding/brand.ftl"/> <link rel="localization" href="branding/brand.ftl"/>
<link rel="localization" href="browser/browser.ftl"/> <link rel="localization" href="browser/browser.ftl"/>
<!-- Used by fontbuilder.js --> <!-- Used by fontbuilder.js -->
@@ -104,6 +106,11 @@ @@ -116,6 +118,50 @@
<hbox flex="1">
<vbox class="navigation">
+ <search-textbox
+ id="searchInput"
+ data-l10n-id="search-input-box2"
+ data-l10n-attrs="placeholder, style"
+ />
<!-- category list -->
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
<richlistitem id="category-general"
@@ -116,6 +123,50 @@
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label> <label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
</richlistitem> </richlistitem>
@@ -74,18 +62,6 @@ index b3b128cb5eb8c005c642965a8c8e5e68bf756e77..6e128d45c983b267e349b08097c56380
<richlistitem id="category-home" <richlistitem id="category-home"
class="category" class="category"
value="paneHome" value="paneHome"
@@ -227,11 +278,6 @@
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
</hbox>
</hbox>
- <search-textbox
- id="searchInput"
- data-l10n-id="search-input-box2"
- data-l10n-attrs="placeholder, style"
- />
</hbox>
</hbox>
<vbox id="mainPrefPane">
@@ -245,6 +291,10 @@ @@ -245,6 +291,10 @@
#include sync.inc.xhtml #include sync.inc.xhtml
#include experimental.inc.xhtml #include experimental.inc.xhtml

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs
index c1f8fd1225cfc47c2e171361aa6069d3cbaf3afb..b32a2cf621022a500a2efc7777b4379347dcf353 100644 index 23808139bc885c5e6457b3e4be0b1727c0f3bbf9..472fdbe863db5725d01af903b69a479b9edc3244 100644
--- a/browser/components/search/SearchOneOffs.sys.mjs --- a/browser/components/search/SearchOneOffs.sys.mjs
+++ b/browser/components/search/SearchOneOffs.sys.mjs +++ b/browser/components/search/SearchOneOffs.sys.mjs
@@ -444,7 +444,7 @@ export class SearchOneOffs { @@ -455,7 +455,7 @@ export class SearchOneOffs {
// For the search-bar, always show the one-off buttons where there is an // For the search-bar, always show the one-off buttons where there is an
// option to add an engine. // option to add an engine.
let addEngineNeeded = isSearchBar && addEngines.length; let addEngineNeeded = isSearchBar && addEngines.length;

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs
index ecebaad93acfc9eb7dfd9d9f56fec2e1a4abe392..8bb1348b3258dbc518d23ec39181a81f87fc8c1e 100644 index 3666beb83bc50e80fa8848f18aaeb6545d5ff8a7..0566fc87e90531456e78bc6c33a0696f0aff6cb3 100644
--- a/browser/components/search/SearchUIUtils.sys.mjs --- a/browser/components/search/SearchUIUtils.sys.mjs
+++ b/browser/components/search/SearchUIUtils.sys.mjs +++ b/browser/components/search/SearchUIUtils.sys.mjs
@@ -403,7 +403,7 @@ export var SearchUIUtils = { @@ -412,7 +412,7 @@ export var SearchUIUtils = {
triggeringSearchEngine: engine.name, triggeringSearchEngine: engine.name,
}, },
}); });

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs
index 8f7ed557e6aa61e7e16ed4a8d785ad5fe651b3d8..76f4cf5aef30cb580ef0295fe6928b5a6a362f4b 100644 index 82721356d191055bec0d4b0ca49e481221988801..9c8a2b1791e780e0fcd3a9bfc7efdadf35d52165 100644
--- a/browser/components/sessionstore/TabState.sys.mjs --- a/browser/components/sessionstore/TabState.sys.mjs
+++ b/browser/components/sessionstore/TabState.sys.mjs +++ b/browser/components/sessionstore/TabState.sys.mjs
@@ -84,6 +84,18 @@ class _TabState { @@ -85,6 +85,18 @@ class _TabState {
tabData.groupId = tab.group.id; tabData.groupId = tab.group.id;
} }

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/TabUnloader.sys.mjs b/browser/components/tabbrowser/TabUnloader.sys.mjs diff --git a/browser/components/tabbrowser/TabUnloader.sys.mjs b/browser/components/tabbrowser/TabUnloader.sys.mjs
index 44846cc902fd3fc17d12be38ac9abccb47a12f23..c715c7cf47486066b3fd6f92bf78bc8a720759bc 100644 index 0c62cdf29a72a7518cc54c014b5042f9695311eb..d5ac63d5005065863391e415f7072145d3247cad 100644
--- a/browser/components/tabbrowser/TabUnloader.sys.mjs --- a/browser/components/tabbrowser/TabUnloader.sys.mjs
+++ b/browser/components/tabbrowser/TabUnloader.sys.mjs +++ b/browser/components/tabbrowser/TabUnloader.sys.mjs
@@ -52,7 +52,7 @@ let CRITERIA_WEIGHT = 1; @@ -52,7 +52,7 @@ let CRITERIA_WEIGHT = 1;

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1bf4d762a 100644 index e5509953509c4da8756e36a0792f76814e24ba0c..5ce4207e5e580053aa9a857168fd20a2972905b5 100644
--- a/browser/components/tabbrowser/content/tab.js --- a/browser/components/tabbrowser/content/tab.js
+++ b/browser/components/tabbrowser/content/tab.js +++ b/browser/components/tabbrowser/content/tab.js
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
@@ -33,7 +33,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
".tab-label-container": ".tab-label-container":
"pinned,selected=visuallyselected,labeldirection", "pinned,selected=visuallyselected,labeldirection",
".tab-label": ".tab-label":
@@ -180,7 +183,7 @@ @@ -188,7 +191,7 @@
} }
set _visuallySelected(val) { set _visuallySelected(val) {
@@ -42,7 +42,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
return; return;
} }
@@ -216,7 +219,7 @@ @@ -224,7 +227,7 @@
} }
get visible() { get visible() {
@@ -51,7 +51,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
} }
get hidden() { get hidden() {
@@ -287,7 +290,7 @@ @@ -295,7 +298,7 @@
return false; return false;
} }
@@ -60,7 +60,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
} }
get lastAccessed() { get lastAccessed() {
@@ -459,6 +462,8 @@ @@ -467,6 +470,8 @@
this.style.MozUserFocus = "ignore"; this.style.MozUserFocus = "ignore";
} else if ( } else if (
event.target.classList.contains("tab-close-button") || event.target.classList.contains("tab-close-button") ||
@@ -69,7 +69,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
event.target.classList.contains("tab-icon-overlay") || event.target.classList.contains("tab-icon-overlay") ||
event.target.classList.contains("tab-audio-button") event.target.classList.contains("tab-audio-button")
) { ) {
@@ -513,6 +518,10 @@ @@ -521,6 +526,10 @@
this.style.MozUserFocus = ""; this.style.MozUserFocus = "";
} }
@@ -80,7 +80,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
on_click(event) { on_click(event) {
if (event.button != 0) { if (event.button != 0) {
return; return;
@@ -561,6 +570,7 @@ @@ -569,6 +578,7 @@
) )
); );
} else { } else {
@@ -88,7 +88,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
gBrowser.removeTab(this, { gBrowser.removeTab(this, {
animate: true, animate: true,
triggeringEvent: event, triggeringEvent: event,
@@ -573,6 +583,14 @@ @@ -581,6 +591,14 @@
// (see tabbrowser-tabs 'click' handler). // (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true; gBrowser.tabContainer._blockDblClick = true;
} }
@@ -103,7 +103,7 @@ index 793ba822f087f4d198c9876ed208ff16d8a41e3b..f0c4bc58d7d48491e0c0ab9eb3e915b1
} }
on_dblclick(event) { on_dblclick(event) {
@@ -596,6 +614,8 @@ @@ -604,6 +622,8 @@
animate: true, animate: true,
triggeringEvent: event, triggeringEvent: event,
}); });

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f984de42c 100644 index 96fd8acdc09cc4c9649d1ed7503c2a0bde536613..c49ef74757bb8a43bf400d60474a8e32737bf4a1 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js --- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -413,11 +413,41 @@ @@ -422,15 +422,49 @@
return this.tabContainer.visibleTabs; return this.tabContainer.visibleTabs;
} }
@@ -46,7 +46,15 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} }
return i; return i;
} }
@@ -569,6 +599,7 @@
+ get tabsWithoutGlance() {
+ return this.tabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
+ }
+
set selectedTab(val) {
if (
gSharedTabWarning.willShowSharedTabWarning(val) ||
@@ -578,6 +612,7 @@
this.tabpanels.appendChild(panel); this.tabpanels.appendChild(panel);
let tab = this.tabs[0]; let tab = this.tabs[0];
@@ -54,47 +62,40 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
tab.linkedPanel = uniqueId; tab.linkedPanel = uniqueId;
this._selectedTab = tab; this._selectedTab = tab;
this._selectedBrowser = browser; this._selectedBrowser = browser;
@@ -829,16 +860,18 @@ @@ -858,11 +893,14 @@
} aTab,
{ telemetrySource = this.TabMetrics.METRIC_SOURCE.UNKNOWN } = {}
pinTab(aTab) { ) {
- if (aTab.pinned || aTab == FirefoxViewHandler.tab) { - if (aTab.pinned || aTab == FirefoxViewHandler.tab) {
+ if (aTab.pinned || aTab == FirefoxViewHandler.tab || aTab.hasAttribute("zen-empty-tab")) { + if (aTab.pinned || aTab == FirefoxViewHandler.tab || aTab.hasAttribute("zen-empty-tab")) {
return; return;
} }
this.showTab(aTab); this.showTab(aTab);
- if (this.tabContainer.verticalMode) {
+ const handled = gZenFolders.handleTabPin(aTab); + const handled = gZenFolders.handleTabPin(aTab);
+ if (!handled) this.ungroupTab(aTab); + if (!handled) this.ungroupTab(aTab);
+ if (this.tabContainer.verticalMode && !handled) { + else
this.#handleTabMove(aTab, () => this.#handleTabMove(aTab, () =>
- this.verticalPinnedTabsContainer.appendChild(aTab) this.pinnedTabsContainer.appendChild(aTab)
+ aTab.hasAttribute("zen-essential") ? gZenWorkspaces.getEssentialsSection(aTab).appendChild(aTab) : this.verticalPinnedTabsContainer.insertBefore(aTab, this.verticalPinnedTabsContainer.lastChild) );
); @@ -878,11 +916,15 @@
- } else {
+ } else if (!handled) {
this.moveTabTo(aTab, {
tabIndex: this.pinnedTabCount,
forceUngrouped: true,
@@ -855,12 +888,15 @@
} }
if (this.tabContainer.verticalMode) { this.#handleTabMove(aTab, () => {
+ const handled = gZenFolders.handleTabUnpin(aTab); + const handled = gZenFolders.handleTabUnpin(aTab);
this.#handleTabMove(aTab, () => { +
// we remove this attribute first, so that allTabs represents // we remove this attribute first, so that allTabs represents
// the moving of a tab from the vertical pinned tabs container // the moving of a tab from the pinned tabs container
// and back into arrowscrollbox. // and back into arrowscrollbox.
aTab.removeAttribute("pinned"); aTab.removeAttribute("pinned");
- this.tabContainer.arrowScrollbox.prepend(aTab); - this.tabContainer.arrowScrollbox.prepend(aTab);
+ if (!handled) { + if (!handled) {
+ gZenWorkspaces.activeWorkspaceStrip.prepend(aTab); + gZenWorkspaces.activeWorkspaceStrip.prepend(aTab);
+ } + }
}); });
} else {
this.moveTabTo(aTab, { aTab.style.marginInlineStart = "";
@@ -1044,6 +1080,8 @@ @@ -1060,6 +1102,8 @@
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"]; let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
@@ -103,7 +104,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if ( if (
aIconURL && aIconURL &&
!aLoadingPrincipal && !aLoadingPrincipal &&
@@ -1054,6 +1092,9 @@ @@ -1070,6 +1114,9 @@
); );
return; return;
} }
@@ -113,7 +114,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
let browser = this.getBrowserForTab(aTab); let browser = this.getBrowserForTab(aTab);
browser.mIconURL = aIconURL; browser.mIconURL = aIconURL;
@@ -1303,6 +1344,7 @@ @@ -1319,6 +1366,7 @@
if (!this._previewMode) { if (!this._previewMode) {
newTab.recordTimeFromUnloadToReload(); newTab.recordTimeFromUnloadToReload();
newTab.updateLastAccessed(); newTab.updateLastAccessed();
@@ -121,7 +122,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
oldTab.updateLastAccessed(); oldTab.updateLastAccessed();
// if this is the foreground window, update the last-seen timestamps. // if this is the foreground window, update the last-seen timestamps.
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) { if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
@@ -1455,6 +1497,9 @@ @@ -1471,6 +1519,9 @@
} }
let activeEl = document.activeElement; let activeEl = document.activeElement;
@@ -131,7 +132,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// If focus is on the old tab, move it to the new tab. // If focus is on the old tab, move it to the new tab.
if (activeEl == oldTab) { if (activeEl == oldTab) {
newTab.focus(); newTab.focus();
@@ -1778,7 +1823,8 @@ @@ -1794,7 +1845,8 @@
} }
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) { _setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
@@ -141,7 +142,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
return false; return false;
} }
@@ -1886,7 +1932,7 @@ @@ -1902,7 +1954,7 @@
newIndex = this.selectedTab._tPos + 1; newIndex = this.selectedTab._tPos + 1;
} }
@@ -150,7 +151,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if (this.isTabGroupLabel(targetTab)) { if (this.isTabGroupLabel(targetTab)) {
throw new Error( throw new Error(
"Replacing a tab group label with a tab is not supported" "Replacing a tab group label with a tab is not supported"
@@ -2150,6 +2196,7 @@ @@ -2166,6 +2218,7 @@
uriIsAboutBlank, uriIsAboutBlank,
userContextId, userContextId,
skipLoad, skipLoad,
@@ -158,7 +159,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} = {}) { } = {}) {
let b = document.createXULElement("browser"); let b = document.createXULElement("browser");
// Use the JSM global to create the permanentKey, so that if the // Use the JSM global to create the permanentKey, so that if the
@@ -2223,8 +2270,7 @@ @@ -2239,8 +2292,7 @@
// we use a different attribute name for this? // we use a different attribute name for this?
b.setAttribute("name", name); b.setAttribute("name", name);
} }
@@ -168,7 +169,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
b.setAttribute("transparent", "true"); b.setAttribute("transparent", "true");
} }
@@ -2389,7 +2435,7 @@ @@ -2405,7 +2457,7 @@
let panel = this.getPanel(browser); let panel = this.getPanel(browser);
let uniqueId = this._generateUniquePanelID(); let uniqueId = this._generateUniquePanelID();
@@ -177,7 +178,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
aTab.linkedPanel = uniqueId; aTab.linkedPanel = uniqueId;
// Inject the <browser> into the DOM if necessary. // Inject the <browser> into the DOM if necessary.
@@ -2448,8 +2494,8 @@ @@ -2464,8 +2516,8 @@
// If we transitioned from one browser to two browsers, we need to set // If we transitioned from one browser to two browsers, we need to set
// hasSiblings=false on both the existing browser and the new browser. // hasSiblings=false on both the existing browser and the new browser.
if (this.tabs.length == 2) { if (this.tabs.length == 2) {
@@ -188,7 +189,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} else { } else {
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1; aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
} }
@@ -2679,6 +2725,8 @@ @@ -2709,6 +2761,8 @@
schemelessInput, schemelessInput,
hasValidUserGestureActivation = false, hasValidUserGestureActivation = false,
textDirectiveUserActivation = false, textDirectiveUserActivation = false,
@@ -197,7 +198,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} = {} } = {}
) { ) {
// all callers of addTab that pass a params object need to pass // all callers of addTab that pass a params object need to pass
@@ -2689,6 +2737,12 @@ @@ -2719,6 +2773,12 @@
); );
} }
@@ -210,7 +211,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if (!UserInteraction.running("browser.tabs.opening", window)) { if (!UserInteraction.running("browser.tabs.opening", window)) {
UserInteraction.start("browser.tabs.opening", "initting", window); UserInteraction.start("browser.tabs.opening", "initting", window);
} }
@@ -2752,6 +2806,19 @@ @@ -2782,6 +2842,19 @@
noInitialLabel, noInitialLabel,
skipBackgroundNotify, skipBackgroundNotify,
}); });
@@ -230,7 +231,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if (insertTab) { if (insertTab) {
// Insert the tab into the tab container in the correct position. // Insert the tab into the tab container in the correct position.
this.#insertTabAtIndex(t, { this.#insertTabAtIndex(t, {
@@ -2760,6 +2827,7 @@ @@ -2790,6 +2863,7 @@
ownerTab, ownerTab,
openerTab, openerTab,
pinned, pinned,
@@ -238,7 +239,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
bulkOrderedOpen, bulkOrderedOpen,
tabGroup: tabGroup ?? openerTab?.group, tabGroup: tabGroup ?? openerTab?.group,
}); });
@@ -2778,6 +2846,7 @@ @@ -2808,6 +2882,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -246,7 +247,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
})); }));
if (focusUrlBar) { if (focusUrlBar) {
@@ -2897,6 +2966,12 @@ @@ -2928,6 +3003,12 @@
} }
} }
@@ -258,8 +259,8 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
+ } + }
// Additionally send pinned tab events // Additionally send pinned tab events
if (pinned) { if (pinned) {
this._notifyPinnedStatus(t); this.#notifyPinnedStatus(t);
@@ -2985,10 +3060,10 @@ @@ -3016,10 +3097,10 @@
isAdoptingGroup = false, isAdoptingGroup = false,
isUserTriggered = false, isUserTriggered = false,
telemetryUserCreateSource = "unknown", telemetryUserCreateSource = "unknown",
@@ -271,7 +272,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} }
if (!color) { if (!color) {
@@ -3009,7 +3084,12 @@ @@ -3040,7 +3121,12 @@
label, label,
isAdoptingGroup isAdoptingGroup
); );
@@ -285,7 +286,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
group, group,
insertBefore?.group ?? insertBefore insertBefore?.group ?? insertBefore
); );
@@ -3304,6 +3384,7 @@ @@ -3357,6 +3443,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -293,7 +294,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} }
) { ) {
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and // If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
@@ -3373,6 +3454,7 @@ @@ -3426,6 +3513,7 @@
openWindowInfo, openWindowInfo,
name, name,
skipLoad, skipLoad,
@@ -301,8 +302,8 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
}); });
} }
@@ -3518,7 +3600,9 @@ @@ -3570,7 +3658,9 @@
let shouldUpdateForPinnedTabs = false; let hiddenTabs = new Map();
/** @type {Map<TabGroupStateData['id'], TabGroupWorkingData>} */ /** @type {Map<TabGroupStateData['id'], TabGroupWorkingData>} */
let tabGroupWorkingData = new Map(); let tabGroupWorkingData = new Map();
- -
@@ -312,7 +313,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
for (const tabGroupData of tabGroupDataList) { for (const tabGroupData of tabGroupDataList) {
tabGroupWorkingData.set(tabGroupData.id, { tabGroupWorkingData.set(tabGroupData.id, {
stateData: tabGroupData, stateData: tabGroupData,
@@ -3561,7 +3645,7 @@ @@ -3613,7 +3703,7 @@
// Add a new tab if needed. // Add a new tab if needed.
if (!tab) { if (!tab) {
let createLazyBrowser = let createLazyBrowser =
@@ -321,7 +322,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
let url = "about:blank"; let url = "about:blank";
if (tabData.entries?.length) { if (tabData.entries?.length) {
@@ -3599,7 +3683,8 @@ @@ -3651,7 +3741,8 @@
skipLoad: true, skipLoad: true,
preferredRemoteType, preferredRemoteType,
}); });
@@ -331,17 +332,17 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if (select) { if (select) {
tabToSelect = tab; tabToSelect = tab;
} }
@@ -3623,7 +3708,8 @@ @@ -3663,7 +3754,8 @@
// needs calling: this.pinTab(tab);
shouldUpdateForPinnedTabs = true; // Then ensure all the tab open/pinning information is sent.
} this._fireTabOpen(tab, {});
- } else if (tabData.groupId) { - } else if (tabData.groupId) {
+ } + }
+ if (tabData.groupId) { + if (tabData.groupId) {
let { groupId } = tabData; let { groupId } = tabData;
const tabGroup = tabGroupWorkingData.get(groupId); const tabGroup = tabGroupWorkingData.get(groupId);
// if a tab refers to a tab group we don't know, skip any group // if a tab refers to a tab group we don't know, skip any group
@@ -3637,7 +3723,10 @@ @@ -3677,7 +3769,10 @@
tabGroup.stateData.id, tabGroup.stateData.id,
tabGroup.stateData.color, tabGroup.stateData.color,
tabGroup.stateData.collapsed, tabGroup.stateData.collapsed,
@@ -353,7 +354,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
); );
tabsFragment.appendChild(tabGroup.node); tabsFragment.appendChild(tabGroup.node);
} }
@@ -3685,9 +3774,23 @@ @@ -3722,9 +3817,23 @@
// to remove the old selected tab. // to remove the old selected tab.
if (tabToSelect) { if (tabToSelect) {
let leftoverTab = this.selectedTab; let leftoverTab = this.selectedTab;
@@ -369,15 +370,15 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
+ gZenWorkspaces._initialTab._shouldRemove = true; + gZenWorkspaces._initialTab._shouldRemove = true;
+ } + }
+ } + }
+ } }
+ else { + else {
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab; + gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
} + }
+ this._hasAlreadyInitializedZenSessionStore = true; + this._hasAlreadyInitializedZenSessionStore = true;
if (tabs.length > 1 || !tabs[0].selected) { if (tabs.length > 1 || !tabs[0].selected) {
this._updateTabsAfterInsert(); this._updateTabsAfterInsert();
@@ -3882,7 +3985,7 @@ @@ -3919,7 +4028,7 @@
// Ensure we have an index if one was not provided. // Ensure we have an index if one was not provided.
if (typeof elementIndex != "number" && typeof tabIndex != "number") { if (typeof elementIndex != "number" && typeof tabIndex != "number") {
// Move the new tab after another tab if needed, to the end otherwise. // Move the new tab after another tab if needed, to the end otherwise.
@@ -386,7 +387,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if ( if (
!bulkOrderedOpen && !bulkOrderedOpen &&
((openerTab && ((openerTab &&
@@ -3905,7 +4008,7 @@ @@ -3942,7 +4051,7 @@
) { ) {
elementIndex = Infinity; elementIndex = Infinity;
} else if (previousTab.visible) { } else if (previousTab.visible) {
@@ -395,7 +396,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} else if (previousTab == FirefoxViewHandler.tab) { } else if (previousTab == FirefoxViewHandler.tab) {
elementIndex = 0; elementIndex = 0;
} }
@@ -3933,14 +4036,14 @@ @@ -3970,14 +4079,14 @@
} }
// Ensure index is within bounds. // Ensure index is within bounds.
if (tab.pinned) { if (tab.pinned) {
@@ -414,7 +415,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// Prevent a flash of unstyled content by setting up the tab content // Prevent a flash of unstyled content by setting up the tab content
// and inherited attributes before appending it (see Bug 1592054): // and inherited attributes before appending it (see Bug 1592054):
@@ -3948,7 +4051,7 @@ @@ -3985,7 +4094,7 @@
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -423,7 +424,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) { if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
// Place at the front of, or between tabs in, the same tab group // Place at the front of, or between tabs in, the same tab group
this.tabContainer.insertBefore(tab, itemAfter); this.tabContainer.insertBefore(tab, itemAfter);
@@ -3981,6 +4084,7 @@ @@ -4018,6 +4127,7 @@
if (pinned) { if (pinned) {
this._updateTabBarForPinnedTabs(); this._updateTabBarForPinnedTabs();
} }
@@ -431,7 +432,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -4270,6 +4374,9 @@ @@ -4307,6 +4417,9 @@
return; return;
} }
@@ -441,7 +442,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource }); this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
} }
@@ -4526,6 +4633,7 @@ @@ -4568,6 +4681,7 @@
telemetrySource, telemetrySource,
} = {} } = {}
) { ) {
@@ -449,7 +450,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs // When 'closeWindowWithLastTab' pref is enabled, closing all tabs
// can be considered equivalent to closing the window. // can be considered equivalent to closing the window.
if ( if (
@@ -4615,6 +4723,7 @@ @@ -4657,6 +4771,7 @@
if (lastToClose) { if (lastToClose) {
this.removeTab(lastToClose, aParams); this.removeTab(lastToClose, aParams);
} }
@@ -457,7 +458,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
@@ -4653,6 +4762,12 @@ @@ -4695,6 +4810,12 @@
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start(); aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
} }
@@ -470,35 +471,26 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// Handle requests for synchronously removing an already // Handle requests for synchronously removing an already
// asynchronously closing tab. // asynchronously closing tab.
if (!animate && aTab.closing) { if (!animate && aTab.closing) {
@@ -4667,7 +4782,9 @@ @@ -4709,6 +4830,9 @@
// frame created for it (for example, by updating the visually selected
// state). // state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
- let isLastTab = this.#isLastTabInWindow(aTab);
+ if (gZenGlanceManager.manageTabClose(aTab)) { + if (gZenGlanceManager.manageTabClose(aTab)) {
+ return; + return;
+ } + }
if ( if (
!this._beginRemoveTab(aTab, { !this._beginRemoveTab(aTab, {
closeWindowFastpath: true, closeWindowFastpath: true,
@@ -4828,14 +4945,14 @@ @@ -4891,7 +5015,7 @@
var newTab = false;
if (
aTab.visible &&
- this.visibleTabs.length == 1 &&
+ this.visibleTabs.length == 0 &&
!this.tabsInCollapsedTabGroups.length
) {
closeWindow =
closeWindowWithLastTab != null closeWindowWithLastTab != null
? closeWindowWithLastTab ? closeWindowWithLastTab
: !window.toolbar.visible || : !window.toolbar.visible ||
- Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab"); - Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab");
+ Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !gZenWorkspaces._isClosingWindow && !gZenWorkspaces._removedByStartupPage; + Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !gZenWorkspaces._isClosingWindow && !gZenWorkspaces._removedByStartupPage;
if (closeWindow) { if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here, // We've already called beforeunload on all the relevant tabs if we get here,
@@ -4859,6 +4976,7 @@ @@ -4915,6 +5039,7 @@
newTab = true; newTab = true;
} }
@@ -506,7 +498,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
aTab._endRemoveArgs = [closeWindow, newTab]; aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation. // swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -4899,9 +5017,7 @@ @@ -4955,9 +5080,7 @@
aTab._mouseleave(); aTab._mouseleave();
if (newTab) { if (newTab) {
@@ -517,15 +509,15 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} else { } else {
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -5035,6 +5151,7 @@ @@ -5090,6 +5213,7 @@
this.tabs[i]._tPos = i; this.tabs[i]._tPos = i;
} }
+ gZenWorkspaces.updateTabsContainers(); + gZenWorkspaces.updateTabsContainers();
if (!this._windowIsClosing) { if (!this._windowIsClosing) {
if (wasPinned) { // update tab close buttons state
this.tabContainer._positionPinnedTabs(); this.tabContainer._updateCloseButtons();
@@ -5249,6 +5366,7 @@ @@ -5302,6 +5426,7 @@
} }
let excludeTabs = new Set(aExcludeTabs); let excludeTabs = new Set(aExcludeTabs);
@@ -533,7 +525,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// If this tab has a successor, it should be selectable, since // If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor. // hiding or closing a tab removes that tab as a successor.
@@ -5261,13 +5379,13 @@ @@ -5314,13 +5439,13 @@
!excludeTabs.has(aTab.owner) && !excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) { ) {
@@ -549,7 +541,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
); );
let tab = this.tabContainer.findNextTab(aTab, { let tab = this.tabContainer.findNextTab(aTab, {
@@ -5283,7 +5401,7 @@ @@ -5336,7 +5461,7 @@
} }
if (tab) { if (tab) {
@@ -558,7 +550,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} }
// If no qualifying visible tab was found, see if there is a tab in // If no qualifying visible tab was found, see if there is a tab in
@@ -5304,7 +5422,7 @@ @@ -5357,7 +5482,7 @@
}); });
} }
@@ -567,7 +559,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} }
_blurTab(aTab) { _blurTab(aTab) {
@@ -5701,10 +5819,10 @@ @@ -5759,10 +5884,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
} }
@@ -580,7 +572,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
aTab.selected || aTab.selected ||
aTab.closing || aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden. // Tabs that are sharing the screen, microphone or camera cannot be hidden.
@@ -5924,7 +6042,7 @@ @@ -5952,7 +6077,7 @@
* `true` if element is a `<tab-group>` * `true` if element is a `<tab-group>`
*/ */
isTabGroup(element) { isTabGroup(element) {
@@ -589,7 +581,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} }
/** /**
@@ -6001,7 +6119,7 @@ @@ -6029,7 +6154,7 @@
// Don't allow mixing pinned and unpinned tabs. // Don't allow mixing pinned and unpinned tabs.
if (this.isTab(element) && element.pinned) { if (this.isTab(element) && element.pinned) {
@@ -598,7 +590,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
} else { } else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount); tabIndex = Math.max(tabIndex, this.pinnedTabCount);
} }
@@ -6027,10 +6145,16 @@ @@ -6055,10 +6180,16 @@
this.#handleTabMove( this.#handleTabMove(
element, element,
() => { () => {
@@ -617,41 +609,47 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
if (neighbor && this.isTab(element) && tabIndex > element._tPos) { if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
neighbor.after(element); neighbor.after(element);
} else { } else {
@@ -6099,17 +6223,29 @@ @@ -6122,7 +6253,7 @@
targetElement = targetElement.group; moveBefore = true;
} }
} }
- - if (this.isTabGroupLabel(element)) {
+ if (element.group?.hasAttribute("split-view-group")) { + if (this.isTabGroupLabel(element) || element.group?.hasAttribute("split-view-group")) {
+ element = element.group; element = element.group;
+ } if (targetElement?.group) {
// Don't allow mixing pinned and unpinned tabs. targetElement = targetElement.group;
- if (element.pinned && !targetElement?.pinned) { @@ -6130,8 +6261,12 @@
- targetElement = this.tabs[this.pinnedTabCount - 1];
+ if (element.hasAttribute('zen-essential') && !targetElement?.hasAttribute('zen-essential')) {
+ targetElement = this.tabs.filter(tab => !tab.hasAttribute('zen-glance-tab'))[this._numZenEssentials - 1];
+ moveBefore = false;
+ } else if (element.pinned && !targetElement?.pinned) {
+ targetElement = this.tabs.filter(tab => !tab.hasAttribute('zen-glance-tab'))[this.pinnedTabCount - 1];
moveBefore = false;
} else if (!element.pinned && targetElement && targetElement.pinned) {
- targetElement = this.tabs[this.pinnedTabCount];
+ targetElement = this.tabs.filter(tab => !tab.hasAttribute('zen-glance-tab'))[this.pinnedTabCount];
moveBefore = true;
} }
+ if (targetElement?.group?.hasAttribute("split-view-group")) { // Don't allow mixing pinned and unpinned tabs.
+ targetElement = targetElement.group;
+ }
+ targetElement = gZenGlanceManager.getTabOrGlanceParent(targetElement); + targetElement = gZenGlanceManager.getTabOrGlanceParent(targetElement);
let getContainer = () => { + if (element.hasAttribute('zen-essential') && !targetElement?.hasAttribute('zen-essential')) {
+ if (element.hasAttribute("zen-essential")) { + targetElement = this.tabsWithoutGlance[this._numZenEssentials - 1];
+ return gZenWorkspaces.getEssentialsSection(element); + } else
+ } if (element.pinned && !targetElement?.pinned) {
if (element.pinned && this.tabContainer.verticalMode) { - targetElement = this.tabs[this.pinnedTabCount - 1];
return this.tabContainer.verticalPinnedTabsContainer; + targetElement = this.tabsWithoutGlance[this.pinnedTabCount - 1];
moveBefore = false;
} else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned
@@ -6145,7 +6280,7 @@
// 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.
- targetElement = this.tabs[this.pinnedTabCount];
+ targetElement = this.tabsWithoutGlance[this.pinnedTabCount];
if (targetElement.group) {
targetElement = targetElement.group;
} }
@@ -6169,7 +6305,7 @@ @@ -6153,6 +6288,7 @@
}
let getContainer = () =>
+ element.hasAttribute("zen-essential") ? gZenWorkspaces.getEssentialsSection(element) :
element.pinned
? this.tabContainer.pinnedTabsContainer
: this.tabContainer;
@@ -6210,7 +6346,7 @@
if (!this.isTab(aTab)) { if (!this.isTab(aTab)) {
throw new Error("Can only move a tab into a tab group"); throw new Error("Can only move a tab into a tab group");
} }
@@ -660,7 +658,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
return; return;
} }
if (aTab.group && aTab.group.id === aGroup.id) { if (aTab.group && aTab.group.id === aGroup.id) {
@@ -6263,6 +6399,10 @@ @@ -6304,6 +6440,10 @@
moveActionCallback(); moveActionCallback();
@@ -671,7 +669,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// Clear tabs cache after moving nodes because the order of tabs may have // Clear tabs cache after moving nodes because the order of tabs may have
// changed. // changed.
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -7160,7 +7300,7 @@ @@ -7198,7 +7338,7 @@
// preventDefault(). It will still raise the window if appropriate. // preventDefault(). It will still raise the window if appropriate.
break; break;
} }
@@ -680,7 +678,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
window.focus(); window.focus();
aEvent.preventDefault(); aEvent.preventDefault();
break; break;
@@ -8059,6 +8199,7 @@ @@ -8143,6 +8283,7 @@
aWebProgress.isTopLevel aWebProgress.isTopLevel
) { ) {
this.mTab.setAttribute("busy", "true"); this.mTab.setAttribute("busy", "true");
@@ -688,7 +686,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
gBrowser._tabAttrModified(this.mTab, ["busy"]); gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected; this.mTab._notselectedsinceload = !this.mTab.selected;
} }
@@ -9022,7 +9163,7 @@ var TabContextMenu = { @@ -9108,7 +9249,7 @@ var TabContextMenu = {
); );
contextUnpinSelectedTabs.hidden = contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !this.multiselected; !this.contextTab.pinned || !this.multiselected;
@@ -697,7 +695,7 @@ index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f
// Move Tab items // Move Tab items
let contextMoveTabOptions = document.getElementById( let contextMoveTabOptions = document.getElementById(
"context_moveTabOptions" "context_moveTabOptions"
@@ -9298,6 +9439,7 @@ var TabContextMenu = { @@ -9384,6 +9525,7 @@ var TabContextMenu = {
) )
); );
} else { } else {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
index 6dc774ea335b0c5dba7dcf76cdb23728faae1343..b0b9ef236c2e8517db4bcf3270596456bbefe11d 100644 index 2ed2fa02b16013e40a32391b3dba0a4301d65262..f485a7e2e09d81d0699e38e19fbd6d184d6c00ea 100644
--- a/browser/components/tabbrowser/content/tabgroup.js --- a/browser/components/tabbrowser/content/tabgroup.js
+++ b/browser/components/tabbrowser/content/tabgroup.js +++ b/browser/components/tabbrowser/content/tabgroup.js
@@ -301,7 +301,7 @@ @@ -270,7 +270,7 @@
*/ */
addTabs(tabs, metricsContext) { addTabs(tabs, metricsContext) {
for (let tab of tabs) { for (let tab of tabs) {

View File

@@ -1,17 +1,8 @@
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8cff230eab 100644 index 1fcebe3962398ff1b7cadef657ac8b68a80e720d..bd64221c60aa2c2f4efdf765299ed03077710ff9 100644
--- a/browser/components/tabbrowser/content/tabs.js --- a/browser/components/tabbrowser/content/tabs.js
+++ b/browser/components/tabbrowser/content/tabs.js +++ b/browser/components/tabbrowser/content/tabs.js
@@ -83,7 +83,7 @@ @@ -289,6 +289,7 @@
};
this.arrowScrollbox._canScrollToElement = element => {
if (isTab(element)) {
- return !element.pinned || !this.hasAttribute("positionpinnedtabs");
+ return !element.hasAttribute("zen-essential") || !this.hasAttribute("positionpinnedtabs");
}
return true;
};
@@ -293,6 +293,7 @@
on_TabGroupCollapse(event) { on_TabGroupCollapse(event) {
this._invalidateCachedVisibleTabs(); this._invalidateCachedVisibleTabs();
this._unlockTabSizing(); this._unlockTabSizing();
@@ -19,7 +10,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
// If the user's selected tab is in the collapsing group, kick them off // If the user's selected tab is in the collapsing group, kick them off
// the tab. If no tabs exist outside the group, create a new one and // the tab. If no tabs exist outside the group, create a new one and
@@ -349,7 +350,7 @@ @@ -345,7 +346,7 @@
// and we're not hitting the scroll buttons. // and we're not hitting the scroll buttons.
if ( if (
event.button != 0 || event.button != 0 ||
@@ -28,16 +19,16 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
event.composedTarget.localName == "toolbarbutton" event.composedTarget.localName == "toolbarbutton"
) { ) {
return; return;
@@ -699,7 +700,7 @@ @@ -695,7 +696,7 @@
if (this.#isContainerVerticalPinnedGrid(tab)) { if (this.#isContainerVerticalPinnedGrid(tab)) {
// In expanded vertical mode, the max number of pinned tabs per row is dynamic // In expanded vertical mode, the max number of pinned tabs per row is dynamic
// Set this before adjusting dragged tab's position // Set this before adjusting dragged tab's position
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount); - let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
+ let pinnedTabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); + let pinnedTabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
let tabsPerRow = 0; let tabsPerRow = 0;
let position = 0; let position = RTL_UI
for (let pinnedTab of pinnedTabs) { ? window.windowUtils.getBoundsWithoutFlushing(
@@ -772,7 +773,7 @@ @@ -780,7 +781,7 @@
} else if (isTabGroupLabel(tab) && !tab.group.collapsed) { } else if (isTabGroupLabel(tab) && !tab.group.collapsed) {
this._lockTabSizing(); this._lockTabSizing();
this.#keepTabSizeLocked = true; this.#keepTabSizeLocked = true;
@@ -46,16 +37,16 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
expandGroupOnDrop = true; expandGroupOnDrop = true;
} }
} }
@@ -871,7 +872,7 @@ @@ -879,7 +880,7 @@
? event.screenY - window.screenY - tabOffset ? event.screenY - window.screenY - tabOffset
: event.screenY - window.screenY, : event.screenY - window.screenY,
scrollPos: scrollPos:
- this.verticalMode && tab.pinned - this.verticalMode && tab.pinned
+ this.verticalMode && tab.pinned && false + this.verticalMode && tab.pinned && false
? this.verticalPinnedTabsContainer.scrollPosition ? this.pinnedTabsContainer.scrollPosition
: this.arrowScrollbox.scrollPosition, : this.arrowScrollbox.scrollPosition,
screenX: event.screenX, screenX: event.screenX,
@@ -925,6 +926,10 @@ @@ -933,6 +934,10 @@
} }
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
@@ -66,7 +57,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
if ( if (
(effects == "move" || effects == "copy") && (effects == "move" || effects == "copy") &&
document == draggedTab.ownerDocument && document == draggedTab.ownerDocument &&
@@ -1081,6 +1086,18 @@ @@ -1089,6 +1094,18 @@
this._tabDropIndicator.hidden = true; this._tabDropIndicator.hidden = true;
event.stopPropagation(); event.stopPropagation();
@@ -85,7 +76,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
if (draggedTab && dropEffect == "copy") { if (draggedTab && dropEffect == "copy") {
let duplicatedDraggedTab; let duplicatedDraggedTab;
let duplicatedTabs = []; let duplicatedTabs = [];
@@ -1120,10 +1137,11 @@ @@ -1128,10 +1145,11 @@
} }
} else { } else {
let isPinned = draggedTab.pinned; let isPinned = draggedTab.pinned;
@@ -100,7 +91,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
); );
let size = this.verticalMode ? "height" : "width"; let size = this.verticalMode ? "height" : "width";
let screenAxis = this.verticalMode ? "screenY" : "screenX"; let screenAxis = this.verticalMode ? "screenY" : "screenX";
@@ -1172,7 +1190,7 @@ @@ -1180,7 +1198,7 @@
(oldTranslateX && oldTranslateX != newTranslateX) || (oldTranslateX && oldTranslateX != newTranslateX) ||
(oldTranslateY && oldTranslateY != newTranslateY); (oldTranslateY && oldTranslateY != newTranslateY);
} else if (this.verticalMode) { } else if (this.verticalMode) {
@@ -109,7 +100,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} else { } else {
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX; shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
} }
@@ -1341,6 +1359,7 @@ @@ -1349,6 +1367,7 @@
let nextItem = this.ariaFocusableItems[newIndex]; let nextItem = this.ariaFocusableItems[newIndex];
let tabGroup = isTab(nextItem) && nextItem.group; let tabGroup = isTab(nextItem) && nextItem.group;
@@ -117,7 +108,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
gBrowser.loadTabs(urls, { gBrowser.loadTabs(urls, {
inBackground, inBackground,
replace, replace,
@@ -1373,6 +1392,17 @@ @@ -1381,6 +1400,17 @@
this.finishMoveTogetherSelectedTabs(draggedTab); this.finishMoveTogetherSelectedTabs(draggedTab);
this.finishAnimateTabMove(); this.finishAnimateTabMove();
@@ -135,7 +126,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
this.#expandGroupOnDrop(draggedTab); this.#expandGroupOnDrop(draggedTab);
if ( if (
@@ -1601,7 +1631,7 @@ @@ -1607,7 +1637,7 @@
} }
get newTabButton() { get newTabButton() {
@@ -144,7 +135,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} }
get verticalMode() { get verticalMode() {
@@ -1617,6 +1647,7 @@ @@ -1623,6 +1653,7 @@
} }
get overflowing() { get overflowing() {
@@ -152,7 +143,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
return this.hasAttribute("overflow"); return this.hasAttribute("overflow");
} }
@@ -1625,29 +1656,54 @@ @@ -1631,26 +1662,54 @@
if (this.#allTabs) { if (this.#allTabs) {
return this.#allTabs; return this.#allTabs;
} }
@@ -167,7 +158,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
- for (let i = children.length - 1; i >= 0; i--) { - for (let i = children.length - 1; i >= 0; i--) {
- if (children[i].tagName == "tab-group") { - if (children[i].tagName == "tab-group") {
- children.splice(i, 1, ...children[i].tabs); - children.splice(i, 1, ...children[i].tabs);
+ const pinnedTabs = [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.verticalPinnedTabsContainer.children]; + const pinnedTabs = [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.children];
+ const expandTabs = (tabs) => { + const expandTabs = (tabs) => {
+ for (let i = tabs.length - 1; i >= 0; i--) { + for (let i = tabs.length - 1; i >= 0; i--) {
+ const tab = tabs[i]; + const tab = tabs[i];
@@ -180,14 +171,13 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} }
} }
- -
- this.#allTabs = [ - this.#allTabs = [...this.pinnedTabsContainer.children, ...children];
- ...this.verticalPinnedTabsContainer.children,
+ expandTabs(pinnedTabs); + expandTabs(pinnedTabs);
+ expandTabs(children); + expandTabs(children);
+ const allTabs = [ + const allTabs = [
+ ...pinnedTabs, + ...pinnedTabs,
...children, + ...children,
]; + ];
+ const lastPinnedTabIdx = pinnedTabs.length - 1; + const lastPinnedTabIdx = pinnedTabs.length - 1;
+ let i = 0; + let i = 0;
+ for (const tab of [...allTabs]) { + for (const tab of [...allTabs]) {
@@ -197,7 +187,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
+ // insert right after the parent tab. note: it must be inserted before + // insert right after the parent tab. note: it must be inserted before
+ // the last pinned tab so it can be inserted in the correct order + // the last pinned tab so it can be inserted in the correct order
+ allTabs.splice(Math.max(i++ + 1, lastPinnedTabIdx), 0, glanceTab); + allTabs.splice(Math.max(i++ + 1, lastPinnedTabIdx), 0, glanceTab);
+ } else if (tab.classList.contains("vertical-pinned-tabs-container-separator")) { + } else if (tab.classList.contains("pinned-tabs-container-separator")) {
+ // remove the separator from the list + // remove the separator from the list
+ allTabs.splice(i, 1); + allTabs.splice(i, 1);
+ i--; + i--;
@@ -215,23 +205,19 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} }
/** /**
@@ -1702,23 +1758,18 @@ @@ -1717,20 +1776,17 @@
}
let elementIndex = 0; let elementIndex = 0;
- let verticalPinnedTabsContainer = document.getElementById(
- "vertical-pinned-tabs-container" - for (let i = 0; i < this.pinnedTabsContainer.childElementCount; i++) {
- ); - this.pinnedTabsContainer.children[i].elementIndex = elementIndex++;
- for (let i = 0; i < verticalPinnedTabsContainer.childElementCount; i++) {
- verticalPinnedTabsContainer.children[i].elementIndex = elementIndex++;
- } - }
- let children = Array.from(this.arrowScrollbox.children); - let children = Array.from(this.arrowScrollbox.children);
+ let verticalPinnedTabsContainer = this.verticalPinnedTabsContainer
+ let children = gZenWorkspaces.tabboxChildrenWithoutEmpty; + let children = gZenWorkspaces.tabboxChildrenWithoutEmpty;
let focusableItems = []; let focusableItems = [];
- for (let child of children) { - for (let child of children) {
+ for (let child of [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...verticalPinnedTabsContainer.children, ...children]) { + for (let child of [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.children, ...children]) {
if (isTab(child) && child.visible) { if (isTab(child) && child.visible) {
child.elementIndex = elementIndex++; child.elementIndex = elementIndex++;
focusableItems.push(child); focusableItems.push(child);
@@ -243,19 +229,19 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible); let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
visibleTabsInGroup.forEach(tab => { visibleTabsInGroup.forEach(tab => {
tab.elementIndex = elementIndex++; tab.elementIndex = elementIndex++;
@@ -1728,10 +1779,7 @@ @@ -1740,10 +1796,7 @@
} }
} }
- this.#focusableItems = [ - this.#focusableItems = [
- ...verticalPinnedTabsContainer.children, - ...this.pinnedTabsContainer.children,
- ...focusableItems, - ...focusableItems,
- ]; - ];
+ this.#focusableItems = focusableItems; + this.#focusableItems = focusableItems;
return this.#focusableItems; return this.#focusableItems;
} }
@@ -1739,6 +1787,7 @@ @@ -1751,6 +1804,7 @@
_invalidateCachedTabs() { _invalidateCachedTabs() {
this.#allTabs = null; this.#allTabs = null;
this._invalidateCachedVisibleTabs(); this._invalidateCachedVisibleTabs();
@@ -263,7 +249,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} }
_invalidateCachedVisibleTabs() { _invalidateCachedVisibleTabs() {
@@ -1753,8 +1802,8 @@ @@ -1766,8 +1820,8 @@
#isContainerVerticalPinnedGrid(tab) { #isContainerVerticalPinnedGrid(tab) {
return ( return (
this.verticalMode && this.verticalMode &&
@@ -274,7 +260,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
!this.expandOnHover !this.expandOnHover
); );
} }
@@ -1770,7 +1819,7 @@ @@ -1783,7 +1837,7 @@
if (node == null) { if (node == null) {
// We have a container for non-tab elements at the end of the scrollbox. // We have a container for non-tab elements at the end of the scrollbox.
@@ -283,7 +269,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} }
node.before(tab); node.before(tab);
@@ -1865,7 +1914,7 @@ @@ -1878,7 +1932,7 @@
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and // 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); // for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
// Attach the long click popup to all of them. // Attach the long click popup to all of them.
@@ -292,7 +278,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
const newTab2 = this.newTabButton; const newTab2 = this.newTabButton;
const newTabVertical = document.getElementById( const newTabVertical = document.getElementById(
"vertical-tabs-newtab-button" "vertical-tabs-newtab-button"
@@ -1960,10 +2009,12 @@ @@ -1973,10 +2027,12 @@
_handleTabSelect(aInstant) { _handleTabSelect(aInstant) {
let selectedTab = this.selectedItem; let selectedTab = this.selectedItem;
@@ -305,15 +291,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
selectedTab._notselectedsinceload = false; selectedTab._notselectedsinceload = false;
} }
@@ -2136,6 +2187,7 @@ @@ -2130,7 +2186,7 @@
}
_positionPinnedTabs() {
+ if (true) return;
let tabs = this.visibleTabs;
let numPinned = gBrowser.pinnedTabCount;
let absPositionHorizontalTabs =
@@ -2210,7 +2262,7 @@
return; return;
} }
@@ -322,7 +300,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
let directionX = screenX > dragData.animLastScreenX; let directionX = screenX > dragData.animLastScreenX;
let directionY = screenY > dragData.animLastScreenY; let directionY = screenY > dragData.animLastScreenY;
@@ -2219,6 +2271,8 @@ @@ -2139,6 +2195,8 @@
let { width: tabWidth, height: tabHeight } = let { width: tabWidth, height: tabHeight } =
draggedTab.getBoundingClientRect(); draggedTab.getBoundingClientRect();
@@ -331,16 +309,25 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
let shiftSizeX = tabWidth * movingTabs.length; let shiftSizeX = tabWidth * movingTabs.length;
let shiftSizeY = tabHeight; let shiftSizeY = tabHeight;
dragData.tabWidth = tabWidth; dragData.tabWidth = tabWidth;
@@ -2248,7 +2302,7 @@ @@ -2168,7 +2226,7 @@
let translateX = screenX - dragData.screenX; let translateX = screenX - dragData.screenX;
let translateY = screenY - dragData.screenY; let translateY = screenY - dragData.screenY;
translateY += translateY +=
- this.verticalPinnedTabsContainer.scrollPosition - dragData.scrollPos; - this.pinnedTabsContainer.scrollPosition - dragData.scrollPos;
+ dragData.scrollPos; + dragData.scrollPos;
let firstBoundX = firstTabInRow.screenX - firstMovingTabScreenX; let firstBoundX = firstTabInRow.screenX - firstMovingTabScreenX;
let firstBoundY = firstTabInRow.screenY - firstMovingTabScreenY; let firstBoundY = firstTabInRow.screenY - firstMovingTabScreenY;
let lastBoundX = let lastBoundX =
@@ -2394,12 +2448,16 @@ @@ -2294,7 +2352,7 @@
}
dragData.animDropElementIndex = newIndex;
- dragData.dropElement = tabs[newIndex];
+ dragData.dropElement = tabs[Math.min(newIndex, tabs.length - 1)];
dragData.dropBefore = newIndex < tabs.length;
// Shift background tabs to leave a gap where the dragged tab
@@ -2327,12 +2385,16 @@
this.#clearDragOverCreateGroupTimer(); this.#clearDragOverCreateGroupTimer();
@@ -361,7 +348,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
if (this.#rtlMode) { if (this.#rtlMode) {
tabs.reverse(); tabs.reverse();
@@ -2413,7 +2471,7 @@ @@ -2346,7 +2408,7 @@
let size = this.verticalMode ? "height" : "width"; let size = this.verticalMode ? "height" : "width";
let translateAxis = this.verticalMode ? "translateY" : "translateX"; let translateAxis = this.verticalMode ? "translateY" : "translateX";
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft"; let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
@@ -370,7 +357,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
let translateX = event.screenX - dragData.screenX; let translateX = event.screenX - dragData.screenX;
let translateY = event.screenY - dragData.screenY; let translateY = event.screenY - dragData.screenY;
@@ -2427,12 +2485,21 @@ @@ -2360,12 +2422,21 @@
let lastTab = tabs.at(-1); let lastTab = tabs.at(-1);
let lastMovingTab = movingTabs.at(-1); let lastMovingTab = movingTabs.at(-1);
let firstMovingTab = movingTabs[0]; let firstMovingTab = movingTabs[0];
@@ -393,7 +380,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
translate += translate +=
this.arrowScrollbox.scrollbox[scrollDirection] - dragData.scrollPos; this.arrowScrollbox.scrollbox[scrollDirection] - dragData.scrollPos;
} else if (isPinned && this.verticalMode) { } else if (isPinned && this.verticalMode) {
@@ -2451,6 +2518,9 @@ @@ -2384,6 +2455,9 @@
// Shift the `.tab-group-label-container` to shift the label element. // Shift the `.tab-group-label-container` to shift the label element.
item = item.parentElement; item = item.parentElement;
} }
@@ -403,7 +390,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
item.style.transform = `${translateAxis}(${translate}px)`; item.style.transform = `${translateAxis}(${translate}px)`;
} }
@@ -2588,6 +2658,9 @@ @@ -2521,6 +2595,9 @@
break; break;
} }
let element = tabs[mid]; let element = tabs[mid];
@@ -413,31 +400,30 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
let elementForSize = isTabGroupLabel(element) let elementForSize = isTabGroupLabel(element)
? element.parentElement ? element.parentElement
: element; : element;
@@ -2664,7 +2737,7 @@ @@ -2604,7 +2681,7 @@
let shouldCreateGroupOnDrop; let shouldCreateGroupOnDrop;
let dropBefore; let dropBefore;
if (dropElement) { if (dropElement) {
- let dropElementForOverlap = isTabGroupLabel(dropElement) - let dropElementForOverlap = isTabGroupLabel(dropElement)
+ let dropElementForOverlap = isTabGroupLabel(dropElement) && !dropElement.closest("tab-group")?.hasAttribute("split-view-group") + let dropElementForOverlap = isTabGroupLabel(dropElement) && !dropElement.group?.hasAttribute("split-view-group")
? dropElement.parentElement ? dropElement.parentElement
: dropElement; : dropElement;
@@ -2726,12 +2799,12 @@ @@ -2686,12 +2763,7 @@
} }
} }
- if (gBrowser._tabGroupsEnabled && isTab(draggedTab) && !isPinned) { - if (
+ if (true) { - gBrowser._tabGroupsEnabled &&
- isTab(draggedTab) &&
- !isPinned &&
- (!numPinned || newDropElementIndex > numPinned)
- ) {
+ if (isTab(draggedTab)) {
let dragOverGroupingThreshold = 1 - moveOverThreshold; let dragOverGroupingThreshold = 1 - moveOverThreshold;
// When dragging tab(s) over an ungrouped tab, signal to the user // When dragging tab(s) over an ungrouped tab, signal to the user
// that dropping the tab(s) will create a new tab group. @@ -2739,7 +2811,7 @@
- shouldCreateGroupOnDrop =
+ shouldCreateGroupOnDrop = false &&
isTab(dropElement) &&
!dropElement?.group &&
overlapPercent > dragOverGroupingThreshold;
@@ -2773,7 +2846,7 @@
// Dropping right before the tab group. // Dropping right before the tab group.
dropElement = dropElementGroup; dropElement = dropElementGroup;
colorCode = undefined; colorCode = undefined;
@@ -446,7 +432,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
// Dropping right after the collapsed tab group. // Dropping right after the collapsed tab group.
dropElement = dropElementGroup; dropElement = dropElementGroup;
colorCode = undefined; colorCode = undefined;
@@ -2803,7 +2876,7 @@ @@ -2769,7 +2841,7 @@
// Shift background tabs to leave a gap where the dragged tab // Shift background tabs to leave a gap where the dragged tab
// would currently be dropped. // would currently be dropped.
for (let item of tabs) { for (let item of tabs) {
@@ -455,7 +441,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
continue; continue;
} }
@@ -2812,6 +2885,9 @@ @@ -2778,6 +2850,9 @@
if (isTabGroupLabel(item)) { if (isTabGroupLabel(item)) {
// Shift the `.tab-group-label-container` to shift the label element. // Shift the `.tab-group-label-container` to shift the label element.
item = item.parentElement; item = item.parentElement;
@@ -465,7 +451,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
} }
item.style.transform = transform; item.style.transform = transform;
} }
@@ -2864,8 +2940,9 @@ @@ -2830,8 +2905,9 @@
); );
} }
@@ -477,7 +463,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
return; return;
} }
@@ -2877,6 +2954,12 @@ @@ -2843,6 +2919,12 @@
item = item.parentElement; item = item.parentElement;
} }
item.style.transform = ""; item.style.transform = "";
@@ -490,7 +476,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
item.removeAttribute("dragover-createGroup"); item.removeAttribute("dragover-createGroup");
} }
this.removeAttribute("movingtab-createGroup"); this.removeAttribute("movingtab-createGroup");
@@ -2923,7 +3006,7 @@ @@ -2889,7 +2971,7 @@
let postTransitionCleanup = () => { let postTransitionCleanup = () => {
movingTab._moveTogetherSelectedTabsData.animate = false; movingTab._moveTogetherSelectedTabsData.animate = false;
}; };
@@ -499,7 +485,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
postTransitionCleanup(); postTransitionCleanup();
} else { } else {
let onTransitionEnd = transitionendEvent => { let onTransitionEnd = transitionendEvent => {
@@ -3096,7 +3179,7 @@ @@ -3062,7 +3144,7 @@
} }
_notifyBackgroundTab(aTab) { _notifyBackgroundTab(aTab) {
@@ -508,7 +494,7 @@ index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8c
return; return;
} }
@@ -3222,6 +3305,9 @@ @@ -3188,6 +3270,9 @@
return null; return null;
} }
} }

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb6533774b 100644 index 50e9d3931789551869ff37a4fc89d5dfe2c09ad1..0cbce1ce41345075c999f3ff9c0268965bbc92b9 100644
--- a/browser/components/urlbar/UrlbarInput.sys.mjs --- a/browser/components/urlbar/UrlbarInput.sys.mjs
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs +++ b/browser/components/urlbar/UrlbarInput.sys.mjs
@@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter( @@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
@@ -16,7 +16,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history"; const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
const SEARCH_BUTTON_CLASS = "urlbar-search-button"; const SEARCH_BUTTON_CLASS = "urlbar-search-button";
@@ -355,7 +362,16 @@ export class UrlbarInput { @@ -378,7 +385,16 @@ export class UrlbarInput {
// See _on_select(). HTMLInputElement.select() dispatches a "select" // See _on_select(). HTMLInputElement.select() dispatches a "select"
// event but does not set the primary selection. // event but does not set the primary selection.
this._suppressPrimaryAdjustment = true; this._suppressPrimaryAdjustment = true;
@@ -33,7 +33,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
this._suppressPrimaryAdjustment = false; this._suppressPrimaryAdjustment = false;
} }
@@ -431,6 +447,10 @@ export class UrlbarInput { @@ -454,6 +470,10 @@ export class UrlbarInput {
hideSearchTerms = false, hideSearchTerms = false,
isSameDocument = false isSameDocument = false
) { ) {
@@ -44,7 +44,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
// We only need to update the searchModeUI on tab switch conditionally // We only need to update the searchModeUI on tab switch conditionally
// as we only persist searchMode with ScotchBonnet enabled. // as we only persist searchMode with ScotchBonnet enabled.
if ( if (
@@ -735,8 +755,16 @@ export class UrlbarInput { @@ -717,8 +737,16 @@ export class UrlbarInput {
return; return;
} }
} }
@@ -62,7 +62,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
} }
/** /**
@@ -1142,7 +1170,11 @@ export class UrlbarInput { @@ -1124,7 +1152,11 @@ export class UrlbarInput {
} }
if (!this.#providesSearchMode(result)) { if (!this.#providesSearchMode(result)) {
@@ -75,7 +75,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
} }
if (isCanonized) { if (isCanonized) {
@@ -2191,6 +2223,10 @@ export class UrlbarInput { @@ -2177,6 +2209,10 @@ export class UrlbarInput {
await this.#updateLayoutBreakoutDimensions(); await this.#updateLayoutBreakoutDimensions();
} }
@@ -86,7 +86,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
startLayoutExtend() { startLayoutExtend() {
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) { if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
// Do not expand if the Urlbar does not support being expanded or it is // Do not expand if the Urlbar does not support being expanded or it is
@@ -2205,6 +2241,12 @@ export class UrlbarInput { @@ -2191,6 +2227,12 @@ export class UrlbarInput {
this.setAttribute("breakout-extend", "true"); this.setAttribute("breakout-extend", "true");
@@ -99,7 +99,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
// Enable the animation only after the first extend call to ensure it // Enable the animation only after the first extend call to ensure it
// doesn't run when opening a new window. // doesn't run when opening a new window.
if (!this.hasAttribute("breakout-extend-animate")) { if (!this.hasAttribute("breakout-extend-animate")) {
@@ -2224,6 +2266,24 @@ export class UrlbarInput { @@ -2210,6 +2252,24 @@ export class UrlbarInput {
return; return;
} }
@@ -124,7 +124,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
this.removeAttribute("breakout-extend"); this.removeAttribute("breakout-extend");
this.#updateTextboxPosition(); this.#updateTextboxPosition();
} }
@@ -2553,7 +2613,7 @@ export class UrlbarInput { @@ -2539,7 +2599,7 @@ export class UrlbarInput {
this.textbox.parentNode.style.setProperty( this.textbox.parentNode.style.setProperty(
"--urlbar-container-height", "--urlbar-container-height",
@@ -133,7 +133,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
); );
this.textbox.style.setProperty( this.textbox.style.setProperty(
"--urlbar-height", "--urlbar-height",
@@ -2968,6 +3028,7 @@ export class UrlbarInput { @@ -2954,6 +3014,7 @@ export class UrlbarInput {
} }
_toggleActionOverride(event) { _toggleActionOverride(event) {
@@ -141,7 +141,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
if ( if (
event.keyCode == KeyEvent.DOM_VK_SHIFT || event.keyCode == KeyEvent.DOM_VK_SHIFT ||
event.keyCode == KeyEvent.DOM_VK_ALT || event.keyCode == KeyEvent.DOM_VK_ALT ||
@@ -3069,7 +3130,7 @@ export class UrlbarInput { @@ -3055,7 +3116,7 @@ export class UrlbarInput {
*/ */
_trimValue(val) { _trimValue(val) {
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
@@ -150,7 +150,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
: val; : val;
// Only trim value if the directionality doesn't change to RTL and we're not // Only trim value if the directionality doesn't change to RTL and we're not
// showing a strikeout https protocol. // showing a strikeout https protocol.
@@ -3439,6 +3500,10 @@ export class UrlbarInput { @@ -3425,6 +3486,10 @@ export class UrlbarInput {
} }
reuseEmpty = true; reuseEmpty = true;
} }
@@ -161,7 +161,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
if ( if (
where == "tab" && where == "tab" &&
reuseEmpty && reuseEmpty &&
@@ -3446,6 +3511,9 @@ export class UrlbarInput { @@ -3432,6 +3497,9 @@ export class UrlbarInput {
) { ) {
where = "current"; where = "current";
} }
@@ -171,7 +171,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
return where; return where;
} }
@@ -3703,6 +3771,7 @@ export class UrlbarInput { @@ -3689,6 +3757,7 @@ export class UrlbarInput {
this.setResultForCurrentValue(null); this.setResultForCurrentValue(null);
this.handleCommand(); this.handleCommand();
this.controller.clearLastQueryContextCache(); this.controller.clearLastQueryContextCache();
@@ -179,7 +179,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
this._suppressStartQuery = false; this._suppressStartQuery = false;
}); });
@@ -3710,7 +3779,6 @@ export class UrlbarInput { @@ -3696,7 +3765,6 @@ export class UrlbarInput {
contextMenu.addEventListener("popupshowing", () => { contextMenu.addEventListener("popupshowing", () => {
// Close the results pane when the input field contextual menu is open, // Close the results pane when the input field contextual menu is open,
// because paste and go doesn't want a result selection. // because paste and go doesn't want a result selection.
@@ -187,15 +187,15 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
let controller = let controller =
this.document.commandDispatcher.getControllerForCommand("cmd_paste"); this.document.commandDispatcher.getControllerForCommand("cmd_paste");
@@ -4025,6 +4093,7 @@ export class UrlbarInput { @@ -4098,6 +4166,7 @@ export class UrlbarInput {
_setPlaceholder(name) {
this.document.l10n.setAttributes( this.document.l10n.setAttributes(
this.inputField, this.inputField,
+ this.window.gZenVerticalTabsManager._hasSetSingleToolbar ? 'zen-singletoolbar-urlbar-placeholder-with-name' : + this.window.gZenVerticalTabsManager._hasSetSingleToolbar ? 'zen-singletoolbar-urlbar-placeholder-with-name' :
name ? "urlbar-placeholder-with-name" : "urlbar-placeholder", l10nId,
name ? { name } : undefined l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
); );
@@ -4136,6 +4205,11 @@ export class UrlbarInput { @@ -4209,6 +4278,11 @@ export class UrlbarInput {
} }
_on_click(event) { _on_click(event) {
@@ -207,7 +207,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
if ( if (
event.target == this.inputField || event.target == this.inputField ||
event.target == this._inputContainer || event.target == this._inputContainer ||
@@ -4207,7 +4281,7 @@ export class UrlbarInput { @@ -4280,7 +4354,7 @@ export class UrlbarInput {
} }
} }
@@ -216,7 +216,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
this.view.autoOpen({ event }); this.view.autoOpen({ event });
} else { } else {
if (this._untrimOnFocusAfterKeydown) { if (this._untrimOnFocusAfterKeydown) {
@@ -4247,9 +4321,16 @@ export class UrlbarInput { @@ -4320,9 +4394,16 @@ export class UrlbarInput {
} }
_on_mousedown(event) { _on_mousedown(event) {
@@ -234,7 +234,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
if ( if (
event.target != this.inputField && event.target != this.inputField &&
@@ -4261,6 +4342,10 @@ export class UrlbarInput { @@ -4334,6 +4415,10 @@ export class UrlbarInput {
this.focusedViaMousedown = !this.focused; this.focusedViaMousedown = !this.focused;
this._preventClickSelectsAll = this.focused; this._preventClickSelectsAll = this.focused;
@@ -245,7 +245,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb
// Keep the focus status, since the attribute may be changed // Keep the focus status, since the attribute may be changed
// upon calling this.focus(). // upon calling this.focus().
@@ -4301,7 +4386,7 @@ export class UrlbarInput { @@ -4374,7 +4459,7 @@ export class UrlbarInput {
} }
// Don't close the view when clicking on a tab; we may want to keep the // 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. // view open on tab switch, and the TabSelect event arrived earlier.

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs b/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs diff --git a/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs b/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs
index dcf1af43d62979d3226d7f704c51a2f0bb935cc0..8879d657b99cb20cd657c2e4841738ffaa09c658 100644 index c0d2b04ff869c4ad193d71aa19949d0e1fefe5ea..e5d054bf583a10fd96a94096cfe3752beb97d2ab 100644
--- a/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs --- a/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs
+++ b/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs +++ b/browser/components/urlbar/UrlbarMuxerUnifiedComplete.sys.mjs
@@ -794,6 +794,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer { @@ -845,6 +845,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
} }
if (result.providerName == lazy.UrlbarProviderTabToSearch.name) { if (result.providerName == lazy.UrlbarProviderTabToSearch.name) {

View File

@@ -1,33 +1,23 @@
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
index 899e808c5f8cf14577404e3d1766fe967b32b065..82854a04edc21ac4552d06d6ba45c4714b5ef5cb 100644 index 815734d9a5a589174ac33cb15ff9988d13e78b8c..227511238b13155f70d305bcbaa84dcd45a66e1c 100644
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs --- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs +++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
@@ -35,6 +35,8 @@ const QUERYINDEX_SWITCHTAB = 9; @@ -40,11 +40,13 @@ function defaultQuery(conditions = "") {
const QUERYINDEX_FRECENCY = 10; let query = `
const QUERYINDEX_USERCONTEXTID = 11; SELECT h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT}, h.id, t.open_count,
const QUERYINDEX_LASTVIST = 12; ${lazy.PAGES_FRECENCY_FIELD} AS frecency, t.userContextId,
+const QUERYINDEX_PINNEDTITLE = 13; - h.last_visit_date, t.groupId
+const QUERYINDEX_PINNEDURL = 14; + h.last_visit_date, t.groupId, zp.title AS pinned_title, zp.url AS pinned_url
// This SQL query fragment provides the following:
// - whether the entry is bookmarked (QUERYINDEX_BOOKMARKED)
@@ -56,11 +58,14 @@ const SQL_BOOKMARK_TAGS_FRAGMENT = `EXISTS(SELECT 1 FROM moz_bookmarks WHERE fk
// condition once, and avoid evaluating "btitle" and "tags" when it is false.
function defaultQuery(conditions = "") {
let query = `SELECT :query_type, h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT},
- h.visit_count, h.typed, h.id, t.open_count, ${lazy.PAGES_FRECENCY_FIELD}, t.userContextId, h.last_visit_date
+ h.visit_count, h.typed, h.id, t.open_count, ${lazy.PAGES_FRECENCY_FIELD}, t.userContextId, h.last_visit_date,
+ zp.title AS pinned_title, zp.url AS pinned_url
FROM moz_places h FROM moz_places h
LEFT JOIN moz_openpages_temp t LEFT JOIN moz_openpages_temp t
ON t.url = h.url ON t.url = h.url
AND (t.userContextId = :userContextId OR (t.userContextId <> -1 AND :userContextId IS NULL)) AND (t.userContextId = :userContextId OR (t.userContextId <> -1 AND :userContextId IS NULL))
+ LEFT JOIN zen_pins zp + LEFT JOIN zen_pins zp
+ ON zp.url = h.url + ON zp.url = h.url
WHERE ( WHERE (
(:switchTabsEnabled AND t.open_count > 0) OR (:switchTabsEnabled AND t.open_count > 0) OR
${lazy.PAGES_FRECENCY_FIELD} <> 0 ${lazy.PAGES_FRECENCY_FIELD} <> 0
@@ -74,7 +79,7 @@ function defaultQuery(conditions = "") { @@ -58,7 +60,7 @@ function defaultQuery(conditions = "") {
:matchBehavior, :searchBehavior, NULL) :matchBehavior, :searchBehavior, NULL)
ELSE ELSE
AUTOCOMPLETE_MATCH(:searchString, h.url, AUTOCOMPLETE_MATCH(:searchString, h.url,
@@ -36,15 +26,13 @@ index 899e808c5f8cf14577404e3d1766fe967b32b065..82854a04edc21ac4552d06d6ba45c471
h.visit_count, h.typed, h.visit_count, h.typed,
0, t.open_count, 0, t.open_count,
:matchBehavior, :searchBehavior, NULL) :matchBehavior, :searchBehavior, NULL)
@@ -1130,11 +1135,14 @@ Search.prototype = { @@ -1114,11 +1116,13 @@ Search.prototype = {
let lastVisit = lastVisitPRTime
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime() ? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
: undefined; : undefined;
- let tabGroup = row.getResultByName("groupId");
+ let pinnedTitle = row.getResultByIndex(QUERYINDEX_PINNEDTITLE); + let pinnedTitle = row.getResultByIndex("pinned_title");
+ let pinnedUrl = row.getResultByIndex(QUERYINDEX_PINNEDURL); + let pinnedUrl = row.getResultByIndex("pinned_url");
+
+
let match = { let match = {
placeId, placeId,
- value: url, - value: url,

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
index e17f3d34367d6567c89f632b6d1ce537608a6829..7528dfb0abc8ea8d9315591cd529a341b4c3962a 100644 index ec5575d8990ee431729d044953924d3a8b79d665..8a5b9f363138736ca168a2e43805540561af64d4 100644
--- a/browser/components/urlbar/UrlbarView.sys.mjs --- a/browser/components/urlbar/UrlbarView.sys.mjs
+++ b/browser/components/urlbar/UrlbarView.sys.mjs +++ b/browser/components/urlbar/UrlbarView.sys.mjs
@@ -609,7 +609,7 @@ export class UrlbarView { @@ -609,7 +609,7 @@ export class UrlbarView {
@@ -20,7 +20,7 @@ index e17f3d34367d6567c89f632b6d1ce537608a6829..7528dfb0abc8ea8d9315591cd529a341
if (result.isHiddenExposure) { if (result.isHiddenExposure) {
if (canBeVisible) { if (canBeVisible) {
this.controller.engagementEvent.addExposure( this.controller.engagementEvent.addExposure(
@@ -2975,7 +2975,7 @@ export class UrlbarView { @@ -3015,7 +3015,7 @@ export class UrlbarView {
} }
#enableOrDisableRowWrap() { #enableOrDisableRowWrap() {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
index a00011de585a40b91d33364a04c6bf5c86145ecd..f98b6d11519a80aff307513fd77361179f9914a4 100644 index fc416c1977f9bc20ad86ecb7758056489cbc94cf..939f5ea34a914e919ebe568f8e795d7421c0abbc 100644
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs --- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs +++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
@@ -228,7 +228,7 @@ export const PREFS_CONFIG = new Map([ @@ -258,7 +258,7 @@ export const PREFS_CONFIG = new Map([
"showSponsoredTopSites", "showSponsoredTopSites",
{ {
title: "Show sponsored top sites", title: "Show sponsored top sites",

View File

@@ -1,5 +1,5 @@
diff --git a/browser/modules/ExtensionsUI.sys.mjs b/browser/modules/ExtensionsUI.sys.mjs diff --git a/browser/modules/ExtensionsUI.sys.mjs b/browser/modules/ExtensionsUI.sys.mjs
index 9734d95742035dbe6f608ad3cdaaefc6ed5b83bc..9a7bbb272025e84968d3173faca259f558746c5e 100644 index a31179ef7986e1290aef8af58d1f82e23e55fcbe..4adaa921ce5fce8155cd98aa0e7a2b0b6d44ac1b 100644
--- a/browser/modules/ExtensionsUI.sys.mjs --- a/browser/modules/ExtensionsUI.sys.mjs
+++ b/browser/modules/ExtensionsUI.sys.mjs +++ b/browser/modules/ExtensionsUI.sys.mjs
@@ -466,7 +466,7 @@ export var ExtensionsUI = { @@ -466,7 +466,7 @@ export var ExtensionsUI = {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css
index 195cf888a61893cc9b0015e07e27bce94ec9d409..5f4cb6a1922730e8a0f1e9ad04169fb092917938 100644 index 714e465f6d5bb28fc0c9517013ce7f9961bd0ace..8d739cb6e0cee93d994b17f7e3451fb3fcf11ed7 100644
--- a/browser/themes/linux/browser.css --- a/browser/themes/linux/browser.css
+++ b/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css
@@ -42,7 +42,8 @@ @@ -42,7 +42,8 @@

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css
index 9f795cd5b67b12ed4e6d0838d6e0b8e1048f6e50..e9d9326f174a25140113de40f4c57e8bc67677ff 100644 index 9bea393a6a54db16d3f35bb70d217563bd2e3951..6487baeaacd9ff175be51747ea637e81b68a51ee 100644
--- a/browser/themes/osx/browser.css --- a/browser/themes/osx/browser.css
+++ b/browser/themes/osx/browser.css +++ b/browser/themes/osx/browser.css
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/controlcenter/panel.css b/browser/themes/shared/controlcenter/panel.css diff --git a/browser/themes/shared/controlcenter/panel.css b/browser/themes/shared/controlcenter/panel.css
index 6c3e1d47648165b4994f3face2df48c87ff48a53..dd1791790356d4dd3c3256e2603cf3287c1b89fc 100644 index d0bc0e89142ef8d6090f1b270a0193ac8899c41f..cb16ab639c675433b2bfbcee11def5428c41afb3 100644
--- a/browser/themes/shared/controlcenter/panel.css --- a/browser/themes/shared/controlcenter/panel.css
+++ b/browser/themes/shared/controlcenter/panel.css +++ b/browser/themes/shared/controlcenter/panel.css
@@ -10,11 +10,11 @@ @@ -10,11 +10,11 @@

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css
index 645467864db4a73b7addf3a57fa892beaf9a9614..46907c1ac8a10e8aba8ad82530269b660add550d 100644 index 50045ec27abcde91d5aea12fc7faaefbddf50229..f4e98dce5195ff3298fb98714d56cf5d3bdaaf48 100644
--- a/browser/themes/shared/tabbrowser/ctrlTab.css --- a/browser/themes/shared/tabbrowser/ctrlTab.css
+++ b/browser/themes/shared/tabbrowser/ctrlTab.css +++ b/browser/themes/shared/tabbrowser/ctrlTab.css
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@

View File

@@ -1,30 +0,0 @@
diff --git a/browser/themes/shared/tabbrowser/tab-hover-preview.css b/browser/themes/shared/tabbrowser/tab-hover-preview.css
index 90680fb5870bd7387656d3066c39b6d6f80916bd..636c2f4c7cfda0280b24e40cf7613321bf1d3905 100644
--- a/browser/themes/shared/tabbrowser/tab-hover-preview.css
+++ b/browser/themes/shared/tabbrowser/tab-hover-preview.css
@@ -52,3 +52,24 @@
from { opacity: 0; }
to { opacity: 100; }
}
+
+/**
+ * Zen overrides (try to avoid git conflicts as much as possible)
+ */
+
+.tab-preview-container {
+ --zen-border-color: #bdbcbc;
+ overflow: hidden;
+ border: 1px solid var(--zen-border-color);
+}
+
+@media (prefers-color-scheme: dark) {
+ .tab-preview-container {
+ --zen-border-color: #565656;
+ }
+}
+
+.tab-preview-thumbnail-container img,
+.tab-preview-thumbnail-container canvas {
+ border-top: 1px solid var(--zen-border-color);
+}
\ No newline at end of file

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839143b2044 100644 index 79a95268e590b1561510460f63270a4d3814bc05..d1f91562ff429cc149bbd1cdccd49ab0abab2780 100644
--- a/browser/themes/shared/tabbrowser/tabs.css --- a/browser/themes/shared/tabbrowser/tabs.css
+++ b/browser/themes/shared/tabbrowser/tabs.css +++ b/browser/themes/shared/tabbrowser/tabs.css
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
@@ -15,7 +15,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
--tab-block-margin: 4px; --tab-block-margin: 4px;
--tab-icon-end-margin: 5.5px; --tab-icon-end-margin: 5.5px;
--tab-label-line-height: 1.7; --tab-label-line-height: 1.7;
- --tab-loading-fill: #0A84FF; - --tab-loading-fill: #0a84ff;
+ --tab-loading-fill: var(--zen-primary-color); + --tab-loading-fill: var(--zen-primary-color);
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent); --tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
- --tab-selected-textcolor: var(--toolbar-color); - --tab-selected-textcolor: var(--toolbar-color);
@@ -23,25 +23,15 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
--tab-selected-bgcolor: var(--toolbar-bgcolor); --tab-selected-bgcolor: var(--toolbar-bgcolor);
--tab-selected-color-scheme: var(--toolbar-color-scheme); --tab-selected-color-scheme: var(--toolbar-color-scheme);
&[lwt-tab-selected="light"] { &[lwt-tab-selected="light"] {
@@ -216,8 +216,7 @@ @@ -251,7 +251,6 @@
} }
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] { :root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
- position: absolute !important;
- display: block;
+
}
#tabbrowser-tabs[movingtab] &:is(:active, [multiselected]) {
@@ -263,7 +262,6 @@
}
:root:not([uidensity=compact], [sidebar-expand-on-hover]) &[pinned] {
- padding: 0 10px; - padding: 0 10px;
} }
&:is([selected], [multiselected]) { &:is([selected], [multiselected]) {
@@ -277,6 +275,7 @@ @@ -265,6 +264,7 @@
border-radius: inherit; border-radius: inherit;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
@@ -49,7 +39,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
&::before { &::before {
position: absolute; position: absolute;
@@ -464,14 +463,11 @@ @@ -464,14 +464,11 @@
.tab-icon-image { .tab-icon-image {
-moz-context-properties: fill, stroke; -moz-context-properties: fill, stroke;
fill: currentColor; fill: currentColor;
@@ -65,7 +55,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -488,10 +484,6 @@ @@ -488,10 +485,6 @@
/* stylelint-disable-next-line media-query-no-invalid */ /* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") { @media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
&[pending][discarded] { &[pending][discarded] {
@@ -76,16 +66,16 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -564,7 +556,7 @@ @@ -564,7 +557,7 @@
z-index: 1; /* Overlay tab title */ z-index: 1; /* Overlay tab title */
#tabbrowser-tabs[orient=vertical] & { #tabbrowser-tabs[orient="vertical"] & {
- top: 7px; - top: 7px;
+ top: -7px; + top: -7px;
} }
&[crashed] { &[crashed] {
@@ -572,7 +564,7 @@ @@ -572,7 +565,7 @@
} }
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
@@ -94,16 +84,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
&[soundplaying] { &[soundplaying] {
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
} }
@@ -602,7 +594,7 @@ @@ -629,7 +622,7 @@
background-image: linear-gradient(var(--audio-overlay-extra-background)),
linear-gradient(var(--toolbox-bgcolor));
-moz-context-properties: fill;
- fill: var(--tab-selected-textcolor);
+ fill: var(--tab-selected-textcolor) !important;
color-scheme: var(--tab-selected-color-scheme);
border-radius: var(--border-radius-circle);
@@ -633,7 +625,7 @@
} }
} }
@@ -112,16 +93,16 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
&[crashed] { &[crashed] {
display: revert; display: revert;
} }
@@ -737,7 +729,7 @@ @@ -730,7 +723,7 @@
has not been added to root. There are certain scenarios when that attribute is temporarily 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. */ removed from root such as when toggling the sidebar to expand with the toolbar button. */
#tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]), #tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]),
- :root:not([sidebar-expand-on-hover]) #tabbrowser-tabs[orient="vertical"][expanded] &:not([pinned]):not([crashed]) { - :root:not([sidebar-expand-on-hover]) #tabbrowser-tabs[orient="vertical"][expanded] &:not([pinned]):not([crashed]) {
+ :root:not([sidebar-expand-on-hover]) #tabbrowser-tabs[orient="vertical"][expanded] &:not([zen-essential]):not([crashed]) { + :root:not([sidebar-expand-on-hover]) #tabbrowser-tabs[orient="vertical"][expanded] &:not([zen-essential]):not([crashed]) {
&:is([soundplaying], [muted], [activemedia-blocked]) { &:is([soundplaying], [muted], [activemedia-blocked]) {
display: block; display: flex;
} }
@@ -1373,7 +1365,7 @@ tab-group { @@ -1370,7 +1363,7 @@ tab-group {
} }
} }
@@ -130,7 +111,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
#vertical-tabs-newtab-button { #vertical-tabs-newtab-button {
appearance: none; appearance: none;
min-height: var(--tab-min-height); min-height: var(--tab-min-height);
@@ -1384,7 +1376,7 @@ tab-group { @@ -1381,7 +1374,7 @@ tab-group {
margin-inline: var(--tab-inner-inline-margin); margin-inline: var(--tab-inner-inline-margin);
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text { #tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
@@ -139,7 +120,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
} }
&:hover { &:hover {
@@ -1408,7 +1400,7 @@ tab-group { @@ -1405,7 +1398,7 @@ tab-group {
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where * 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. * we don't want a gap (between tabs), so we have to add some margin.
*/ */
@@ -148,16 +129,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
margin-block: var(--tab-block-margin); margin-block: var(--tab-block-margin);
} }
@@ -1486,8 +1478,6 @@ tab-group { @@ -1600,7 +1593,6 @@ tab-group {
}
:root:not([sidebar-expand-on-hover]) & {
- --tab-inline-padding: calc((var(--tab-collapsed-background-width) + 2 *
- var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2);
/* stylelint-disable-next-line media-query-no-invalid */
@media not -moz-pref("sidebar.visibility", "expand-on-hover") {
/* We need these rules to apply at all times when the sidebar.visibility
@@ -1605,7 +1595,6 @@ tab-group {
&:not([expanded]) { &:not([expanded]) {
.tabbrowser-tab[pinned] { .tabbrowser-tab[pinned] {
@@ -165,16 +137,7 @@ index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..23a165fdd80abd754a53f941a5edf839
} }
.tab-background { .tab-background {
@@ -1736,7 +1725,7 @@ tab-group { @@ -1760,7 +1752,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
toolbarbutton:not(#firefox-view-button),
toolbarpaletteitem:not(#wrapper-firefox-view-button)
) ~ #tabbrowser-tabs {
- border-inline-start: var(--tabstrip-inner-border);
+ border-inline-start: transparent;
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
margin-inline-start: 2px;
}
@@ -1770,7 +1759,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
list-style-image: url(chrome://global/skin/icons/plus.svg); list-style-image: url(chrome://global/skin/icons/plus.svg);
} }

View File

@@ -1,8 +1,8 @@
diff --git a/browser/themes/shared/toolbarbuttons.css b/browser/themes/shared/toolbarbuttons.css diff --git a/browser/themes/shared/toolbarbuttons.css b/browser/themes/shared/toolbarbuttons.css
index d84326072652a48d7fc9b61c585fb00ac4b506ab..c91654eb852460721cf7e45623fb471027f06d90 100644 index a8df2d5cd8b3009daa033a9bf06908be78adeb3b..8c47fd0056599c539eb309eb90b465921400aae4 100644
--- a/browser/themes/shared/toolbarbuttons.css --- a/browser/themes/shared/toolbarbuttons.css
+++ b/browser/themes/shared/toolbarbuttons.css +++ b/browser/themes/shared/toolbarbuttons.css
@@ -249,7 +249,7 @@ toolbar[brighttext] .toolbaritem-combined-buttons > separator { @@ -254,7 +254,7 @@ toolbar .toolbaritem-combined-buttons > separator {
#nav-bar-overflow-button { #nav-bar-overflow-button {
list-style-image: url("chrome://global/skin/icons/chevron.svg"); list-style-image: url("chrome://global/skin/icons/chevron.svg");
@@ -11,7 +11,7 @@ index d84326072652a48d7fc9b61c585fb00ac4b506ab..c91654eb852460721cf7e45623fb4710
display: none; display: none;
} }
@@ -459,7 +459,7 @@ toolbarbutton.bookmark-item:not(.subviewbutton) { @@ -464,7 +464,7 @@ toolbarbutton.bookmark-item:not(.subviewbutton) {
*/ */
align-items: stretch; align-items: stretch;
> .toolbarbutton-icon { > .toolbarbutton-icon {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/urlbarView.css b/browser/themes/shared/urlbarView.css diff --git a/browser/themes/shared/urlbarView.css b/browser/themes/shared/urlbarView.css
index 203d2de2c89f32ffb911ab0b9aba5285173ba177..a5ba67a02d93a8258202894a2ea20f4d350ccbb5 100644 index 28608327793ff564d19536e1086660b040c462d4..6714457b1de5928fff19f679eb0388f40e343186 100644
--- a/browser/themes/shared/urlbarView.css --- a/browser/themes/shared/urlbarView.css
+++ b/browser/themes/shared/urlbarView.css +++ b/browser/themes/shared/urlbarView.css
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@

View File

@@ -1,21 +1,21 @@
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
index 007aec91e089a1d2df20235890b268b820b0a529..a03a0d7b7837f6315f47f76a4491bf08d96e00e0 100644 index 587e189d9c403c01463c4167de8c21d3533351cb..5edbc05b905692b29c9e292533616c9bc03cb5fe 100644
--- a/browser/themes/windows/browser.css --- a/browser/themes/windows/browser.css
+++ b/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css
@@ -31,7 +31,6 @@ @@ -31,7 +31,6 @@
/* stylelint-disable-next-line media-query-no-invalid */ /* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("widget.windows.mica.toplevel-backdrop", 2) { @media -moz-pref("widget.windows.mica.toplevel-backdrop", 2) {
/* For acrylic, do the same we do for popups to guarantee some contrast */ /* For acrylic, do the same we do for popups to guarantee some contrast */
- background-color: light-dark(rgba(255, 255, 255, .6), rgba(0, 0, 0, .6)); - background-color: light-dark(rgba(255, 255, 255, 0.6), rgba(0, 0, 0, 0.6));
} }
}
@@ -56,7 +55,7 @@ /* Using a semitransparent background preserves the tinting from the backdrop.
@@ -63,7 +62,7 @@
/* This is needed for Windows 10, see bug 1961257 */ /* This is needed for Windows 10, see bug 1961257 */
@media (-moz-windows-accent-color-in-titlebar) { @media (-moz-windows-accent-color-in-titlebar) {
- :root[customtitlebar][sizemode="normal"] #navigator-toolbox { - :root[customtitlebar][sizemode="normal"] #navigator-toolbox {
+ :root[customtitlebar][sizemode="normal"] #browser { + :root[customtitlebar][sizemode="normal"] #browser {
border-top: .5px solid ActiveBorder; border-top: 0.5px solid ActiveBorder;
&:-moz-window-inactive { &:-moz-window-inactive {
border-top-color: InactiveBorder; border-top-color: InactiveBorder;

View File

@@ -1,5 +1,5 @@
diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
index 77491402cb2921ad52c028ee8fe940636cbe3cf1..e93265e1bb96a07a6d9a66074f191cb8c16fa37a 100644 index df5658c7231e73c52ee00e35eeccc47166528391..8bfdceb0fc00c618326e932990c9503af13d9e69 100644
--- a/docshell/base/nsAboutRedirector.cpp --- a/docshell/base/nsAboutRedirector.cpp
+++ b/docshell/base/nsAboutRedirector.cpp +++ b/docshell/base/nsAboutRedirector.cpp
@@ -108,7 +108,7 @@ static const RedirEntry kRedirMap[] = { @@ -108,7 +108,7 @@ static const RedirEntry kRedirMap[] = {

View File

@@ -1,5 +1,5 @@
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index a16bef739fcde0f14ba7e53e0acfa3aa2ee1dd3a..7c4bee2422f76272022f0c793aa52ea02e292bde 100644 index 36f9681a989bf4007fa837e7c9ef332ee14e55bd..8c407b5297570aee5322515d47b0895b833e3a10 100644
--- a/dom/base/Document.cpp --- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp +++ b/dom/base/Document.cpp
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
@@ -10,7 +10,7 @@ index a16bef739fcde0f14ba7e53e0acfa3aa2ee1dd3a..7c4bee2422f76272022f0c793aa52ea0
#include <inttypes.h> #include <inttypes.h>
#include <stdlib.h> #include <stdlib.h>
@@ -3335,6 +3336,11 @@ void Document::FillStyleSetUserAndUASheets() { @@ -3300,6 +3301,11 @@ void Document::FillStyleSetUserAndUASheets() {
styleSet.AppendStyleSheet(*sheet); styleSet.AppendStyleSheet(*sheet);
} }

View File

@@ -1,8 +1,8 @@
diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml
index 6d2b80297f728af4e6b363e09dac4244d9ffd312..03ca7d1c7f27430923f146a3d3a708a09e351948 100644 index c3830ede7637a047ffa285c0e8e281befd933f18..ddc8be98dc969c54774682361bc1f191754a4609 100644
--- a/dom/base/use_counter_metrics.yaml --- a/dom/base/use_counter_metrics.yaml
+++ b/dom/base/use_counter_metrics.yaml +++ b/dom/base/use_counter_metrics.yaml
@@ -21527,6 +21527,22 @@ use.counter.css.page: @@ -21765,6 +21765,22 @@ use.counter.css.page:
send_in_pings: send_in_pings:
- use-counters - use-counters
@@ -25,7 +25,7 @@ index 6d2b80297f728af4e6b363e09dac4244d9ffd312..03ca7d1c7f27430923f146a3d3a708a0
css_transform_origin: css_transform_origin:
type: counter type: counter
description: > description: >
@@ -33497,6 +33513,22 @@ use.counter.css.doc: @@ -33752,6 +33768,22 @@ use.counter.css.doc:
send_in_pings: send_in_pings:
- use-counters - use-counters

View File

@@ -1,8 +1,8 @@
diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp
index add22d0f3c462eae3d5b5140779ff7a4e25f9321..7653df83680ee0e6c765432b1539fe1c90bfae35 100644 index ee151115e3db05b4e92c3f68d724bd785f4e4669..b8cfdd0862af690ebaff833049bdd5b48068f34d 100644
--- a/dom/html/HTMLMediaElement.cpp --- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp +++ b/dom/html/HTMLMediaElement.cpp
@@ -452,6 +452,7 @@ class HTMLMediaElement::MediaControlKeyListener final @@ -453,6 +453,7 @@ class HTMLMediaElement::MediaControlKeyListener final
// audible state. Therefore, in that case we would noitfy the audible state // audible state. Therefore, in that case we would noitfy the audible state
// when media starts playing. // when media starts playing.
if (mState == MediaPlaybackState::ePlayed) { if (mState == MediaPlaybackState::ePlayed) {
@@ -10,7 +10,7 @@ index add22d0f3c462eae3d5b5140779ff7a4e25f9321..7653df83680ee0e6c765432b1539fe1c
NotifyAudibleStateChanged(mIsOwnerAudible NotifyAudibleStateChanged(mIsOwnerAudible
? MediaAudibleState::eAudible ? MediaAudibleState::eAudible
: MediaAudibleState::eInaudible); : MediaAudibleState::eInaudible);
@@ -6955,6 +6956,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) { @@ -7007,6 +7008,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) {
QueueTask(std::move(runner)); QueueTask(std::move(runner));
mQueueTimeUpdateRunnerTime = TimeStamp::Now(); mQueueTimeUpdateRunnerTime = TimeStamp::Now();
mLastCurrentTime = CurrentTime(); mLastCurrentTime = CurrentTime();

View File

@@ -1,8 +1,8 @@
diff --git a/gfx/wr/webrender/src/picture.rs b/gfx/wr/webrender/src/picture.rs diff --git a/gfx/wr/webrender/src/picture.rs b/gfx/wr/webrender/src/picture.rs
index 3b0671ec8ffb8cbd0843e18569a948203c2b9cfe..77d4953cc9bf07d38efd26f4fe95e465b244598c 100644 index 2e74dbbc23ed56b469000913ae24addc1a519e60..ff94049a68c75ab61e4792ec37720a340776acef 100644
--- a/gfx/wr/webrender/src/picture.rs --- a/gfx/wr/webrender/src/picture.rs
+++ b/gfx/wr/webrender/src/picture.rs +++ b/gfx/wr/webrender/src/picture.rs
@@ -8027,7 +8027,12 @@ fn get_relative_scale_offset( @@ -8045,7 +8045,12 @@ fn get_relative_scale_offset(
CoordinateSpaceMapping::Local => ScaleOffset::identity(), CoordinateSpaceMapping::Local => ScaleOffset::identity(),
CoordinateSpaceMapping::ScaleOffset(scale_offset) => scale_offset, CoordinateSpaceMapping::ScaleOffset(scale_offset) => scale_offset,
CoordinateSpaceMapping::Transform(m) => { CoordinateSpaceMapping::Transform(m) => {

View File

@@ -1,8 +1,8 @@
diff --git a/image/DecoderFactory.cpp b/image/DecoderFactory.cpp diff --git a/image/DecoderFactory.cpp b/image/DecoderFactory.cpp
index f36f03c7f2622f0fc54c04f5278ee83cbf03e9e8..d2cdd79f70056af8dc1304d3a2f5307986aeda49 100644 index 21c94898cbbce9bdc9dec87c7e3e05fec77fb7c1..83a8fcc3aca34c61ac7334eb4b4ef3f3ea21c7ab 100644
--- a/image/DecoderFactory.cpp --- a/image/DecoderFactory.cpp
+++ b/image/DecoderFactory.cpp +++ b/image/DecoderFactory.cpp
@@ -244,7 +244,12 @@ nsresult DecoderFactory::CreateAnimationDecoder( @@ -249,7 +249,12 @@ nsresult DecoderFactory::CreateAnimationDecoder(
} }
MOZ_ASSERT(aType == DecoderType::GIF || aType == DecoderType::PNG || MOZ_ASSERT(aType == DecoderType::GIF || aType == DecoderType::PNG ||
@@ -16,7 +16,7 @@ index f36f03c7f2622f0fc54c04f5278ee83cbf03e9e8..d2cdd79f70056af8dc1304d3a2f53079
"Calling CreateAnimationDecoder for non-animating DecoderType"); "Calling CreateAnimationDecoder for non-animating DecoderType");
// Create an anonymous decoder. Interaction with the SurfaceCache and the // Create an anonymous decoder. Interaction with the SurfaceCache and the
@@ -299,7 +304,12 @@ already_AddRefed<Decoder> DecoderFactory::CloneAnimationDecoder( @@ -304,7 +309,12 @@ already_AddRefed<Decoder> DecoderFactory::CloneAnimationDecoder(
// rediscover it is animated). // rediscover it is animated).
DecoderType type = aDecoder->GetType(); DecoderType type = aDecoder->GetType();
MOZ_ASSERT(type == DecoderType::GIF || type == DecoderType::PNG || MOZ_ASSERT(type == DecoderType::GIF || type == DecoderType::PNG ||

View File

@@ -1,8 +1,8 @@
diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp
index fe05efa67f97e0d8cc327a4744a225ed5c6132c9..cce0dfb537fa1735b8e7ff67684d373a3081a527 100644 index bd4a77009b8f1a791063c6039dabc8b7527a2504..214f10d59ebdd27e04e43e9dc96e55afbfe0a902 100644
--- a/layout/generic/nsIFrame.cpp --- a/layout/generic/nsIFrame.cpp
+++ b/layout/generic/nsIFrame.cpp +++ b/layout/generic/nsIFrame.cpp
@@ -11810,6 +11810,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { @@ -11897,6 +11897,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const {
gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms( gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms(
uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel)); uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel));

View File

@@ -1,8 +1,8 @@
diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp
index 8f587542ad248f7c0183e1787c81f37170c7ba54..3b213204e0faabb7ad8988872c8b39c776b87d73 100644 index c4f9fd72246a42efcb6b30219bd2af9b0b6f9c99..6ff1d3acbf24f8fdc2ae9545dc52f0f826557022 100644
--- a/layout/style/nsStyleStruct.cpp --- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp
@@ -3229,6 +3229,9 @@ nsStyleUIReset::nsStyleUIReset() @@ -3234,6 +3234,9 @@ nsStyleUIReset::nsStyleUIReset()
mWindowShadow(StyleWindowShadow::Auto), mWindowShadow(StyleWindowShadow::Auto),
mWindowOpacity(1.0), mWindowOpacity(1.0),
mMozWindowInputRegionMargin(StyleLength::Zero()), mMozWindowInputRegionMargin(StyleLength::Zero()),
@@ -12,7 +12,7 @@ index 8f587542ad248f7c0183e1787c81f37170c7ba54..3b213204e0faabb7ad8988872c8b39c7
mTransitions( mTransitions(
nsStyleAutoArray<StyleTransition>::WITH_SINGLE_INITIAL_ELEMENT), nsStyleAutoArray<StyleTransition>::WITH_SINGLE_INITIAL_ELEMENT),
mTransitionTimingFunctionCount(1), mTransitionTimingFunctionCount(1),
@@ -3272,6 +3275,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) @@ -3277,6 +3280,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource)
mWindowOpacity(aSource.mWindowOpacity), mWindowOpacity(aSource.mWindowOpacity),
mMozWindowInputRegionMargin(aSource.mMozWindowInputRegionMargin), mMozWindowInputRegionMargin(aSource.mMozWindowInputRegionMargin),
mMozWindowTransform(aSource.mMozWindowTransform), mMozWindowTransform(aSource.mMozWindowTransform),

View File

@@ -1,8 +1,8 @@
diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h
index 1c6e2b5a3d4a0ca2b5ef50a84c220958885ce3e3..d74f5558ab70c53fc2649f0f3ab40a456c3e1c6a 100644 index 4811ceab129cd2dcbc65de52c2978bc5735aa486..8ed6eb405cf8843811d8d9721532ab646dc2d759 100644
--- a/layout/style/nsStyleStruct.h --- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h
@@ -2003,6 +2003,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset { @@ -2026,6 +2026,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset {
// The margin of the window region that should be transparent to events. // The margin of the window region that should be transparent to events.
mozilla::StyleLength mMozWindowInputRegionMargin; mozilla::StyleLength mMozWindowInputRegionMargin;
mozilla::StyleTransform mMozWindowTransform; mozilla::StyleTransform mMozWindowTransform;

View File

@@ -1,8 +1,8 @@
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index c3b88faf0b3294a143139487d3dac1127b84bd4f..7fdb31b61ced2e1f9131396ed88f1216ce7c5b1f 100644 index f689389fbc0382f10b7d146273efffdd1db4fd41..955f8e6edda62832ce5aeafd16ed58f5c94e312b 100644
--- a/modules/libpref/init/StaticPrefList.yaml --- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml
@@ -18839,6 +18839,7 @@ @@ -19099,6 +19099,7 @@
mirror: always mirror: always
#endif #endif

View File

@@ -1,5 +1,5 @@
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
index 4e582caaa58884b27be20c45e4c39b0b841261ef..f8ce17a33f20380b3f56a3774e043b9fba849977 100644 index bff4fa68bbb4f7937632395351a0f8800815f862..d823accd1227635b555af2ca710645244d53aa12 100644
--- a/modules/libpref/moz.build --- a/modules/libpref/moz.build
+++ b/modules/libpref/moz.build +++ b/modules/libpref/moz.build
@@ -93,6 +93,7 @@ pref_groups = [ @@ -93,6 +93,7 @@ pref_groups = [

View File

@@ -1,8 +1,8 @@
diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build
index 4e60ca2b579aa3e02c7769fd966e36d297dd0068..24dbb5de95d4f7dbec354c30f9b2c4d64384225e 100644 index af31c6f5255f0bffd2938bc9ac2d86315f3428ff..8ca3a799302d1ae5d515c0a1616151ab29a5657b 100644
--- a/netwerk/protocol/http/moz.build --- a/netwerk/protocol/http/moz.build
+++ b/netwerk/protocol/http/moz.build +++ b/netwerk/protocol/http/moz.build
@@ -222,7 +222,7 @@ LOCAL_INCLUDES += [ @@ -224,7 +224,7 @@ LOCAL_INCLUDES += [
"/netwerk/url-classifier", "/netwerk/url-classifier",
] ]

View File

@@ -1,11 +1,11 @@
diff --git a/testing/profiles/mochitest/user.js b/testing/profiles/mochitest/user.js diff --git a/testing/profiles/mochitest/user.js b/testing/profiles/mochitest/user.js
index a4068ac3f61161d014c49d54ae7a3bf886868f1b..b9861cfaae19a4a71b75ccc73095dc602df22b12 100644 index c43196b3c9cf8c90fa1cca5b6d205c410adec022..767e78ae1d9e4067a4c4777840bef2952a480f66 100644
--- a/testing/profiles/mochitest/user.js --- a/testing/profiles/mochitest/user.js
+++ b/testing/profiles/mochitest/user.js +++ b/testing/profiles/mochitest/user.js
@@ -41,3 +41,9 @@ user_pref("places.history.floodingPrevention.enabled", false); @@ -44,3 +44,9 @@ user_pref("geo.prompt.open_system_prefs", false);
// permission, and we can open it and wait for the user to give permission, then
// don't do that. // Enable Nimbus debug logging.
user_pref("geo.prompt.open_system_prefs", false); user_pref("messaging-system.log", "all");
+ +
+user_pref("zen.welcome-screen.seen", true); +user_pref("zen.welcome-screen.seen", true);
+user_pref("zen.tab-unloader.enabled", false); +user_pref("zen.tab-unloader.enabled", false);

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs
index e4dea54a29e2a1575d76091061781a504da38465..d5248eebdd018feca7bb9d5ee3284d6f253a4b35 100644 index 7c383a8112d221d029b64fbb7432abc8ac720d28..e853f1a16149b6010377191b9da560a95a017acb 100644
--- a/toolkit/actors/PictureInPictureChild.sys.mjs --- a/toolkit/actors/PictureInPictureChild.sys.mjs
+++ b/toolkit/actors/PictureInPictureChild.sys.mjs +++ b/toolkit/actors/PictureInPictureChild.sys.mjs
@@ -291,6 +291,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild { @@ -292,6 +292,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild {
if ( if (
video && video &&
PictureInPictureChild.videoIsPlaying(video) && PictureInPictureChild.videoIsPlaying(video) &&

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/components/downloads/DownloadList.sys.mjs b/toolkit/components/downloads/DownloadList.sys.mjs diff --git a/toolkit/components/downloads/DownloadList.sys.mjs b/toolkit/components/downloads/DownloadList.sys.mjs
index c4e5776940c4cdca731a82ba91d41620c4c7b75a..d580d193bda5e932cebc849c4487de504f17b6fe 100644 index 9ffdcd97edb31c35168a88303474fc4f5dc7c9d4..3c361101190d7f6123568535c68781c0e46fe2a9 100644
--- a/toolkit/components/downloads/DownloadList.sys.mjs --- a/toolkit/components/downloads/DownloadList.sys.mjs
+++ b/toolkit/components/downloads/DownloadList.sys.mjs +++ b/toolkit/components/downloads/DownloadList.sys.mjs
@@ -50,6 +50,7 @@ const FILE_EXTENSIONS = [ @@ -50,6 +50,7 @@ const FILE_EXTENSIONS = [

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/components/pictureinpicture/content/player.js b/toolkit/components/pictureinpicture/content/player.js diff --git a/toolkit/components/pictureinpicture/content/player.js b/toolkit/components/pictureinpicture/content/player.js
index a23e4a3ef87dfe7ca74cc20abd53e5fa1b2664dd..afc9ade19441bf9e23ee91d87ee2644e952543d9 100644 index 3be55670e18ed2ae1e02307304a3699d16d89aa5..477933646c3623432164be06c31ef5328f86bba6 100644
--- a/toolkit/components/pictureinpicture/content/player.js --- a/toolkit/components/pictureinpicture/content/player.js
+++ b/toolkit/components/pictureinpicture/content/player.js +++ b/toolkit/components/pictureinpicture/content/player.js
@@ -734,6 +734,11 @@ let Player = { @@ -755,6 +755,11 @@ let Player = {
document.getElementById("large").click(); document.getElementById("large").click();
break; break;
} }

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/content/widgets/arrowscrollbox.js b/toolkit/content/widgets/arrowscrollbox.js diff --git a/toolkit/content/widgets/arrowscrollbox.js b/toolkit/content/widgets/arrowscrollbox.js
index e2000d0f0c33e0e497e79dd206e195235bc5094e..ac69cb75d2be93a1f72fb61bea200d3dcbcdd77f 100644 index b80d1049bb6ae305f2ac9c4c35fe975fd508031c..0d900883d903ed48ac57863c0468ab39a6f3d98f 100644
--- a/toolkit/content/widgets/arrowscrollbox.js --- a/toolkit/content/widgets/arrowscrollbox.js
+++ b/toolkit/content/widgets/arrowscrollbox.js +++ b/toolkit/content/widgets/arrowscrollbox.js
@@ -98,6 +98,7 @@ @@ -98,6 +98,7 @@

View File

@@ -1,9 +1,9 @@
diff --git a/toolkit/content/widgets/infobar.css b/toolkit/content/widgets/infobar.css diff --git a/toolkit/content/widgets/infobar.css b/toolkit/content/widgets/infobar.css
index 9b28d3179db134bb14b4c4d840d5f3aac1dc7b3f..5cdd1a379e5a5156d0adeac78b0af300440d84b5 100644 index 4547df3f3573e95e616c803bc37c7da61bbe6b58..b0540c058d7d31ce929319e5ad9381889b9b6c60 100644
--- a/toolkit/content/widgets/infobar.css --- a/toolkit/content/widgets/infobar.css
+++ b/toolkit/content/widgets/infobar.css +++ b/toolkit/content/widgets/infobar.css
@@ -96,3 +96,18 @@ strong { @@ -97,3 +97,18 @@ strong {
:host([type=system]) .content { :host([type="system"]) .content {
margin-inline-start: 0; margin-inline-start: 0;
} }
+ +

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js
index 6775a7635c6cdbb276b3a912d0bba07840acb28f..861640d12c6118e11acb3f51723a79098dbbba10 100644 index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2f767296db8043318fab2aeb39bfc5eee090b258 100644
--- a/toolkit/content/widgets/tabbox.js --- a/toolkit/content/widgets/tabbox.js
+++ b/toolkit/content/widgets/tabbox.js +++ b/toolkit/content/widgets/tabbox.js
@@ -213,7 +213,7 @@ @@ -213,7 +213,7 @@

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
index f730088432526521037a8933a6ee00af8c378f11..ef2bb2ecd364327a348602ff070814f653843081 100644 index ba7642c9264ac201fec7be1bd492bc778bb147a2..9e89735e8a0886183ae7ecf98e6ce08142bf3bbc 100644
--- a/toolkit/content/xul.css --- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css +++ b/toolkit/content/xul.css
@@ -446,7 +446,8 @@ deck > *|*:not(:-moz-native-anonymous) { @@ -456,7 +456,8 @@ deck > *|*:not(:-moz-native-anonymous) {
} }
tabpanels > .deck-selected, tabpanels > .deck-selected,

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/modules/LightweightThemeConsumer.sys.mjs b/toolkit/modules/LightweightThemeConsumer.sys.mjs diff --git a/toolkit/modules/LightweightThemeConsumer.sys.mjs b/toolkit/modules/LightweightThemeConsumer.sys.mjs
index fe01b25c520d1be71224b136b1ce46e9577e11a1..e5501590f3695ed4c2e19be5c104958b497c886e 100644 index c42269ca92e21d1058046d7247e19dc5fde4c1c0..b12d38aa8999d4c2c4c7218b299cd9ed1566fc7d 100644
--- a/toolkit/modules/LightweightThemeConsumer.sys.mjs --- a/toolkit/modules/LightweightThemeConsumer.sys.mjs
+++ b/toolkit/modules/LightweightThemeConsumer.sys.mjs +++ b/toolkit/modules/LightweightThemeConsumer.sys.mjs
@@ -31,7 +31,7 @@ const toolkitVariableMap = [ @@ -31,7 +31,7 @@ const toolkitVariableMap = [
@@ -11,7 +11,7 @@ index fe01b25c520d1be71224b136b1ce46e9577e11a1..e5501590f3695ed4c2e19be5c104958b
} }
// Remove the alpha channel // Remove the alpha channel
const { r, g, b } = rgbaChannels; const { r, g, b } = rgbaChannels;
@@ -317,7 +317,7 @@ LightweightThemeConsumer.prototype = { @@ -320,7 +320,7 @@ LightweightThemeConsumer.prototype = {
} }
let theme = useDarkTheme ? themeData.darkTheme : themeData.theme; let theme = useDarkTheme ? themeData.darkTheme : themeData.theme;
@@ -19,4 +19,4 @@ index fe01b25c520d1be71224b136b1ce46e9577e11a1..e5501590f3695ed4c2e19be5c104958b
+ if (!theme || Services.prefs.getBoolPref("zen.theme.disable-lightweight")) { + if (!theme || Services.prefs.getBoolPref("zen.theme.disable-lightweight")) {
theme = { id: DEFAULT_THEME_ID }; theme = { id: DEFAULT_THEME_ID };
} }
let hasTheme = theme.id != DEFAULT_THEME_ID || useDarkTheme; let hasTheme = theme.id != DEFAULT_THEME_ID;

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
index e6a9634bc5ae26a5bc82402a8a0f37e1fedc27ca..e27cab2a984b2d09033bc956df90519e01f683d7 100644 index 4c45be797e2cca88d302f98e765545b13da3f0dc..31f2694a8cfb73c4f31b819e4362b46bdb22faef 100644
--- a/toolkit/modules/moz.build --- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build
@@ -277,6 +277,7 @@ for var in ( @@ -280,6 +280,7 @@ for var in (
"DLL_SUFFIX", "DLL_SUFFIX",
"DEBUG_JS_MODULES", "DEBUG_JS_MODULES",
"OMNIJAR_NAME", "OMNIJAR_NAME",

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/moz.configure b/toolkit/moz.configure diff --git a/toolkit/moz.configure b/toolkit/moz.configure
index f9b96c0a62ae1e222eebeb6f8ca4fbf4c65703b4..6a439a22ee71a03709411fb8480278104d3996d1 100644 index 77069eaacf383214e705f04733cd4f5db1fca1e8..9abbd6a9ba58759a33f9e9a0bea934a5fe022893 100644
--- a/toolkit/moz.configure --- a/toolkit/moz.configure
+++ b/toolkit/moz.configure +++ b/toolkit/moz.configure
@@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project): @@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project):
@@ -46,7 +46,7 @@ index f9b96c0a62ae1e222eebeb6f8ca4fbf4c65703b4..6a439a22ee71a03709411fb848027810
return True return True
@@ -2060,7 +2065,7 @@ set_define("A11Y_LOG", True, when=a11y_log) @@ -2065,7 +2070,7 @@ set_define("A11Y_LOG", True, when=a11y_log)
# ============================================================== # ==============================================================
@depends(milestone) @depends(milestone)
def require_signing(milestone): def require_signing(milestone):

View File

@@ -1,16 +1,16 @@
diff --git a/toolkit/mozapps/installer/windows/nsis/makensis.mk b/toolkit/mozapps/installer/windows/nsis/makensis.mk diff --git a/toolkit/mozapps/installer/windows/nsis/makensis.mk b/toolkit/mozapps/installer/windows/nsis/makensis.mk
index b4425034fb198fd5303af513d81a3db6b4d14e36..8c44945b4448eb1c69a73894b3e13fc8d2ef3ade 100644 index facc5b1c058bc90ae12cb2e68f8db86e71626300..5940cf442b38b0c786818c6b76fa6c88b9a619ec 100755
--- a/toolkit/mozapps/installer/windows/nsis/makensis.mk --- a/toolkit/mozapps/installer/windows/nsis/makensis.mk
+++ b/toolkit/mozapps/installer/windows/nsis/makensis.mk +++ b/toolkit/mozapps/installer/windows/nsis/makensis.mk
@@ -64,6 +64,11 @@ endif @@ -63,6 +63,11 @@ endif
ifdef ZIP_IN ifdef ZIP_IN
installer:: $(CONFIG_DIR)/setup.exe $(ZIP_IN) installer:: $(CONFIG_DIR)/setup.exe $(ZIP_IN)
@echo 'Packaging $(WIN32_INSTALLER_OUT).'
+ifneq ("$(ZEN_SETUP_EXE_PATH)","") +ifneq ("$(ZEN_SETUP_EXE_PATH)","")
+ @echo 'setup-zen.exe exists, moving it to setup.exe ($(ZEN_SETUP_EXE_PATH))' + @echo 'setup-zen.exe exists, moving it to setup.exe ($(ZEN_SETUP_EXE_PATH))'
+ rm $(CONFIG_DIR)/setup.exe + rm $(CONFIG_DIR)/setup.exe
+ cp $(ZEN_SETUP_EXE_PATH) $(CONFIG_DIR)/setup.exe + cp $(ZEN_SETUP_EXE_PATH) $(CONFIG_DIR)/setup.exe
+endif +endif
$(NSINSTALL) -D '$(ABS_DIST)/$(PKG_INST_PATH)' $(NSINSTALL) -D '$(ABS_DIST)/$(PKG_PATH)'
$(PYTHON3) $(MOZILLA_DIR)/mach repackage installer \ $(PYTHON3) $(MOZILLA_DIR)/mach repackage installer \
-o '$(ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe' \ -o '$(ABS_DIST)/$(PKG_PATH)$(PKG_INST_BASENAME).exe' \

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
index 4ebdcd3bd8739955972eab938f1f394e928503d2..f731ff5667bc5f615bb6a780c1cb6a6fb1cb6b48 100644 index befc1def42c9fdd33438f0485cea6d36520adf28..1d3dd61fd3dd1769a9523c95993bb31cfde7b7ab 100644
--- a/toolkit/profile/nsToolkitProfileService.cpp --- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp +++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -82,6 +82,8 @@ using namespace mozilla; @@ -82,6 +82,8 @@ using namespace mozilla;
@@ -11,7 +11,7 @@ index 4ebdcd3bd8739955972eab938f1f394e928503d2..f731ff5667bc5f615bb6a780c1cb6a6f
struct KeyValue { struct KeyValue {
KeyValue(const char* aKey, const char* aValue) : key(aKey), value(aValue) {} KeyValue(const char* aKey, const char* aValue) : key(aKey), value(aValue) {}
@@ -1391,7 +1393,7 @@ nsresult nsToolkitProfileService::CreateDefaultProfile( @@ -1364,7 +1366,7 @@ nsresult nsToolkitProfileService::CreateDefaultProfile(
if (mUseDevEditionProfile) { if (mUseDevEditionProfile) {
name.AssignLiteral(DEV_EDITION_NAME); name.AssignLiteral(DEV_EDITION_NAME);
} else if (mUseDedicatedProfile) { } else if (mUseDedicatedProfile) {

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css
index 2b06ac3bdb2e122f4553d7e11e1c9462ee45b487..9a78e79523a59448f0425609c311f81c14d4525b 100644 index cef17d0cbed2c50e12534c898f828a16b236a649..e0b200efe9c15329321c4b5cae7ec6a3cc2b695a 100644
--- a/toolkit/themes/shared/aboutReader.css --- a/toolkit/themes/shared/aboutReader.css
+++ b/toolkit/themes/shared/aboutReader.css +++ b/toolkit/themes/shared/aboutReader.css
@@ -1191,3 +1191,43 @@ pre code { @@ -1189,3 +1189,43 @@ pre code {
display: block; display: block;
overflow: auto; overflow: auto;
} }

View File

@@ -1,66 +0,0 @@
diff --git a/toolkit/themes/shared/in-content/common-shared.css b/toolkit/themes/shared/in-content/common-shared.css
index 38e13e0436ee3a2d722f2fc6e11ecafd122fb4eb..c0f985f7e0e74f7050ef91fb9d460d4880d389e4 100644
--- a/toolkit/themes/shared/in-content/common-shared.css
+++ b/toolkit/themes/shared/in-content/common-shared.css
@@ -5,6 +5,8 @@
@import url("chrome://global/skin/design-system/tokens-brand.css");
@import url("chrome://global/skin/design-system/text-and-typography.css");
+@import url("chrome://browser/content/zen-styles/zen-theme.css");
+
@namespace html "http://www.w3.org/1999/xhtml";
@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@@ -53,7 +55,7 @@
--in-content-table-border-color: var(--in-content-box-border-color);
--in-content-table-header-background: var(--in-content-primary-button-background);
--in-content-table-header-color: var(--in-content-primary-button-text-color);
- --in-content-sidebar-width: 280px;
+ --in-content-sidebar-width: 340px;
--dialog-warning-text-color: var(--red-60);
@@ -737,7 +739,6 @@ html|*#categories {
color: inherit;
margin-inline-start: 34px;
padding-inline: 10px;
- transition: background-color 150ms;
}
html|*#categories > html|*.category {
@@ -767,14 +768,15 @@ html|*#categories > html|*.category:dir(rtl) {
#categories > .category:hover:active {
background-color: var(--in-content-button-background-active);
- color: var(--in-content-button-text-color-active);
+ color: var(--in-content-button-text-color-active) !important;
border-color: var(--in-content-button-border-color-active);
}
@media not (forced-colors) {
#categories > .category[selected],
#categories > .category.selected {
- color: var(--color-accent-primary);
+ /*color: var(--color-accent-primary);*/
+ opacity: .7;
}
#categories > .category[selected]:not(:hover) {
@@ -836,7 +838,7 @@ html|*#categories[last-input-type="mouse"] > html|button.category:focus-visible
fill-opacity: 1;
}
-@media (max-width: 830px) {
+@media (max-width: 130px) {
:root {
--in-content-sidebar-width: 118px;
}
@@ -1216,7 +1218,7 @@ xul|*.sidebar-footer-link {
user-select: none;
}
-@media (max-width: 830px) {
+@media (max-width: 130px) {
.sidebar-footer-list {
margin-inline-start: 40px;
align-items: flex-start;

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/themes/shared/pictureinpicture/player.css b/toolkit/themes/shared/pictureinpicture/player.css diff --git a/toolkit/themes/shared/pictureinpicture/player.css b/toolkit/themes/shared/pictureinpicture/player.css
index a3ffe31d47cc81a0cb578acc9177aaa6f41668eb..cf69507804b7c50f9afcfabb744098cfbe409396 100644 index 4a4ab15f9801d9443f3dbc131a533823be423bd9..ed487012d172c278f7d5a59ee953de4a05456019 100644
--- a/toolkit/themes/shared/pictureinpicture/player.css --- a/toolkit/themes/shared/pictureinpicture/player.css
+++ b/toolkit/themes/shared/pictureinpicture/player.css +++ b/toolkit/themes/shared/pictureinpicture/player.css
@@ -724,3 +724,17 @@ input:checked + .slider::before { @@ -736,3 +736,17 @@ input:checked + .slider::before {
justify-self: center; justify-self: center;
} }
} }

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/themes/shared/popup.css b/toolkit/themes/shared/popup.css diff --git a/toolkit/themes/shared/popup.css b/toolkit/themes/shared/popup.css
index efc623e403b9517ffe4ec557e7c777274c350a7a..14400c90334be37e53dfbb5e07efa983ef8fef40 100644 index 9533f5e0fee5fb0805ae4b65e56307986ee26417..a3a06dce50142354b78561ecfb70ba45fe10b9c1 100644
--- a/toolkit/themes/shared/popup.css --- a/toolkit/themes/shared/popup.css
+++ b/toolkit/themes/shared/popup.css +++ b/toolkit/themes/shared/popup.css
@@ -22,8 +22,8 @@ panel { @@ -22,8 +22,8 @@ panel {
@@ -7,7 +7,7 @@ index efc623e403b9517ffe4ec557e7c777274c350a7a..14400c90334be37e53dfbb5e07efa983
--panel-width: initial; --panel-width: initial;
- --panel-shadow-margin: 4px; - --panel-shadow-margin: 4px;
- --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0,0%,0%,.2); - --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0, 0%, 0%, 0.2);
+ --panel-shadow-margin: 10px; + --panel-shadow-margin: 10px;
+ --panel-shadow: var(--zen-big-shadow); + --panel-shadow: var(--zen-big-shadow);
-moz-window-input-region-margin: var(--panel-shadow-margin); -moz-window-input-region-margin: var(--panel-shadow-margin);

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/themes/shared/tree/tree.css b/toolkit/themes/shared/tree/tree.css diff --git a/toolkit/themes/shared/tree/tree.css b/toolkit/themes/shared/tree/tree.css
index 54a53c36de93334af9b2238d461ca5a1d154419d..c4f801c8eec988c61eede60e51ad9f9127fe4e66 100644 index bd743c2b05729644637c172d973ad057387bc5ce..58589094ff68d1972a32fe4f4087af2c0211ee97 100644
--- a/toolkit/themes/shared/tree/tree.css --- a/toolkit/themes/shared/tree/tree.css
+++ b/toolkit/themes/shared/tree/tree.css +++ b/toolkit/themes/shared/tree/tree.css
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@

View File

@@ -35,7 +35,7 @@ index b4c14233c64dd3515518d3167f8ee2877fe41a93..2b91fa3044794765b8e15c6b66b348de
case VibrancyType::Titlebar: case VibrancyType::Titlebar:
return NSVisualEffectMaterialTitlebar; return NSVisualEffectMaterialTitlebar;
} }
@@ -78,6 +95,7 @@ - (NSView*)hitTest:(NSPoint)aPoint { @@ -78,6 +95,7 @@ static NSVisualEffectBlendingMode VisualEffectBlendingModeForVibrancyType(
- (void)prefChanged { - (void)prefChanged {
self.blendingMode = VisualEffectBlendingModeForVibrancyType(mType); self.blendingMode = VisualEffectBlendingModeForVibrancyType(mType);

View File

@@ -1,8 +1,8 @@
diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm
index c4627621344d35081f11a7b0e03d02eca2097609..c9e35156b484f1afdecdd7f93b6bf02e25fae09b 100644 index 225815aca04da2298605a732b25a3ebe17c109bf..3dcf1dfc5cf6c76380c41c37b778bc4160720960 100644
--- a/widget/cocoa/nsCocoaWindow.mm --- a/widget/cocoa/nsCocoaWindow.mm
+++ b/widget/cocoa/nsCocoaWindow.mm +++ b/widget/cocoa/nsCocoaWindow.mm
@@ -7376,7 +7376,7 @@ - (id)initWithContentRect:(NSRect)aContentRect @@ -7380,7 +7380,7 @@ static NSMutableSet* gSwizzledFrameViewClasses = nil;
// Returns an autoreleased NSImage. // Returns an autoreleased NSImage.
static NSImage* GetMenuMaskImage() { static NSImage* GetMenuMaskImage() {

View File

@@ -1,8 +1,8 @@
diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
index 117c1d6ae07c9b2539005dd05edf2c622985ac2f..126748a8fa13f3f9c163aca06a1d65f972b91f8f 100644 index 99fd6dc873362de36dca4c93d5acc604cadb7caf..b5cf7ef750a489e32099884cc25af611ad622e8e 100644
--- a/widget/gtk/nsAppShell.cpp --- a/widget/gtk/nsAppShell.cpp
+++ b/widget/gtk/nsAppShell.cpp +++ b/widget/gtk/nsAppShell.cpp
@@ -488,7 +488,8 @@ nsresult nsAppShell::Init() { @@ -420,7 +420,8 @@ nsresult nsAppShell::Init() {
gchar* name = gdk_pixbuf_format_get_name(format); gchar* name = gdk_pixbuf_format_get_name(format);
if (strcmp(name, "jpeg") && strcmp(name, "png") && strcmp(name, "gif") && if (strcmp(name, "jpeg") && strcmp(name, "png") && strcmp(name, "gif") &&
strcmp(name, "bmp") && strcmp(name, "ico") && strcmp(name, "xpm") && strcmp(name, "bmp") && strcmp(name, "ico") && strcmp(name, "xpm") &&

View File

@@ -1,8 +1,8 @@
diff --git a/xpfe/appshell/AppWindow.cpp b/xpfe/appshell/AppWindow.cpp diff --git a/xpfe/appshell/AppWindow.cpp b/xpfe/appshell/AppWindow.cpp
index 22dbf9028167d5555a91c7087040a1909a27e2a2..356b9722a1a4815f5fdde0ff13bf8f89d7f26f87 100644 index 3efb67402877b3af707e67a9e431415c20d77a58..5dd20250aacde2d082f09deae0ad846fed90a8d6 100644
--- a/xpfe/appshell/AppWindow.cpp --- a/xpfe/appshell/AppWindow.cpp
+++ b/xpfe/appshell/AppWindow.cpp +++ b/xpfe/appshell/AppWindow.cpp
@@ -1866,7 +1866,7 @@ nsresult AppWindow::MaybeSaveEarlyWindowPersistentValues( @@ -1867,7 +1867,7 @@ nsresult AppWindow::MaybeSaveEarlyWindowPersistentValues(
} }
} }

View File

@@ -128,6 +128,7 @@
/* Toolbar */ /* Toolbar */
--tab-selected-color-scheme: inherit; --tab-selected-color-scheme: inherit;
--tabstrip-inner-border: transparent;
--zen-toolbar-height: 38px; --zen-toolbar-height: 38px;
--zen-toolbar-button-inner-padding: 6px; --zen-toolbar-button-inner-padding: 6px;

View File

@@ -91,10 +91,7 @@
gBrowser.pinTab(otherTab); gBrowser.pinTab(otherTab);
} }
this._piningFolder = false; this._piningFolder = false;
gBrowser.verticalPinnedTabsContainer.insertBefore( gBrowser.pinnedTabsContainer.insertBefore(group, gBrowser.pinnedTabsContainer.lastChild);
group,
gBrowser.verticalPinnedTabsContainer.lastChild
);
gBrowser.tabContainer._invalidateCachedTabs(); gBrowser.tabContainer._invalidateCachedTabs();
return true; return true;
} }

View File

@@ -855,7 +855,7 @@
const targetTab = event.target.closest('.tabbrowser-tab'); const targetTab = event.target.closest('.tabbrowser-tab');
if (targetTab) { if (targetTab) {
const rect = targetTab.getBoundingClientRect(); const rect = targetTab.getBoundingClientRect();
let newIndex = targetTab._tPos; let newIndex = targetTab.elementIndex;
if (isVertical || !this.expandedSidebarMode) { if (isVertical || !this.expandedSidebarMode) {
const middleY = targetTab.screenY + rect.height / 2; const middleY = targetTab.screenY + rect.height / 2;

View File

@@ -273,7 +273,7 @@
/* Hide default overflow indicators and the provided separator */ /* Hide default overflow indicators and the provided separator */
&[overflow]::after, &[overflow]::after,
#vertical-tabs-newtab-button, /* Assuming this is a button *within* #tabbrowser-tabs, but it looks like it's outside */ #vertical-tabs-newtab-button, /* Assuming this is a button *within* #tabbrowser-tabs, but it looks like it's outside */
#vertical-pinned-tabs-container-separator { #vertical-pinned-tabs-splitter {
/* Selector targets the specific separator ID */ /* Selector targets the specific separator ID */
display: none !important; display: none !important;
} }
@@ -467,7 +467,7 @@
/* ========================================================================== /* ==========================================================================
Pinned Tabs Container Specific Styles Pinned Tabs Container Specific Styles
========================================================================== */ ========================================================================== */
:root[zen-workspace-id] #vertical-pinned-tabs-container { :root[zen-workspace-id] #pinned-tabs-container {
display: none; display: none;
} }

View File

@@ -12,7 +12,7 @@
</vbox> </vbox>
<arrowscrollbox orient="vertical" class="workspace-arrowscrollbox"> <arrowscrollbox orient="vertical" class="workspace-arrowscrollbox">
<vbox class="zen-workspace-tabs-section zen-workspace-pinned-tabs-section"> <vbox class="zen-workspace-tabs-section zen-workspace-pinned-tabs-section">
<html:div class="vertical-pinned-tabs-container-separator"></html:div> <html:div class="pinned-tabs-container-separator"></html:div>
</vbox> </vbox>
<vbox class="zen-workspace-tabs-section zen-workspace-normal-tabs-section"> <vbox class="zen-workspace-tabs-section zen-workspace-normal-tabs-section">
<!-- Let it me as an ID to mantain compatibility with firefox's tabbrowser --> <!-- Let it me as an ID to mantain compatibility with firefox's tabbrowser -->

View File

@@ -344,7 +344,7 @@ var gZenWorkspaces = new (class extends ZenMultiWindowFeature {
get pinnedTabsContainer() { get pinnedTabsContainer() {
if (!this.workspaceEnabled || !this._hasInitializedTabsStrip) { if (!this.workspaceEnabled || !this._hasInitializedTabsStrip) {
return document.getElementById('vertical-pinned-tabs-container'); return document.getElementById('pinned-tabs-container');
} }
return document.querySelector(`zen-workspace[active]`)?.pinnedTabsContainer; return document.querySelector(`zen-workspace[active]`)?.pinnedTabsContainer;
} }
@@ -1537,10 +1537,9 @@ var gZenWorkspaces = new (class extends ZenMultiWindowFeature {
const container = this.workspaceElement(otherWorkspace.uuid); const container = this.workspaceElement(otherWorkspace.uuid);
container.active = otherWorkspace.uuid === workspace.uuid; container.active = otherWorkspace.uuid === workspace.uuid;
} }
gBrowser.verticalPinnedTabsContainer = gBrowser.pinnedTabsContainer = this.pinnedTabsContainer || gBrowser.pinnedTabsContainer;
this.pinnedTabsContainer || gBrowser.verticalPinnedTabsContainer; gBrowser.tabContainer.pinnedTabsContainer =
gBrowser.tabContainer.verticalPinnedTabsContainer = this.pinnedTabsContainer || gBrowser.tabContainer.pinnedTabsContainer;
this.pinnedTabsContainer || gBrowser.tabContainer.verticalPinnedTabsContainer;
// Move empty tab to the new workspace // Move empty tab to the new workspace
this._moveEmptyTabToWorkspace(workspace.uuid); this._moveEmptyTabToWorkspace(workspace.uuid);
@@ -2677,7 +2676,7 @@ var gZenWorkspaces = new (class extends ZenMultiWindowFeature {
let pinnedContainers = []; let pinnedContainers = [];
let normalContainers = []; let normalContainers = [];
if (!this._hasInitializedTabsStrip) { if (!this._hasInitializedTabsStrip) {
pinnedContainers = [document.getElementById('vertical-pinned-tabs-container')]; pinnedContainers = [document.getElementById('pinned-tabs-container')];
normalContainers = [this.activeWorkspaceStrip]; normalContainers = [this.activeWorkspaceStrip];
} else { } else {
for (const workspace of this._workspaceCache.workspaces) { for (const workspace of this._workspaceCache.workspaces) {

View File

@@ -6,7 +6,7 @@
"version": { "version": {
"product": "firefox", "product": "firefox",
"version": "140.0.4", "version": "140.0.4",
"candidate": "140.0.4" "candidate": "141.0"
}, },
"buildOptions": { "buildOptions": {
"generateBranding": true "generateBranding": true