chore: Update to Firefox 143.0, c=l10n, common (#10304)

This commit is contained in:
mr. m
2025-09-11 18:00:10 +02:00
committed by GitHub
parent 2241047976
commit 5933c55c13
137 changed files with 16357 additions and 1395 deletions

View File

@@ -35,7 +35,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 `142.0.1`! 🚀 - [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `142.0.1`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 142.0.1`! - [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 143.0`!
### Contributing ### Contributing

View File

@@ -1 +1 @@
df0d5e625b9e55c502d3e9e81b29a0d52d0f8d20 900c4f612d9432ae34a1a596a271fd2ce343dd18

View File

@@ -29,6 +29,7 @@ finish-args:
- --system-talk-name=org.freedesktop.NetworkManager - --system-talk-name=org.freedesktop.NetworkManager
- --talk-name=org.a11y.Bus - --talk-name=org.a11y.Bus
- --talk-name=org.gtk.vfs.* - --talk-name=org.gtk.vfs.*
- --talk-name=org.freedesktop.Notifications
- --own-name=org.mpris.MediaPlayer2.firefox.* - --own-name=org.mpris.MediaPlayer2.firefox.*
- --own-name=org.mozilla.zen.* - --own-name=org.mozilla.zen.*
cleanup: cleanup:

View File

@@ -29,7 +29,8 @@
"test:dbg": "python3 scripts/run_tests.py --jsdebugger --debug-on-failure", "test:dbg": "python3 scripts/run_tests.py --jsdebugger --debug-on-failure",
"ffprefs": "cd tools/ffprefs && cargo run --bin ffprefs -- ../../", "ffprefs": "cd tools/ffprefs && cargo run --bin ffprefs -- ../../",
"lc": "surfer license-check", "lc": "surfer license-check",
"lc:fix": "surfer license-check --fix" "lc:fix": "surfer license-check --fix",
"use-moz-src": "cd engine && ./mach use-moz-src"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

View File

@@ -76,3 +76,6 @@
- name: browser.urlbar.scotchBonnet.enableOverride - name: browser.urlbar.scotchBonnet.enableOverride
value: false value: false
- name: browser.tabs.groups.hoverPreview.enabled
value: false

View File

@@ -37,3 +37,7 @@
- name: browser.newtabpage.activity-stream.showSponsoredCheckboxes - name: browser.newtabpage.activity-stream.showSponsoredCheckboxes
value: false value: false
- name: sidebar.verticalTabs.dragToPinPromo.dismissed
value: true
locked: true

View File

@@ -10,21 +10,16 @@ IGNORE_FILES=(
# Recursively find all .patch files in the current directory and its subdirectories # Recursively find all .patch files in the current directory and its subdirectories
find src -type f -name "*.patch" | while read -r patch_file; do find src -type f -name "*.patch" | while read -r patch_file; do
# Replace all - with . and remove the .patch extension # Get the file from the inside of the file as indicated by the patch
new_file="${patch_file%/*}/$(basename "$patch_file" | sed 's/-/./' | sed 's/\.patch$//').patch" target_file=$(grep -m 1 -oP '(?<=\+\+\+ b/).+' "$patch_file")
new_file="${new_file%.patch}" if [[ -z "$target_file" ]]; then
new_file="${new_file#src/}" echo "No target file found in patch: $patch_file"
continue
if [[ $new_file == *-mjs ]]; then
new_file="${new_file/-mjs/.mjs}"
fi
if [[ $new_file == *-ftl ]]; then
new_file="${new_file/-ftl/.ftl}"
fi fi
new_file_base=$(basename "$new_file") new_file_base=$(basename "$target_file")
if [[ ! " ${IGNORE_FILES[@]} " =~ " ${new_file_base} " ]]; then if [[ ! " ${IGNORE_FILES[@]} " =~ " ${new_file_base} " ]]; then
npm run export ${new_file} npm run export ${target_file}
fi fi
done done

View File

@@ -6,6 +6,13 @@ import os
FILES = [ FILES = [
"index.d.ts", "index.d.ts",
"lib.gecko.tweaks.d.ts",
"lib.gecko.xpidl.d.ts",
]
GENERATED_FILES = [
"lib.gecko.win32.d.ts",
"lib.gecko.xpcom.d.ts",
"lib.gecko.darwin.d.ts", "lib.gecko.darwin.d.ts",
"lib.gecko.dom.d.ts", "lib.gecko.dom.d.ts",
"lib.gecko.glean.d.ts", "lib.gecko.glean.d.ts",
@@ -13,21 +20,21 @@ FILES = [
"lib.gecko.modules.d.ts", "lib.gecko.modules.d.ts",
"lib.gecko.nsresult.d.ts", "lib.gecko.nsresult.d.ts",
"lib.gecko.services.d.ts", "lib.gecko.services.d.ts",
"lib.gecko.tweaks.d.ts",
"lib.gecko.win32.d.ts",
"lib.gecko.xpcom.d.ts",
"lib.gecko.xpidl.d.ts",
] ]
ENGINE_PATH = os.path.join("engine", "tools", "@types") ENGINE_PATH = os.path.join("engine", "tools", "@types")
GENERATED_PATH = os.path.join(ENGINE_PATH, "generated")
SRC_PATH = os.path.join("src", "zen", "@types") SRC_PATH = os.path.join("src", "zen", "@types")
def update_ts_types(): def update_ts_types():
os.system("cd engine && ./mach ts build && ./mach ts update") os.system("cd engine && ./mach ts build && ./mach ts update")
# copy the files from engine/tools/@types to src/@types # copy the files from engine/tools/@types to src/@types
for file in FILES: for file in FILES + GENERATED_FILES:
src_file = os.path.join(ENGINE_PATH, file) if file in GENERATED_FILES:
src_file = os.path.join(GENERATED_PATH, file)
else:
src_file = os.path.join(ENGINE_PATH, file)
dest_file = os.path.join(SRC_PATH, file) dest_file = os.path.join(SRC_PATH, file)
if os.path.exists(src_file): if os.path.exists(src_file):
os.system(f"cp {src_file} {dest_file}") os.system(f"cp {src_file} {dest_file}")

View File

@@ -1,8 +1,8 @@
diff --git a/Cargo.lock b/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock
index fe4eff865884fb79983f636861897648c36491b5..a9516246ffacfd50b7e4198967bebb71b2c73eca 100644 index 2ac65181b1a9561ee4760e0569dfdd621c684142..b159fd8a351ba7c6541e8994a815de8150db619f 100644
--- a/Cargo.lock --- a/Cargo.lock
+++ b/Cargo.lock +++ b/Cargo.lock
@@ -4067,8 +4067,6 @@ dependencies = [ @@ -4029,8 +4029,6 @@ dependencies = [
[[package]] [[package]]
name = "mime_guess" name = "mime_guess"
version = "2.0.4" version = "2.0.4"

View File

@@ -1,5 +1,5 @@
diff --git a/Cargo.toml b/Cargo.toml diff --git a/Cargo.toml b/Cargo.toml
index c41cc4f4e68e5b30e1a290e07b2c5061db4400cc..7fa5402b32116922766ee1463b441d3fc86c1eff 100644 index 0fdad8b956be8119f5a914b9cee01bb6520cd13d..f1414b5afd5c66c61d1585184de6b32f9918670d 100644
--- a/Cargo.toml --- a/Cargo.toml
+++ b/Cargo.toml +++ b/Cargo.toml
@@ -218,6 +218,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" } @@ -218,6 +218,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }

View File

@@ -1,5 +1,5 @@
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
index 49ba7724801e699c60fac72d67b3b2d11b6c8c93..5a9f209b3e6b625c6346083ab7eace552a81a3b4 100644 index f327e1684d0966a0dcfdcdbf8cc70259b27a4504..c8f722bda4cf297f5d0a6aa22dafbe27c4218123 100644
--- a/browser/actors/WebRTCParent.sys.mjs --- a/browser/actors/WebRTCParent.sys.mjs
+++ b/browser/actors/WebRTCParent.sys.mjs +++ b/browser/actors/WebRTCParent.sys.mjs
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent { @@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in
index 73b400d58fd25ac13132f1a3fe3ea619e4f4e4f9..ee90ce7ac67bd9aa7bbc2a656843875afb985591 100644 index ea28831b90662b12bdcb137c35b6bb83626c77e7..d28f4eca976ad9de12b03d995d2363e643224421 100644
--- a/browser/app/macbuild/Contents/Info.plist.in --- a/browser/app/macbuild/Contents/Info.plist.in
+++ b/browser/app/macbuild/Contents/Info.plist.in +++ b/browser/app/macbuild/Contents/Info.plist.in
@@ -191,7 +191,7 @@ @@ -191,7 +191,7 @@

View File

@@ -1,8 +1,8 @@
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 061edde0e05e0744ba1aa80df5f9699e264fe69b..cc2b2f04758ee9690429ea6c4aad959d858218e8 100644 index d7542a38a0242dd9c9c6390171d59992d75a0c19..d20e5a9fa42c88c7ba28fac1ef13dd693f1f1135 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 = { @@ -1064,7 +1064,7 @@ var gXPInstallObserver = {
persistent: true, persistent: true,
hideClose: true, hideClose: true,
popupOptions: { popupOptions: {
@@ -11,7 +11,7 @@ index 061edde0e05e0744ba1aa80df5f9699e264fe69b..cc2b2f04758ee9690429ea6c4aad959d
}, },
}; };
@@ -1266,7 +1266,7 @@ var gXPInstallObserver = { @@ -1273,7 +1273,7 @@ var gXPInstallObserver = {
hideClose: true, hideClose: true,
timeout: Date.now() + 30000, timeout: Date.now() + 30000,
popupOptions: { popupOptions: {
@@ -20,7 +20,7 @@ index 061edde0e05e0744ba1aa80df5f9699e264fe69b..cc2b2f04758ee9690429ea6c4aad959d
}, },
}; };
@@ -2571,7 +2571,7 @@ var gUnifiedExtensions = { @@ -2608,7 +2608,7 @@ var gUnifiedExtensions = {
this.recordButtonTelemetry(reason || "extensions_panel_showing"); this.recordButtonTelemetry(reason || "extensions_panel_showing");
this.ensureButtonShownBeforeAttachingPanel(panel); this.ensureButtonShownBeforeAttachingPanel(panel);
PanelMultiView.openPopup(panel, this._button, { PanelMultiView.openPopup(panel, this._button, {
@@ -29,7 +29,7 @@ index 061edde0e05e0744ba1aa80df5f9699e264fe69b..cc2b2f04758ee9690429ea6c4aad959d
triggerEvent: aEvent, triggerEvent: aEvent,
}); });
} }
@@ -2758,18 +2758,20 @@ var gUnifiedExtensions = { @@ -2795,18 +2795,20 @@ var gUnifiedExtensions = {
this._maybeMoveWidgetNodeBack(widgetId); this._maybeMoveWidgetNodeBack(widgetId);
} }

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
index b0b2383453ef771af3eb9260618f1e2e3022eb4e..d631cc8db95b4285e892ac8fcb5e72b7da489850 100644 index 637e9dda83df5b490d6340367dd63077904ea056..6ffb1dc6ed1d6e58b4e8de1faca887f6b38115cb 100644
--- a/browser/base/content/browser-commands.js --- a/browser/base/content/browser-commands.js
+++ b/browser/base/content/browser-commands.js +++ b/browser/base/content/browser-commands.js
@@ -318,6 +318,10 @@ var BrowserCommands = { @@ -317,6 +317,10 @@ var BrowserCommands = {
} }
} }
@@ -13,7 +13,7 @@ index b0b2383453ef771af3eb9260618f1e2e3022eb4e..d631cc8db95b4285e892ac8fcb5e72b7
// A notification intended to be useful for modular peformance tracking // A notification intended to be useful for modular peformance tracking
// starting as close as is reasonably possible to the time when the user // starting as close as is reasonably possible to the time when the user
// expressed the intent to open a new tab. Since there are a lot of // expressed the intent to open a new tab. Since there are a lot of
@@ -402,6 +406,11 @@ var BrowserCommands = { @@ -401,6 +405,11 @@ var BrowserCommands = {
return; return;
} }
@@ -25,7 +25,7 @@ index b0b2383453ef771af3eb9260618f1e2e3022eb4e..d631cc8db95b4285e892ac8fcb5e72b7
// Keyboard shortcuts that would close a tab that is pinned select the first // Keyboard shortcuts that would close a tab that is pinned select the first
// unpinned tab instead. // unpinned tab instead.
if ( if (
@@ -409,8 +418,8 @@ var BrowserCommands = { @@ -408,8 +417,8 @@ var BrowserCommands = {
(event.ctrlKey || event.metaKey || event.altKey) && (event.ctrlKey || event.metaKey || event.altKey) &&
gBrowser.selectedTab.pinned gBrowser.selectedTab.pinned
) { ) {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js
index c61a424d3871d94e7086418c72ce22d5aef0a047..b6e3939b1ce67185acc3b9a66385869bd5490a39 100644 index d477ac782e0cb921203f8cd38da70a003ac41b39..648d0b4066b630a9b31da0bb8490f29da701dd3d 100644
--- a/browser/base/content/browser-fullScreenAndPointerLock.js --- a/browser/base/content/browser-fullScreenAndPointerLock.js
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js +++ b/browser/base/content/browser-fullScreenAndPointerLock.js
@@ -431,10 +431,10 @@ var FullScreen = { @@ -427,10 +427,10 @@ var FullScreen = {
gNavToolbox.classList.toggle("fullscreen-with-menubar", shiftSize > 0); gNavToolbox.classList.toggle("fullscreen-with-menubar", shiftSize > 0);
let transform = shiftSize > 0 ? `translateY(${shiftSize}px)` : ""; let transform = shiftSize > 0 ? `translateY(${shiftSize}px)` : "";

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
index bcbfab4a3781ff3c7349115751b3830976eec4bf..b1b774e0d335ed3c5ca565a45cd624c7ea2718af 100644 index e4a94863c0f0810d1894475b020814b2ad32ffb3..515f61d2df5d4a593fc32d3f32e8fdec2b8f5983 100644
--- a/browser/base/content/browser-init.js --- a/browser/base/content/browser-init.js
+++ b/browser/base/content/browser-init.js +++ b/browser/base/content/browser-init.js
@@ -186,6 +186,7 @@ var gBrowserInit = { @@ -191,6 +191,7 @@ var gBrowserInit = {
}, },
onLoad() { onLoad() {
@@ -10,7 +10,7 @@ index bcbfab4a3781ff3c7349115751b3830976eec4bf..b1b774e0d335ed3c5ca565a45cd624c7
gBrowser.addEventListener("DOMUpdateBlockedPopups", e => gBrowser.addEventListener("DOMUpdateBlockedPopups", e =>
PopupBlockerObserver.handleEvent(e) PopupBlockerObserver.handleEvent(e)
); );
@@ -344,6 +345,7 @@ var gBrowserInit = { @@ -359,6 +360,7 @@ var gBrowserInit = {
this._handleURIToLoad(); this._handleURIToLoad();

View File

@@ -1,16 +1,16 @@
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 05f6aec3dac31231e15cb316f6e06d66ee87bea9..3bbbe8553777056798ea9ddce1744a8e48848a37 100644 index c5b7ef2616c1dab9f42970605897e862d57ab7d0..77f0731db6c4a8d835cf8733115d27ae7782a987 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
@@ -29,6 +29,7 @@ ChromeUtils.defineESModuleGetters(this, { @@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
ContextualIdentityService:
"resource://gre/modules/ContextualIdentityService.sys.mjs", "resource://gre/modules/ContextualIdentityService.sys.mjs",
CustomizableUI: "resource:///modules/CustomizableUI.sys.mjs", CustomizableUI:
+ ZenCustomizableUI: "chrome://browser/content/ZenCustomizableUI.sys.mjs", "moz-src:///browser/components/customizableui/CustomizableUI.sys.mjs",
+ ZenCustomizableUI: "resource:///modules/ZenCustomizableUI.sys.mjs",
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",
@@ -2287,6 +2288,8 @@ var XULBrowserWindow = { @@ -2291,6 +2292,8 @@ var XULBrowserWindow = {
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser); AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
TranslationsParent.onLocationChange(gBrowser.selectedBrowser); TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
@@ -19,25 +19,7 @@ index 05f6aec3dac31231e15cb316f6e06d66ee87bea9..3bbbe8553777056798ea9ddce1744a8e
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser); PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) { if (!gMultiProcessBrowser) {
@@ -4630,7 +4633,7 @@ function switchToTabHavingURI( @@ -5232,6 +5235,9 @@ var ConfirmationHint = {
ignoreQueryString || replaceQueryString,
ignoreFragmentWhenComparing
);
- let browsers = aWindow.gBrowser.browsers;
+ let browsers = aWindow.gZenWorkspaces.allUsedBrowsers;
for (let i = 0; i < browsers.length; i++) {
let browser = browsers[i];
let browserCompare = cleanURL(
@@ -4673,7 +4676,7 @@ function switchToTabHavingURI(
}
if (!doAdopt) {
- aWindow.gBrowser.tabContainer.selectedIndex = i;
+ aWindow.gZenWorkspaces.switchIfNeeded(browser);
}
return true;
@@ -5489,6 +5492,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-places.js b/browser/base/content/browser-places.js diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
index 62b3665394a8256ebedf88a8f10bb6766977cf57..12ac643f913290b20fb7adba8f224f49bb82bf5c 100644 index 5ba2b6a58776e2b1d70b80e8cb1533cb20caafc6..65736705968732a185e81561b2866bfbe6f3233a 100644
--- a/browser/base/content/browser-places.js --- a/browser/base/content/browser-places.js
+++ b/browser/base/content/browser-places.js +++ b/browser/base/content/browser-places.js
@@ -252,6 +252,8 @@ var StarUI = { @@ -252,6 +252,8 @@ var StarUI = {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc
index 269b025d7fb942602c1b1b6c9747540bcde11375..9dcecfe205cadacace5195ec84d8b2ee292a0632 100644 index 2e7654036647796715aec392f9e714e7256c9864..0b3b76ab479bb6ae5439dd424b69f641d3b86c28 100644
--- a/browser/base/content/browser-sets.inc --- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc +++ b/browser/base/content/browser-sets.inc
@@ -405,3 +405,4 @@ @@ -405,3 +405,4 @@

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js
index 61aef2d420a78fb1910f556b71f6db75a16180ed..a3a1e70bedb760c165c338c28de6f2ee924df8de 100644 index 9cff49a7b86f7697f70c4ef61d3c3561f058dc45..15ac9a8a79e8642b3add2f6df63ed32eb0c8bcb9 100644
--- a/browser/base/content/browser-sets.js --- a/browser/base/content/browser-sets.js
+++ b/browser/base/content/browser-sets.js +++ b/browser/base/content/browser-sets.js
@@ -250,7 +250,7 @@ document.addEventListener( @@ -253,7 +253,7 @@ document.addEventListener(
} }
}); });

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index a2a5f6ff71b9a6587e2a033aee39385abd319645..8111c6bcffdcfd51d03cc9dea4aac902d57c83d8 100644 index 65354e0ad3097e10de72f36e257c94472524baf7..bc9527ec9ddfab11c0839398d3f3953872ad9632 100644
--- a/browser/base/content/browser-siteIdentity.js --- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js +++ b/browser/base/content/browser-siteIdentity.js
@@ -825,7 +825,7 @@ var gIdentityHandler = { @@ -834,7 +834,7 @@ var gIdentityHandler = {
// This is a secure internal Firefox page. // This is a secure internal Firefox page.
this._identityBox.className = "chromeUI"; this._identityBox.className = "chromeUI";
let brandBundle = document.getElementById("bundle_brand"); let brandBundle = document.getElementById("bundle_brand");
@@ -11,7 +11,7 @@ index a2a5f6ff71b9a6587e2a033aee39385abd319645..8111c6bcffdcfd51d03cc9dea4aac902
} else if (this._pageExtensionPolicy) { } else if (this._pageExtensionPolicy) {
// This is a WebExtension page. // This is a WebExtension page.
this._identityBox.className = "extensionPage"; this._identityBox.className = "extensionPage";
@@ -1143,6 +1143,12 @@ var gIdentityHandler = { @@ -1163,6 +1163,12 @@ var gIdentityHandler = {
} }
} }

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 665b048cf149b9a6d0ccc43f8d9199f077b8ada2..fcff5cc6a4a50ff2d76930e4d2a1e1d0b2e6bc02 100644 index 7c4c05b72845dfb37c11317d011b8e7c6ba07934..856c368e4d6fe7c7d7ab468423348c844cbf1cdf 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 665b048cf149b9a6d0ccc43f8d9199f077b8ada2..fcff5cc6a4a50ff2d76930e4d2a1e1d0
persist="screenX screenY width height sizemode" persist="screenX screenY width height sizemode"
data-l10n-sync="true"> data-l10n-sync="true">
<head> <head>
@@ -103,8 +104,10 @@ @@ -105,8 +106,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 665b048cf149b9a6d0ccc43f8d9199f077b8ada2..fcff5cc6a4a50ff2d76930e4d2a1e1d0
</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)
@@ -126,9 +129,11 @@ @@ -128,9 +131,11 @@
</vbox> </vbox>
</html:template> </html:template>

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
index 198c188e074b7062169764fb7d81c692d3a2bdae..b412a3c1fabdc6470b4ea9e7be34c426cc76aafd 100644 index fc219ea3dc901fe2ed351161240700113efb8799..f25bdbf886733e2081a4dff55614809056e9885e 100644
--- a/browser/base/content/main-popupset.inc.xhtml --- a/browser/base/content/main-popupset.inc.xhtml
+++ b/browser/base/content/main-popupset.inc.xhtml +++ b/browser/base/content/main-popupset.inc.xhtml
@@ -201,6 +201,10 @@ @@ -208,6 +208,10 @@
hidden="true" hidden="true"
tabspecific="true" tabspecific="true"
aria-labelledby="editBookmarkPanelTitle"> aria-labelledby="editBookmarkPanelTitle">
@@ -13,7 +13,7 @@ index 198c188e074b7062169764fb7d81c692d3a2bdae..b412a3c1fabdc6470b4ea9e7be34c426
<box class="panel-header"> <box class="panel-header">
<html:h1> <html:h1>
<html:span id="editBookmarkPanelTitle"/> <html:span id="editBookmarkPanelTitle"/>
@@ -226,6 +230,7 @@ @@ -233,6 +237,7 @@
class="footer-button"/> class="footer-button"/>
</html:moz-button-group> </html:moz-button-group>
</vbox> </vbox>
@@ -21,7 +21,7 @@ index 198c188e074b7062169764fb7d81c692d3a2bdae..b412a3c1fabdc6470b4ea9e7be34c426
</panel> </panel>
</html:template> </html:template>
@@ -567,6 +572,8 @@ @@ -613,6 +618,8 @@
#include popup-notifications.inc.xhtml #include popup-notifications.inc.xhtml

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 3484906e59f5da958a3f0c810c7b89cfce643d9a..7434caf4710af872d42ef4703ed8347cd8b07af2 100644 index 8e56b24b39e9c1607e3ff208d284a9b555a91ebb..2402848ae564234ec22d5a317c43864ea1b36f29 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 @@
@@ -11,27 +11,27 @@ index 3484906e59f5da958a3f0c810c7b89cfce643d9a..7434caf4710af872d42ef4703ed8347c
<script src="chrome://browser/content/navigator-toolbox.js" /> <script src="chrome://browser/content/navigator-toolbox.js" />
<!-- Menu --> <!-- Menu -->
@@ -17,9 +17,9 @@ @@ -18,9 +18,8 @@
#include browser-menubar.inc #include browser-menubar.inc
</toolbaritem> </toolbaritem>
<spacer flex="1" skipintoolbarset="true" style="order: 1000;"/> <spacer flex="1" skipintoolbarset="true" style="order: 1000;"/>
-#include titlebar-items.inc.xhtml -#include titlebar-items.inc.xhtml
</toolbar> </toolbar>
-
+<hbox id="titlebar"> +<hbox id="titlebar">
<toolbar id="TabsToolbar" <toolbar id="TabsToolbar"
class="browser-toolbar browser-titlebar" class="browser-toolbar browser-titlebar"
fullscreentoolbar="true" fullscreentoolbar="true"
@@ -56,6 +56,8 @@ @@ -62,6 +61,8 @@
# the current structure that we may want to revisit. <html:sidebar-pins-promo id="drag-to-pin-promo-card"></html:sidebar-pins-promo>
<arrowscrollbox id="pinned-tabs-container" orient="horizontal"></arrowscrollbox> <arrowscrollbox id="pinned-tabs-container" orient="horizontal" clicktoscroll=""></arrowscrollbox>
<splitter orient="vertical" id="vertical-pinned-tabs-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/> <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"/>
<arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" clicktoscroll="" scrolledtostart="" scrolledtoend=""> <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" clicktoscroll="" scrolledtostart="" scrolledtoend="">
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/> <tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
@@ -75,6 +77,7 @@ @@ -81,6 +82,7 @@
tooltip="dynamic-shortcut-tooltip" tooltip="dynamic-shortcut-tooltip"
data-l10n-id="tabs-toolbar-new-tab"/> data-l10n-id="tabs-toolbar-new-tab"/>
<html:span id="tabbrowser-tab-a11y-desc" hidden="true"/> <html:span id="tabbrowser-tab-a11y-desc" hidden="true"/>
@@ -39,7 +39,7 @@ index 3484906e59f5da958a3f0c810c7b89cfce643d9a..7434caf4710af872d42ef4703ed8347c
</tabs> </tabs>
<toolbarbutton id="new-tab-button" <toolbarbutton id="new-tab-button"
@@ -100,9 +103,10 @@ @@ -106,9 +108,10 @@
#include private-browsing-indicator.inc.xhtml #include private-browsing-indicator.inc.xhtml
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/> <toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js
index 31d0ee325847834e7c58c1079225adf43d738bcd..4d2c69d4dd7e313bdb085530b3289dc9d93530a5 100644 index 413bad2a62058a1c434d6a44e927e44eb397289d..b621c586e679bb8686fe9a5e6743512e71604425 100644
--- a/browser/base/content/navigator-toolbox.js --- a/browser/base/content/navigator-toolbox.js
+++ b/browser/base/content/navigator-toolbox.js +++ b/browser/base/content/navigator-toolbox.js
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@

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 b12427b3c23447ab26499120f8395c716dae9e82..934f5c1f1b38d035cd7d3a5253a8d3cecad385f8 100644 index bc71ba720ef3603e8b90d295fb16d8415ba114c4..99677f70e22258f61cc9bda31e4d8745d7ca9395 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
@@ -1054,6 +1054,8 @@ export class nsContextMenu { @@ -1095,6 +1095,8 @@ export class nsContextMenu {
!this.isSecureAboutPage() !this.isSecureAboutPage()
); );

View File

@@ -8,7 +8,6 @@
content/browser/zen-sets.js (../../zen/common/zen-sets.js) content/browser/zen-sets.js (../../zen/common/zen-sets.js)
content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs) content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs)
content/browser/zen-components/ZenActorsManager.mjs (../../zen/common/ZenActorsManager.mjs) content/browser/zen-components/ZenActorsManager.mjs (../../zen/common/ZenActorsManager.mjs)
content/browser/ZenCustomizableUI.sys.mjs (../../zen/common/ZenCustomizableUI.sys.mjs)
content/browser/zen-components/ZenUIMigration.mjs (../../zen/common/ZenUIMigration.mjs) content/browser/zen-components/ZenUIMigration.mjs (../../zen/common/ZenUIMigration.mjs)
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs) content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs)
content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/ZenSessionStore.mjs) content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/ZenSessionStore.mjs)

View File

@@ -1,8 +1,8 @@
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 f5a94b47c95304399bce8159dd9fb5d2911ea60a..f63cb861e8807294d597a341ddb408f236ee2df2 100644 index b1f7121a1f3926fe3eb89540edb7dcbb68734039..61c98964cf5efd0a603500cf36559713e1f231f7 100644
--- a/browser/base/jar.mn --- a/browser/base/jar.mn
+++ b/browser/base/jar.mn +++ b/browser/base/jar.mn
@@ -106,3 +106,5 @@ browser.jar: @@ -109,3 +109,5 @@ browser.jar:
# L10n resources and overrides. # L10n resources and overrides.
% override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties % override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties

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 803f8a5b62608af58fc43bd9fab298a63fa549a4..2e00cb9d02dade5cd9b8d3dea5d948ac6e829c26 100644 index 2f2807a246c262298d0802a6a80abe211c99732c..089a86c9e7f69b994657f20fb2392f3dcc8646bf 100644
--- a/browser/base/moz.build --- a/browser/base/moz.build
+++ b/browser/base/moz.build +++ b/browser/base/moz.build
@@ -82,3 +82,5 @@ DEFINES["MOZ_APP_VERSION_DISPLAY"] = CONFIG["MOZ_APP_VERSION_DISPLAY"] @@ -81,3 +81,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,5 +1,5 @@
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 81f72563b93b9ce77191ad4cf200489222e0122e..40bc484301b3d66542c4171921f527c2ac6ed047 100644 index 8630614d23147365628e0cb7e9625b8f2a160588..0750869f16336452a458f27627e6fe0492aae462 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
@@ -1276,6 +1276,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) { @@ -1276,6 +1276,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {

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 f3253d2565cf735bdf33792697f91db9ca9ba5e9..5a6a62e3de3d510a3ae514773e6f8886ef8f9a09 100644 index eae3ed9518ad9ce2103bb912963465c1b10ac050..51859cd542bc69f524d891a67e725c30d4cf14bb 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";
@@ -10,7 +10,7 @@ index f3253d2565cf735bdf33792697f91db9ca9ba5e9..5a6a62e3de3d510a3ae514773e6f8886
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs", AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs", AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs", ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs",
@@ -1490,7 +1491,7 @@ BrowserGlue.prototype = { @@ -1448,7 +1449,7 @@ BrowserGlue.prototype = {
windowcount++; windowcount++;
let tabbrowser = win.gBrowser; let tabbrowser = win.gBrowser;
if (tabbrowser) { if (tabbrowser) {
@@ -19,7 +19,7 @@ index f3253d2565cf735bdf33792697f91db9ca9ba5e9..5a6a62e3de3d510a3ae514773e6f8886
} }
} }
@@ -1653,6 +1654,8 @@ BrowserGlue.prototype = { @@ -1611,6 +1612,8 @@ BrowserGlue.prototype = {
} else if (profileDataVersion < APP_DATA_VERSION) { } else if (profileDataVersion < APP_DATA_VERSION) {
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION); lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
} }

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/aboutlogins/content/components/login-list.css b/browser/components/aboutlogins/content/components/login-list.css diff --git a/browser/components/aboutlogins/content/components/login-list.css b/browser/components/aboutlogins/content/components/login-list.css
index bc8e72a3cd07e8746c6fbf190bdd2bf70f4000d4..07031dfdfadf393db5fd848948e33510bd7225d7 100644 index 3c766eaa80c00ef145168f7a2ceced95ce94295e..db7a7da03c8346f97b472b8e561fec79c1036337 100644
--- a/browser/components/aboutlogins/content/components/login-list.css --- a/browser/components/aboutlogins/content/components/login-list.css
+++ b/browser/components/aboutlogins/content/components/login-list.css +++ b/browser/components/aboutlogins/content/components/login-list.css
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
@@ -11,7 +11,7 @@ index bc8e72a3cd07e8746c6fbf190bdd2bf70f4000d4..07031dfdfadf393db5fd848948e33510
background-color: var(--background-color-box); background-color: var(--background-color-box);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -161,3 +161,8 @@ ol { @@ -162,3 +162,8 @@ ol {
font-size: 0.85em; font-size: 0.85em;
color: var(--text-color-deemphasized); color: var(--text-color-deemphasized);
} }

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/controlcenter/content/identityPanel.inc.xhtml b/browser/components/controlcenter/content/identityPanel.inc.xhtml diff --git a/browser/components/controlcenter/content/identityPanel.inc.xhtml b/browser/components/controlcenter/content/identityPanel.inc.xhtml
index 768768c7d44860e1725f41594da9bcc8c92f4a1d..c04b0d54a41fbf8a22b516524809186d29842b21 100644 index 225340c698f775a321bf5f82c0156bb0e3e2aa96..59e6613638efadfd2961999bd77b388c4529314b 100644
--- a/browser/components/controlcenter/content/identityPanel.inc.xhtml --- a/browser/components/controlcenter/content/identityPanel.inc.xhtml
+++ b/browser/components/controlcenter/content/identityPanel.inc.xhtml +++ b/browser/components/controlcenter/content/identityPanel.inc.xhtml
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@

View File

@@ -1,16 +1,16 @@
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 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1969f4fed 100644 index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0ade05e3b 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, { @@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
AddonManagerPrivate: "resource://gre/modules/AddonManager.sys.mjs",
BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.sys.mjs", BrowserUsageTelemetry: "resource:///modules/BrowserUsageTelemetry.sys.mjs",
CustomizableWidgets: "resource:///modules/CustomizableWidgets.sys.mjs", CustomizableWidgets:
+ ZenCustomizableUI: "chrome://browser/content/ZenCustomizableUI.sys.mjs", "moz-src:///browser/components/customizableui/CustomizableWidgets.sys.mjs",
+ ZenCustomizableUI: "resource:///modules/ZenCustomizableUI.sys.mjs",
HomePage: "resource:///modules/HomePage.sys.mjs", HomePage: "resource:///modules/HomePage.sys.mjs",
PanelMultiView: "resource:///modules/PanelMultiView.sys.mjs", PanelMultiView:
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs", "moz-src:///browser/components/customizableui/PanelMultiView.sys.mjs",
@@ -331,19 +332,14 @@ var CustomizableUIInternal = { @@ -333,19 +334,14 @@ var CustomizableUIInternal = {
"back-button", "back-button",
"forward-button", "forward-button",
"stop-reload-button", "stop-reload-button",
@@ -31,7 +31,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
this.registerArea( this.registerArea(
CustomizableUI.AREA_NAVBAR, CustomizableUI.AREA_NAVBAR,
{ {
@@ -351,8 +347,6 @@ var CustomizableUIInternal = { @@ -353,8 +349,6 @@ var CustomizableUIInternal = {
overflowable: true, overflowable: true,
defaultPlacements: navbarPlacements, defaultPlacements: navbarPlacements,
verticalTabsDefaultPlacements: [ verticalTabsDefaultPlacements: [
@@ -40,7 +40,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
], ],
defaultCollapsed: false, defaultCollapsed: false,
}, },
@@ -376,10 +370,7 @@ var CustomizableUIInternal = { @@ -378,10 +372,7 @@ var CustomizableUIInternal = {
{ {
type: CustomizableUI.TYPE_TOOLBAR, type: CustomizableUI.TYPE_TOOLBAR,
defaultPlacements: [ defaultPlacements: [
@@ -51,7 +51,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
], ],
verticalTabsDefaultPlacements: [], verticalTabsDefaultPlacements: [],
defaultCollapsed: null, defaultCollapsed: null,
@@ -461,6 +452,7 @@ var CustomizableUIInternal = { @@ -463,6 +454,7 @@ var CustomizableUIInternal = {
CustomizableUI.AREA_NAVBAR, CustomizableUI.AREA_NAVBAR,
CustomizableUI.AREA_BOOKMARKS, CustomizableUI.AREA_BOOKMARKS,
CustomizableUI.AREA_TABSTRIP, CustomizableUI.AREA_TABSTRIP,
@@ -59,7 +59,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
]); ]);
if (AppConstants.platform != "macosx") { if (AppConstants.platform != "macosx") {
toolbars.add(CustomizableUI.AREA_MENUBAR); toolbars.add(CustomizableUI.AREA_MENUBAR);
@@ -1245,6 +1237,9 @@ var CustomizableUIInternal = { @@ -1247,6 +1239,9 @@ var CustomizableUIInternal = {
placements = gPlacements.get(area); placements = gPlacements.get(area);
} }
@@ -69,7 +69,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
// 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 (
@@ -1752,7 +1747,7 @@ var CustomizableUIInternal = { @@ -1754,7 +1749,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
); );
@@ -78,7 +78,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
} }
this.notifyDOMChange(widgetNode, null, container, true, () => { this.notifyDOMChange(widgetNode, null, container, true, () => {
@@ -1762,7 +1757,7 @@ var CustomizableUIInternal = { @@ -1764,7 +1759,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)) {
@@ -87,7 +87,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
} else { } else {
window.gNavToolbox.palette.appendChild(widgetNode); window.gNavToolbox.palette.appendChild(widgetNode);
} }
@@ -1930,16 +1925,16 @@ var CustomizableUIInternal = { @@ -1932,16 +1927,16 @@ var CustomizableUIInternal = {
elem.setAttribute("skipintoolbarset", "true"); elem.setAttribute("skipintoolbarset", "true");
} }
} }
@@ -107,7 +107,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
// 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
@@ -2181,6 +2176,10 @@ var CustomizableUIInternal = { @@ -2183,6 +2178,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) {
@@ -118,7 +118,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
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);
@@ -3301,7 +3300,6 @@ var CustomizableUIInternal = { @@ -3303,7 +3302,6 @@ var CustomizableUIInternal = {
if (!this.isWidgetRemovable(aWidgetId)) { if (!this.isWidgetRemovable(aWidgetId)) {
return; return;
} }
@@ -126,7 +126,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
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) {
@@ -4536,7 +4534,7 @@ var CustomizableUIInternal = { @@ -4538,7 +4536,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.
*/ */
@@ -135,7 +135,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
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;
@@ -4547,7 +4545,7 @@ var CustomizableUIInternal = { @@ -4549,7 +4547,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;
@@ -144,7 +144,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
win.setToolbarVisibility( win.setToolbarVisibility(
areaNode, areaNode,
typeof defaultCollapsed == "string" typeof defaultCollapsed == "string"
@@ -5838,6 +5836,7 @@ export var CustomizableUI = { @@ -5840,6 +5838,7 @@ export var CustomizableUI = {
unregisterArea(aName, aDestroyPlacements) { unregisterArea(aName, aDestroyPlacements) {
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements); CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
}, },
@@ -152,7 +152,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
/** /**
* 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,
@@ -7885,11 +7884,11 @@ class OverflowableToolbar { @@ -7887,11 +7886,11 @@ class OverflowableToolbar {
parseFloat(style.paddingLeft) - parseFloat(style.paddingLeft) -
parseFloat(style.paddingRight) - parseFloat(style.paddingRight) -
toolbarChildrenWidth; toolbarChildrenWidth;
@@ -166,7 +166,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
}); });
lazy.log.debug( lazy.log.debug(
@@ -7899,7 +7898,8 @@ class OverflowableToolbar { @@ -7901,7 +7900,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);
@@ -176,7 +176,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
return { isOverflowing, targetContentWidth, totalAvailWidth }; return { isOverflowing, targetContentWidth, totalAvailWidth };
} }
@@ -7993,7 +7993,7 @@ class OverflowableToolbar { @@ -7995,7 +7995,7 @@ class OverflowableToolbar {
} }
} }
if (!inserted) { if (!inserted) {
@@ -185,7 +185,7 @@ index 8c9b11d0c1ce7ae016889950e92b3adda318235c..ba81498aa16ce844a8d189c047f596d1
} }
child.removeAttribute("cui-anchorid"); child.removeAttribute("cui-anchorid");
child.removeAttribute("overflowedItem"); child.removeAttribute("overflowedItem");
@@ -8338,7 +8338,7 @@ class OverflowableToolbar { @@ -8340,7 +8340,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 bc601c9cd248637f304b8f3219862e8e6f6c7506..da28068906ddeb81337696da568608edb43223b7 100644 index fd3c54a1d80f5800ffd2dcaaf594eed4bd2d300c..259af2688e5a8bca88017e5da0bfdb488ab59f59 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
@@ -502,7 +502,7 @@ export class CustomizeMode { @@ -503,7 +503,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 bc601c9cd248637f304b8f3219862e8e6f6c7506..da28068906ddeb81337696da568608ed
browser.hidden = true; browser.hidden = true;
customizer.hidden = false; customizer.hidden = false;
@@ -639,7 +639,7 @@ export class CustomizeMode { @@ -640,7 +640,7 @@ export class CustomizeMode {
} }
let customizer = document.getElementById("customization-container"); let customizer = document.getElementById("customization-container");
@@ -20,7 +20,7 @@ index bc601c9cd248637f304b8f3219862e8e6f6c7506..da28068906ddeb81337696da568608ed
customizer.hidden = true; customizer.hidden = true;
browser.hidden = false; browser.hidden = false;
@@ -1175,6 +1175,7 @@ export class CustomizeMode { @@ -1176,6 +1176,7 @@ export class CustomizeMode {
return ( return (
aNode.localName == "toolbarbutton" || aNode.localName == "toolbarbutton" ||
aNode.localName == "toolbaritem" || aNode.localName == "toolbaritem" ||
@@ -28,7 +28,7 @@ index bc601c9cd248637f304b8f3219862e8e6f6c7506..da28068906ddeb81337696da568608ed
aNode.localName == "toolbarseparator" || aNode.localName == "toolbarseparator" ||
aNode.localName == "toolbarspring" || aNode.localName == "toolbarspring" ||
aNode.localName == "toolbarspacer" aNode.localName == "toolbarspacer"
@@ -3127,6 +3128,20 @@ export class CustomizeMode { @@ -3128,6 +3129,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 0924175cecdceade096a325b2d4cd2656da24524..3c1e4a179d13aac740069c23e9bf8e40376d5032 100644 index 852cf2eee9113753fa0797be6dec80dcb9207703..93bb093e679320033a37b2af14e8e0e3c7621f94 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
@@ -241,8 +241,8 @@ export var ToolbarContextMenu = { @@ -242,8 +242,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,5 +1,5 @@
diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml
index c78f08bdd3fc4d01e10552ef65c2d5813dd053e8..154fb1de2ab9384937d02c14cb7c9c607b330da9 100644 index 85acb96a3deefed708ea768b2f163e7fd6480b97..bb3aed53758da7dafcfed4492acb0cbf2b80cd2f 100644
--- a/browser/components/customizableui/content/panelUI.inc.xhtml --- a/browser/components/customizableui/content/panelUI.inc.xhtml
+++ b/browser/components/customizableui/content/panelUI.inc.xhtml +++ b/browser/components/customizableui/content/panelUI.inc.xhtml
@@ -132,7 +132,7 @@ @@ -132,7 +132,7 @@

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 b3c4898fa5aa7ba997d84a2b4fdce398978e1150..736d7aca6232e94a1de0afe2c292060c5c622565 100644 index 7156397d597579f745ea20ae2b9327433a31c8ec..13b844a63e79e227c96faf153ee5908759306407 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
@@ -517,8 +517,7 @@ const PanelUI = { @@ -518,8 +518,7 @@ const PanelUI = {
tempPanel.setAttribute("animate", "false"); tempPanel.setAttribute("animate", "false");
} }
tempPanel.setAttribute("context", ""); tempPanel.setAttribute("context", "");
@@ -12,7 +12,7 @@ index b3c4898fa5aa7ba997d84a2b4fdce398978e1150..736d7aca6232e94a1de0afe2c292060c
.appendChild(tempPanel); .appendChild(tempPanel);
let multiView = document.createXULElement("panelmultiview"); let multiView = document.createXULElement("panelmultiview");
@@ -609,10 +608,12 @@ const PanelUI = { @@ -610,10 +609,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 b3c4898fa5aa7ba997d84a2b4fdce398978e1150..736d7aca6232e94a1de0afe2c292060c
} }
}, },
@@ -960,7 +961,7 @@ const PanelUI = { @@ -961,7 +962,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/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
index 1e382981a33ca341c306a78ed81718e4ad7c2b3e..e98f76f1e9dd381116328d6d9b901585ea80dce4 100644 index 0baa038232d7e0fd9942f392c48acf7ea5ba50ed..093e1c29c3538d18eb2162b4e4b23ba40c695739 100644
--- a/browser/components/extensions/parent/ext-browser.js --- a/browser/components/extensions/parent/ext-browser.js
+++ b/browser/components/extensions/parent/ext-browser.js +++ b/browser/components/extensions/parent/ext-browser.js
@@ -351,6 +351,7 @@ class TabTracker extends TabTrackerBase { @@ -351,6 +351,7 @@ class TabTracker extends TabTrackerBase {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/extensions/parent/ext-tabs.js b/browser/components/extensions/parent/ext-tabs.js diff --git a/browser/components/extensions/parent/ext-tabs.js b/browser/components/extensions/parent/ext-tabs.js
index a53a12f91817a9e3d1773480928e858bc3182c77..10f6559ffb128906be31de220c93320e9a6d40e7 100644 index bff93996b42aa1f88f1bfcbd813c3af4a5806f13..1252727b4811248e138cf7a38f8d1fd422576d28 100644
--- a/browser/components/extensions/parent/ext-tabs.js --- a/browser/components/extensions/parent/ext-tabs.js
+++ b/browser/components/extensions/parent/ext-tabs.js +++ b/browser/components/extensions/parent/ext-tabs.js
@@ -494,6 +494,7 @@ this.tabs = class extends ExtensionAPIPersistent { @@ -501,6 +501,7 @@ this.tabs = class extends ExtensionAPIPersistent {
} }
let tab = tabManager.getWrapper(updatedTab); let tab = tabManager.getWrapper(updatedTab);
@@ -10,7 +10,7 @@ index a53a12f91817a9e3d1773480928e858bc3182c77..10f6559ffb128906be31de220c93320e
let changeInfo = {}; let changeInfo = {};
for (let prop of needed) { for (let prop of needed) {
@@ -848,6 +849,7 @@ this.tabs = class extends ExtensionAPIPersistent { @@ -855,6 +856,7 @@ this.tabs = class extends ExtensionAPIPersistent {
}); });
} }

View File

@@ -1,8 +1,8 @@
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 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543dce50234 100644 index 86cc499f9b959ef87ab57fc4195e0c65f25e8c7c..a928ea83b9f4d0133238e744d2fb91318d36d4de 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 { @@ -60,6 +60,7 @@ class BookmarkState {
info, info,
tags = "", tags = "",
keyword = "", keyword = "",
@@ -10,7 +10,7 @@ index 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543
isFolder = false, isFolder = false,
children = [], children = [],
autosave = false, autosave = false,
@@ -83,12 +84,18 @@ class BookmarkState { @@ -84,12 +85,18 @@ class BookmarkState {
keyword, keyword,
parentGuid: info.parentGuid, parentGuid: info.parentGuid,
index, index,
@@ -29,7 +29,7 @@ index 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543
/** /**
* Save edited title for the bookmark * Save edited title for the bookmark
* *
@@ -182,6 +189,14 @@ class BookmarkState { @@ -183,6 +190,14 @@ class BookmarkState {
"BookmarkState::createBookmark" "BookmarkState::createBookmark"
); );
this._guid = results?.[0]; this._guid = results?.[0];
@@ -44,7 +44,7 @@ index 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543
return this._guid; return this._guid;
} }
@@ -215,6 +230,14 @@ class BookmarkState { @@ -216,6 +231,14 @@ class BookmarkState {
"BookmarkState::save::createFolder" "BookmarkState::save::createFolder"
); );
this._guid = results[0]; this._guid = results[0];
@@ -59,7 +59,7 @@ index 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543
return this._guid; return this._guid;
} }
@@ -301,11 +324,97 @@ class BookmarkState { @@ -302,11 +325,97 @@ class BookmarkState {
await lazy.PlacesTransactions.batch(transactions, "BookmarkState::save"); await lazy.PlacesTransactions.batch(transactions, "BookmarkState::save");
} }
@@ -157,7 +157,7 @@ index 513199c212ab22c8af9e084352b6aa2647818000..9610e73af653fbc620e330a1e6e7b543
/** /**
* Append transactions to update tags by given information. * Append transactions to update tags by given information.
* *
@@ -903,7 +1012,7 @@ export var PlacesUIUtils = { @@ -904,7 +1013,7 @@ export var PlacesUIUtils = {
aNode, aNode,
aWhere, aWhere,
aWindow, aWindow,

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js
index ad138a38340e8e8510d395f46c30ec4121d731bb..52beaa66395e2b240a7122936cd4d2452b386724 100644 index 29fb3308dcc98d785a3345dee78050d633927db2..0ae28fa0618def4a146723b19a22280956a25371 100644
--- a/browser/components/places/content/browserPlacesViews.js --- a/browser/components/places/content/browserPlacesViews.js
+++ b/browser/components/places/content/browserPlacesViews.js +++ b/browser/components/places/content/browserPlacesViews.js
@@ -330,12 +330,23 @@ class PlacesViewBase { @@ -330,12 +330,23 @@ class PlacesViewBase {

View File

@@ -1,8 +1,8 @@
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 ac84ff7b7623a279191c7608ef0b47363b54cd31..53919bae7a49f1e87edaedc8072ee08fb697811b 100644 index f562f19741d882d92365da531b55e2810a0e79ea..9339e1158b074c41fc19bf91cbfde3c4016594b9 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 = { @@ -387,6 +387,10 @@ var gEditItemOverlay = {
this._keywordField.readOnly = this.readOnly; this._keywordField.readOnly = this.readOnly;
} }
@@ -13,7 +13,7 @@ index ac84ff7b7623a279191c7608ef0b47363b54cd31..53919bae7a49f1e87edaedc8072ee08f
// Collapse the tag selector if the item does not accept tags. // Collapse the tag selector if the item does not accept tags.
if (showOrCollapse("tagsRow", isBookmark || bulkTagging, "tags")) { if (showOrCollapse("tagsRow", isBookmark || bulkTagging, "tags")) {
this._initTagsField(); this._initTagsField();
@@ -692,6 +696,7 @@ var gEditItemOverlay = { @@ -693,6 +697,7 @@ var gEditItemOverlay = {
if (this._paneInfo.isBookmark) { if (this._paneInfo.isBookmark) {
options.tags = this._element("tagsField").value; options.tags = this._element("tagsField").value;
options.keyword = this._keyword; options.keyword = this._keyword;
@@ -21,7 +21,7 @@ index ac84ff7b7623a279191c7608ef0b47363b54cd31..53919bae7a49f1e87edaedc8072ee08f
} }
if (this._paneInfo.bulkTagging) { if (this._paneInfo.bulkTagging) {
@@ -1193,6 +1198,9 @@ var gEditItemOverlay = { @@ -1194,6 +1199,9 @@ var gEditItemOverlay = {
case "editBMPanel_tagsSelectorExpander": case "editBMPanel_tagsSelectorExpander":
this.toggleTagsSelector().catch(console.error); this.toggleTagsSelector().catch(console.error);
break; break;
@@ -31,7 +31,7 @@ index ac84ff7b7623a279191c7608ef0b47363b54cd31..53919bae7a49f1e87edaedc8072ee08f
} }
break; break;
} }
@@ -1279,6 +1287,148 @@ var gEditItemOverlay = { @@ -1280,6 +1288,148 @@ var gEditItemOverlay = {
get bookmarkState() { get bookmarkState() {
return this._bookmarkState; return this._bookmarkState;
}, },
@@ -180,7 +180,7 @@ index ac84ff7b7623a279191c7608ef0b47363b54cd31..53919bae7a49f1e87edaedc8072ee08f
}; };
ChromeUtils.defineLazyGetter(gEditItemOverlay, "_folderTree", () => { ChromeUtils.defineLazyGetter(gEditItemOverlay, "_folderTree", () => {
@@ -1317,6 +1467,9 @@ for (let elt of [ @@ -1318,6 +1468,9 @@ for (let elt of [
"locationField", "locationField",
"keywordField", "keywordField",
"tagsField", "tagsField",

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
index 118709048e7de13f6ac10d0047e446b72303428f..c8cc2d7ee551b96be668a7844dab1db5abc9d684 100644 index eac1fc65c01107cc7f1a3f3aeb1e8caac3c4a3f5..c3bd265acc924bcf26816e9e78f314c31af41f6d 100644
--- a/browser/components/preferences/jar.mn --- a/browser/components/preferences/jar.mn
+++ b/browser/components/preferences/jar.mn +++ b/browser/components/preferences/jar.mn
@@ -26,3 +26,5 @@ browser.jar: @@ -27,3 +27,5 @@ browser.jar:
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs) content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs) content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css) content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)

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 a60831d9309ed73ea6d37725f9b9177dd6677501..c4d357d300b08b5adbe24d38eef5bd20842df665 100644 index 3f578f3888684a1830d456f2a4896e8a5f6630fd..7de18a724d3953a5616577f65a8cf9a18f71893c 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
@@ -443,7 +443,7 @@ function getBundleForLocales(newLocales) { @@ -424,7 +424,7 @@ function getBundleForLocales(newLocales) {
]) ])
); );
return new Localization( return new Localization(

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 a50fc9cae85527a10c3949163594ce43b68b14c0..82aec0fb0ebd6ffc6dc3143ddb56e9fe102f0caa 100644 index 21d951a19df06da67a28f717b9f80f8f4ebf77d2..b1f998f2b3ed99b19666e81e61428587541b0da5 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 @@

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml
index 492491a369b53797aded1d3e4cf24d6f11394267..b294aa3005b11276ba8f1c58730b85043a19bf3f 100644 index e59c536fc2fa06b11be9378a28285ac16fd16958..cf17ee3b6347b950fcf5bf260cd0631c77ffd1d3 100644
--- a/browser/components/preferences/sync.inc.xhtml --- a/browser/components/preferences/sync.inc.xhtml
+++ b/browser/components/preferences/sync.inc.xhtml +++ b/browser/components/preferences/sync.inc.xhtml
@@ -229,6 +229,10 @@ @@ -223,6 +223,10 @@
<image class="sync-engine-image sync-engine-prefs" alt=""/> <image class="sync-engine-image sync-engine-prefs" alt=""/>
<label data-l10n-id="sync-currently-syncing-settings"/> <label data-l10n-id="sync-currently-syncing-settings"/>
</html:div> </html:div>

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 dfd18da85323751c4be7963cb5ab2357de488d83..e228bf594a0a736396cabd247bac4033091afccc 100644 index 6ef224ce377cf3ff511e435f3c7a5dc1de819c60..5b4c395c222c6317fd88499a1aa5307032ea13f8 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
@@ -412,7 +412,7 @@ export var SearchUIUtils = { @@ -426,7 +426,7 @@ export var SearchUIUtils = {
triggeringSearchEngine: engine.name, triggeringSearchEngine: engine.name,
}, },
}); });

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c292756c3 100644 index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..fcd331a25a34e406e8f74d15db8567f79bdefd9e 100644
--- a/browser/components/sessionstore/SessionStore.sys.mjs --- a/browser/components/sessionstore/SessionStore.sys.mjs
+++ b/browser/components/sessionstore/SessionStore.sys.mjs +++ b/browser/components/sessionstore/SessionStore.sys.mjs
@@ -2135,7 +2135,6 @@ var SessionStoreInternal = { @@ -2133,7 +2133,6 @@ var SessionStoreInternal = {
if (closedWindowState) { if (closedWindowState) {
let newWindowState; let newWindowState;
if ( if (
@@ -10,7 +10,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
!lazy.SessionStartup.willRestore() !lazy.SessionStartup.willRestore()
) { ) {
// We want to split the window up into pinned tabs and unpinned tabs. // We want to split the window up into pinned tabs and unpinned tabs.
@@ -2368,11 +2367,9 @@ var SessionStoreInternal = { @@ -2366,11 +2365,9 @@ var SessionStoreInternal = {
tabbrowser.selectedTab.label; tabbrowser.selectedTab.label;
} }
@@ -22,7 +22,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
// Store the window's close date to figure out when each individual tab // Store the window's close date to figure out when each individual tab
// was closed. This timestamp should allow re-arranging data based on how // was closed. This timestamp should allow re-arranging data based on how
@@ -3357,7 +3354,7 @@ var SessionStoreInternal = { @@ -3355,7 +3352,7 @@ var SessionStoreInternal = {
if (!isPrivateWindow && tabState.isPrivate) { if (!isPrivateWindow && tabState.isPrivate) {
return; return;
} }
@@ -31,7 +31,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
return; return;
} }
@@ -4069,6 +4066,11 @@ var SessionStoreInternal = { @@ -4067,6 +4064,11 @@ var SessionStoreInternal = {
Math.min(tabState.index, tabState.entries.length) Math.min(tabState.index, tabState.entries.length)
); );
tabState.pinned = false; tabState.pinned = false;
@@ -43,7 +43,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
if (inBackground === false) { if (inBackground === false) {
aWindow.gBrowser.selectedTab = newTab; aWindow.gBrowser.selectedTab = newTab;
@@ -4505,6 +4507,7 @@ var SessionStoreInternal = { @@ -4503,6 +4505,7 @@ var SessionStoreInternal = {
// Append the tab if we're opening into a different window, // Append the tab if we're opening into a different window,
tabIndex: aSource == aTargetWindow ? pos : Infinity, tabIndex: aSource == aTargetWindow ? pos : Infinity,
pinned: state.pinned, pinned: state.pinned,
@@ -51,7 +51,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
userContextId: state.userContextId, userContextId: state.userContextId,
skipLoad: true, skipLoad: true,
preferredRemoteType, preferredRemoteType,
@@ -5360,7 +5363,7 @@ var SessionStoreInternal = { @@ -5358,7 +5361,7 @@ var SessionStoreInternal = {
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) { for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
let tab = tabbrowser.tabs[i]; let tab = tabbrowser.tabs[i];
@@ -60,7 +60,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
removableTabs.push(tab); removableTabs.push(tab);
} }
} }
@@ -5420,7 +5423,7 @@ var SessionStoreInternal = { @@ -5418,7 +5421,7 @@ var SessionStoreInternal = {
} }
let workspaceID = aWindow.getWorkspaceID(); let workspaceID = aWindow.getWorkspaceID();
@@ -69,7 +69,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
winData.workspaceID = workspaceID; winData.workspaceID = workspaceID;
} }
}, },
@@ -5611,11 +5614,12 @@ var SessionStoreInternal = { @@ -5609,11 +5612,12 @@ var SessionStoreInternal = {
} }
let tabbrowser = aWindow.gBrowser; let tabbrowser = aWindow.gBrowser;
@@ -83,7 +83,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
// update the internal state data for this window // update the internal state data for this window
for (let tab of tabs) { for (let tab of tabs) {
if (tab == aWindow.FirefoxViewHandler.tab) { if (tab == aWindow.FirefoxViewHandler.tab) {
@@ -5626,6 +5630,7 @@ var SessionStoreInternal = { @@ -5624,6 +5628,7 @@ var SessionStoreInternal = {
tabsData.push(tabData); tabsData.push(tabData);
} }
@@ -91,7 +91,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
// update tab group state for this window // update tab group state for this window
winData.groups = []; winData.groups = [];
for (let tabGroup of aWindow.gBrowser.tabGroups) { for (let tabGroup of aWindow.gBrowser.tabGroups) {
@@ -5638,7 +5643,7 @@ var SessionStoreInternal = { @@ -5636,7 +5641,7 @@ var SessionStoreInternal = {
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab, // a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
// since it's only inserted into the tab strip after it's selected). // since it's only inserted into the tab strip after it's selected).
if (aWindow.FirefoxViewHandler.tab?.selected) { if (aWindow.FirefoxViewHandler.tab?.selected) {
@@ -100,7 +100,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
winData.title = tabbrowser.tabs[0].label; winData.title = tabbrowser.tabs[0].label;
} }
winData.selected = selectedIndex; winData.selected = selectedIndex;
@@ -5750,8 +5755,8 @@ var SessionStoreInternal = { @@ -5748,8 +5753,8 @@ var SessionStoreInternal = {
// selectTab represents. // selectTab represents.
let selectTab = 0; let selectTab = 0;
if (overwriteTabs) { if (overwriteTabs) {
@@ -111,7 +111,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
selectTab = Math.min(selectTab, winData.tabs.length); selectTab = Math.min(selectTab, winData.tabs.length);
} }
@@ -5794,6 +5799,8 @@ var SessionStoreInternal = { @@ -5792,6 +5797,8 @@ var SessionStoreInternal = {
winData.tabs, winData.tabs,
winData.groups ?? [] winData.groups ?? []
); );
@@ -120,7 +120,7 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
this._log.debug( this._log.debug(
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs` `restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
); );
@@ -6351,6 +6358,22 @@ var SessionStoreInternal = { @@ -6349,6 +6356,25 @@ var SessionStoreInternal = {
// Most of tabData has been restored, now continue with restoring // Most of tabData has been restored, now continue with restoring
// attributes that may trigger external events. // attributes that may trigger external events.
@@ -139,11 +139,14 @@ index e954a8df26ed84731b08b151f90a758206946582..64ab1cce10324d574b49fe861975188c
+ } + }
+ if (tabData.zenDefaultUserContextId) { + if (tabData.zenDefaultUserContextId) {
+ tab.setAttribute("zenDefaultUserContextId", true); + tab.setAttribute("zenDefaultUserContextId", true);
+ }
+ if (tabData.zenWorkspace) {
+ tab.setAttribute("zen-workspace-id", tabData.zenWorkspace);
+ } + }
if (tabData.pinned) { if (tabData.pinned) {
tabbrowser.pinTab(tab); tabbrowser.pinTab(tab);
@@ -7266,7 +7289,7 @@ var SessionStoreInternal = { @@ -7264,7 +7290,7 @@ var SessionStoreInternal = {
let groupsToSave = new Map(); let groupsToSave = new Map();
for (let tIndex = 0; tIndex < window.tabs.length; ) { for (let tIndex = 0; tIndex < window.tabs.length; ) {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
index 178c05099b671c4ec8d4c225955e65cff73824e2..6abb0ee2d4be94f997ee8d4bc755a393d9759099 100644 index f62decaa3f7400787b245b3e765197f4e70dffbb..329240cf434fdbefcf145a733179bd565a814280 100644
--- a/browser/components/sidebar/browser-sidebar.js --- a/browser/components/sidebar/browser-sidebar.js
+++ b/browser/components/sidebar/browser-sidebar.js +++ b/browser/components/sidebar/browser-sidebar.js
@@ -729,7 +729,7 @@ var SidebarController = { @@ -779,7 +779,7 @@ var SidebarController = {
setPosition() { setPosition() {
// First reset all ordinals to match DOM ordering. // First reset all ordinals to match DOM ordering.
let contentArea = document.getElementById("tabbrowser-tabbox"); let contentArea = document.getElementById("tabbrowser-tabbox");

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
index 6753641cb579032306453be3f5054d7bc7661e8c..bf21f6c14f825fbe2d322900595cd34456fe1231 100644 index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3e8781666 100644
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js --- a/browser/components/tabbrowser/content/browser-ctrlTab.js
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js +++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
@@ -252,7 +252,8 @@ var ctrlTab = { @@ -252,7 +252,8 @@ var ctrlTab = {
@@ -12,7 +12,7 @@ index 6753641cb579032306453be3f5054d7bc7661e8c..bf21f6c14f825fbe2d322900595cd344
}, },
init: function ctrlTab_init() { init: function ctrlTab_init() {
@@ -459,7 +460,7 @@ var ctrlTab = { @@ -463,7 +464,7 @@ var ctrlTab = {
// If the tab is hidden, don't add it to the list unless it's selected // If the tab is hidden, don't add it to the list unless it's selected
// (Normally hidden tabs would be unhidden when selected, but that doesn't // (Normally hidden tabs would be unhidden when selected, but that doesn't
// happen for Firefox View). // happen for Firefox View).
@@ -21,7 +21,7 @@ index 6753641cb579032306453be3f5054d7bc7661e8c..bf21f6c14f825fbe2d322900595cd344
return; return;
} }
@@ -483,7 +484,7 @@ var ctrlTab = { @@ -487,7 +488,7 @@ var ctrlTab = {
}, },
open: function ctrlTab_open() { open: function ctrlTab_open() {
@@ -30,7 +30,7 @@ index 6753641cb579032306453be3f5054d7bc7661e8c..bf21f6c14f825fbe2d322900595cd344
return; return;
} }
@@ -761,7 +762,7 @@ var ctrlTab = { @@ -765,7 +766,7 @@ var ctrlTab = {
_initRecentlyUsedTabs() { _initRecentlyUsedTabs() {
this._recentlyUsedTabs = Array.prototype.filter.call( this._recentlyUsedTabs = Array.prototype.filter.call(
gBrowser.tabs, gBrowser.tabs,

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 f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3888a6a64 100644 index fd2465046407261e8c29b4cd3d56122d232e701c..937068562975a26834572c408e9a75453bdf49cb 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 @@
@@ -21,19 +21,25 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
</hbox> </hbox>
</stack> </stack>
`; `;
@@ -97,9 +100,9 @@ @@ -84,7 +87,7 @@
"src=image,triggeringprincipal=iconloadingprincipal,requestcontextid,fadein,pinned,selected=visuallyselected,busy,crashed,sharing,pictureinpicture,pending,discarded", ".tab-content":
".tab-sharing-icon-overlay": "sharing,selected=visuallyselected,pinned", "pinned,selected=visuallyselected,multiselected,titlechanged,attention",
".tab-icon-overlay": ".tab-icon-stack":
- "sharing,pictureinpicture,crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked", - "sharing,pictureinpicture,crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked",
+ "zen-essential,sharing,pictureinpicture,crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked", + "zen-essential,sharing,pictureinpicture,crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked",
".tab-throbber":
"fadein,pinned,busy,progress,selected=visuallyselected",
".tab-icon-pending":
@@ -95,7 +98,7 @@
".tab-icon-overlay":
"sharing,pictureinpicture,crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked",
".tab-audio-button": ".tab-audio-button":
- "crashed,soundplaying,soundplaying-scheduledremoval,pinned,muted,activemedia-blocked", - "crashed,soundplaying,soundplaying-scheduledremoval,pinned,muted,activemedia-blocked",
+ "zen-essential,crashed,soundplaying,soundplaying-scheduledremoval,pinned,muted,activemedia-blocked", + "zen-essential,crashed,soundplaying,soundplaying-scheduledremoval,pinned,muted,activemedia-blocked",
".tab-label-container": ".tab-label-container":
"pinned,selected=visuallyselected,labeldirection", "pinned,selected=visuallyselected,labeldirection",
".tab-label": ".tab-label":
@@ -188,7 +191,7 @@ @@ -184,7 +187,7 @@
} }
set _visuallySelected(val) { set _visuallySelected(val) {
@@ -42,12 +48,14 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
return; return;
} }
@@ -224,9 +227,21 @@ @@ -220,11 +223,21 @@
} }
get visible() { get visible() {
- return ( - return (
- this.isOpen && !this.hidden && (!this.group?.collapsed || this.selected) - this.isOpen &&
- !this.hidden &&
- (!this.group || this.group.isTabVisibleInGroup(this))
- ); - );
+ if (!this.isOpen || this.hidden || this.hasAttribute("zen-empty-tab")) { + if (!this.isOpen || this.hidden || this.hasAttribute("zen-empty-tab")) {
+ return false; + return false;
@@ -67,7 +75,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
} }
get hidden() { get hidden() {
@@ -297,7 +312,7 @@ @@ -295,7 +308,7 @@
return false; return false;
} }
@@ -76,7 +84,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
} }
get lastAccessed() { get lastAccessed() {
@@ -374,8 +389,11 @@ @@ -372,8 +385,11 @@
} }
get group() { get group() {
@@ -90,7 +98,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
} }
return null; return null;
} }
@@ -469,6 +487,8 @@ @@ -459,6 +475,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") ||
@@ -99,7 +107,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
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")
) { ) {
@@ -523,6 +543,10 @@ @@ -513,6 +531,10 @@
this.style.MozUserFocus = ""; this.style.MozUserFocus = "";
} }
@@ -110,7 +118,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
on_click(event) { on_click(event) {
if (event.button != 0) { if (event.button != 0) {
return; return;
@@ -571,6 +595,7 @@ @@ -561,6 +583,7 @@
) )
); );
} else { } else {
@@ -118,7 +126,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
gBrowser.removeTab(this, { gBrowser.removeTab(this, {
animate: true, animate: true,
triggeringEvent: event, triggeringEvent: event,
@@ -583,6 +608,14 @@ @@ -573,6 +596,14 @@
// (see tabbrowser-tabs 'click' handler). // (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true; gBrowser.tabContainer._blockDblClick = true;
} }
@@ -133,7 +141,7 @@ index f261f0f2c7945cbdb41e5d1b6067a8db38bef117..f126879aa9e843c74992aa751795aef3
} }
on_dblclick(event) { on_dblclick(event) {
@@ -606,6 +639,8 @@ @@ -596,6 +627,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 d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c328341c6e6eb 100644 index 3204f253c23551650991d3385dd256d55892a012..78727727a0c623e0213177700124869b2163b89c 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
@@ -422,15 +422,64 @@ @@ -427,15 +427,64 @@
return this.tabContainer.visibleTabs; return this.tabContainer.visibleTabs;
} }
@@ -69,7 +69,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
set selectedTab(val) { set selectedTab(val) {
if ( if (
gSharedTabWarning.willShowSharedTabWarning(val) || gSharedTabWarning.willShowSharedTabWarning(val) ||
@@ -578,6 +627,7 @@ @@ -583,6 +632,7 @@
this.tabpanels.appendChild(panel); this.tabpanels.appendChild(panel);
let tab = this.tabs[0]; let tab = this.tabs[0];
@@ -77,7 +77,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
tab.linkedPanel = uniqueId; tab.linkedPanel = uniqueId;
this._selectedTab = tab; this._selectedTab = tab;
this._selectedBrowser = browser; this._selectedBrowser = browser;
@@ -863,9 +913,13 @@ @@ -868,9 +918,13 @@
} }
this.showTab(aTab); this.showTab(aTab);
@@ -92,7 +92,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
aTab.setAttribute("pinned", "true"); aTab.setAttribute("pinned", "true");
this._updateTabBarForPinnedTabs(); this._updateTabBarForPinnedTabs();
@@ -878,11 +932,15 @@ @@ -883,11 +937,15 @@
} }
this.#handleTabMove(aTab, () => { this.#handleTabMove(aTab, () => {
@@ -109,7 +109,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
}); });
aTab.style.marginInlineStart = ""; aTab.style.marginInlineStart = "";
@@ -1060,6 +1118,8 @@ @@ -1065,6 +1123,8 @@
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"]; let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
@@ -118,7 +118,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if ( if (
aIconURL && aIconURL &&
!aLoadingPrincipal && !aLoadingPrincipal &&
@@ -1070,6 +1130,9 @@ @@ -1075,6 +1135,9 @@
); );
return; return;
} }
@@ -128,7 +128,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
let browser = this.getBrowserForTab(aTab); let browser = this.getBrowserForTab(aTab);
browser.mIconURL = aIconURL; browser.mIconURL = aIconURL;
@@ -1319,6 +1382,7 @@ @@ -1333,6 +1396,7 @@
if (!this._previewMode) { if (!this._previewMode) {
newTab.recordTimeFromUnloadToReload(); newTab.recordTimeFromUnloadToReload();
newTab.updateLastAccessed(); newTab.updateLastAccessed();
@@ -136,7 +136,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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()) {
@@ -1471,6 +1535,9 @@ @@ -1485,6 +1549,9 @@
} }
let activeEl = document.activeElement; let activeEl = document.activeElement;
@@ -146,7 +146,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// 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();
@@ -1794,7 +1861,8 @@ @@ -1808,7 +1875,8 @@
} }
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) { _setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
@@ -156,7 +156,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
return false; return false;
} }
@@ -1902,7 +1970,7 @@ @@ -1916,7 +1984,7 @@
newIndex = this.selectedTab._tPos + 1; newIndex = this.selectedTab._tPos + 1;
} }
@@ -165,7 +165,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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"
@@ -2166,6 +2234,7 @@ @@ -2191,6 +2259,7 @@
uriIsAboutBlank, uriIsAboutBlank,
userContextId, userContextId,
skipLoad, skipLoad,
@@ -173,7 +173,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} = {}) { } = {}) {
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
@@ -2239,8 +2308,7 @@ @@ -2264,8 +2333,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);
} }
@@ -183,7 +183,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
b.setAttribute("transparent", "true"); b.setAttribute("transparent", "true");
} }
@@ -2405,7 +2473,7 @@ @@ -2430,7 +2498,7 @@
let panel = this.getPanel(browser); let panel = this.getPanel(browser);
let uniqueId = this._generateUniquePanelID(); let uniqueId = this._generateUniquePanelID();
@@ -192,7 +192,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
aTab.linkedPanel = uniqueId; aTab.linkedPanel = uniqueId;
// Inject the <browser> into the DOM if necessary. // Inject the <browser> into the DOM if necessary.
@@ -2464,8 +2532,8 @@ @@ -2489,8 +2557,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) {
@@ -203,7 +203,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} else { } else {
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1; aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
} }
@@ -2629,7 +2697,6 @@ @@ -2654,7 +2722,6 @@
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, { this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
tabIndex: tab._tPos + 1, tabIndex: tab._tPos + 1,
userContextId: tab.userContextId, userContextId: tab.userContextId,
@@ -211,7 +211,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
focusUrlBar: true, focusUrlBar: true,
}); });
resolve(this.selectedBrowser); resolve(this.selectedBrowser);
@@ -2709,6 +2776,8 @@ @@ -2734,6 +2801,8 @@
schemelessInput, schemelessInput,
hasValidUserGestureActivation = false, hasValidUserGestureActivation = false,
textDirectiveUserActivation = false, textDirectiveUserActivation = false,
@@ -220,7 +220,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} = {} } = {}
) { ) {
// all callers of addTab that pass a params object need to pass // all callers of addTab that pass a params object need to pass
@@ -2719,6 +2788,12 @@ @@ -2744,6 +2813,12 @@
); );
} }
@@ -233,7 +233,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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);
} }
@@ -2782,6 +2857,19 @@ @@ -2807,6 +2882,19 @@
noInitialLabel, noInitialLabel,
skipBackgroundNotify, skipBackgroundNotify,
}); });
@@ -253,7 +253,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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, {
@@ -2790,6 +2878,7 @@ @@ -2815,6 +2903,7 @@
ownerTab, ownerTab,
openerTab, openerTab,
pinned, pinned,
@@ -261,7 +261,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
bulkOrderedOpen, bulkOrderedOpen,
tabGroup: tabGroup ?? openerTab?.group, tabGroup: tabGroup ?? openerTab?.group,
}); });
@@ -2808,6 +2897,7 @@ @@ -2833,6 +2922,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -269,7 +269,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
})); }));
if (focusUrlBar) { if (focusUrlBar) {
@@ -2928,6 +3018,12 @@ @@ -2953,6 +3043,12 @@
} }
} }
@@ -282,7 +282,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// Additionally send pinned tab events // Additionally send pinned tab events
if (pinned) { if (pinned) {
this.#notifyPinnedStatus(t); this.#notifyPinnedStatus(t);
@@ -3016,10 +3112,10 @@ @@ -3041,10 +3137,10 @@
isAdoptingGroup = false, isAdoptingGroup = false,
isUserTriggered = false, isUserTriggered = false,
telemetryUserCreateSource = "unknown", telemetryUserCreateSource = "unknown",
@@ -294,7 +294,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} }
if (!color) { if (!color) {
@@ -3040,9 +3136,14 @@ @@ -3065,9 +3161,14 @@
label, label,
isAdoptingGroup isAdoptingGroup
); );
@@ -311,7 +311,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
); );
group.addTabs(tabs); group.addTabs(tabs);
@@ -3163,7 +3264,7 @@ @@ -3188,7 +3289,7 @@
} }
this.#handleTabMove(tab, () => this.#handleTabMove(tab, () =>
@@ -320,7 +320,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
); );
} }
@@ -3365,6 +3466,7 @@ @@ -3390,6 +3491,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -328,7 +328,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} }
) { ) {
// 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
@@ -3434,6 +3536,7 @@ @@ -3459,6 +3561,7 @@
openWindowInfo, openWindowInfo,
name, name,
skipLoad, skipLoad,
@@ -336,7 +336,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
}); });
} }
@@ -3621,7 +3724,7 @@ @@ -3646,7 +3749,7 @@
// Add a new tab if needed. // Add a new tab if needed.
if (!tab) { if (!tab) {
let createLazyBrowser = let createLazyBrowser =
@@ -345,7 +345,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
let url = "about:blank"; let url = "about:blank";
if (tabData.entries?.length) { if (tabData.entries?.length) {
@@ -3658,8 +3761,10 @@ @@ -3683,8 +3786,10 @@
insertTab: false, insertTab: false,
skipLoad: true, skipLoad: true,
preferredRemoteType, preferredRemoteType,
@@ -357,7 +357,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if (select) { if (select) {
tabToSelect = tab; tabToSelect = tab;
} }
@@ -3671,7 +3776,8 @@ @@ -3696,7 +3801,8 @@
this.pinTab(tab); this.pinTab(tab);
// Then ensure all the tab open/pinning information is sent. // Then ensure all the tab open/pinning information is sent.
this._fireTabOpen(tab, {}); this._fireTabOpen(tab, {});
@@ -367,7 +367,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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
@@ -3685,7 +3791,10 @@ @@ -3710,7 +3816,10 @@
tabGroup.stateData.id, tabGroup.stateData.id,
tabGroup.stateData.color, tabGroup.stateData.color,
tabGroup.stateData.collapsed, tabGroup.stateData.collapsed,
@@ -379,7 +379,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
); );
tabsFragment.appendChild(tabGroup.node); tabsFragment.appendChild(tabGroup.node);
} }
@@ -3730,9 +3839,23 @@ @@ -3755,9 +3864,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;
@@ -403,7 +403,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if (tabs.length > 1 || !tabs[0].selected) { if (tabs.length > 1 || !tabs[0].selected) {
this._updateTabsAfterInsert(); this._updateTabsAfterInsert();
@@ -3923,11 +4046,14 @@ @@ -3948,11 +4071,14 @@
if (ownerTab) { if (ownerTab) {
tab.owner = ownerTab; tab.owner = ownerTab;
} }
@@ -419,7 +419,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if ( if (
!bulkOrderedOpen && !bulkOrderedOpen &&
((openerTab && ((openerTab &&
@@ -3939,7 +4065,7 @@ @@ -3964,7 +4090,7 @@
let lastRelatedTab = let lastRelatedTab =
openerTab && this._lastRelatedTabMap.get(openerTab); openerTab && this._lastRelatedTabMap.get(openerTab);
let previousTab = lastRelatedTab || openerTab || this.selectedTab; let previousTab = lastRelatedTab || openerTab || this.selectedTab;
@@ -428,7 +428,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
tabGroup = previousTab.group; tabGroup = previousTab.group;
} }
if ( if (
@@ -3950,7 +4076,7 @@ @@ -3975,7 +4101,7 @@
) { ) {
elementIndex = Infinity; elementIndex = Infinity;
} else if (previousTab.visible) { } else if (previousTab.visible) {
@@ -437,7 +437,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} else if (previousTab == FirefoxViewHandler.tab) { } else if (previousTab == FirefoxViewHandler.tab) {
elementIndex = 0; elementIndex = 0;
} }
@@ -3978,14 +4104,14 @@ @@ -4003,14 +4129,14 @@
} }
// Ensure index is within bounds. // Ensure index is within bounds.
if (tab.pinned) { if (tab.pinned) {
@@ -456,7 +456,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if (pinned && !itemAfter?.pinned) { if (pinned && !itemAfter?.pinned) {
itemAfter = null; itemAfter = null;
@@ -3996,7 +4122,7 @@ @@ -4021,7 +4147,7 @@
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -465,7 +465,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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);
@@ -4032,6 +4158,7 @@ @@ -4057,6 +4183,7 @@
if (pinned) { if (pinned) {
this._updateTabBarForPinnedTabs(); this._updateTabBarForPinnedTabs();
} }
@@ -473,7 +473,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -4321,6 +4448,9 @@ @@ -4346,6 +4473,9 @@
return; return;
} }
@@ -483,7 +483,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource }); this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
} }
@@ -4582,6 +4712,7 @@ @@ -4607,6 +4737,7 @@
telemetrySource, telemetrySource,
} = {} } = {}
) { ) {
@@ -491,7 +491,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// 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 (
@@ -4671,6 +4802,7 @@ @@ -4696,6 +4827,7 @@
if (lastToClose) { if (lastToClose) {
this.removeTab(lastToClose, aParams); this.removeTab(lastToClose, aParams);
} }
@@ -499,7 +499,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
@@ -4709,6 +4841,12 @@ @@ -4734,6 +4866,12 @@
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start(); aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
} }
@@ -512,7 +512,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// 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) {
@@ -4723,6 +4861,9 @@ @@ -4748,6 +4886,9 @@
// state). // state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab); let isLastTab = this.#isLastTabInWindow(aTab);
@@ -522,7 +522,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if ( if (
!this._beginRemoveTab(aTab, { !this._beginRemoveTab(aTab, {
closeWindowFastpath: true, closeWindowFastpath: true,
@@ -4771,7 +4912,9 @@ @@ -4796,7 +4937,9 @@
// We're not animating, so we can cancel the animation stopwatch. // We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId); Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null; aTab._closeTimeAnimTimerId = null;
@@ -532,7 +532,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
return; return;
} }
@@ -4905,7 +5048,7 @@ @@ -4930,7 +5073,7 @@
closeWindowWithLastTab != null closeWindowWithLastTab != null
? closeWindowWithLastTab ? closeWindowWithLastTab
: !window.toolbar.visible || : !window.toolbar.visible ||
@@ -541,7 +541,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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,
@@ -4929,6 +5072,7 @@ @@ -4954,6 +5097,7 @@
newTab = true; newTab = true;
} }
@@ -549,7 +549,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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.
@@ -4969,13 +5113,7 @@ @@ -4994,13 +5138,7 @@
aTab._mouseleave(); aTab._mouseleave();
if (newTab) { if (newTab) {
@@ -564,7 +564,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} else { } else {
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -5108,6 +5246,7 @@ @@ -5133,6 +5271,7 @@
this.tabs[i]._tPos = i; this.tabs[i]._tPos = i;
} }
@@ -572,7 +572,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if (!this._windowIsClosing) { if (!this._windowIsClosing) {
// update tab close buttons state // update tab close buttons state
this.tabContainer._updateCloseButtons(); this.tabContainer._updateCloseButtons();
@@ -5320,6 +5459,7 @@ @@ -5345,6 +5484,7 @@
} }
let excludeTabs = new Set(aExcludeTabs); let excludeTabs = new Set(aExcludeTabs);
@@ -580,7 +580,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// 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.
@@ -5332,13 +5472,13 @@ @@ -5357,13 +5497,13 @@
!excludeTabs.has(aTab.owner) && !excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) { ) {
@@ -596,7 +596,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
); );
let tab = this.tabContainer.findNextTab(aTab, { let tab = this.tabContainer.findNextTab(aTab, {
@@ -5354,7 +5494,7 @@ @@ -5379,7 +5519,7 @@
} }
if (tab) { if (tab) {
@@ -605,7 +605,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} }
// 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
@@ -5375,7 +5515,7 @@ @@ -5400,7 +5540,7 @@
}); });
} }
@@ -614,7 +614,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} }
_blurTab(aTab) { _blurTab(aTab) {
@@ -5777,10 +5917,10 @@ @@ -5802,10 +5942,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
} }
@@ -627,7 +627,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
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.
@@ -5839,6 +5979,7 @@ @@ -5864,6 +6004,7 @@
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab * @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
*/ */
replaceTabWithWindow(aTab, aOptions) { replaceTabWithWindow(aTab, aOptions) {
@@ -635,7 +635,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if (this.tabs.length == 1) { if (this.tabs.length == 1) {
return null; return null;
} }
@@ -5972,7 +6113,7 @@ @@ -5997,7 +6138,7 @@
* `true` if element is a `<tab-group>` * `true` if element is a `<tab-group>`
*/ */
isTabGroup(element) { isTabGroup(element) {
@@ -644,7 +644,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} }
/** /**
@@ -6048,8 +6189,8 @@ @@ -6073,8 +6214,8 @@
} }
// Don't allow mixing pinned and unpinned tabs. // Don't allow mixing pinned and unpinned tabs.
@@ -655,7 +655,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} else { } else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount); tabIndex = Math.max(tabIndex, this.pinnedTabCount);
} }
@@ -6075,10 +6216,16 @@ @@ -6100,10 +6241,16 @@
this.#handleTabMove( this.#handleTabMove(
element, element,
() => { () => {
@@ -674,7 +674,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
if (neighbor && this.isTab(element) && tabIndex > element._tPos) { if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
neighbor.after(element); neighbor.after(element);
} else { } else {
@@ -6136,23 +6283,28 @@ @@ -6161,23 +6308,28 @@
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) { #moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
if (this.isTabGroupLabel(targetElement)) { if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group; targetElement = targetElement.group;
@@ -709,7 +709,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} else if (!element.pinned && targetElement && targetElement.pinned) { } else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned // If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element // tab, move the unpinned element to be the first unpinned element
@@ -6165,14 +6317,34 @@ @@ -6190,14 +6342,34 @@
// move the tab group right before the first unpinned tab. // move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped: // 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. // move the tab group right before the first unpinned tab's tab group.
@@ -745,7 +745,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
element.pinned element.pinned
? this.tabContainer.pinnedTabsContainer ? this.tabContainer.pinnedTabsContainer
: this.tabContainer; : this.tabContainer;
@@ -6181,7 +6353,7 @@ @@ -6206,7 +6378,7 @@
element, element,
() => { () => {
if (moveBefore) { if (moveBefore) {
@@ -754,7 +754,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
} else if (targetElement) { } else if (targetElement) {
targetElement.after(element); targetElement.after(element);
} else { } else {
@@ -6227,10 +6399,10 @@ @@ -6252,10 +6424,10 @@
* @param {TabMetricsContext} [metricsContext] * @param {TabMetricsContext} [metricsContext]
*/ */
moveTabToGroup(aTab, aGroup, metricsContext) { moveTabToGroup(aTab, aGroup, metricsContext) {
@@ -767,7 +767,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
return; return;
} }
if (aTab.group && aTab.group.id === aGroup.id) { if (aTab.group && aTab.group.id === aGroup.id) {
@@ -6261,6 +6433,7 @@ @@ -6285,6 +6457,7 @@
let state = { let state = {
tabIndex: tab._tPos, tabIndex: tab._tPos,
@@ -775,7 +775,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
}; };
if (tab.visible) { if (tab.visible) {
state.elementIndex = tab.elementIndex; state.elementIndex = tab.elementIndex;
@@ -6287,7 +6460,7 @@ @@ -6311,7 +6484,7 @@
let changedTabGroup = let changedTabGroup =
previousTabState.tabGroupId != currentTabState.tabGroupId; previousTabState.tabGroupId != currentTabState.tabGroupId;
@@ -784,7 +784,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
tab.dispatchEvent( tab.dispatchEvent(
new CustomEvent("TabMove", { new CustomEvent("TabMove", {
bubbles: true, bubbles: true,
@@ -6324,6 +6497,10 @@ @@ -6348,6 +6521,10 @@
moveActionCallback(); moveActionCallback();
@@ -795,7 +795,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// 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();
@@ -7221,7 +7398,7 @@ @@ -7249,7 +7426,7 @@
// preventDefault(). It will still raise the window if appropriate. // preventDefault(). It will still raise the window if appropriate.
break; break;
} }
@@ -804,7 +804,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
window.focus(); window.focus();
aEvent.preventDefault(); aEvent.preventDefault();
break; break;
@@ -8166,6 +8343,7 @@ @@ -8199,6 +8376,7 @@
aWebProgress.isTopLevel aWebProgress.isTopLevel
) { ) {
this.mTab.setAttribute("busy", "true"); this.mTab.setAttribute("busy", "true");
@@ -812,7 +812,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
gBrowser._tabAttrModified(this.mTab, ["busy"]); gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected; this.mTab._notselectedsinceload = !this.mTab.selected;
} }
@@ -9157,7 +9335,7 @@ var TabContextMenu = { @@ -9200,7 +9378,7 @@ var TabContextMenu = {
); );
contextUnpinSelectedTabs.hidden = contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !this.multiselected; !this.contextTab.pinned || !this.multiselected;
@@ -821,7 +821,7 @@ index d80a66a01002e78a9c65545d08fe786328ddf124..346ebe814381e8aa04140f43e98c3283
// Build Ask Chat items // Build Ask Chat items
TabContextMenu.GenAI.buildTabMenu( TabContextMenu.GenAI.buildTabMenu(
document.getElementById("context_askChat"), document.getElementById("context_askChat"),
@@ -9476,6 +9654,7 @@ var TabContextMenu = { @@ -9520,6 +9698,7 @@ var TabContextMenu = {
) )
); );
} else { } else {

View File

@@ -1,5 +1,5 @@
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 caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99bf10038d7 100644 index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..503e97a4ec87625b154627aa5839fb4f8d050f86 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
@@ -13,10 +13,12 @@ @@ -13,10 +13,12 @@
@@ -51,10 +51,10 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
this._initialized = true; this._initialized = true;
this.saveOnWindowClose = true; this.saveOnWindowClose = true;
@@ -97,11 +107,14 @@ @@ -99,11 +109,14 @@
this.#labelElement.container = gBrowser.tabContainer;
this.#labelElement.group = this;
this.#labelElement.addEventListener("mouseover", this);
this.#labelElement.addEventListener("mouseout", this);
- this.#labelElement.addEventListener("contextmenu", e => { - this.#labelElement.addEventListener("contextmenu", e => {
- e.preventDefault(); - e.preventDefault();
- gBrowser.tabGroupMenu.openEditModal(this); - gBrowser.tabGroupMenu.openEditModal(this);
@@ -71,7 +71,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
this.#updateLabelAriaAttributes(); this.#updateLabelAriaAttributes();
this.#updateCollapsedAriaAttributes(); this.#updateCollapsedAriaAttributes();
@@ -127,6 +140,8 @@ @@ -129,6 +142,8 @@
// mounts after getting created by `Tabbrowser.adoptTabGroup`. // mounts after getting created by `Tabbrowser.adoptTabGroup`.
this.#wasCreatedByAdoption = false; this.#wasCreatedByAdoption = false;
} }
@@ -80,7 +80,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
resetDefaultGroupName = () => { resetDefaultGroupName = () => {
this.#defaultGroupName = ""; this.#defaultGroupName = "";
@@ -197,7 +212,10 @@ @@ -213,7 +228,10 @@
} }
}); });
} }
@@ -92,7 +92,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
} }
get color() { get color() {
@@ -285,6 +303,9 @@ @@ -307,6 +325,9 @@
} }
set collapsed(val) { set collapsed(val) {
@@ -102,7 +102,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
if (!!val == this.collapsed) { if (!!val == this.collapsed) {
return; return;
} }
@@ -338,12 +359,61 @@ @@ -364,7 +385,6 @@
tabGroupName, tabGroupName,
}) })
.then(result => { .then(result => {
@@ -110,6 +110,9 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
}); });
} }
@@ -383,7 +403,57 @@
* @returns {MozTabbrowserTab[]}
*/
get tabs() { get tabs() {
- return Array.from(this.children).filter(node => node.matches("tab")); - return Array.from(this.children).filter(node => node.matches("tab"));
+ // add other group tabs if they are under this group + // add other group tabs if they are under this group
@@ -166,7 +169,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
} }
/** /**
@@ -374,7 +444,6 @@ @@ -442,7 +512,6 @@
addTabs(tabs, metricsContext) { addTabs(tabs, metricsContext) {
for (let tab of tabs) { for (let tab of tabs) {
if (tab.pinned) { if (tab.pinned) {
@@ -174,7 +177,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
} }
let tabToMove = let tabToMove =
this.ownerGlobal === tab.ownerGlobal this.ownerGlobal === tab.ownerGlobal
@@ -437,7 +506,7 @@ @@ -505,7 +574,7 @@
*/ */
on_click(event) { on_click(event) {
let isToggleElement = let isToggleElement =
@@ -183,7 +186,7 @@ index caea196b22b4689f55780a528661d87b52f4e728..725a2dfb10216df3e63d7980e2f1c99b
event.target === this.#overflowCountLabel; event.target === this.#overflowCountLabel;
if (isToggleElement && event.button === 0) { if (isToggleElement && event.button === 0) {
event.preventDefault(); event.preventDefault();
@@ -470,5 +539,6 @@ @@ -570,5 +639,6 @@
} }
} }

View File

@@ -1,8 +1,18 @@
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 e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa24888de67ccb 100644 index c7557dad38db9ef02b981c46de9595df77cb67db..4c5972fceb4cf46718e994200bf48d39cb1923c0 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
@@ -332,7 +332,7 @@ @@ -44,6 +44,9 @@
* @returns {MozTabbrowserTab|vbox}
*/
const elementToMove = element => {
+ if (element.group?.hasAttribute("split-view-group")) {
+ return element.group;
+ }
if (isTab(element)) {
return element;
}
@@ -411,7 +414,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 ||
@@ -11,7 +21,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
event.composedTarget.localName == "toolbarbutton" event.composedTarget.localName == "toolbarbutton"
) { ) {
return; return;
@@ -413,7 +413,6 @@ @@ -492,7 +495,6 @@
}); });
} }
} else if (isTabGroupLabel(event.target)) { } else if (isTabGroupLabel(event.target)) {
@@ -19,7 +29,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} else if ( } else if (
event.originalTarget.closest("scrollbox") && event.originalTarget.closest("scrollbox") &&
!Services.prefs.getBoolPref( !Services.prefs.getBoolPref(
@@ -449,6 +448,9 @@ @@ -528,6 +530,9 @@
} }
on_keydown(event) { on_keydown(event) {
@@ -29,7 +39,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let { altKey, shiftKey } = event; let { altKey, shiftKey } = event;
let [accel, nonAccel] = let [accel, nonAccel] =
AppConstants.platform == "macosx" AppConstants.platform == "macosx"
@@ -686,7 +688,7 @@ @@ -765,7 +770,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
@@ -38,7 +48,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let tabsPerRow = 0; let tabsPerRow = 0;
let position = RTL_UI let position = RTL_UI
? window.windowUtils.getBoundsWithoutFlushing( ? window.windowUtils.getBoundsWithoutFlushing(
@@ -851,7 +853,7 @@ @@ -930,7 +935,7 @@
let dropEffect = this.getDropEffectForTabDrag(event); let dropEffect = this.getDropEffectForTabDrag(event);
let isMovingInTabStrip = !fromTabList && dropEffect == "move"; let isMovingInTabStrip = !fromTabList && dropEffect == "move";
let collapseTabGroupDuringDrag = let collapseTabGroupDuringDrag =
@@ -47,7 +57,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
tab._dragData = { tab._dragData = {
offsetX: this.verticalMode offsetX: this.verticalMode
@@ -861,7 +863,7 @@ @@ -940,7 +945,7 @@
? event.screenY - window.screenY - tabOffset ? event.screenY - window.screenY - tabOffset
: event.screenY - window.screenY, : event.screenY - window.screenY,
scrollPos: scrollPos:
@@ -56,15 +66,15 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
? this.pinnedTabsContainer.scrollPosition ? this.pinnedTabsContainer.scrollPosition
: this.arrowScrollbox.scrollPosition, : this.arrowScrollbox.scrollPosition,
screenX: event.screenX, screenX: event.screenX,
@@ -887,6 +889,7 @@ @@ -969,6 +974,7 @@
this.#moveTogetherSelectedTabs(tab);
} else if (collapseTabGroupDuringDrag) { if (collapseTabGroupDuringDrag) {
tab.group.collapsed = true; tab.group.collapsed = true;
+ gZenFolders.collapseVisibleTab(tab.group); + gZenFolders.collapseVisibleTab(tab.group);
}
} }
} }
@@ -1015,6 +1021,10 @@
@@ -932,6 +935,10 @@
} }
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
@@ -75,7 +85,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
if ( if (
(dropEffect == "move" || dropEffect == "copy") && (dropEffect == "move" || dropEffect == "copy") &&
document == draggedTab.ownerDocument && document == draggedTab.ownerDocument &&
@@ -1095,6 +1102,18 @@ @@ -1196,6 +1206,18 @@
this._tabDropIndicator.hidden = true; this._tabDropIndicator.hidden = true;
event.stopPropagation(); event.stopPropagation();
@@ -94,7 +104,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
if (draggedTab && dropEffect == "copy") { if (draggedTab && dropEffect == "copy") {
let duplicatedDraggedTab; let duplicatedDraggedTab;
let duplicatedTabs = []; let duplicatedTabs = [];
@@ -1119,8 +1138,9 @@ @@ -1220,8 +1242,9 @@
let translateOffsetY = oldTranslateY % tabHeight; let translateOffsetY = oldTranslateY % tabHeight;
let newTranslateX = oldTranslateX - translateOffsetX; let newTranslateX = oldTranslateX - translateOffsetX;
let newTranslateY = oldTranslateY - translateOffsetY; let newTranslateY = oldTranslateY - translateOffsetY;
@@ -106,7 +116,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
if (this.#isContainerVerticalPinnedGrid(draggedTab)) { if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
// Update both translate axis for pinned vertical expanded tabs // Update both translate axis for pinned vertical expanded tabs
@@ -1136,8 +1156,8 @@ @@ -1237,8 +1260,8 @@
} }
} else { } else {
let tabs = this.ariaFocusableItems.slice( let tabs = this.ariaFocusableItems.slice(
@@ -117,21 +127,21 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
); );
let size = this.verticalMode ? "height" : "width"; let size = this.verticalMode ? "height" : "width";
let screenAxis = this.verticalMode ? "screenY" : "screenX"; let screenAxis = this.verticalMode ? "screenY" : "screenX";
@@ -1178,11 +1198,9 @@ @@ -1287,11 +1310,13 @@
} this.dragToPinPromoCard,
];
let shouldPin = let shouldPin =
- numPinned && + false &&
- this.pinnedTabsContainer.contains(event.target) && isTab(draggedTab) &&
- !draggedTab.pinned; !draggedTab.pinned &&
+ false; (overPinnedDropIndicator ||
dragToPinTargets.some(el => el.contains(event.target)));
let shouldUnpin = let shouldUnpin =
- this.arrowScrollbox.contains(event.target) && draggedTab.pinned; + false &&
+ false; isTab(draggedTab) &&
let shouldTranslate = draggedTab.pinned &&
!gReduceMotion && this.arrowScrollbox.contains(event.target);
!shouldCreateGroupOnDrop && @@ -1309,6 +1334,7 @@
@@ -1195,6 +1213,7 @@
(oldTranslateY && oldTranslateY != newTranslateY); (oldTranslateY && oldTranslateY != newTranslateY);
} else if (this.verticalMode) { } else if (this.verticalMode) {
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY; shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
@@ -139,7 +149,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} else { } else {
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX; shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
} }
@@ -1376,6 +1395,7 @@ @@ -1503,6 +1529,7 @@
let nextItem = this.ariaFocusableItems[newIndex]; let nextItem = this.ariaFocusableItems[newIndex];
let tabGroup = isTab(nextItem) && nextItem.group; let tabGroup = isTab(nextItem) && nextItem.group;
@@ -147,11 +157,10 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
gBrowser.loadTabs(urls, { gBrowser.loadTabs(urls, {
inBackground, inBackground,
replace, replace,
@@ -1408,6 +1428,17 @@ @@ -1541,6 +1568,16 @@
}
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
this.finishMoveTogetherSelectedTabs(draggedTab);
this.finishAnimateTabMove();
+
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) { + if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab); + const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
+ if (moved) { + if (moved) {
@@ -162,10 +171,10 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false; + if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
+ } + }
+ +
this.#expandGroupOnDrop(draggedTab); if (
this.#resetTabsAfterDrop(draggedTab.ownerDocument); dt.mozUserCancelled ||
dt.dropEffect != "none" ||
@@ -1577,7 +1608,6 @@ @@ -1707,7 +1744,6 @@
this.toggleAttribute("overflow", true); this.toggleAttribute("overflow", true);
this._updateCloseButtons(); this._updateCloseButtons();
@@ -173,7 +182,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
document document
.getElementById("tab-preview-panel") .getElementById("tab-preview-panel")
@@ -1635,7 +1665,7 @@ @@ -1765,7 +1801,7 @@
} }
get newTabButton() { get newTabButton() {
@@ -182,7 +191,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
get verticalMode() { get verticalMode() {
@@ -1651,6 +1681,7 @@ @@ -1781,6 +1817,7 @@
} }
get overflowing() { get overflowing() {
@@ -190,21 +199,27 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
return this.hasAttribute("overflow"); return this.hasAttribute("overflow");
} }
@@ -1659,26 +1690,54 @@ @@ -1789,31 +1826,51 @@
if (this.#allTabs) { if (this.#allTabs) {
return this.#allTabs; return this.#allTabs;
} }
- let children = Array.from(this.arrowScrollbox.children); - // Remove temporary periphery element added at drag start.
- let pinnedChildren = Array.from(this.pinnedTabsContainer.children);
- if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
- pinnedChildren.pop();
- }
- let unpinnedChildren = Array.from(this.arrowScrollbox.children);
- // remove arrowScrollbox periphery element.
- unpinnedChildren.pop();
-
+ let children = gZenWorkspaces.tabboxChildren; + let children = gZenWorkspaces.tabboxChildren;
// remove arrowScrollbox periphery element + children.pop();
children.pop();
// explode tab groups // explode tab groups
// Iterate backwards over the array to preserve indices while we modify // Iterate backwards over the array to preserve indices while we modify
// things in place // things in place
- for (let i = children.length - 1; i >= 0; i--) { - for (let i = unpinnedChildren.length - 1; i >= 0; i--) {
- if (children[i].tagName == "tab-group") { - if (unpinnedChildren[i].tagName == "tab-group") {
- children.splice(i, 1, ...children[i].tabs); - unpinnedChildren.splice(i, 1, ...unpinnedChildren[i].tabs);
+ const pinnedTabs = [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.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--) {
@@ -218,7 +233,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
} }
- -
- this.#allTabs = [...this.pinnedTabsContainer.children, ...children]; - this.#allTabs = [...pinnedChildren, ...unpinnedChildren];
+ expandTabs(pinnedTabs); + expandTabs(pinnedTabs);
+ expandTabs(children); + expandTabs(children);
+ const allTabs = [ + const allTabs = [
@@ -246,24 +261,28 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
get allGroups() { get allGroups() {
let children = Array.from(this.arrowScrollbox.children); - let children = Array.from(this.arrowScrollbox.children);
- return children.filter(node => node.tagName == "tab-group"); - return children.filter(node => node.tagName == "tab-group");
+ return gZenWorkspaces.allTabGroups; + return gZenWorkspaces.allTabGroups;
} }
/** /**
@@ -1745,32 +1804,27 @@ @@ -1880,29 +1937,23 @@
let elementIndex = 0; let elementIndex = 0;
- for (let i = 0; i < this.pinnedTabsContainer.childElementCount; i++) { - let unpinnedChildren = Array.from(this.arrowScrollbox.children);
- this.pinnedTabsContainer.children[i].elementIndex = elementIndex++; - let pinnedChildren = Array.from(this.pinnedTabsContainer.children);
- }
- let children = Array.from(this.arrowScrollbox.children);
+ let children = gZenWorkspaces.tabboxChildrenWithoutEmpty; + let children = gZenWorkspaces.tabboxChildrenWithoutEmpty;
let focusableItems = []; let focusableItems = [];
- for (let child of children) { - for (let child of pinnedChildren) {
- if (isTab(child)) {
- child.elementIndex = elementIndex++;
- focusableItems.push(child);
- }
- }
- for (let child of unpinnedChildren) {
+ for (let child of [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.children, ...children]) { + 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++;
@@ -276,25 +295,18 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
- visibleTabsInGroup.forEach(tab => { - visibleTabsInGroup.forEach(tab => {
- tab.elementIndex = elementIndex++; - tab.elementIndex = elementIndex++;
- }); - });
- focusableItems.push(...visibleTabsInGroup);
+ if (!child.hasAttribute("split-view-group")) { + if (!child.hasAttribute("split-view-group")) {
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible); + let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
+ visibleTabsInGroup.forEach(tab => { + visibleTabsInGroup.forEach(tab => {
+ tab.elementIndex = elementIndex++; + tab.elementIndex = elementIndex++;
+ }); + });
focusableItems.push(...visibleTabsInGroup); + focusableItems.push(...visibleTabsInGroup);
+ } + }
} }
} }
- this.#focusableItems = [ @@ -1914,6 +1965,7 @@
- ...this.pinnedTabsContainer.children,
- ...focusableItems,
- ];
+ this.#focusableItems = focusableItems;
return this.#focusableItems;
}
@@ -1778,6 +1832,7 @@
_invalidateCachedTabs() { _invalidateCachedTabs() {
this.#allTabs = null; this.#allTabs = null;
this._invalidateCachedVisibleTabs(); this._invalidateCachedVisibleTabs();
@@ -302,18 +314,18 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
_invalidateCachedVisibleTabs() { _invalidateCachedVisibleTabs() {
@@ -1793,8 +1848,8 @@ @@ -1929,8 +1981,8 @@
#isContainerVerticalPinnedGrid(tab) { #isContainerVerticalPinnedGrid(tab) {
return ( return (
this.verticalMode && this.verticalMode &&
- tab.hasAttribute("pinned") && - tab.pinned &&
- this.hasAttribute("expanded") && - this.hasAttribute("expanded") &&
+ (tab.hasAttribute("zen-essential")) && + (tab.hasAttribute("zen-essential")) &&
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) && + (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
!this.expandOnHover !this.expandOnHover
); );
} }
@@ -1810,7 +1865,7 @@ @@ -1946,7 +1998,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.
@@ -322,7 +334,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
node.before(tab); node.before(tab);
@@ -1905,7 +1960,7 @@ @@ -2041,7 +2093,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.
@@ -331,20 +343,27 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
const newTab2 = this.newTabButton; const newTab2 = this.newTabButton;
const newTabVertical = document.getElementById( const newTabVertical = document.getElementById(
"vertical-tabs-newtab-button" "vertical-tabs-newtab-button"
@@ -2000,10 +2055,12 @@ @@ -2139,8 +2191,10 @@
*/
_handleTabSelect(aInstant) { _handleTabSelect(aInstant) {
let selectedTab = this.selectedItem; let selectedTab = this.selectedItem;
+ if (!selectedTab) return; + if (!selectedTab) return;
if (this.overflowing) { this.#ensureTabIsVisible(selectedTab, aInstant);
this.arrowScrollbox.ensureElementIsVisible(selectedTab, aInstant);
}
+ gZenCompactModeManager.flashSidebarIfNecessary(aInstant); + gZenCompactModeManager.flashSidebarIfNecessary(aInstant);
selectedTab._notselectedsinceload = false; selectedTab._notselectedsinceload = false;
} }
@@ -2140,6 +2197,16 @@ @@ -2149,7 +2203,7 @@
* @param {boolean} [shouldScrollInstantly=false]
*/
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
- let arrowScrollbox = tab.closest("arrowscrollbox");
+ let arrowScrollbox = this.arrowScrollbox;
if (arrowScrollbox.overflowing) {
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
}
@@ -2288,6 +2342,16 @@
when the tab is first selected to be dragged. when the tab is first selected to be dragged.
*/ */
#updateTabStylesOnDrag(tab) { #updateTabStylesOnDrag(tab) {
@@ -361,7 +380,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let isPinned = tab.pinned; let isPinned = tab.pinned;
let numPinned = gBrowser.pinnedTabCount; let numPinned = gBrowser.pinnedTabCount;
let allTabs = this.ariaFocusableItems; let allTabs = this.ariaFocusableItems;
@@ -2398,7 +2465,7 @@ @@ -2540,7 +2604,7 @@
return; return;
} }
@@ -370,7 +389,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let directionX = screenX > dragData.animLastScreenX; let directionX = screenX > dragData.animLastScreenX;
let directionY = screenY > dragData.animLastScreenY; let directionY = screenY > dragData.animLastScreenY;
@@ -2407,6 +2474,8 @@ @@ -2549,6 +2613,8 @@
let { width: tabWidth, height: tabHeight } = let { width: tabWidth, height: tabHeight } =
draggedTab.getBoundingClientRect(); draggedTab.getBoundingClientRect();
@@ -379,7 +398,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let shiftSizeX = tabWidth * movingTabs.length; let shiftSizeX = tabWidth * movingTabs.length;
let shiftSizeY = tabHeight; let shiftSizeY = tabHeight;
dragData.tabWidth = tabWidth; dragData.tabWidth = tabWidth;
@@ -2443,8 +2512,8 @@ @@ -2585,8 +2651,8 @@
let lastBoundX = let lastBoundX =
lastTabInRow.screenX + lastTabInRow.screenX +
lastTabInRow.getBoundingClientRect().width - lastTabInRow.getBoundingClientRect().width -
@@ -390,18 +409,9 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX); translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY); translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
@@ -2560,7 +2629,7 @@ @@ -2743,13 +2809,18 @@
}
dragData.animDropElementIndex = newIndex; this.#clearDragOverGroupingTimer();
- 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
@@ -2593,13 +2662,18 @@
this.#clearDragOverCreateGroupTimer();
- let isPinned = draggedTab.pinned; - let isPinned = draggedTab.pinned;
- let numPinned = gBrowser.pinnedTabCount; - let numPinned = gBrowser.pinnedTabCount;
@@ -422,23 +432,17 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
if (this.#rtlMode) { if (this.#rtlMode) {
tabs.reverse(); tabs.reverse();
@@ -2610,7 +2684,7 @@ @@ -2760,7 +2831,7 @@
let screenAxis = this.verticalMode ? "screenY" : "screenX"; let screenAxis = this.verticalMode ? "screenY" : "screenX";
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 { width: tabWidth, height: tabHeight } = bounds(draggedTab); - let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab); + let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
let tabSize = this.verticalMode ? tabHeight : tabWidth;
let translateX = event.screenX - dragData.screenX; let translateX = event.screenX - dragData.screenX;
let translateY = event.screenY - dragData.screenY; let translateY = event.screenY - dragData.screenY;
@@ -2776,6 +2847,12 @@
@@ -2620,10 +2694,16 @@ );
dragData.translateY = translateY;
// Move the dragged tab based on the mouse position.
- let firstTab = allTabs.at(this.#rtlMode ? -1 : 0);
- let lastTab = allTabs.at(this.#rtlMode ? 0 : -1);
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
let lastMovingTab = movingTabs.at(-1); let lastMovingTab = movingTabs.at(-1);
let firstMovingTab = movingTabs[0]; let firstMovingTab = movingTabs[0];
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) { + if (lastMovingTab.group?.hasAttribute("split-view-group")) {
@@ -450,35 +454,19 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let endEdge = ele => ele[screenAxis] + bounds(ele)[size]; let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
let lastMovingTabScreen = endEdge(lastMovingTab); let lastMovingTabScreen = endEdge(lastMovingTab);
let firstMovingTabScreen = firstMovingTab[screenAxis]; let firstMovingTabScreen = firstMovingTab[screenAxis];
@@ -2632,6 +2712,7 @@ @@ -2790,6 +2867,11 @@
// Constrain the range over which the moving tabs can move between the first and last tab let endBound = this.#rtlMode
let firstBound = firstTab[screenAxis] - firstMovingTabScreen; ? endEdge(this) - lastMovingTabScreen
let lastBound = endEdge(lastTab) - lastMovingTabScreen; : periphery[screenAxis] - 1 - lastMovingTabScreen;
+ lastBound = gZenPinnedTabManager.getLastTabBound(lastBound, lastTab, isDraggingFolder); + let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
translate = Math.min(Math.max(translate, startBound), endBound);
// Center the tab under the cursor if the tab is not under the cursor while dragging // Center the tab under the cursor if the tab is not under the cursor while dragging
if ( @@ -2979,6 +3061,8 @@
@@ -2649,6 +2730,9 @@
// Shift the `.tab-group-label-container` to shift the label element.
item = item.parentElement;
}
+ if (item.parentElement?.hasAttribute("split-view-group")) {
+ item = item.parentElement;
+ }
item.style.transform = `${translateAxis}(${translate}px)`;
}
@@ -2786,6 +2870,9 @@
break;
}
let element = tabs[mid];
+ if (element?.group?.hasAttribute("split-view-group")) {
+ element = element.group.labelElement;
+ }
let elementForSize = isTabGroupLabel(element)
? element.parentElement
: element;
@@ -2805,6 +2892,8 @@
}; };
let dropElement = getOverlappedElement(); let dropElement = getOverlappedElement();
@@ -487,19 +475,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
let newDropElementIndex; let newDropElementIndex;
if (dropElement) { if (dropElement) {
@@ -2869,7 +2958,10 @@ @@ -3060,7 +3144,7 @@
let shouldCreateGroupOnDrop;
let dropBefore;
if (dropElement) {
- let dropElementForOverlap = isTabGroupLabel(dropElement)
+ if (dropElement?.group?.hasAttribute("split-view-group") || dropElement.hasAttribute("split-view-group")) {
+ dropElement = dropElement.group.labelElement ?? dropElement.labelElement;
+ }
+ let dropElementForOverlap = isTabGroupLabel(dropElement) && !dropElement.group?.hasAttribute("split-view-group")
? dropElement.parentElement
: dropElement;
@@ -2889,7 +2981,7 @@
? Services.prefs.getIntPref( ? Services.prefs.getIntPref(
"browser.tabs.dragDrop.moveOverThresholdPercent" "browser.tabs.dragDrop.moveOverThresholdPercent"
) / 100 ) / 100
@@ -508,30 +484,15 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold)); moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
let shouldMoveOver = overlapPercent > moveOverThreshold; let shouldMoveOver = overlapPercent > moveOverThreshold;
if (logicalForward && shouldMoveOver) { if (logicalForward && shouldMoveOver) {
@@ -2921,44 +3013,21 @@ @@ -3093,6 +3177,7 @@
// If dragging a group over another group, don't make it look like it is // If dragging a group over another group, don't make it look like it is
// possible to drop the dragged group inside the other group. // possible to drop the dragged group inside the other group.
- if ( if (
- isTabGroupLabel(draggedTab) && + false &&
- dropElement?.group && isTabGroupLabel(draggedTab) &&
- !dropElement.group.collapsed dropElement?.group &&
- ) { (!dropElement.group.collapsed ||
- let overlappedGroup = dropElement.group; @@ -3119,20 +3204,13 @@
-
- if (isTabGroupLabel(dropElement)) {
- dropBefore = true;
- newDropElementIndex = dropElement.elementIndex;
- } else {
- dropBefore = false;
- newDropElementIndex = overlappedGroup.tabs.at(-1).elementIndex + 1;
- }
-
- dropElement = overlappedGroup;
- }
// Constrain drop direction at the boundary between pinned and
// unpinned tabs so that they don't mix together.
let isOutOfBounds = isPinned let isOutOfBounds = isPinned
? dropElement.elementIndex >= numPinned ? dropElement.elementIndex >= numPinned
: dropElement.elementIndex < numPinned; : dropElement.elementIndex < numPinned;
@@ -550,28 +511,29 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
- ) { - ) {
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) { + if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
let dragOverGroupingThreshold = 1 - moveOverThreshold; let dragOverGroupingThreshold = 1 - moveOverThreshold;
+ if (draggedTab && !dropElement?.group) { + if (draggedTab && !dropElement?.group) {
+ gZenFolders.highlightGroupOnDragOver(null); + gZenFolders.highlightGroupOnDragOver(null);
+ } + }
+ let groupingDelay = Services.prefs.getIntPref(
"browser.tabs.dragDrop.createGroup.delayMS"
);
@@ -3140,6 +3218,7 @@
// 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. // that dropping the tab(s) will create a new tab group.
shouldCreateGroupOnDrop = let shouldCreateGroupOnDrop =
@@ -2968,12 +3037,6 @@ + false &&
!movingTabsSet.has(dropElement) &&
isTab(dropElement) &&
!dropElement?.group &&
@@ -3148,6 +3227,7 @@
// When dragging tab(s) over a collapsed tab group label, signal to the
// user that dropping the tab(s) will add them to the group.
let shouldDropIntoCollapsedTabGroup =
+ false &&
isTabGroupLabel(dropElement) &&
dropElement.group.collapsed &&
overlapPercent > dragOverGroupingThreshold; overlapPercent > dragOverGroupingThreshold;
@@ -3192,19 +3272,14 @@
if (shouldCreateGroupOnDrop) {
- this.#dragOverCreateGroupTimer = setTimeout(
- () => this.#triggerDragOverCreateGroup(dragData, dropElement),
- Services.prefs.getIntPref(
- "browser.tabs.dragDrop.createGroup.delayMS"
- )
- );
} else {
this.removeAttribute("movingtab-createGroup");
document
@@ -3000,19 +3063,14 @@
dropElement = dropElementGroup; dropElement = dropElementGroup;
colorCode = undefined; colorCode = undefined;
} else if (isTabGroupLabel(dropElement)) { } else if (isTabGroupLabel(dropElement)) {
@@ -598,8 +560,8 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
+ )); + ));
} }
this.#setDragOverGroupColor(colorCode); this.#setDragOverGroupColor(colorCode);
this.toggleAttribute("movingtab-ungroup", !colorCode); this.toggleAttribute("movingtab-addToGroup", colorCode);
@@ -3030,19 +3088,28 @@ @@ -3223,11 +3298,11 @@
dragData.dropElement = dropElement; dragData.dropElement = dropElement;
dragData.dropBefore = dropBefore; dragData.dropBefore = dropBefore;
dragData.animDropElementIndex = newDropElementIndex; dragData.animDropElementIndex = newDropElementIndex;
@@ -613,25 +575,8 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
continue; continue;
} }
let shift = getTabShift(item, newDropElementIndex); @@ -3346,12 +3421,14 @@
let transform = shift ? `${translateAxis}(${shift}px)` : ""; element?.removeAttribute("dragover-groupTarget");
+ if (item.group?.hasAttribute("split-view-group")) {
+ item = item.group;
+ }
+ if (item.group?.hasAttribute("has-active") && draggedTab.group != item.group) {
+ item = item.group;
+ }
if (isTabGroupLabel(item)) {
// Shift the `.tab-group-label-container` to shift the label element.
item = item.parentElement;
+ if (item.parentElement?.hasAttribute("split-view-group")) {
+ item = item.parentElement;
+ }
}
item.style.transform = transform;
}
@@ -3095,12 +3162,14 @@
);
} }
- finishAnimateTabMove() { - finishAnimateTabMove() {
@@ -646,27 +591,8 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
+ gZenFolders.highlightGroupOnDragOver(null); + gZenFolders.highlightGroupOnDragOver(null);
for (let item of this.ariaFocusableItems) { for (let item of this.ariaFocusableItems) {
if (isTabGroupLabel(item)) { this.#resetGroupTarget(item);
@@ -3108,6 +3177,18 @@ @@ -3394,7 +3471,7 @@
item = item.parentElement;
}
item.style.transform = "";
+ if (item.closest("zen-folder")?.hasAttribute("has-active")) item.closest("zen-folder").style.transform = "";
+ if (item.closest("zen-folder")?.hasAttribute("has-active")) {
+ for (let tab of item.closest("zen-folder").tabs) {
+ tab.style.transform = "";
+ }
+ }
+ if (item.closest("tab-group")?.hasAttribute("split-view-group")) item.closest("tab-group").style.transform = "";
+ if (item.closest("tab-group")?.hasAttribute("split-view-group")) {
+ for (let tab of item.closest("tab-group").tabs) {
+ tab.style.transform = "";
+ }
+ }
item.removeAttribute("dragover-createGroup");
}
this.removeAttribute("movingtab-createGroup");
@@ -3129,16 +3210,15 @@
tab.style.left = ""; tab.style.left = "";
tab.style.top = ""; tab.style.top = "";
tab.style.maxWidth = ""; tab.style.maxWidth = "";
@@ -675,9 +601,8 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
for (let label of draggedTabDocument.getElementsByClassName( for (let label of draggedTabDocument.getElementsByClassName(
"tab-group-label-container" "tab-group-label-container"
)) { @@ -3403,7 +3480,7 @@
label.style.width = ""; label.style.height = "";
- label.style.height = "";
label.style.left = ""; label.style.left = "";
label.style.top = ""; label.style.top = "";
- label.removeAttribute("dragtarget"); - label.removeAttribute("dragtarget");
@@ -685,7 +610,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
} }
let periphery = draggedTabDocument.getElementById( let periphery = draggedTabDocument.getElementById(
"tabbrowser-arrowscrollbox-periphery" "tabbrowser-arrowscrollbox-periphery"
@@ -3211,7 +3291,7 @@ @@ -3475,7 +3552,7 @@
let postTransitionCleanup = () => { let postTransitionCleanup = () => {
movingTab._moveTogetherSelectedTabsData.animate = false; movingTab._moveTogetherSelectedTabsData.animate = false;
}; };
@@ -694,7 +619,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
postTransitionCleanup(); postTransitionCleanup();
} else { } else {
let onTransitionEnd = transitionendEvent => { let onTransitionEnd = transitionendEvent => {
@@ -3384,7 +3464,7 @@ @@ -3639,7 +3716,7 @@
} }
_notifyBackgroundTab(aTab) { _notifyBackgroundTab(aTab) {
@@ -703,7 +628,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
return; return;
} }
@@ -3493,7 +3573,10 @@ @@ -3748,7 +3825,10 @@
#getDragTarget(event, { ignoreSides = false } = {}) { #getDragTarget(event, { ignoreSides = false } = {}) {
let { target } = event; let { target } = event;
while (target) { while (target) {
@@ -715,7 +640,7 @@ index e2b27db6c13278defea3bcc7606a8da54e7d001c..91e772ab0fed5be50e6dfee40eaa2488
break; break;
} }
target = target.parentNode; target = target.parentNode;
@@ -3510,6 +3593,9 @@ @@ -3765,6 +3845,9 @@
return null; return null;
} }
} }

View File

@@ -1,13 +1,13 @@
diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs
index 4f85be7203f44c16944924d50947a89e436f00bc..518956c320af4e7045e8ff9fe63b70f8c2430b22 100644 index 36e3ab4a5a153230bb488b66dda7e3e7c763ca23..28b59c7c3a95febafc3f2a6e0ac3493b9785ff1a 100644
--- a/browser/components/urlbar/UrlbarController.sys.mjs --- a/browser/components/urlbar/UrlbarController.sys.mjs
+++ b/browser/components/urlbar/UrlbarController.sys.mjs +++ b/browser/components/urlbar/UrlbarController.sys.mjs
@@ -410,7 +410,7 @@ export class UrlbarController { @@ -411,7 +411,7 @@ export class UrlbarController {
// When there's no search string and no view selection, we want to focus // When there's no search string and no view selection, we want to focus
// the next toolbar item instead, for accessibility reasons. // the next toolbar item instead, for accessibility reasons.
let allowTabbingThroughResults = let allowTabbingThroughResults =
- this.input.focusedViaMousedown || - this.input.focusedViaMousedown ||
+ true || + true ||
this.input.searchMode?.isPreview || this.input.searchMode?.isPreview ||
this.view.selectedElement || this.input.searchMode?.source ==
(this.input.value && lazy.UrlbarUtils.RESULT_SOURCE.ACTIONS ||

View File

@@ -1,9 +1,9 @@
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 db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cfca59af8e 100644 index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..5becdf9c01b1f12356963ce214142c492ade5f6e 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( @@ -74,6 +74,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
false lazy.UrlbarUtils.getLogger({ prefix: "Input" })
); );
+XPCOMUtils.defineLazyPreferenceGetter( +XPCOMUtils.defineLazyPreferenceGetter(
@@ -14,9 +14,9 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
+); +);
+ +
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history"; const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
const SEARCH_BUTTON_CLASS = "urlbar-search-button";
@@ -380,7 +387,16 @@ export class UrlbarInput { const UNLIMITED_MAX_RESULTS = 99;
@@ -355,7 +362,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 db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
this._suppressPrimaryAdjustment = false; this._suppressPrimaryAdjustment = false;
} }
@@ -456,6 +472,10 @@ export class UrlbarInput { @@ -431,6 +447,10 @@ export class UrlbarInput {
hideSearchTerms = false, hideSearchTerms = false,
isSameDocument = false isSameDocument = false
) { ) {
@@ -44,7 +44,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
// 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 (
@@ -728,8 +748,16 @@ export class UrlbarInput { @@ -703,8 +723,16 @@ export class UrlbarInput {
return; return;
} }
} }
@@ -62,7 +62,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
} }
/** /**
@@ -1143,7 +1171,11 @@ export class UrlbarInput { @@ -1116,7 +1144,11 @@ export class UrlbarInput {
} }
if (!this.#providesSearchMode(result)) { if (!this.#providesSearchMode(result)) {
@@ -75,7 +75,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
} }
if (isCanonized) { if (isCanonized) {
@@ -2208,6 +2240,10 @@ export class UrlbarInput { @@ -2191,6 +2223,10 @@ export class UrlbarInput {
await this.#updateLayoutBreakoutDimensions(); await this.#updateLayoutBreakoutDimensions();
} }
@@ -86,7 +86,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
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
@@ -2222,6 +2258,12 @@ export class UrlbarInput { @@ -2205,6 +2241,12 @@ export class UrlbarInput {
this.setAttribute("breakout-extend", "true"); this.setAttribute("breakout-extend", "true");
@@ -99,7 +99,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
// 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")) {
@@ -2241,6 +2283,24 @@ export class UrlbarInput { @@ -2224,6 +2266,24 @@ export class UrlbarInput {
return; return;
} }
@@ -124,7 +124,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
this.removeAttribute("breakout-extend"); this.removeAttribute("breakout-extend");
this.#updateTextboxPosition(); this.#updateTextboxPosition();
} }
@@ -2561,6 +2621,7 @@ export class UrlbarInput { @@ -2544,6 +2604,7 @@ export class UrlbarInput {
let updateKey = {}; let updateKey = {};
this._layoutBreakoutUpdateKey = updateKey; this._layoutBreakoutUpdateKey = updateKey;
@@ -132,7 +132,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
await this.window.promiseDocumentFlushed(() => {}); await this.window.promiseDocumentFlushed(() => {});
await new Promise(resolve => { await new Promise(resolve => {
this.window.requestAnimationFrame(() => { this.window.requestAnimationFrame(() => {
@@ -2570,7 +2631,7 @@ export class UrlbarInput { @@ -2553,7 +2614,7 @@ export class UrlbarInput {
this.textbox.parentNode.style.setProperty( this.textbox.parentNode.style.setProperty(
"--urlbar-container-height", "--urlbar-container-height",
@@ -141,7 +141,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
); );
this.textbox.style.setProperty( this.textbox.style.setProperty(
"--urlbar-height", "--urlbar-height",
@@ -2586,6 +2647,7 @@ export class UrlbarInput { @@ -2569,6 +2630,7 @@ export class UrlbarInput {
this.textbox.showPopover(); this.textbox.showPopover();
this.#updateTextboxPosition(); this.#updateTextboxPosition();
@@ -149,7 +149,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
resolve(); resolve();
}); });
}); });
@@ -2985,6 +3047,7 @@ export class UrlbarInput { @@ -2986,6 +3048,7 @@ export class UrlbarInput {
} }
_toggleActionOverride(event) { _toggleActionOverride(event) {
@@ -157,7 +157,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
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 ||
@@ -3086,7 +3149,7 @@ export class UrlbarInput { @@ -3087,7 +3150,7 @@ export class UrlbarInput {
*/ */
_trimValue(val) { _trimValue(val) {
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
@@ -166,7 +166,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
: 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.
@@ -3307,6 +3370,7 @@ export class UrlbarInput { @@ -3303,6 +3366,7 @@ export class UrlbarInput {
resultDetails = null, resultDetails = null,
browser = this.window.gBrowser.selectedBrowser browser = this.window.gBrowser.selectedBrowser
) { ) {
@@ -174,7 +174,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
// No point in setting these because we'll handleRevert() a few rows below. // No point in setting these because we'll handleRevert() a few rows below.
if (openUILinkWhere == "current") { if (openUILinkWhere == "current") {
// Make sure URL is formatted properly (don't show punycode). // Make sure URL is formatted properly (don't show punycode).
@@ -3459,6 +3523,10 @@ export class UrlbarInput { @@ -3455,6 +3519,10 @@ export class UrlbarInput {
} }
reuseEmpty = true; reuseEmpty = true;
} }
@@ -185,7 +185,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
if ( if (
where == "tab" && where == "tab" &&
reuseEmpty && reuseEmpty &&
@@ -3466,6 +3534,9 @@ export class UrlbarInput { @@ -3462,6 +3530,9 @@ export class UrlbarInput {
) { ) {
where = "current"; where = "current";
} }
@@ -195,7 +195,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
return where; return where;
} }
@@ -3723,6 +3794,7 @@ export class UrlbarInput { @@ -3719,6 +3790,7 @@ export class UrlbarInput {
this.setResultForCurrentValue(null); this.setResultForCurrentValue(null);
this.handleCommand(); this.handleCommand();
this.controller.clearLastQueryContextCache(); this.controller.clearLastQueryContextCache();
@@ -203,7 +203,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
this._suppressStartQuery = false; this._suppressStartQuery = false;
}); });
@@ -3730,7 +3802,6 @@ export class UrlbarInput { @@ -3726,7 +3798,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.
@@ -211,7 +211,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
let controller = let controller =
this.document.commandDispatcher.getControllerForCommand("cmd_paste"); this.document.commandDispatcher.getControllerForCommand("cmd_paste");
@@ -4138,6 +4209,7 @@ export class UrlbarInput { @@ -4130,6 +4201,7 @@ export class UrlbarInput {
this.document.l10n.setAttributes( this.document.l10n.setAttributes(
this.inputField, this.inputField,
@@ -219,7 +219,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
l10nId, l10nId,
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
); );
@@ -4249,6 +4321,11 @@ export class UrlbarInput { @@ -4241,6 +4313,11 @@ export class UrlbarInput {
} }
_on_click(event) { _on_click(event) {
@@ -230,8 +230,8 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
+ +
if ( if (
event.target == this.inputField || event.target == this.inputField ||
event.target == this._inputContainer || event.target == this._inputContainer
@@ -4320,7 +4397,7 @@ export class UrlbarInput { @@ -4311,7 +4388,7 @@ export class UrlbarInput {
} }
} }
@@ -240,7 +240,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
this.view.autoOpen({ event }); this.view.autoOpen({ event });
} else { } else {
if (this._untrimOnFocusAfterKeydown) { if (this._untrimOnFocusAfterKeydown) {
@@ -4360,9 +4437,16 @@ export class UrlbarInput { @@ -4351,9 +4428,16 @@ export class UrlbarInput {
} }
_on_mousedown(event) { _on_mousedown(event) {
@@ -258,7 +258,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
if ( if (
event.target != this.inputField && event.target != this.inputField &&
@@ -4374,6 +4458,10 @@ export class UrlbarInput { @@ -4364,6 +4448,10 @@ export class UrlbarInput {
this.focusedViaMousedown = !this.focused; this.focusedViaMousedown = !this.focused;
this._preventClickSelectsAll = this.focused; this._preventClickSelectsAll = this.focused;
@@ -269,7 +269,7 @@ index db1a780f36d16c1b63ad50af76887b16e88ca8fe..440ef03a7a43d6848c371fbe0cac62cf
// 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().
@@ -4414,7 +4502,7 @@ export class UrlbarInput { @@ -4399,7 +4487,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/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
index 57463d2c4e39e67eeec7e2c752fe5236a662c7d2..4ca28540a71594e935847679a4b676ae48eb10d8 100644 index cdc476a3eb2ee2cb6193d215513b65ed375f6153..a2b106916d6cca25096d37b80bea45f016ad82a5 100644
--- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs --- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
+++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs +++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
@@ -845,6 +845,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer { @@ -855,6 +855,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
} }
if (result.providerName == lazy.UrlbarProviderTabToSearch.name) { if (result.providerName == lazy.UrlbarProviderTabToSearch.name) {

View File

@@ -1,8 +1,8 @@
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 b3608bb8b851979b893da9c83e86d08b54288047..97ffb0b855b1f1c3fe5c4081aa1ec03ceda82b05 100644 index fdbab8806fd320f4aacec46a42c8ef953580d00c..a1be83735cd2b69d335cd36d3287cd3b3e3f2a5b 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 { @@ -613,7 +613,7 @@ export class UrlbarView {
!this.input.value || !this.input.value ||
this.input.getAttribute("pageproxystate") == "valid" this.input.getAttribute("pageproxystate") == "valid"
) { ) {
@@ -11,7 +11,7 @@ index b3608bb8b851979b893da9c83e86d08b54288047..97ffb0b855b1f1c3fe5c4081aa1ec03c
// Try to reuse the cached top-sites context. If it's not cached, then // Try to reuse the cached top-sites context. If it's not cached, then
// there will be a gap of time between when the input is focused and // there will be a gap of time between when the input is focused and
// when the view opens that can be perceived as flicker. // when the view opens that can be perceived as flicker.
@@ -1333,7 +1333,7 @@ export class UrlbarView { @@ -1341,7 +1341,7 @@ export class UrlbarView {
includeHiddenExposures: true, includeHiddenExposures: true,
}); });
let canBeVisible = let canBeVisible =
@@ -20,7 +20,7 @@ index b3608bb8b851979b893da9c83e86d08b54288047..97ffb0b855b1f1c3fe5c4081aa1ec03c
if (result.isHiddenExposure) { if (result.isHiddenExposure) {
if (canBeVisible) { if (canBeVisible) {
this.controller.engagementEvent.addExposure( this.controller.engagementEvent.addExposure(
@@ -3061,7 +3061,7 @@ export class UrlbarView { @@ -3189,7 +3189,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 f4eca54a9638072a03b4c0e406fe14388b85db61..7f0c5f724558bdb004114f2a6bea266c94facdf9 100644 index 1a482b6de24468ccfec069586f374937d8ef68dd..8614beda3fdfc038092f31f11b2604d5cfb843a1 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
@@ -260,7 +260,7 @@ export const PREFS_CONFIG = new Map([ @@ -248,7 +248,7 @@ export const PREFS_CONFIG = new Map([
"showSponsoredTopSites", "showSponsoredTopSites",
{ {
title: "Show sponsored top sites", title: "Show sponsored top sites",

View File

@@ -1,8 +1,8 @@
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 861ba1c484a4688857a3025455532ea9551b616a..570ac5122f50275d40e4deeeda0caeb577ee1bfd 100644 index 70f268914f1078ef45e86d295f4bb2ce179a05e0..73d8ffc4457468e8a57ad2c29e4d49f45436bf00 100644
--- a/browser/installer/package-manifest.in --- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in
@@ -384,17 +384,17 @@ bin/libfreebl_64int_3.so @@ -361,17 +361,17 @@ bin/libfreebl_64int_3.so
; [MaintenanceService] ; [MaintenanceService]
; ;
#ifdef MOZ_MAINTENANCE_SERVICE #ifdef MOZ_MAINTENANCE_SERVICE

View File

@@ -1,5 +1,5 @@
diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in
index eb9e403c36510bfda09eb84b8a35dff731279f5d..939d34dff255122947bf3eeabc9087685f101568 100644 index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1135fe766 100644
--- a/browser/installer/windows/nsis/defines.nsi.in --- a/browser/installer/windows/nsis/defines.nsi.in
+++ b/browser/installer/windows/nsis/defines.nsi.in +++ b/browser/installer/windows/nsis/defines.nsi.in
@@ -90,7 +90,7 @@ @@ -90,7 +90,7 @@
@@ -11,7 +11,7 @@ index eb9e403c36510bfda09eb84b8a35dff731279f5d..939d34dff255122947bf3eeabc908768
# ARCH is used when it is necessary to differentiate the x64 registry keys from # ARCH is used when it is necessary to differentiate the x64 registry keys from
# the x86 registry keys (e.g. the uninstall registry key). # the x86 registry keys (e.g. the uninstall registry key).
@@ -148,7 +148,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}" @@ -154,7 +154,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
!define APPROXIMATE_REQUIRED_SPACE_MB "145" !define APPROXIMATE_REQUIRED_SPACE_MB "145"
# Constants for parts of the telemetry submission URL # Constants for parts of the telemetry submission URL

View File

@@ -1,8 +1,8 @@
diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi
index 491bcbbd8430410fa930e7b52491ea62f2c48bbc..42d960f4adb4837009e0106a137c14fcbd7a55f9 100755 index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0197351d1 100755
--- a/browser/installer/windows/nsis/installer.nsi --- a/browser/installer/windows/nsis/installer.nsi
+++ b/browser/installer/windows/nsis/installer.nsi +++ b/browser/installer/windows/nsis/installer.nsi
@@ -837,7 +837,7 @@ Section "-InstallEndCleanup" @@ -841,7 +841,7 @@ Section "-InstallEndCleanup"
; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't ; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't
; invoked when we're running silently. ; invoked when we're running silently.
${If} ${Silent} ${If} ${Silent}
@@ -11,7 +11,7 @@ index 491bcbbd8430410fa930e7b52491ea62f2c48bbc..42d960f4adb4837009e0106a137c14fc
${EndIf} ${EndIf}
SectionEnd SectionEnd
@@ -1965,5 +1965,5 @@ FunctionEnd @@ -1969,5 +1969,5 @@ FunctionEnd
Function .onGUIEnd Function .onGUIEnd
${OnEndCommon} ${OnEndCommon}

View File

@@ -1,8 +1,8 @@
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 3302b1e9a66c8495e1a627b33488b952e8ef72b1..1de6ee8b59595da4acbb91bc625cd380be32845a 100644 index 17cad7b3fbdd6dff862483892f37f72c00792c88..72d87d70182abfbf664b1dc86f4b4a3ecb2b1d01 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 = { @@ -478,7 +478,7 @@ export var ExtensionsUI = {
eventCallback, eventCallback,
removeOnDismissal: true, removeOnDismissal: true,
popupOptions: { popupOptions: {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs
index ce594b69f55f9b9245a56fe8c962cf8a83cfe9a1..f3b99524f49f5a624c2fc213257a911862cd70c2 100644 index f7a3e8272f1f22286a26bf50d78b23aa82b49df8..a690732012331dfc40cc08fef4453c28c6587a24 100644
--- a/browser/modules/URILoadingHelper.sys.mjs --- a/browser/modules/URILoadingHelper.sys.mjs
+++ b/browser/modules/URILoadingHelper.sys.mjs +++ b/browser/modules/URILoadingHelper.sys.mjs
@@ -516,7 +516,7 @@ export const URILoadingHelper = { @@ -541,7 +541,7 @@ export const URILoadingHelper = {
// page. If a load request bounces off for the currently selected tab, // page. If a load request bounces off for the currently selected tab,
// we'll open a new tab instead. // we'll open a new tab instead.
let tab = w.gBrowser.getTabForBrowser(targetBrowser); let tab = w.gBrowser.getTabForBrowser(targetBrowser);
@@ -11,3 +11,21 @@ index ce594b69f55f9b9245a56fe8c962cf8a83cfe9a1..f3b99524f49f5a624c2fc213257a9118
where = "tab"; where = "tab";
targetBrowser = null; targetBrowser = null;
} else if ( } else if (
@@ -971,7 +971,7 @@ export const URILoadingHelper = {
ignoreQueryString || replaceQueryString,
ignoreFragmentWhenComparing
);
- let browsers = aWindow.gBrowser.browsers;
+ let browsers = aWindow.gZenWorkspaces.allUsedBrowsers;
for (let i = 0; i < browsers.length; i++) {
let browser = browsers[i];
let browserCompare = cleanURL(
@@ -1017,7 +1017,7 @@ export const URILoadingHelper = {
}
if (!doAdopt) {
- aWindow.gBrowser.tabContainer.selectedIndex = i;
+ aWindow.gZenWorkspaces.switchIfNeeded(browser);
}
return true;

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 dadb198cbf968dc622d2d0ee6c754f3541c052a2..ef8ed137443a089e5ac084bb8f86533ddd2086a1 100644 index 9723a8199cc5b8d25bb92c46992792b8c94a3565..3496c3ae4bacf39b788f1b0f740e89cdd9d7de5b 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
@@ -43,7 +43,8 @@ @@ -43,7 +43,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 9bea393a6a54db16d3f35bb70d217563bd2e3951..6487baeaacd9ff175be51747ea637e81b68a51ee 100644 index c209151370225d8efade7c51aea30ce7365e5f4f..4dd5cf4a98ea010b2d347ac0ba7314ae81320e75 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,8 +1,8 @@
diff --git a/browser/themes/shared/browser-shared.css b/browser/themes/shared/browser-shared.css diff --git a/browser/themes/shared/browser-shared.css b/browser/themes/shared/browser-shared.css
index 7fcb1d906c3aaec3e6b099ae731267c2b9d0b96a..ea8e0f510b09faaed0955e9974a2d9f285a52649 100644 index c612e7d021122e3e4823994071cd613563d3e12e..682d7a47624460ce33e8fcb5ff9c995f3413bab2 100644
--- a/browser/themes/shared/browser-shared.css --- a/browser/themes/shared/browser-shared.css
+++ b/browser/themes/shared/browser-shared.css +++ b/browser/themes/shared/browser-shared.css
@@ -78,7 +78,7 @@ body { @@ -99,7 +99,7 @@ body {
--toolbarbutton-border-radius: 4px; --toolbarbutton-border-radius: 4px;
--identity-box-margin-inline: 4px; --identity-box-margin-inline: 4px;
--urlbar-min-height: max(32px, 1.4em); --urlbar-min-height: max(32px, 1.4em);
@@ -11,7 +11,7 @@ index 7fcb1d906c3aaec3e6b099ae731267c2b9d0b96a..ea8e0f510b09faaed0955e9974a2d9f2
/* This should be used for icons and chiclets inside the input field. It makes /* This should be used for icons and chiclets inside the input field. It makes
the gap around them more uniform when they are close to the field edges */ the gap around them more uniform when they are close to the field edges */
@@ -148,8 +148,6 @@ body { @@ -167,8 +167,6 @@ body {
*/ */
&.fullscreen-with-menubar { &.fullscreen-with-menubar {
z-index: var(--browser-area-z-index-toolbox-while-animating); z-index: var(--browser-area-z-index-toolbox-while-animating);

View File

@@ -1,8 +1,8 @@
diff --git a/browser/themes/shared/identity-block/identity-block.css b/browser/themes/shared/identity-block/identity-block.css diff --git a/browser/themes/shared/identity-block/identity-block.css b/browser/themes/shared/identity-block/identity-block.css
index 13b1659ed5a3b9bb0342b601998d0fd5c9760e22..4f13c401f23f51962986fe8caf197aa5306fc276 100644 index 8edca63dc52ec207475ed9965559d28c06e27971..884343473857c6b6256922d47085fac6eabe74fb 100644
--- a/browser/themes/shared/identity-block/identity-block.css --- a/browser/themes/shared/identity-block/identity-block.css
+++ b/browser/themes/shared/identity-block/identity-block.css +++ b/browser/themes/shared/identity-block/identity-block.css
@@ -81,7 +81,7 @@ @@ -83,7 +83,7 @@
#identity-box[pageproxystate="valid"]:is(.notSecureText, .chromeUI, .extensionPage) > .identity-box-button, #identity-box[pageproxystate="valid"]:is(.notSecureText, .chromeUI, .extensionPage) > .identity-box-button,
#urlbar-label-box { #urlbar-label-box {
@@ -11,7 +11,7 @@ index 13b1659ed5a3b9bb0342b601998d0fd5c9760e22..4f13c401f23f51962986fe8caf197aa5
color: var(--urlbar-box-text-color); color: var(--urlbar-box-text-color);
padding-inline: 8px; padding-inline: 8px;
border-radius: var(--urlbar-icon-border-radius); border-radius: var(--urlbar-icon-border-radius);
@@ -175,16 +175,17 @@ @@ -178,16 +178,17 @@
} }
#identity-icon { #identity-icon {

View File

@@ -1,11 +1,11 @@
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index c2bebf7e96a1d7a36c5e3168cf65504361da821b..5f55741b2a467341f93f648c5f084f863a6de32c 100644 index bc47c162cd4792c7df17565014aac1c2258c6d40..21c0b7ddb04cbb828c758dad34885f91c1ddde6c 100644
--- a/browser/themes/shared/jar.inc.mn --- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn +++ b/browser/themes/shared/jar.inc.mn
@@ -290,3 +290,5 @@ @@ -316,3 +316,5 @@
skin/classic/browser/weather/night-partly-cloudy-with-showers.svg (../shared/weather/night-partly-cloudy-with-showers.svg)
skin/classic/browser/weather/night-partly-cloudy-with-thunderstorms.svg (../shared/weather/night-partly-cloudy-with-thunderstorms.svg)
skin/classic/browser/weather/night-mostly-cloudy-with-flurries.svg (../shared/weather/night-mostly-cloudy-with-flurries.svg) skin/classic/browser/weather/night-mostly-cloudy-with-flurries.svg (../shared/weather/night-mostly-cloudy-with-flurries.svg)
skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg)
+ +
+#include zen-sources.inc.mn +#include zen-sources.inc.mn
\ No newline at end of file \ No newline at end of file

View File

@@ -1,8 +1,8 @@
diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css
index 5c721ee07f0be1318a50cb381ddf59550a04d496..fa2d21687dd8ea7dd03fb4cc2952fe783782a955 100644 index 44f6c942f2e4b08f784b2ff96f785e9beed01ecd..834e174186972c3297a552bbd579f0ea1261c19e 100644
--- a/browser/themes/shared/tabbrowser/content-area.css --- a/browser/themes/shared/tabbrowser/content-area.css
+++ b/browser/themes/shared/tabbrowser/content-area.css +++ b/browser/themes/shared/tabbrowser/content-area.css
@@ -237,7 +237,7 @@ @@ -276,7 +276,7 @@
.dialogStack { .dialogStack {
z-index: var(--browser-stack-z-index-dialog-stack); z-index: var(--browser-stack-z-index-dialog-stack);

View File

@@ -1,12 +1,12 @@
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 50045ec27abcde91d5aea12fc7faaefbddf50229..f4e98dce5195ff3298fb98714d56cf5d3bdaaf48 100644 index aaeae8fd0e999aecda02bf287b39c4d96ad73f3c..d8196d9b1b5491d73b18a7c7d7fef55bc11fe31b 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 @@ @@ -11,6 +11,7 @@
--panel-color: white;
--panel-border-color: transparent; --panel-border-color: transparent;
--panel-padding: 20px 10px 10px; --panel-padding: 20px 10px 10px;
-moz-window-shadow: none;
+ --panel-shadow-margin: 0; + --panel-shadow-margin: 0;
} @media not (-moz-platform: macos) {
font-weight: bold;
@media (-moz-platform: macos) { }

View File

@@ -1,8 +1,8 @@
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 b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a1e768135 100644 index 07574cdd974f63b90355f069f0fbc3fa6cd61b50..665b8c431be11dc0ef5f1f30f4c2ef884c231e46 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 @@ @@ -21,7 +21,7 @@
--tab-group-line-thickness: 2px; --tab-group-line-thickness: 2px;
--tab-group-line-toolbar-border-distance: 1px; --tab-group-line-toolbar-border-distance: 1px;
/* Collapsed tabs should be square, so set width to match the min height */ /* Collapsed tabs should be square, so set width to match the min height */
@@ -11,7 +11,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
--tab-collapsed-width: calc(var(--tab-collapsed-background-width) + 2 * var(--tab-inner-inline-margin)); --tab-collapsed-width: calc(var(--tab-collapsed-background-width) + 2 * var(--tab-inner-inline-margin));
--tab-inner-inline-margin: var(--space-medium); --tab-inner-inline-margin: var(--space-medium);
--tab-inline-padding: 8px; --tab-inline-padding: 8px;
@@ -33,9 +33,9 @@ @@ -35,9 +35,9 @@
--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;
@@ -23,7 +23,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
--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"] {
@@ -255,7 +255,6 @@ @@ -259,7 +259,6 @@
} }
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] { :root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
@@ -31,7 +31,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
} }
&:is([selected], [multiselected]) { &:is([selected], [multiselected]) {
@@ -269,6 +268,7 @@ @@ -273,6 +272,7 @@
border-radius: inherit; border-radius: inherit;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
@@ -39,7 +39,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
&::before { &::before {
position: absolute; position: absolute;
@@ -468,14 +468,11 @@ @@ -472,14 +472,11 @@
.tab-icon-image { .tab-icon-image {
-moz-context-properties: fill, stroke; -moz-context-properties: fill, stroke;
fill: currentColor; fill: currentColor;
@@ -55,7 +55,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -492,10 +489,6 @@ @@ -496,10 +493,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] {
@@ -66,7 +66,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -568,7 +561,7 @@ @@ -572,7 +565,7 @@
z-index: 1; /* Overlay tab title */ z-index: 1; /* Overlay tab title */
#tabbrowser-tabs[orient="vertical"] & { #tabbrowser-tabs[orient="vertical"] & {
@@ -75,7 +75,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
} }
&[crashed] { &[crashed] {
@@ -576,7 +569,7 @@ @@ -580,7 +573,7 @@
} }
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
@@ -84,7 +84,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
&[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");
} }
@@ -633,7 +626,7 @@ @@ -637,7 +630,7 @@
} }
} }
@@ -93,7 +93,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
&[crashed] { &[crashed] {
display: revert; display: revert;
} }
@@ -734,7 +727,7 @@ @@ -738,7 +731,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]),
@@ -102,16 +102,16 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
&:is([soundplaying], [muted], [activemedia-blocked]) { &:is([soundplaying], [muted], [activemedia-blocked]) {
display: flex; display: flex;
} }
@@ -1039,7 +1032,7 @@ tab-group { @@ -1137,7 +1130,7 @@ tab-group {
} }
#tabbrowser-tabs[orient="vertical"][expanded] { #tabbrowser-tabs[orient="vertical"][expanded] {
- tab-group > :is(.tab-group-label-container, .tabbrowser-tab), - tab-group > :is(.tab-group-label-container, .tabbrowser-tab),
+ tab-group > :is(.tab-group-label-container, .tab-group-container, .tabbrowser-tab), + tab-group > :is(.tab-group-label-container, .tab-group-container, .tabbrowser-tab),
&[movingtab][movingtab-addToGroup]:not([movingtab-createGroup], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) { &[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
margin-inline-start: var(--space-medium); margin-inline-start: var(--space-medium);
} }
@@ -1457,7 +1450,7 @@ tab-group { @@ -1567,7 +1560,7 @@ tab-group {
} }
} }
@@ -120,7 +120,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
#vertical-tabs-newtab-button { #vertical-tabs-newtab-button {
appearance: none; appearance: none;
min-height: var(--tab-min-height); min-height: var(--tab-min-height);
@@ -1468,7 +1461,7 @@ tab-group { @@ -1578,7 +1571,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 {
@@ -129,7 +129,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
} }
&:hover { &:hover {
@@ -1492,7 +1485,7 @@ tab-group { @@ -1602,7 +1595,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.
*/ */
@@ -138,7 +138,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
margin-block: var(--tab-block-margin); margin-block: var(--tab-block-margin);
} }
@@ -1687,7 +1680,6 @@ tab-group { @@ -1793,7 +1786,6 @@ tab-group {
&:not([expanded]) { &:not([expanded]) {
.tabbrowser-tab[pinned] { .tabbrowser-tab[pinned] {
@@ -146,7 +146,7 @@ index b710cbf2aa3febc0693bdc6aef48ef4aea855235..61c813322c866ae823dac6c0826d572a
} }
.tab-background { .tab-background {
@@ -1847,7 +1839,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { @@ -1953,7 +1945,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,5 +1,5 @@
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 1f91bda717979f3e81d2f6b243336078d97c5cb9..4232ec4761cb15ff96e9b18810b05f548a6f5fd9 100644 index e7b1c17391ffae02226015d0dd8bbe8eca29731f..938a8cb8c3d854a75fe300db2a7330d188c9ed6f 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
@@ -256,7 +256,7 @@ toolbar .toolbaritem-combined-buttons > separator { @@ -256,7 +256,7 @@ toolbar .toolbaritem-combined-buttons > separator {

View File

@@ -1,33 +1,33 @@
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
index d6c0b56270aee3dd0e74840314ea25af3ca8050a..17b22809744a8903b916b7769681a0c14d054f45 100644 index 11636a976736ba56dcc5a58081cee998bbdf58d4..0a6ca26f25511c799d8b40484b6bd1c81ceeb4e0 100644
--- a/browser/themes/shared/urlbar-searchbar.css --- a/browser/themes/shared/urlbar-searchbar.css
+++ b/browser/themes/shared/urlbar-searchbar.css +++ b/browser/themes/shared/urlbar-searchbar.css
@@ -5,7 +5,7 @@ @@ -6,7 +6,7 @@
@namespace html url("http://www.w3.org/1999/xhtml");
:root { :root {
--urlbar-container-min-width: 310px;
- --urlbar-container-padding: 1px; - --urlbar-container-padding: 1px;
+ --urlbar-container-padding: 2px; + --urlbar-container-padding: 2px;
--urlbar-margin-inline: 5px; --urlbar-margin-inline: 5px;
--urlbar-padding-block: 4px; --urlbar-padding-block: 4px;
}
@@ -23,7 +23,7 @@ @@ -33,7 +33,7 @@
#urlbar:not([usertyping]) > .urlbar-input-container > .urlbar-go-button, #urlbar[usertyping] > .urlbar-input-container > #page-action-buttons > #urlbar-zoom-button,
#urlbar:not([focused]) > .urlbar-input-container > .urlbar-go-button, .urlbar:is(:not([usertyping]), :not([focused])) > .urlbar-input-container > .urlbar-go-button,
#urlbar-revert-button-container { .urlbar-revert-button-container {
- display: none; - display: none;
+ display: none !important; + display: none !important;
} }
/* When rich suggestions are enabled the urlbar identity icon is given extra padding to /* When rich suggestions are enabled the urlbar identity icon is given extra padding to
@@ -288,10 +288,14 @@ @@ -307,10 +307,14 @@
#urlbar[breakout][breakout-extend] { .urlbar[breakout][breakout-extend] {
height: auto; height: auto;
+ align-items: center;
+ :root:not([zen-single-toolbar='true']) { + :root:not([zen-single-toolbar='true']) {
margin-left: calc(-1 * var(--urlbar-margin-inline)); margin-left: calc(-1 * var(--urlbar-margin-inline));
+ } + }
+ align-items: center;
width: calc(var(--urlbar-width) + 2 * var(--urlbar-margin-inline)); width: calc(var(--urlbar-width) + 2 * var(--urlbar-margin-inline));
> .urlbar-input-container { > .urlbar-input-container {

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 428ce749239be2a54c86e0feff123772d1a1d697..bfef48f520dac8968f79d06cbef2e5a047ded748 100644 index 743b1bc81474378ac994ca9cfeb8f4cc6b434581..3486cebd74efa2df481d2a112e89b219bd6bb8a2 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 @@
@@ -11,7 +11,7 @@ index 428ce749239be2a54c86e0feff123772d1a1d697..bfef48f520dac8968f79d06cbef2e5a0
--urlbarView-row-gutter: 2px; --urlbarView-row-gutter: 2px;
--urlbarView-item-inline-padding: var(--urlbar-icon-padding); --urlbarView-item-inline-padding: var(--urlbar-icon-padding);
--urlbarView-item-block-padding: 6px; --urlbarView-item-block-padding: 6px;
@@ -168,7 +168,6 @@ @@ -173,7 +173,6 @@
min-height: 32px; min-height: 32px;
} }
:root[uidensity="touch"] & { :root[uidensity="touch"] & {

View File

@@ -20,10 +20,6 @@
list-style-image: url('back.svg') !important; list-style-image: url('back.svg') !important;
} }
#zenSplitViewModifierActivateReallocation > image {
list-style-image: url('move-tab.svg') !important;
}
#forward-button { #forward-button {
list-style-image: url('forward.svg') !important; list-style-image: url('forward.svg') !important;
} }
@@ -770,7 +766,7 @@
list-style-image: url('chrome://global/skin/media/picture-in-picture-open.svg'); list-style-image: url('chrome://global/skin/media/picture-in-picture-open.svg');
} }
#zenCreateNewPopup > menuitem image { #zenCreateNewPopup > menuitem img {
-moz-context-properties: fill; -moz-context-properties: fill;
fill: currentColor; fill: currentColor;
} }
@@ -817,7 +813,7 @@
} }
} }
.zen-workspace-context-icon image { .zen-workspace-context-icon img {
-moz-context-properties: fill; -moz-context-properties: fill;
fill: currentColor; fill: currentColor;
scale: 1.6; scale: 1.6;

View File

@@ -1,5 +1,5 @@
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 4f960ae35aa69a1d1ce4ad368f5bae365229bbdf..a60d16adee588a1ab0d06d7676bbe80f179e088d 100644 index 4485369284ee762bc8b35afb84fec0874a831fff..7096e2e5d50cda99b62a2aa7118fea6371e76b85 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 @@

View File

@@ -1,8 +1,8 @@
diff --git a/devtools/server/actors/animation-type-longhand.js b/devtools/server/actors/animation-type-longhand.js diff --git a/devtools/server/actors/animation-type-longhand.js b/devtools/server/actors/animation-type-longhand.js
index a7faa2a2f17144198338aa80207ccf33b631cf32..7c15f8d8d533721b661866643cf10b37c99cb051 100644 index 17960549c60ebab9ac7c50a70cb69a6b1f8c37dd..9a9ec4539d39f20dccf449cbdcd066efee145b50 100644
--- a/devtools/server/actors/animation-type-longhand.js --- a/devtools/server/actors/animation-type-longhand.js
+++ b/devtools/server/actors/animation-type-longhand.js +++ b/devtools/server/actors/animation-type-longhand.js
@@ -341,6 +341,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [ @@ -343,6 +343,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [
"transform-origin", "transform-origin",
"translate", "translate",
"-moz-window-transform", "-moz-window-transform",

View File

@@ -1,8 +1,8 @@
diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs
index 91b27e5b5fd938f8c5f141214b934999e0ad871e..d2fdae0b0de64c016abbdd5bf124da278d425b24 100644 index 175edde2720f31c796e8ae8823e2aff17944f423..d9d4f7f5e53064b1ba07870dced2e1452fdde6b1 100644
--- a/devtools/startup/DevToolsStartup.sys.mjs --- a/devtools/startup/DevToolsStartup.sys.mjs
+++ b/devtools/startup/DevToolsStartup.sys.mjs +++ b/devtools/startup/DevToolsStartup.sys.mjs
@@ -813,6 +813,7 @@ DevToolsStartup.prototype = { @@ -816,6 +816,7 @@ DevToolsStartup.prototype = {
// account (see bug 832984). // account (see bug 832984).
const mainKeyset = doc.getElementById("mainKeyset"); const mainKeyset = doc.getElementById("mainKeyset");
mainKeyset.parentNode.insertBefore(keyset, mainKeyset); mainKeyset.parentNode.insertBefore(keyset, mainKeyset);

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 df5658c7231e73c52ee00e35eeccc47166528391..8bfdceb0fc00c618326e932990c9503af13d9e69 100644 index 83d84537f94863d47a30887362fa1ce5a9809427..104d170d5e5114f965b7698fc59d2bad12265261 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,24 +1,23 @@
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 40da41ae4ac7d8d61c664e25bec8a74091d8b3e0..59773e80c6220115d0c51e268bb1eff0fe208010 100644 index 7d7a93e9e76b4957e3ac5860dfc730b7c4e6ad1d..c7c689b73c6599e9e736f73a67bb402d083964a0 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 @@ @@ -467,6 +467,7 @@
#include "prtime.h"
#include "mozilla/dom/Document.h" #include "prtypes.h"
#include "mozilla/dom/DocumentInlines.h" #include "xpcpublic.h"
+#include "mozilla/ZenStyleSheetCache.h" +#include "mozilla/ZenStyleSheetCache.h"
#include <inttypes.h> // clang-format off
#include <stdlib.h> #include "mozilla/Encoding.h"
@@ -3306,6 +3307,11 @@ void Document::FillStyleSetUserAndUASheets() { @@ -3345,6 +3346,10 @@ void Document::FillStyleSetUserAndUASheets() {
for (StyleSheet* sheet : *sheetService->UserStyleSheets()) {
styleSet.AppendStyleSheet(*sheet); styleSet.AppendStyleSheet(*sheet);
} }
+ if (auto sheet = zen::ZenStyleSheetCache::Singleton()->GetModsSheet(); sheet && IsInChromeDocShell()) { + if (auto sheet = zen::ZenStyleSheetCache::Singleton()->GetModsSheet(); sheet && IsInChromeDocShell()) {
+ // The mods sheet is only used in the chrome docshell. + // The mods sheet is only used in the chrome docshell.
+ styleSet.AppendStyleSheet(*sheet); + styleSet.AppendStyleSheet(*sheet);
+ } + }
+
StyleSheet* sheet = IsInChromeDocShell() ? cache->GetUserChromeSheet() StyleSheet* sheet = IsInChromeDocShell() ? cache->GetUserChromeSheet()
: cache->GetUserContentSheet(); : cache->GetUserContentSheet();
if (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 c8dd3cca62e788eed5e5df5294fa7c9f3a2e9492..91e6281f4eb1c4c6aa1dddd8a0f06aa0c15a71ab 100644 index adf8d1ed451a54426d92e65557801cffa2f64281..0bf810d3544e42689ad530468bfce5380a51e274 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
@@ -21460,6 +21460,22 @@ use.counter.css.page: @@ -21477,6 +21477,22 @@ use.counter.css.page:
send_in_pings: send_in_pings:
- use-counters - use-counters
@@ -25,7 +25,7 @@ index c8dd3cca62e788eed5e5df5294fa7c9f3a2e9492..91e6281f4eb1c4c6aa1dddd8a0f06aa0
css_transform_origin: css_transform_origin:
type: counter type: counter
description: > description: >
@@ -33447,6 +33463,22 @@ use.counter.css.doc: @@ -33481,6 +33497,22 @@ use.counter.css.doc:
send_in_pings: send_in_pings:
- use-counters - use-counters

View File

@@ -1,5 +1,5 @@
diff --git a/dom/media/mediacontrol/MediaController.cpp b/dom/media/mediacontrol/MediaController.cpp diff --git a/dom/media/mediacontrol/MediaController.cpp b/dom/media/mediacontrol/MediaController.cpp
index 3f08d24d4ed56bb72ed513ed602b2c8fa48afe7b..98dfe4df48f5daebd2b619f0d4d4eb3ac873a66f 100644 index 8a1735b70f2003b7ee554230c4ad93c68793fce2..86d86a83545287356be5e455501b8c30062adc3a 100644
--- a/dom/media/mediacontrol/MediaController.cpp --- a/dom/media/mediacontrol/MediaController.cpp
+++ b/dom/media/mediacontrol/MediaController.cpp +++ b/dom/media/mediacontrol/MediaController.cpp
@@ -51,6 +51,25 @@ void MediaController::GetSupportedKeys( @@ -51,6 +51,25 @@ void MediaController::GetSupportedKeys(

View File

@@ -1,5 +1,5 @@
diff --git a/dom/media/mediacontrol/MediaController.h b/dom/media/mediacontrol/MediaController.h diff --git a/dom/media/mediacontrol/MediaController.h b/dom/media/mediacontrol/MediaController.h
index 8fec9c59e38bc24b9ff6d30ddbaebff67107bc76..5e7f3634f9edef48d6f96b4900f82a7ebbd730be 100644 index 327ea6201304b3d26a2b4f0267b1c926c73ee9e4..ad14bb2572c29df4897672e14afc185b9b517da4 100644
--- a/dom/media/mediacontrol/MediaController.h --- a/dom/media/mediacontrol/MediaController.h
+++ b/dom/media/mediacontrol/MediaController.h +++ b/dom/media/mediacontrol/MediaController.h
@@ -90,6 +90,7 @@ class MediaController final : public DOMEventTargetHelper, @@ -90,6 +90,7 @@ class MediaController final : public DOMEventTargetHelper,

View File

@@ -1,7 +1,7 @@
diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp
index 2becc049b5a0ee8544819b08d65f1df0a4c23658..6e7a05f135c6ab2c4955a679c1a4ac0e9aae7592 100644 index d46d5edc1d66c1eee8780abad444289fdc36a518..0e0d69819d9eee82add726792ec829c05551a076 100644
--- a/dom/html/HTMLMediaElement.cpp --- a/dom/media/mediaelement/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp +++ b/dom/media/mediaelement/HTMLMediaElement.cpp
@@ -453,6 +453,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.

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 e860f36ef2b42a7377047c64dd4f9405f26b3249..8057172482aa042e9951fc7367891a66eed75f5e 100644 index 79e062a40ed097fa6614abc6b5201f868c447733..91c10d17f0dca55eafec522ddc94b91bf4cd2cfb 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
@@ -8112,7 +8112,12 @@ fn get_relative_scale_offset( @@ -8121,7 +8121,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/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp
index e13628eccc51f0e81fc1404b061840d816502757..85cca51cf37db83f6e79c6e6af080646d2c49670 100644 index 0fca54d43aed64e711c3470a5745a94baaed8886..17097bc8f39e7d5140afa4d91811bca2071a8ad1 100644
--- a/layout/generic/nsIFrame.cpp --- a/layout/generic/nsIFrame.cpp
+++ b/layout/generic/nsIFrame.cpp +++ b/layout/generic/nsIFrame.cpp
@@ -11901,6 +11901,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const { @@ -11933,6 +11933,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,7 +1,7 @@
diff --git a/layout/base/nsStyleSheetService.h b/layout/base/nsStyleSheetService.h diff --git a/layout/style/nsStyleSheetService.h b/layout/style/nsStyleSheetService.h
index 83fc829aad19f8b80692e67bddb781778fbc4f8d..04806a1f51686a82c1dc2555dae86a4397b181fb 100644 index 83fc829aad19f8b80692e67bddb781778fbc4f8d..04806a1f51686a82c1dc2555dae86a4397b181fb 100644
--- a/layout/base/nsStyleSheetService.h --- a/layout/style/nsStyleSheetService.h
+++ b/layout/base/nsStyleSheetService.h +++ b/layout/style/nsStyleSheetService.h
@@ -50,6 +50,8 @@ class nsStyleSheetService final : public nsIStyleSheetService, @@ -50,6 +50,8 @@ class nsStyleSheetService final : public nsIStyleSheetService,
size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const; size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;

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 4b979fc1f9d0986f5382cab0c39bf99ed34ef39e..90f67c73c13fbfdcfff86125c6d7258850ca62b0 100644 index 3fc58a635189d2160be84c3c8083e63abce611f0..7aac552365a4414229879e2dd9586f7fbd98816d 100644
--- a/layout/style/nsStyleStruct.cpp --- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp
@@ -3237,6 +3237,9 @@ nsStyleUIReset::nsStyleUIReset() @@ -3266,6 +3266,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 4b979fc1f9d0986f5382cab0c39bf99ed34ef39e..90f67c73c13fbfdcfff86125c6d72588
mTransitions( mTransitions(
nsStyleAutoArray<StyleTransition>::WITH_SINGLE_INITIAL_ELEMENT), nsStyleAutoArray<StyleTransition>::WITH_SINGLE_INITIAL_ELEMENT),
mTransitionTimingFunctionCount(1), mTransitionTimingFunctionCount(1),
@@ -3281,6 +3284,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource) @@ -3310,6 +3313,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 3236244280edaae2bbe4440e76da3455015ab722..3474d4bcfab2944aae9635250350b674a8ed1c42 100644 index 9db1b385ac12e0142921c49e6b6c2ba0fadccf95..919089fd9bc278b0c2fede4b2babe133acd4632e 100644
--- a/layout/style/nsStyleStruct.h --- a/layout/style/nsStyleStruct.h
+++ b/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h
@@ -2033,6 +2033,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset { @@ -2075,6 +2075,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/layout/style/test/ListCSSProperties.cpp b/layout/style/test/ListCSSProperties.cpp diff --git a/layout/style/test/ListCSSProperties.cpp b/layout/style/test/ListCSSProperties.cpp
index df06ffac358c1b245c84432aa6f143f9c5806029..0bca4b9b40b3b030c54fc36c659966dd3a8894f7 100644 index 673c1677703ef2de3fafbe86f0ffab720738f4cb..267556f66de3180fc6ae91d5b54b8648f1b41cc4 100644
--- a/layout/style/test/ListCSSProperties.cpp --- a/layout/style/test/ListCSSProperties.cpp
+++ b/layout/style/test/ListCSSProperties.cpp +++ b/layout/style/test/ListCSSProperties.cpp
@@ -109,6 +109,7 @@ const char* gInaccessibleProperties[] = { @@ -110,6 +110,7 @@ const char* gInaccessibleProperties[] = {
"-moz-window-opacity", // chrome-only internal properties "-moz-window-opacity", // chrome-only internal properties
"-moz-window-transform", // chrome-only internal properties "-moz-window-transform", // chrome-only internal properties
"-moz-window-shadow", // chrome-only internal properties "-moz-window-shadow", // chrome-only internal properties

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 30a19900c13cd0720008980202077af1df705856..136e3a13b810215be7a102786dce54651b38829d 100644 index a6c49438aaf3464e70bf9c75c2849a6062bd096a..2ee33493ed541b36a29f29c104d1275b80e5a20a 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
@@ -19119,6 +19119,7 @@ @@ -19222,6 +19215,7 @@
mirror: always mirror: always
#endif #endif

View File

@@ -1,5 +1,5 @@
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
index c66f1e26b22a6eeb2192d531e365ba34a61e220d..097ffce888ee0e180cc06448ea34860e6a467a2a 100644 index 3d4630e2250476729d21cdcb1726a7af93f9fd75..489d1dc624bb1e7b3f7ed22a0073d3ada29846e4 100644
--- a/servo/components/style/gecko/media_features.rs --- a/servo/components/style/gecko/media_features.rs
+++ b/servo/components/style/gecko/media_features.rs +++ b/servo/components/style/gecko/media_features.rs
@@ -13,6 +13,9 @@ use crate::values::computed::{CSSPixelLength, Context, Ratio, Resolution}; @@ -13,6 +13,9 @@ use crate::values::computed::{CSSPixelLength, Context, Ratio, Resolution};
@@ -12,39 +12,32 @@ index c66f1e26b22a6eeb2192d531e365ba34a61e220d..097ffce888ee0e180cc06448ea34860e
fn device_size(device: &Device) -> Size2D<Au> { fn device_size(device: &Device) -> Size2D<Au> {
let mut width = 0; let mut width = 0;
@@ -610,6 +613,13 @@ fn eval_moz_overlay_scrollbars(context: &Context) -> bool { @@ -609,6 +612,13 @@ fn eval_scripting(context: &Context, query_value: Option<Scripting>) -> bool {
fn eval_moz_overlay_scrollbars(context: &Context) -> bool {
unsafe { bindings::Gecko_MediaFeatures_UseOverlayScrollbars(context.device().document()) } unsafe { bindings::Gecko_MediaFeatures_UseOverlayScrollbars(context.device().document()) }
} }
+
+fn eval_moz_bool_pref(_: &Context, pref: Option<&AtomString>) -> KleeneValue { +fn eval_moz_bool_pref(_: &Context, pref: Option<&AtomString>) -> KleeneValue {
+ let Some(pref) = pref else { + let Some(pref) = pref else {
+ return KleeneValue::False; + return KleeneValue::False;
+ }; + };
+ KleeneValue::from(unsafe { bindings::Gecko_EvalMozPrefFeature(pref.as_ptr(), &MozPrefFeatureValue::<i32>::None) }) + KleeneValue::from(unsafe { bindings::Gecko_EvalMozPrefFeature(pref.as_ptr(), &MozPrefFeatureValue::<i32>::None) })
+} +}
+
fn get_lnf_int(int_id: i32) -> i32 { fn get_lnf_int(int_id: i32) -> i32 {
unsafe { bindings::Gecko_GetLookAndFeelInt(int_id) } unsafe { bindings::Gecko_GetLookAndFeelInt(int_id) }
} @@ -641,7 +651,13 @@ macro_rules! lnf_int_feature {
@@ -657,7 +667,7 @@ macro_rules! lnf_int_feature {
/// to support new types in these entries and (2) ensuring that either /// to support new types in these entries and (2) ensuring that either
/// nsPresContext::MediaFeatureValuesChanged is called when the value that /// nsPresContext::MediaFeatureValuesChanged is called when the value that
/// would be returned by the evaluator function could change. /// would be returned by the evaluator function could change.
-pub static MEDIA_FEATURES: [QueryFeatureDescription; 62] = [ -pub static MEDIA_FEATURES: [QueryFeatureDescription; 58] = [
+pub static MEDIA_FEATURES: [QueryFeatureDescription; 63] = [ +pub static MEDIA_FEATURES: [QueryFeatureDescription; 59] = [
feature!(
atom!("width"),
AllowsRanges::Yes,
@@ -928,6 +938,12 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 62] = [
Evaluator::BoolInteger(eval_moz_overlay_scrollbars),
FeatureFlags::CHROME_AND_UA_ONLY,
),
+ feature!( + feature!(
+ atom!("-moz-bool-pref"), + atom!("-moz-bool-pref"),
+ AllowsRanges::No, + AllowsRanges::No,
+ Evaluator::String(eval_moz_bool_pref), + Evaluator::String(eval_moz_bool_pref),
+ FeatureFlags::CHROME_AND_UA_ONLY, + FeatureFlags::CHROME_AND_UA_ONLY,
+ ), + ),
lnf_int_feature!( feature!(
atom!("-moz-scrollbar-start-backward"), atom!("width"),
ScrollArrowStyle, AllowsRanges::Yes,

View File

@@ -1,8 +1,8 @@
diff --git a/servo/components/style/properties/longhands/ui.mako.rs b/servo/components/style/properties/longhands/ui.mako.rs diff --git a/servo/components/style/properties/longhands/ui.mako.rs b/servo/components/style/properties/longhands/ui.mako.rs
index b7d24fe7bb54b1c143876e3bc9da59c64324ffa5..c36f7edcf076e31209e847af0b59361033d3b4da 100644 index 24e1e1b7e8fe4d4b70aaa4f5f022500c3dcfcbae..1176bf5d12885b4d96abb2f72288f6c631072578 100644
--- a/servo/components/style/properties/longhands/ui.mako.rs --- a/servo/components/style/properties/longhands/ui.mako.rs
+++ b/servo/components/style/properties/longhands/ui.mako.rs +++ b/servo/components/style/properties/longhands/ui.mako.rs
@@ -286,6 +286,18 @@ ${helpers.predefined_type( @@ -284,6 +284,18 @@ ${helpers.predefined_type(
affects="", affects="",
)} )}

View File

@@ -1,8 +1,8 @@
diff --git a/testing/mochitest/browser-test.js b/testing/mochitest/browser-test.js diff --git a/testing/mochitest/browser-test.js b/testing/mochitest/browser-test.js
index ef29179988bb37e7ea441aa051b692e3ccc90f21..6c9641ed27722b5febd83f6e121df24d46b00067 100644 index 11217c210dd8dc5f7c4bdc6043df9aeb361529c6..18c3c4d658170d0646483cd289fe8ad1f21ffae0 100644
--- a/testing/mochitest/browser-test.js --- a/testing/mochitest/browser-test.js
+++ b/testing/mochitest/browser-test.js +++ b/testing/mochitest/browser-test.js
@@ -444,11 +444,11 @@ Tester.prototype = { @@ -440,11 +440,11 @@ Tester.prototype = {
this.currentTest && this.currentTest &&
window.gBrowser && window.gBrowser &&
AppConstants.MOZ_APP_NAME != "thunderbird" && AppConstants.MOZ_APP_NAME != "thunderbird" &&
@@ -16,7 +16,7 @@ index ef29179988bb37e7ea441aa051b692e3ccc90f21..6c9641ed27722b5febd83f6e121df24d
let lastTab = gBrowser.tabs[gBrowser.tabs.length - 1]; let lastTab = gBrowser.tabs[gBrowser.tabs.length - 1];
if (!lastTab.closing) { if (!lastTab.closing) {
// Report the stale tab as an error only when they're not closing. // Report the stale tab as an error only when they're not closing.
@@ -483,12 +483,12 @@ Tester.prototype = { @@ -479,12 +479,12 @@ Tester.prototype = {
// Replace the last tab with a fresh one // Replace the last tab with a fresh one
if (window.gBrowser && AppConstants.MOZ_APP_NAME != "thunderbird") { if (window.gBrowser && AppConstants.MOZ_APP_NAME != "thunderbird") {

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 c43196b3c9cf8c90fa1cca5b6d205c410adec022..854aec05b568aa3dfe7d9b994c0ee7ee9a6b5fd8 100644 index a4068ac3f61161d014c49d54ae7a3bf886868f1b..7771d8c99aa20105b1382437881cdc02b17688c2 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
@@ -44,3 +44,7 @@ user_pref("geo.prompt.open_system_prefs", false); @@ -41,3 +41,7 @@ user_pref("places.history.floodingPrevention.enabled", false);
// permission, and we can open it and wait for the user to give permission, then
// Enable Nimbus debug logging. // don't do that.
user_pref("messaging-system.log", "all"); user_pref("geo.prompt.open_system_prefs", false);
+ +
+user_pref("zen.welcome-screen.seen", true); +user_pref("zen.welcome-screen.seen", true);
+user_pref("zen.watermark.enabled", false); +user_pref("zen.watermark.enabled", false);

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/components/extensions/parent/ext-downloads.js b/toolkit/components/extensions/parent/ext-downloads.js diff --git a/toolkit/components/extensions/parent/ext-downloads.js b/toolkit/components/extensions/parent/ext-downloads.js
index ea6929d23d432958def5be46e42e329bc224d3aa..942cfddc090399ef239cc34ab47682cab6a33cd4 100644 index 3b81d5e60a5e3006b80a2acec0b6720ccb7e5b33..5b6272986e13b48047f3bae1ec4205fc3e8012ef 100644
--- a/toolkit/components/extensions/parent/ext-downloads.js --- a/toolkit/components/extensions/parent/ext-downloads.js
+++ b/toolkit/components/extensions/parent/ext-downloads.js +++ b/toolkit/components/extensions/parent/ext-downloads.js
@@ -87,6 +87,7 @@ const FILTER_IMAGES_EXTENSIONS = [ @@ -87,6 +87,7 @@ const FILTER_IMAGES_EXTENSIONS = [

View File

@@ -1,8 +1,8 @@
diff --git a/toolkit/components/extensions/parent/ext-runtime.js b/toolkit/components/extensions/parent/ext-runtime.js diff --git a/toolkit/components/extensions/parent/ext-runtime.js b/toolkit/components/extensions/parent/ext-runtime.js
index ff7aae6e5f1919d8d4ff1c7e85b6150332adc20f..5d935e3d0dfb91cd01268d4e2c4dee4696c33efe 100644 index 0d7a3e505b6bd30548c6dda1504dd343a517b083..71bab6f1562ef6ec43541e52573d2ed5c4e8e3af 100644
--- a/toolkit/components/extensions/parent/ext-runtime.js --- a/toolkit/components/extensions/parent/ext-runtime.js
+++ b/toolkit/components/extensions/parent/ext-runtime.js +++ b/toolkit/components/extensions/parent/ext-runtime.js
@@ -331,7 +331,7 @@ this.runtime = class extends ExtensionAPIPersistent { @@ -333,7 +333,7 @@ this.runtime = class extends ExtensionAPIPersistent {
getBrowserInfo: function () { getBrowserInfo: function () {
const { name, vendor, version, appBuildID } = Services.appinfo; const { name, vendor, version, appBuildID } = Services.appinfo;

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/content/widgets/browser-custom-element.mjs b/toolkit/content/widgets/browser-custom-element.mjs diff --git a/toolkit/content/widgets/browser-custom-element.mjs b/toolkit/content/widgets/browser-custom-element.mjs
index 8eeea2a403ba2007a1a1e6074bb982b24f40fef5..29bae869dfd8c9df6039b3c9b8b1603092e517ea 100644 index ef01902583d6ff1c563e9b2886f3048b127fe383..01f353f5eb4c67b2cf01a14e337a81e93358586f 100644
--- a/toolkit/content/widgets/browser-custom-element.mjs --- a/toolkit/content/widgets/browser-custom-element.mjs
+++ b/toolkit/content/widgets/browser-custom-element.mjs +++ b/toolkit/content/widgets/browser-custom-element.mjs
@@ -482,11 +482,11 @@ class MozBrowser extends MozElements.MozElementMixin(XULFrameElement) { @@ -482,11 +482,11 @@ class MozBrowser extends MozElements.MozElementMixin(XULFrameElement) {

Some files were not shown because too many files have changed in this diff Show More