mirror of
https://github.com/zen-browser/desktop.git
synced 2025-11-09 20:15:03 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
421adade52 | ||
|
|
c382001253 | ||
|
|
8b5325ba1c | ||
|
|
eeb8a78741 | ||
|
|
c5bc5c7f09 | ||
|
|
879865e625 | ||
|
|
2ec4510850 | ||
|
|
96c6ec658c |
@@ -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 `144.0.2`! 🚀
|
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `144.0.2`! 🚀
|
||||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 144.0.2`!
|
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0`!
|
||||||
|
|
||||||
### Contributing
|
### Contributing
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
860c37a26622f61c74c7cbb93f7e0ae759fcbfe1
|
7bc0bd3b3f84dddd16bc84ddb01bc55782177f5e
|
||||||
@@ -56,6 +56,9 @@ pane-settings-workspaces-title = Workspaces
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Enable Tab Unloader
|
.label = Enable Tab Unloader
|
||||||
|
|
||||||
|
zen-tabs-close-on-back-with-no-history =
|
||||||
|
.label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
|
||||||
|
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Use themed background for compact toolbar
|
||||||
|
|
||||||
|
|||||||
@@ -34,3 +34,6 @@
|
|||||||
|
|
||||||
- name: zen.tabs.open-pinned-in-new-tab
|
- name: zen.tabs.open-pinned-in-new-tab
|
||||||
value: true
|
value: true
|
||||||
|
|
||||||
|
- name: zen.tabs.close-on-back-with-no-history
|
||||||
|
value: true
|
||||||
|
|||||||
3
src/.hgignore
Normal file
3
src/.hgignore
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/Cargo.lock b/Cargo.lock
|
diff --git a/Cargo.lock b/Cargo.lock
|
||||||
index c079ef11880c5338c4498a0e5b3eb4cf4bfb6e02..ecd06b05381be740197c07c8cf0743dc882727f5 100644
|
index 4386724a82baa72678b7228ef3af9fabc2da318e..01f7ac42ff96f8f96984537f19bde4bbc8cd8d72 100644
|
||||||
--- a/Cargo.lock
|
--- a/Cargo.lock
|
||||||
+++ b/Cargo.lock
|
+++ b/Cargo.lock
|
||||||
@@ -4069,8 +4069,6 @@ dependencies = [
|
@@ -4167,8 +4167,6 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mime_guess"
|
name = "mime_guess"
|
||||||
version = "2.0.4"
|
version = "2.0.4"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/Cargo.toml b/Cargo.toml
|
diff --git a/Cargo.toml b/Cargo.toml
|
||||||
index 2331ff5733d39e26c0a16301cb83d46ca970f632..777dbd5fb8546466e4a349772ccba254c7ffd691 100644
|
index 772a74e7439d87e9c5486abcf003617240190710..522b5459b30b943832369ff7a73755ad4c7d8140 100644
|
||||||
--- a/Cargo.toml
|
--- a/Cargo.toml
|
||||||
+++ b/Cargo.toml
|
+++ b/Cargo.toml
|
||||||
@@ -224,6 +224,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
@@ -227,6 +227,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
||||||
# Workaround for https://github.com/rust-lang/cargo/issues/11232
|
# Workaround for https://github.com/rust-lang/cargo/issues/11232
|
||||||
rure = { path = "third_party/rust/rure" }
|
rure = { path = "third_party/rust/rure" }
|
||||||
|
|
||||||
|
|||||||
12
src/browser/actors/EncryptedMediaParent-sys-mjs.patch
Normal file
12
src/browser/actors/EncryptedMediaParent-sys-mjs.patch
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/browser/actors/EncryptedMediaParent.sys.mjs b/browser/actors/EncryptedMediaParent.sys.mjs
|
||||||
|
index 9d3d3db9761cf5b2fde1f70992e82b1733241863..3dc64dc395d5237bf2c290cb8588cf467fb8729a 100644
|
||||||
|
--- a/browser/actors/EncryptedMediaParent.sys.mjs
|
||||||
|
+++ b/browser/actors/EncryptedMediaParent.sys.mjs
|
||||||
|
@@ -200,6 +200,7 @@ export class EncryptedMediaParent extends JSWindowActorParent {
|
||||||
|
"drmContentPlaying",
|
||||||
|
aBrowser
|
||||||
|
)
|
||||||
|
+ || true // zen: We have some issues with this currently, so never show it
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
@@ -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 80fd2177c7112c958ff51bbf7a18ebea39e50fbf..24f62810901dc558e25ee874bd49736bd64fd358 100644
|
index 4ff6ae4d6f272936f0aa1c80a488df16159b42f2..85e4d7bf500603fcd5724658e96c7fd0a04432d3 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 {
|
||||||
|
|||||||
@@ -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 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc31266b08 100644
|
index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2bd5a757d 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
|
||||||
@@ -1071,7 +1071,7 @@ var gXPInstallObserver = {
|
@@ -1069,7 +1069,7 @@ var gXPInstallObserver = {
|
||||||
persistent: true,
|
persistent: true,
|
||||||
hideClose: true,
|
hideClose: true,
|
||||||
popupOptions: {
|
popupOptions: {
|
||||||
@@ -11,7 +11,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1280,7 +1280,7 @@ var gXPInstallObserver = {
|
@@ -1279,7 +1279,7 @@ var gXPInstallObserver = {
|
||||||
hideClose: true,
|
hideClose: true,
|
||||||
timeout: Date.now() + 30000,
|
timeout: Date.now() + 30000,
|
||||||
popupOptions: {
|
popupOptions: {
|
||||||
@@ -20,7 +20,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2212,7 +2212,7 @@ var gUnifiedExtensions = {
|
@@ -2211,7 +2211,7 @@ var gUnifiedExtensions = {
|
||||||
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
||||||
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
||||||
getPopupAnchorID(aBrowser, aWindow) {
|
getPopupAnchorID(aBrowser, aWindow) {
|
||||||
@@ -29,7 +29,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
const attr = anchorID + "popupnotificationanchor";
|
const attr = anchorID + "popupnotificationanchor";
|
||||||
|
|
||||||
if (!aBrowser[attr]) {
|
if (!aBrowser[attr]) {
|
||||||
@@ -2223,7 +2223,7 @@ var gUnifiedExtensions = {
|
@@ -2222,7 +2222,7 @@ var gUnifiedExtensions = {
|
||||||
anchorID
|
anchorID
|
||||||
// Anchor on the toolbar icon to position the popup right below the
|
// Anchor on the toolbar icon to position the popup right below the
|
||||||
// button.
|
// button.
|
||||||
@@ -38,7 +38,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
}
|
}
|
||||||
|
|
||||||
return anchorID;
|
return anchorID;
|
||||||
@@ -2516,11 +2516,7 @@ var gUnifiedExtensions = {
|
@@ -2646,11 +2646,7 @@ var gUnifiedExtensions = {
|
||||||
// Lazy load the unified-extensions-panel panel the first time we need to
|
// Lazy load the unified-extensions-panel panel the first time we need to
|
||||||
// display it.
|
// display it.
|
||||||
if (!this._panel) {
|
if (!this._panel) {
|
||||||
@@ -51,16 +51,15 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
let customizationArea = this._panel.querySelector(
|
let customizationArea = this._panel.querySelector(
|
||||||
"#unified-extensions-area"
|
"#unified-extensions-area"
|
||||||
);
|
);
|
||||||
@@ -2570,7 +2566,7 @@ var gUnifiedExtensions = {
|
@@ -2703,6 +2699,7 @@ var gUnifiedExtensions = {
|
||||||
|
// and no alternative content is available for display in the panel.
|
||||||
// The button should directly open `about:addons` when the user does not
|
const policies = this.getActivePolicies();
|
||||||
// have any active extensions listed in the unified extensions panel.
|
if (
|
||||||
- if (!this.hasExtensionsInPanel()) {
|
+ false &&
|
||||||
+ if (!this.hasExtensionsInPanel() && false) {
|
policies.length &&
|
||||||
let viewID;
|
!this.hasExtensionsInPanel(policies) &&
|
||||||
if (
|
!this.isPrivateWindowMissingExtensionsWithoutPBMAccess() &&
|
||||||
Services.prefs.getBoolPref("extensions.getAddons.showPane", true) &&
|
@@ -2743,7 +2740,7 @@ var gUnifiedExtensions = {
|
||||||
@@ -2615,7 +2611,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, {
|
||||||
@@ -69,7 +68,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
triggerEvent: aEvent,
|
triggerEvent: aEvent,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -2802,18 +2798,20 @@ var gUnifiedExtensions = {
|
@@ -2930,18 +2927,20 @@ var gUnifiedExtensions = {
|
||||||
this._maybeMoveWidgetNodeBack(widgetId);
|
this._maybeMoveWidgetNodeBack(widgetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,19 @@
|
|||||||
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 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4954b8b94 100644
|
index 939ca497b882b3f4200141ba1b6764fb5c846f45..779cba5ff3df856a246321a36caa3725c054a314 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
|
||||||
@@ -317,6 +317,10 @@ var BrowserCommands = {
|
@@ -14,6 +14,10 @@ var BrowserCommands = {
|
||||||
|
const where = BrowserUtils.whereToOpenLink(aEvent, false, true);
|
||||||
|
|
||||||
|
if (where == "current") {
|
||||||
|
+ if (!gBrowser.webNavigation.canGoBack && gZenCommonActions.shouldCloseTabOnBack()) {
|
||||||
|
+ gBrowser.removeTab(gBrowser.selectedTab);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
try {
|
||||||
|
gBrowser.goBack();
|
||||||
|
} catch (ex) {}
|
||||||
|
@@ -315,6 +319,10 @@ var BrowserCommands = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,7 +24,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4
|
|||||||
// 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
|
||||||
@@ -401,6 +405,11 @@ var BrowserCommands = {
|
@@ -399,6 +407,11 @@ var BrowserCommands = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +36,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4
|
|||||||
// 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 (
|
||||||
@@ -408,8 +417,8 @@ var BrowserCommands = {
|
@@ -406,8 +419,8 @@ var BrowserCommands = {
|
||||||
(event.ctrlKey || event.metaKey || event.altKey) &&
|
(event.ctrlKey || event.metaKey || event.altKey) &&
|
||||||
gBrowser.selectedTab.pinned
|
gBrowser.selectedTab.pinned
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -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 b41449d4c4bc373a4c9cf449c0bb370bfdbc20d6..f1166929397dd39b7f44bd9cb0d62a45d67f0e1d 100644
|
index bef746dc594ad974c91075cf3657c199f8f8830f..bb671341b6715c42df76f7298ba55e1fac73f33b 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
|
||||||
@@ -427,10 +427,10 @@ var FullScreen = {
|
@@ -424,10 +424,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)` : "";
|
||||||
|
|||||||
13
src/browser/base/content/browser-gestureSupport-js.patch
Normal file
13
src/browser/base/content/browser-gestureSupport-js.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/browser/base/content/browser-gestureSupport.js b/browser/base/content/browser-gestureSupport.js
|
||||||
|
index a28d54bf72c0e6495b9586f220d1859aac794936..66154668b9f85ffbaacea1e8351370659260227b 100644
|
||||||
|
--- a/browser/base/content/browser-gestureSupport.js
|
||||||
|
+++ b/browser/base/content/browser-gestureSupport.js
|
||||||
|
@@ -832,7 +832,7 @@ var gHistorySwipeAnimation = {
|
||||||
|
* @return true if there is a previous page in history, false otherwise.
|
||||||
|
*/
|
||||||
|
canGoBack: function HSA_canGoBack() {
|
||||||
|
- return gBrowser.webNavigation.canGoBack;
|
||||||
|
+ return gBrowser.webNavigation.canGoBack || gZenCommonActions.shouldCloseTabOnBack();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
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 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64225e42b0 100644
|
index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd61ee1828 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
|
||||||
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||||
@@ -10,7 +10,21 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
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",
|
||||||
@@ -2293,6 +2294,8 @@ var XULBrowserWindow = {
|
@@ -822,7 +823,12 @@ function UpdateBackForwardCommands(aWebNavigation) {
|
||||||
|
|
||||||
|
var backDisabled = backCommand.hasAttribute("disabled");
|
||||||
|
var forwardDisabled = forwardCommand.hasAttribute("disabled");
|
||||||
|
- if (backDisabled == aWebNavigation.canGoBack) {
|
||||||
|
+ var canGoBack = aWebNavigation.canGoBack;
|
||||||
|
+ if (!canGoBack) {
|
||||||
|
+ canGoBack = gZenCommonActions.shouldCloseTabOnBack();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (backDisabled == canGoBack) {
|
||||||
|
if (backDisabled) {
|
||||||
|
backCommand.removeAttribute("disabled");
|
||||||
|
} else {
|
||||||
|
@@ -2298,6 +2304,8 @@ var XULBrowserWindow = {
|
||||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
@@ -19,7 +33,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
if (!gMultiProcessBrowser) {
|
if (!gMultiProcessBrowser) {
|
||||||
@@ -3795,7 +3798,7 @@ function warnAboutClosingWindow() {
|
@@ -3809,7 +3817,7 @@ function warnAboutClosingWindow() {
|
||||||
|
|
||||||
if (!isPBWindow && !toolbar.visible) {
|
if (!isPBWindow && !toolbar.visible) {
|
||||||
return gBrowser.warnAboutClosingTabs(
|
return gBrowser.warnAboutClosingTabs(
|
||||||
@@ -28,7 +42,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
gBrowser.closingTabsEnum.ALL
|
gBrowser.closingTabsEnum.ALL
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -3835,7 +3838,7 @@ function warnAboutClosingWindow() {
|
@@ -3849,7 +3857,7 @@ function warnAboutClosingWindow() {
|
||||||
return (
|
return (
|
||||||
isPBWindow ||
|
isPBWindow ||
|
||||||
gBrowser.warnAboutClosingTabs(
|
gBrowser.warnAboutClosingTabs(
|
||||||
@@ -37,7 +51,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
gBrowser.closingTabsEnum.ALL
|
gBrowser.closingTabsEnum.ALL
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -3860,7 +3863,7 @@ function warnAboutClosingWindow() {
|
@@ -3874,7 +3882,7 @@ function warnAboutClosingWindow() {
|
||||||
AppConstants.platform != "macosx" ||
|
AppConstants.platform != "macosx" ||
|
||||||
isPBWindow ||
|
isPBWindow ||
|
||||||
gBrowser.warnAboutClosingTabs(
|
gBrowser.warnAboutClosingTabs(
|
||||||
@@ -46,7 +60,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
gBrowser.closingTabsEnum.ALL
|
gBrowser.closingTabsEnum.ALL
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -4782,6 +4785,9 @@ var ConfirmationHint = {
|
@@ -4796,6 +4804,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);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93fa2a4d56 100644
|
index 3bd7b8f6025a7df4ce5cfb66916125bce9ef3991..c408ef829b7540aec72b2307e5d4bfa34109d6cd 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 = {
|
@@ -249,6 +249,8 @@ var StarUI = {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93
|
|||||||
let onPanelReady = fn => {
|
let onPanelReady = fn => {
|
||||||
let target = this.panel;
|
let target = this.panel;
|
||||||
if (target.parentNode) {
|
if (target.parentNode) {
|
||||||
@@ -303,6 +305,21 @@ var StarUI = {
|
@@ -300,6 +302,21 @@ var StarUI = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93
|
|||||||
removeBookmarkButtonCommand: function SU_removeBookmarkButtonCommand() {
|
removeBookmarkButtonCommand: function SU_removeBookmarkButtonCommand() {
|
||||||
this._removeBookmarksOnPopupHidden = true;
|
this._removeBookmarksOnPopupHidden = true;
|
||||||
this.panel.hidePopup();
|
this.panel.hidePopup();
|
||||||
@@ -1800,6 +1817,7 @@ var BookmarkingUI = {
|
@@ -1797,6 +1814,7 @@ var BookmarkingUI = {
|
||||||
document.getElementById("context-bookmarkpage"),
|
document.getElementById("context-bookmarkpage"),
|
||||||
PanelMultiView.getViewNode(document, "panelMenuBookmarkThisPage"),
|
PanelMultiView.getViewNode(document, "panelMenuBookmarkThisPage"),
|
||||||
document.getElementById("pageAction-panel-bookmark"),
|
document.getElementById("pageAction-panel-bookmark"),
|
||||||
|
|||||||
@@ -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 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af5fbb5fb2 100644
|
index 8369e546866aa313e62f808acb8d51afa8da4f9b..7a4b20dd5922425cebfac542893a52cd68a26449 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
|
||||||
@@ -453,11 +453,6 @@ var gIdentityHandler = {
|
@@ -451,11 +451,6 @@ var gIdentityHandler = {
|
||||||
// avoid a pretty ugly transition. Also hide it even
|
// avoid a pretty ugly transition. Also hide it even
|
||||||
// if the update resulted in no site data, to keep the
|
// if the update resulted in no site data, to keep the
|
||||||
// illusion that clicking the button had an effect.
|
// illusion that clicking the button had an effect.
|
||||||
@@ -14,7 +14,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af
|
|||||||
|
|
||||||
let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host);
|
let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host);
|
||||||
if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) {
|
if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) {
|
||||||
@@ -834,7 +829,7 @@ var gIdentityHandler = {
|
@@ -832,7 +827,7 @@ var gIdentityHandler = {
|
||||||
// This is a secure internal Firefox page.
|
// This 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");
|
||||||
@@ -23,7 +23,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af
|
|||||||
} 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";
|
||||||
@@ -1163,6 +1158,12 @@ var gIdentityHandler = {
|
@@ -1161,6 +1156,12 @@ var gIdentityHandler = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 ffddea280e2edffa2531b4b129489c2be0e2c3d2..f03db9e2db0dec06f997740337f28e76a08a3bdb 100644
|
index 246d23a77960d25f78b163429a3ed28c7180ccd7..1c26485d8464413689767c8a38aadbcadcecae4d 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
|
||||||
@@ -19,6 +19,7 @@
|
@@ -19,6 +19,7 @@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadcb66d1e16 100644
|
index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18b8dffccd 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
|
||||||
@@ -208,6 +208,10 @@
|
@@ -208,6 +208,10 @@
|
||||||
@@ -21,7 +21,7 @@ index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadc
|
|||||||
</panel>
|
</panel>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
@@ -615,6 +620,8 @@
|
@@ -628,6 +633,8 @@
|
||||||
|
|
||||||
#include popup-notifications.inc.xhtml
|
#include popup-notifications.inc.xhtml
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e455356b4a 100644
|
index 7b776b15d52367a008ce6bf53dcfcbbe007b7453..d9a3404905b73db7c8f202ab166d5f3c625351f6 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 @@
|
@@ -6,7 +6,7 @@
|
||||||
document.addEventListener(
|
document.addEventListener(
|
||||||
"DOMContentLoaded",
|
"DOMContentLoaded",
|
||||||
() => {
|
() => {
|
||||||
@@ -11,7 +11,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
const widgetOverflow = document.getElementById("widget-overflow");
|
const widgetOverflow = document.getElementById("widget-overflow");
|
||||||
|
|
||||||
function onPopupShowing(event) {
|
function onPopupShowing(event) {
|
||||||
@@ -187,6 +187,7 @@ document.addEventListener(
|
@@ -185,6 +185,7 @@ document.addEventListener(
|
||||||
#reload-button ,
|
#reload-button ,
|
||||||
#urlbar-go-button,
|
#urlbar-go-button,
|
||||||
#reader-mode-button,
|
#reader-mode-button,
|
||||||
@@ -19,7 +19,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
#picture-in-picture-button,
|
#picture-in-picture-button,
|
||||||
#urlbar-zoom-button,
|
#urlbar-zoom-button,
|
||||||
#star-button-box,
|
#star-button-box,
|
||||||
@@ -208,6 +209,7 @@ document.addEventListener(
|
@@ -206,6 +207,7 @@ document.addEventListener(
|
||||||
case "vertical-tabs-newtab-button":
|
case "vertical-tabs-newtab-button":
|
||||||
case "tabs-newtab-button":
|
case "tabs-newtab-button":
|
||||||
case "new-tab-button":
|
case "new-tab-button":
|
||||||
@@ -27,7 +27,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
gBrowser.handleNewTabMiddleClick(element, event);
|
gBrowser.handleNewTabMiddleClick(element, event);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -317,7 +319,7 @@ document.addEventListener(
|
@@ -315,7 +317,7 @@ document.addEventListener(
|
||||||
#pageActionButton,
|
#pageActionButton,
|
||||||
#downloads-button,
|
#downloads-button,
|
||||||
#fxa-toolbar-menu-button,
|
#fxa-toolbar-menu-button,
|
||||||
@@ -36,7 +36,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
#library-button
|
#library-button
|
||||||
`);
|
`);
|
||||||
if (!element) {
|
if (!element) {
|
||||||
@@ -396,7 +398,7 @@ document.addEventListener(
|
@@ -394,7 +396,7 @@ document.addEventListener(
|
||||||
gSync.toggleAccountPanel(element, event);
|
gSync.toggleAccountPanel(element, event);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -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 b4fe996f9685a085c14324a35a1d51e2fed569b7..c83d5e9bf92f8f2e3d96b121ba3b758dd124393b 100644
|
index 259b440375c7e84d373a134fea20cdbc1c1bae4b..a9ce22a2391b4ec0bf82ceedd35f4c9d9626bb28 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
|
||||||
@@ -1105,6 +1105,8 @@ export class nsContextMenu {
|
@@ -1104,6 +1104,8 @@ export class nsContextMenu {
|
||||||
!this.isSecureAboutPage()
|
!this.isSecureAboutPage()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
<panel id="zen-unified-site-data-panel"
|
<panel id="zen-unified-site-data-panel"
|
||||||
role="group"
|
role="group"
|
||||||
type="arrow"
|
type="arrow"
|
||||||
noautofocus="true"
|
noautofocus="true">
|
||||||
position="bottomright topright">
|
|
||||||
<panelmultiview mainViewId="unified-extensions-view">
|
<panelmultiview mainViewId="unified-extensions-view">
|
||||||
# We'll keep the view with this name/id in order to prevent
|
# We'll keep the view with this name/id in order to prevent
|
||||||
# any sort of future issues we may have if firefox decides
|
# any sort of future issues we may have if firefox decides
|
||||||
@@ -55,6 +54,17 @@
|
|||||||
<toolbarbutton id="zen-site-data-new-addon-button"
|
<toolbarbutton id="zen-site-data-new-addon-button"
|
||||||
class="subviewbutton toolbarbutton-1" />
|
class="subviewbutton toolbarbutton-1" />
|
||||||
</vbox>
|
</vbox>
|
||||||
|
|
||||||
|
# We don't really use this, but again, to keep firefox happy
|
||||||
|
# in case they decide to change something for this specific
|
||||||
|
# empty state, we keep it on the DOM
|
||||||
|
# https://searchfox.org/firefox-main/rev/e613f4df351a21871cfeadf7d5b4043ffad157b1/browser/components/customizableui/content/panelUI.inc.xhtml#101-106
|
||||||
|
<vbox id="unified-extensions-empty-state" context="">
|
||||||
|
<!-- Shown when no extensions are listed. -->
|
||||||
|
<html:img src="chrome://browser/skin/addons/extensions-panel-empty-illustration.svg" loading="lazy" />
|
||||||
|
<html:h2 class="subview-subheader" />
|
||||||
|
<description />
|
||||||
|
</vbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
|
||||||
# Keep this button on the DOM even though we hide it for ever,
|
# Keep this button on the DOM even though we hide it for ever,
|
||||||
|
|||||||
@@ -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 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b097351d60 100644
|
index f1cabb13ca4f86a2bafc1d93b7f882218a108eb2..2389b1addf24d17bd41fca65cfeb6f944479076d 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 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0
|
|||||||
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",
|
||||||
@@ -1458,7 +1459,7 @@ BrowserGlue.prototype = {
|
@@ -1452,7 +1453,7 @@ BrowserGlue.prototype = {
|
||||||
windowcount++;
|
windowcount++;
|
||||||
let tabbrowser = win.gBrowser;
|
let tabbrowser = win.gBrowser;
|
||||||
if (tabbrowser) {
|
if (tabbrowser) {
|
||||||
@@ -19,7 +19,7 @@ index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1623,6 +1624,8 @@ BrowserGlue.prototype = {
|
@@ -1617,6 +1618,8 @@ BrowserGlue.prototype = {
|
||||||
} else if (profileDataVersion < APP_DATA_VERSION) {
|
} else if (profileDataVersion < APP_DATA_VERSION) {
|
||||||
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||||
index 2a2c5a6fe903694abbac0be86c7b3c8adc1d0275..5571b827198474a2635a9bd968adbc8c96dbc353 100644
|
index 4ea9c9e88a1831dad7e42ebd8d0dd507102e8280..316aa626e525f05caac7f315e0ea7ae9d822b6af 100644
|
||||||
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||||
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||||
@@ -776,6 +776,7 @@ export class FeatureCallout {
|
@@ -777,6 +777,7 @@ export class FeatureCallout {
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
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 852cf2eee9113753fa0797be6dec80dcb9207703..93bb093e679320033a37b2af14e8e0e3c7621f94 100644
|
index 95621ae202378fb1ebceca5623a98b790b9eb5ff..fe6901f53f863bca20a514df0490499402d669ae 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
|
||||||
@@ -242,8 +242,8 @@ export var ToolbarContextMenu = {
|
@@ -244,7 +244,7 @@ export var ToolbarContextMenu = {
|
||||||
// Show/hide sidebar and vertical tabs menu items
|
|
||||||
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp");
|
|
||||||
let showSidebarActions =
|
let showSidebarActions =
|
||||||
- ["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||||
- toolbarItem?.localName == "toolbarspring";
|
toolbarItem?.localName == "toolbarspring" ||
|
||||||
+ (["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
- isTitlebarSpacer;
|
||||||
+ toolbarItem?.localName == "toolbarspring") && false;
|
+ isTitlebarSpacer && false;
|
||||||
|
|
||||||
let toggleVerticalTabsItem = document.getElementById(
|
let toggleVerticalTabsItem = document.getElementById(
|
||||||
"toolbar-context-toggle-vertical-tabs"
|
"toolbar-context-toggle-vertical-tabs"
|
||||||
);
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 85acb96a3deefed708ea768b2f163e7fd6480b97..bb3aed53758da7dafcfed4492acb0cbf2b80cd2f 100644
|
index 6cb22be6526b17d952a90fd414c49a31e9afde7a..84f8156e88027a79a40f14c77c83d6a2d19c8a72 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 @@
|
@@ -139,7 +139,7 @@
|
||||||
<panel id="appMenu-notification-popup"
|
<panel id="appMenu-notification-popup"
|
||||||
class="popup-notification-panel panel-no-padding"
|
class="popup-notification-panel panel-no-padding"
|
||||||
type="arrow"
|
type="arrow"
|
||||||
|
|||||||
@@ -1,18 +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 7156397d597579f745ea20ae2b9327433a31c8ec..23c15c60acd77150ea89bd6f2fa1685a0cfc37fd 100644
|
index d6393080aa8aff6c0f7b2043fd408b6f6249d0c4..bf37b46c4743b7619393c730720204380635666a 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
|
||||||
@@ -518,8 +518,7 @@ const PanelUI = {
|
@@ -608,10 +608,12 @@ const PanelUI = {
|
||||||
tempPanel.setAttribute("animate", "false");
|
|
||||||
}
|
|
||||||
tempPanel.setAttribute("context", "");
|
|
||||||
- document
|
|
||||||
- .getElementById(CustomizableUI.AREA_NAVBAR)
|
|
||||||
+ aAnchor.closest("toolbar")
|
|
||||||
.appendChild(tempPanel);
|
|
||||||
|
|
||||||
let multiView = document.createXULElement("panelmultiview");
|
|
||||||
@@ -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 +15,7 @@ index 7156397d597579f745ea20ae2b9327433a31c8ec..23c15c60acd77150ea89bd6f2fa1685a
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -961,7 +962,7 @@ const PanelUI = {
|
@@ -959,7 +961,7 @@ const PanelUI = {
|
||||||
el.removeAttribute("data-lazy-l10n-id");
|
el.removeAttribute("data-lazy-l10n-id");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -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 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce3dbfa7a3 100644
|
index 2488267f4be5142bcacf984635d9e9ecdb5f02e9..03127808b3cae28850cc276fac0f1acbca85d326 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
|
||||||
@@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase {
|
@@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase {
|
||||||
@@ -18,7 +18,7 @@ index 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce
|
|||||||
|
|
||||||
this._tabs.set(nativeTab, id);
|
this._tabs.set(nativeTab, id);
|
||||||
if (nativeTab.linkedBrowser) {
|
if (nativeTab.linkedBrowser) {
|
||||||
@@ -1271,6 +1273,10 @@ class TabManager extends TabManagerBase {
|
@@ -1273,6 +1275,10 @@ class TabManager extends TabManagerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
canAccessTab(nativeTab) {
|
canAccessTab(nativeTab) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3ed3a3058e 100644
|
index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8401e4226 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 {
|
@@ -328,12 +328,23 @@ class PlacesViewBase {
|
||||||
|
|
||||||
this._cleanPopup(aPopup);
|
this._cleanPopup(aPopup);
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
this._insertNewItemToPopup(child, fragment);
|
this._insertNewItemToPopup(child, fragment);
|
||||||
}
|
}
|
||||||
aPopup.insertBefore(fragment, aPopup._endMarker);
|
aPopup.insertBefore(fragment, aPopup._endMarker);
|
||||||
@@ -393,6 +404,7 @@ class PlacesViewBase {
|
@@ -391,6 +402,7 @@ class PlacesViewBase {
|
||||||
"scheme",
|
"scheme",
|
||||||
PlacesUIUtils.guessUrlSchemeForUI(aPlacesNode.uri)
|
PlacesUIUtils.guessUrlSchemeForUI(aPlacesNode.uri)
|
||||||
);
|
);
|
||||||
@@ -37,7 +37,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
} else if (PlacesUtils.containerTypes.includes(type)) {
|
} else if (PlacesUtils.containerTypes.includes(type)) {
|
||||||
element = document.createXULElement("menu");
|
element = document.createXULElement("menu");
|
||||||
element.setAttribute("container", "true");
|
element.setAttribute("container", "true");
|
||||||
@@ -980,25 +992,33 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1014,25 +1026,33 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
this._rootElt.firstChild.remove();
|
this._rootElt.firstChild.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
);
|
);
|
||||||
++startIndex;
|
++startIndex;
|
||||||
if (elt.localName != "toolbarseparator") {
|
if (elt.localName != "toolbarseparator") {
|
||||||
@@ -1006,15 +1026,12 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1040,15 +1060,12 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!elt) {
|
if (!elt) {
|
||||||
@@ -101,7 +101,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1024,7 +1041,7 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1058,7 +1075,7 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
|
|
||||||
let fragment = document.createDocumentFragment();
|
let fragment = document.createDocumentFragment();
|
||||||
for (let i = startIndex; i < limit; ++i) {
|
for (let i = startIndex; i < limit; ++i) {
|
||||||
@@ -110,7 +110,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
}
|
}
|
||||||
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
||||||
if (!this._isAlive) {
|
if (!this._isAlive) {
|
||||||
@@ -1086,6 +1103,8 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1120,6 +1137,8 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
"scheme",
|
"scheme",
|
||||||
PlacesUIUtils.guessUrlSchemeForUI(aChild.uri)
|
PlacesUIUtils.guessUrlSchemeForUI(aChild.uri)
|
||||||
);
|
);
|
||||||
@@ -119,7 +119,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2234,7 +2253,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
@@ -2268,7 +2287,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
||||||
PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri)
|
PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri)
|
||||||
);
|
);
|
||||||
element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode));
|
element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode));
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
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 a786155d80a9f1f09d209f2da11437ee2d662739..2e422b48b452698275118d336d1b16af6a221577 100644
|
index 65efb0666785cc79e58015e19ec55216bf4ec9c4..95941c52ffd4c9ee36f584413fb96d59721113db 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
|
||||||
@@ -30,3 +30,5 @@ browser.jar:
|
@@ -33,3 +33,5 @@ browser.jar:
|
||||||
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
|
content/browser/preferences/widgets/setting-pane.mjs (widgets/setting-pane/setting-pane.mjs)
|
||||||
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
|
content/browser/preferences/widgets/security-privacy-card.mjs (widgets/security-privacy/security-privacy-card/security-privacy-card.mjs)
|
||||||
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)
|
content/browser/preferences/widgets/security-privacy-card.css (widgets/security-privacy/security-privacy-card/security-privacy-card.css)
|
||||||
+
|
+
|
||||||
+ content/browser/preferences/zen-settings.js
|
+ content/browser/preferences/zen-settings.js
|
||||||
|
\ No newline at end of file
|
||||||
|
|||||||
@@ -1,20 +1,8 @@
|
|||||||
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
||||||
index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615fad5e0760 100644
|
index ff577c035ff6128f7ae948bc810082c92b3a624c..40f94fff53c63bdff28eaa68f9b0736d53c5b4f8 100644
|
||||||
--- a/browser/components/preferences/main.inc.xhtml
|
--- a/browser/components/preferences/main.inc.xhtml
|
||||||
+++ b/browser/components/preferences/main.inc.xhtml
|
+++ b/browser/components/preferences/main.inc.xhtml
|
||||||
@@ -29,6 +29,11 @@
|
@@ -141,7 +141,8 @@
|
||||||
<vbox id="startupPageBox">
|
|
||||||
<checkbox id="browserRestoreSession"
|
|
||||||
data-l10n-id="startup-restore-windows-and-tabs"/>
|
|
||||||
+ <vbox class="indent">
|
|
||||||
+ <checkbox id="zenWorkspaceContinueWhereLeftOff"
|
|
||||||
+ data-l10n-id="zen-workspace-continue-where-left-off"
|
|
||||||
+ preference="zen.workspaces.continue-where-left-off"/>
|
|
||||||
+ </vbox>
|
|
||||||
#ifdef XP_WIN
|
|
||||||
<hbox id="windowsLaunchOnLoginBox" align="center" hidden="true">
|
|
||||||
<checkbox id="windowsLaunchOnLogin"
|
|
||||||
@@ -189,7 +194,8 @@
|
|
||||||
<!-- Browser layout -->
|
<!-- Browser layout -->
|
||||||
<groupbox data-category="paneGeneral"
|
<groupbox data-category="paneGeneral"
|
||||||
data-subcategory="layout"
|
data-subcategory="layout"
|
||||||
@@ -24,7 +12,7 @@ index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615f
|
|||||||
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
||||||
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
||||||
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
||||||
@@ -420,6 +426,7 @@
|
@@ -346,6 +347,7 @@
|
||||||
languages-customize-add.label,
|
languages-customize-add.label,
|
||||||
" />
|
" />
|
||||||
</hbox>
|
</hbox>
|
||||||
|
|||||||
@@ -1,8 +1,20 @@
|
|||||||
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 259bc260328af1b1f2b95866e7cf92dec341a4b0..3cebff51774b2542a8d4d888aa99dc10929c80be 100644
|
index 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca323682e89e76 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) {
|
@@ -1117,6 +1117,11 @@ let SETTINGS_CONFIG = {
|
||||||
|
id: "browserRestoreSession",
|
||||||
|
l10nId: "startup-restore-windows-and-tabs",
|
||||||
|
},
|
||||||
|
+ {
|
||||||
|
+ id: "zenWorkspaceContinueWhereLeftOff",
|
||||||
|
+ l10nId: "zen-workspace-continue-where-left-off",
|
||||||
|
+ control: "moz-checkbox",
|
||||||
|
+ },
|
||||||
|
{
|
||||||
|
id: "windowsLaunchOnLogin",
|
||||||
|
l10nId: "windows-launch-on-login",
|
||||||
|
@@ -1611,7 +1616,7 @@ function getBundleForLocales(newLocales) {
|
||||||
])
|
])
|
||||||
);
|
);
|
||||||
return new Localization(
|
return new Localization(
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||||
index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778abd312dfd8 100644
|
index c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846ba3cffa9 100644
|
||||||
--- a/browser/components/preferences/preferences.js
|
--- a/browser/components/preferences/preferences.js
|
||||||
+++ b/browser/components/preferences/preferences.js
|
+++ b/browser/components/preferences/preferences.js
|
||||||
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||||
@@ -10,7 +10,7 @@ index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778ab
|
|||||||
],
|
],
|
||||||
resizeCallback: async ({ title, frame }) => {
|
resizeCallback: async ({ title, frame }) => {
|
||||||
// Search within main document and highlight matched keyword.
|
// Search within main document and highlight matched keyword.
|
||||||
@@ -196,6 +197,10 @@ function init_all() {
|
@@ -224,6 +225,10 @@ function init_all() {
|
||||||
register_module("paneSearch", gSearchPane);
|
register_module("paneSearch", gSearchPane);
|
||||||
register_module("panePrivacy", gPrivacyPane);
|
register_module("panePrivacy", gPrivacyPane);
|
||||||
register_module("paneContainers", gContainersPane);
|
register_module("paneContainers", gContainersPane);
|
||||||
@@ -19,5 +19,5 @@ index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778ab
|
|||||||
+ register_module("paneZenCKS", gZenCKSSettings);
|
+ register_module("paneZenCKS", gZenCKSSettings);
|
||||||
+ register_module("paneZenMarketplace", gZenMarketplaceManager);
|
+ register_module("paneZenMarketplace", gZenMarketplaceManager);
|
||||||
|
|
||||||
if (Services.prefs.getBoolPref("browser.translations.newSettingsUI.enable")) {
|
for (let [subPane, config] of Object.entries(CONFIG_PANES)) {
|
||||||
register_module("paneTranslations", gTranslationsPane);
|
subPane = friendlyPrefCategoryNameToInternalName(subPane);
|
||||||
|
|||||||
@@ -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 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222bb88a64b 100644
|
index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d2c4a0c92 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
|
||||||
@@ -45,6 +45,8 @@
|
@@ -45,6 +45,8 @@
|
||||||
@@ -11,7 +11,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
<link rel="localization" href="branding/brand.ftl"/>
|
<link rel="localization" href="branding/brand.ftl"/>
|
||||||
<link rel="localization" href="browser/browser.ftl"/>
|
<link rel="localization" href="browser/browser.ftl"/>
|
||||||
<!-- Used by fontbuilder.js -->
|
<!-- Used by fontbuilder.js -->
|
||||||
@@ -106,6 +108,11 @@
|
@@ -109,6 +111,11 @@
|
||||||
<hbox flex="1">
|
<hbox flex="1">
|
||||||
|
|
||||||
<vbox class="navigation">
|
<vbox class="navigation">
|
||||||
@@ -23,7 +23,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
<!-- category list -->
|
<!-- category list -->
|
||||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||||
<richlistitem id="category-general"
|
<richlistitem id="category-general"
|
||||||
@@ -118,6 +125,50 @@
|
@@ -121,6 +128,50 @@
|
||||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||||
</richlistitem>
|
</richlistitem>
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
<richlistitem id="category-home"
|
<richlistitem id="category-home"
|
||||||
class="category"
|
class="category"
|
||||||
value="paneHome"
|
value="paneHome"
|
||||||
@@ -229,11 +280,6 @@
|
@@ -232,11 +283,6 @@
|
||||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -86,7 +86,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
<vbox id="mainPrefPane">
|
<vbox id="mainPrefPane">
|
||||||
@@ -247,6 +293,10 @@
|
@@ -250,6 +296,10 @@
|
||||||
#include sync.inc.xhtml
|
#include sync.inc.xhtml
|
||||||
#include experimental.inc.xhtml
|
#include experimental.inc.xhtml
|
||||||
#include moreFromMozilla.inc.xhtml
|
#include moreFromMozilla.inc.xhtml
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 e59c536fc2fa06b11be9378a28285ac16fd16958..cf17ee3b6347b950fcf5bf260cd0631c77ffd1d3 100644
|
index 31b95644f820eda3267d3b52913ed0845abc1c80..1c8869418f7c88ed33601860dafd2c4eb0d5731f 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
|
||||||
@@ -223,6 +223,10 @@
|
@@ -223,6 +223,10 @@
|
||||||
|
|||||||
@@ -1136,3 +1136,8 @@ Preferences.addAll([
|
|||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
Preferences.addSetting({
|
||||||
|
id: 'zenWorkspaceContinueWhereLeftOff',
|
||||||
|
pref: 'zen.workspaces.continue-where-left-off',
|
||||||
|
});
|
||||||
|
|||||||
@@ -26,6 +26,9 @@
|
|||||||
<checkbox id="zenWorkspacesForceContainerTabsToWorkspace"
|
<checkbox id="zenWorkspacesForceContainerTabsToWorkspace"
|
||||||
data-l10n-id="zen-settings-workspaces-force-container-tabs-to-workspace"
|
data-l10n-id="zen-settings-workspaces-force-container-tabs-to-workspace"
|
||||||
preference="zen.workspaces.force-container-workspace"/>
|
preference="zen.workspaces.force-container-workspace"/>
|
||||||
|
<checkbox id="zenTabsCloseOnBackWithNoHistory"
|
||||||
|
data-l10n-id="zen-tabs-close-on-back-with-no-history"
|
||||||
|
preference="zen.tabs.close-on-back-with-no-history"/>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<hbox id="zenTabsUnloadCategory"
|
<hbox id="zenTabsUnloadCategory"
|
||||||
|
|||||||
@@ -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 55f90f4e802480728bbd5ef962b507183e017997..2a83f861fe6edee2b127c8d7946abcdcdbf677f5 100644
|
index 15fdb0cd7664c2b49977902d7f4c7a117d82cf15..6aedbc18de6604b63b2586e7d9745a4c4e7e38ae 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
|
||||||
@@ -430,7 +430,7 @@ export var SearchUIUtils = {
|
@@ -434,7 +434,7 @@ export var SearchUIUtils = {
|
||||||
triggeringSearchEngine: engine.name,
|
triggeringSearchEngine: engine.name,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
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 eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d89fb95494 100644
|
index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..f13ed1412bb7ae6623aa2605d7691d10540eb659 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
|
||||||
@@ -126,6 +126,8 @@ const TAB_EVENTS = [
|
@@ -127,6 +127,8 @@ const TAB_EVENTS = [
|
||||||
"TabUngrouped",
|
|
||||||
"TabGroupCollapse",
|
"TabGroupCollapse",
|
||||||
"TabGroupExpand",
|
"TabGroupExpand",
|
||||||
|
"TabSplitViewActivate",
|
||||||
+ "TabAddedToEssentials",
|
+ "TabAddedToEssentials",
|
||||||
+ "TabRemovedFromEssentials",
|
+ "TabRemovedFromEssentials",
|
||||||
];
|
];
|
||||||
|
|
||||||
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||||
@@ -1904,6 +1906,8 @@ var SessionStoreInternal = {
|
@@ -1911,6 +1913,8 @@ var SessionStoreInternal = {
|
||||||
case "TabPinned":
|
case "TabPinned":
|
||||||
case "TabUnpinned":
|
case "TabUnpinned":
|
||||||
case "SwapDocShells":
|
case "SwapDocShells":
|
||||||
@@ -20,7 +20,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
this.saveStateDelayed(win);
|
this.saveStateDelayed(win);
|
||||||
break;
|
break;
|
||||||
case "TabGroupCreate":
|
case "TabGroupCreate":
|
||||||
@@ -2139,7 +2143,6 @@ var SessionStoreInternal = {
|
@@ -2151,7 +2155,6 @@ var SessionStoreInternal = {
|
||||||
if (closedWindowState) {
|
if (closedWindowState) {
|
||||||
let newWindowState;
|
let newWindowState;
|
||||||
if (
|
if (
|
||||||
@@ -28,7 +28,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
!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.
|
||||||
@@ -2372,11 +2375,9 @@ var SessionStoreInternal = {
|
@@ -2384,11 +2387,9 @@ var SessionStoreInternal = {
|
||||||
tabbrowser.selectedTab.label;
|
tabbrowser.selectedTab.label;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
|
|
||||||
// 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
|
||||||
@@ -3361,7 +3362,7 @@ var SessionStoreInternal = {
|
@@ -3373,7 +3374,7 @@ var SessionStoreInternal = {
|
||||||
if (!isPrivateWindow && tabState.isPrivate) {
|
if (!isPrivateWindow && tabState.isPrivate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4073,6 +4074,11 @@ var SessionStoreInternal = {
|
@@ -4089,6 +4090,11 @@ var SessionStoreInternal = {
|
||||||
Math.min(tabState.index, tabState.entries.length)
|
Math.min(tabState.index, tabState.entries.length)
|
||||||
);
|
);
|
||||||
tabState.pinned = false;
|
tabState.pinned = false;
|
||||||
@@ -61,7 +61,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
|
|
||||||
if (inBackground === false) {
|
if (inBackground === false) {
|
||||||
aWindow.gBrowser.selectedTab = newTab;
|
aWindow.gBrowser.selectedTab = newTab;
|
||||||
@@ -4509,6 +4515,7 @@ var SessionStoreInternal = {
|
@@ -4525,6 +4531,7 @@ var SessionStoreInternal = {
|
||||||
// Append the tab if we're opening into a different window,
|
// 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,
|
||||||
@@ -69,7 +69,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
userContextId: state.userContextId,
|
userContextId: state.userContextId,
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
@@ -5358,7 +5365,7 @@ var SessionStoreInternal = {
|
@@ -5374,7 +5381,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];
|
||||||
@@ -78,7 +78,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
removableTabs.push(tab);
|
removableTabs.push(tab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5418,7 +5425,7 @@ var SessionStoreInternal = {
|
@@ -5434,7 +5441,7 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceID = aWindow.getWorkspaceID();
|
let workspaceID = aWindow.getWorkspaceID();
|
||||||
@@ -87,7 +87,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
winData.workspaceID = workspaceID;
|
winData.workspaceID = workspaceID;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -5609,11 +5616,12 @@ var SessionStoreInternal = {
|
@@ -5625,11 +5632,12 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let tabbrowser = aWindow.gBrowser;
|
let tabbrowser = aWindow.gBrowser;
|
||||||
@@ -101,7 +101,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
// 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) {
|
||||||
@@ -5624,6 +5632,7 @@ var SessionStoreInternal = {
|
@@ -5640,6 +5648,7 @@ var SessionStoreInternal = {
|
||||||
tabsData.push(tabData);
|
tabsData.push(tabData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
// 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) {
|
||||||
@@ -5636,7 +5645,7 @@ var SessionStoreInternal = {
|
@@ -5652,7 +5661,7 @@ var SessionStoreInternal = {
|
||||||
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
// 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) {
|
||||||
@@ -118,7 +118,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
winData.title = tabbrowser.tabs[0].label;
|
winData.title = tabbrowser.tabs[0].label;
|
||||||
}
|
}
|
||||||
winData.selected = selectedIndex;
|
winData.selected = selectedIndex;
|
||||||
@@ -5748,8 +5757,8 @@ var SessionStoreInternal = {
|
@@ -5764,8 +5773,8 @@ var SessionStoreInternal = {
|
||||||
// selectTab represents.
|
// selectTab represents.
|
||||||
let selectTab = 0;
|
let selectTab = 0;
|
||||||
if (overwriteTabs) {
|
if (overwriteTabs) {
|
||||||
@@ -129,7 +129,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
selectTab = Math.min(selectTab, winData.tabs.length);
|
selectTab = Math.min(selectTab, winData.tabs.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5792,6 +5801,8 @@ var SessionStoreInternal = {
|
@@ -5808,6 +5817,8 @@ var SessionStoreInternal = {
|
||||||
winData.tabs,
|
winData.tabs,
|
||||||
winData.groups ?? []
|
winData.groups ?? []
|
||||||
);
|
);
|
||||||
@@ -138,7 +138,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
this._log.debug(
|
this._log.debug(
|
||||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||||
);
|
);
|
||||||
@@ -6348,6 +6359,25 @@ var SessionStoreInternal = {
|
@@ -6371,6 +6382,25 @@ var SessionStoreInternal = {
|
||||||
|
|
||||||
// Most of tabData has been restored, now continue with restoring
|
// Most of tabData has been restored, now continue with restoring
|
||||||
// attributes that may trigger external events.
|
// attributes that may trigger external events.
|
||||||
@@ -164,7 +164,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
|
|
||||||
if (tabData.pinned) {
|
if (tabData.pinned) {
|
||||||
tabbrowser.pinTab(tab);
|
tabbrowser.pinTab(tab);
|
||||||
@@ -7263,7 +7293,7 @@ var SessionStoreInternal = {
|
@@ -7289,7 +7319,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; ) {
|
||||||
|
|||||||
@@ -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 c4edb5442e5243b7d9fe35e1774b2fc651903601..d58076fedafe07d3401ab1723eaa837fabbae09f 100644
|
index 220c3c83fa09daaec433803a4655a20114a137a6..1ef8adc3ecfa61839bb993f7fc090133bffe77db 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
|
||||||
@@ -779,7 +779,7 @@ var SidebarController = {
|
@@ -793,7 +793,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");
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||||
index 773f595e89e268578ba153907babec95b58a155a..7cb99cde00c19f50fd9aa48ab1efcfaeaef89771 100644
|
index bcd7689e9d68ef8b171c327188174334c4271e21..f69180acb87644f109aa91b871e347f1b1835f53 100644
|
||||||
--- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
--- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||||
+++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
+++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||||
@@ -937,6 +937,7 @@ export class AsyncTabSwitcher {
|
@@ -938,6 +938,7 @@ export class AsyncTabSwitcher {
|
||||||
return !(
|
|
||||||
this.tabbrowser._printPreviewBrowsers.has(browser) ||
|
this.tabbrowser._printPreviewBrowsers.has(browser) ||
|
||||||
|
this.tabbrowser.splitViewBrowsers.includes(browser) ||
|
||||||
lazy.PictureInPicture.isOriginatingBrowser(browser)
|
lazy.PictureInPicture.isOriginatingBrowser(browser)
|
||||||
+ || browser?.parentNode?.parentNode?.parentNode?.classList?.contains("zen-glance-background")
|
+ || browser?.parentNode?.parentNode?.parentNode?.classList?.contains("zen-glance-background")
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs
|
diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||||
index 20a543dede6bf4428c8af19c5d0589788ddd8eaa..27a378e70f5b280b720c95ba8dac2cc4e88985be 100644
|
index b394a980869d5e5df01b6afdd81e0f41c090e6ec..236c99db0dfa5ebcba50d55c1e4eb6ab7b8110b2 100644
|
||||||
--- a/browser/components/tabbrowser/TabsList.sys.mjs
|
--- a/browser/components/tabbrowser/TabsList.sys.mjs
|
||||||
+++ b/browser/components/tabbrowser/TabsList.sys.mjs
|
+++ b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||||
@@ -87,7 +87,7 @@ class TabsListBase {
|
@@ -87,7 +87,7 @@ class TabsListBase {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3e8781666 100644
|
index 958728cde19dd7cc24692baa89e11fcab816ab82..32e2b6af2536133f170bd5e14c47392ded8440eb 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 = {
|
@@ -249,7 +249,8 @@ var ctrlTab = {
|
||||||
},
|
},
|
||||||
|
|
||||||
get tabList() {
|
get tabList() {
|
||||||
@@ -12,7 +12,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
|||||||
},
|
},
|
||||||
|
|
||||||
init: function ctrlTab_init() {
|
init: function ctrlTab_init() {
|
||||||
@@ -463,7 +464,7 @@ var ctrlTab = {
|
@@ -460,7 +461,7 @@ var ctrlTab = {
|
||||||
// If the tab is hidden, don't add it to the list unless it's selected
|
// 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 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +488,7 @@ var ctrlTab = {
|
@@ -484,7 +485,7 @@ var ctrlTab = {
|
||||||
},
|
},
|
||||||
|
|
||||||
open: function ctrlTab_open() {
|
open: function ctrlTab_open() {
|
||||||
@@ -30,7 +30,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,7 +766,7 @@ var ctrlTab = {
|
@@ -763,7 +764,7 @@ var ctrlTab = {
|
||||||
_initRecentlyUsedTabs() {
|
_initRecentlyUsedTabs() {
|
||||||
this._recentlyUsedTabs = Array.prototype.filter.call(
|
this._recentlyUsedTabs = Array.prototype.filter.call(
|
||||||
gBrowser.tabs,
|
gBrowser.tabs,
|
||||||
|
|||||||
439
src/browser/components/tabbrowser/content/drag-and-drop-js.patch
Normal file
439
src/browser/components/tabbrowser/content/drag-and-drop-js.patch
Normal file
@@ -0,0 +1,439 @@
|
|||||||
|
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
|
||||||
|
index c97c661656868bc7faaf7c66c9702eea056aafe1..aa9f0ed071e4898cac2b98a4d81e95df6a41b8dd 100644
|
||||||
|
--- a/browser/components/tabbrowser/content/drag-and-drop.js
|
||||||
|
+++ b/browser/components/tabbrowser/content/drag-and-drop.js
|
||||||
|
@@ -32,6 +32,9 @@
|
||||||
|
* @returns {MozTabbrowserTab|vbox}
|
||||||
|
*/
|
||||||
|
const elementToMove = element => {
|
||||||
|
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ return element.group;
|
||||||
|
+ }
|
||||||
|
if (isTab(element)) {
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
@@ -118,6 +121,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||||
|
+ if (draggedTab && dropEffect === "move") {
|
||||||
|
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
|
||||||
|
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
|
||||||
|
+ }
|
||||||
|
if (
|
||||||
|
(dropEffect == "move" || dropEffect == "copy") &&
|
||||||
|
document == draggedTab.ownerDocument &&
|
||||||
|
@@ -272,6 +279,18 @@
|
||||||
|
|
||||||
|
this.#tabDropIndicator.hidden = true;
|
||||||
|
event.stopPropagation();
|
||||||
|
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
|
||||||
|
+ draggedTab.removeAttribute("zen-has-splitted");
|
||||||
|
+ draggedTab._visuallySelected = false;
|
||||||
|
+ }
|
||||||
|
+ if (draggedTab && dropEffect == "move") {
|
||||||
|
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
||||||
|
+
|
||||||
|
+ if (moved) {
|
||||||
|
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
if (draggedTab && dropEffect == "copy") {
|
||||||
|
let duplicatedDraggedTab;
|
||||||
|
let duplicatedTabs = [];
|
||||||
|
@@ -297,8 +316,9 @@
|
||||||
|
let translateOffsetY = oldTranslateY % tabHeight;
|
||||||
|
let newTranslateX = oldTranslateX - translateOffsetX;
|
||||||
|
let newTranslateY = oldTranslateY - translateOffsetY;
|
||||||
|
- let isPinned = draggedTab.pinned;
|
||||||
|
- let numPinned = gBrowser.pinnedTabCount;
|
||||||
|
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||||
|
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||||
|
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||||
|
|
||||||
|
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
||||||
|
// Update both translate axis for pinned vertical expanded tabs
|
||||||
|
@@ -314,8 +334,8 @@
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(
|
||||||
|
- isPinned ? 0 : numPinned,
|
||||||
|
- isPinned ? numPinned : undefined
|
||||||
|
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
|
||||||
|
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
|
||||||
|
);
|
||||||
|
let size = this.#tabbrowserTabs.verticalMode ? "height" : "width";
|
||||||
|
let screenAxis = this.#tabbrowserTabs.verticalMode
|
||||||
|
@@ -368,11 +388,13 @@
|
||||||
|
this.#dragToPinPromoCard,
|
||||||
|
];
|
||||||
|
let shouldPin =
|
||||||
|
+ false &&
|
||||||
|
isTab(draggedTab) &&
|
||||||
|
!draggedTab.pinned &&
|
||||||
|
(overPinnedDropIndicator ||
|
||||||
|
dragToPinTargets.some(el => el.contains(event.target)));
|
||||||
|
let shouldUnpin =
|
||||||
|
+ false &&
|
||||||
|
isTab(draggedTab) &&
|
||||||
|
draggedTab.pinned &&
|
||||||
|
this.#tabbrowserTabs.arrowScrollbox.contains(event.target);
|
||||||
|
@@ -390,6 +412,7 @@
|
||||||
|
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||||
|
} else if (this.#tabbrowserTabs.verticalMode) {
|
||||||
|
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||||
|
+ shouldTranslate = false;
|
||||||
|
} else {
|
||||||
|
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||||
|
}
|
||||||
|
@@ -446,7 +469,7 @@
|
||||||
|
item.removeAttribute("tabdrop-samewindow");
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
- if (gReduceMotion) {
|
||||||
|
+ if (true || gReduceMotion) {
|
||||||
|
postTransitionCleanup();
|
||||||
|
} else {
|
||||||
|
let onTransitionEnd = transitionendEvent => {
|
||||||
|
@@ -586,6 +609,7 @@
|
||||||
|
|
||||||
|
let nextItem = this.#tabbrowserTabs.ariaFocusableItems[newIndex];
|
||||||
|
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||||
|
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
||||||
|
gBrowser.loadTabs(urls, {
|
||||||
|
inBackground,
|
||||||
|
replace,
|
||||||
|
@@ -623,7 +647,16 @@
|
||||||
|
this.#expandGroupOnDrop(draggedTab);
|
||||||
|
}
|
||||||
|
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
||||||
|
-
|
||||||
|
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
||||||
|
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
||||||
|
+ if (moved) {
|
||||||
|
+ delete draggedTab._dragData;
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ } else if (dt.mozUserCancelled) {
|
||||||
|
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true);
|
||||||
|
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||||
|
+ }
|
||||||
|
if (
|
||||||
|
dt.mozUserCancelled ||
|
||||||
|
dt.dropEffect != "none" ||
|
||||||
|
@@ -827,7 +860,10 @@
|
||||||
|
#getDragTarget(event, { ignoreSides = false } = {}) {
|
||||||
|
let { target } = event;
|
||||||
|
while (target) {
|
||||||
|
- if (isTab(target) || isTabGroupLabel(target)) {
|
||||||
|
+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) {
|
||||||
|
+ if (target.classList?.contains("tab-group-label-container")) {
|
||||||
|
+ target = target.querySelector(".tab-group-label");
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
target = target.parentNode;
|
||||||
|
@@ -844,14 +880,17 @@
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (target?.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ target = target.group.labelElement;
|
||||||
|
+ }
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
#isContainerVerticalPinnedGrid(tab) {
|
||||||
|
return (
|
||||||
|
this.#tabbrowserTabs.verticalMode &&
|
||||||
|
- tab.pinned &&
|
||||||
|
- this.#tabbrowserTabs.hasAttribute("expanded") &&
|
||||||
|
+ (tab.hasAttribute("zen-essential")) &&
|
||||||
|
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
||||||
|
!this.#tabbrowserTabs.expandOnHover
|
||||||
|
);
|
||||||
|
}
|
||||||
|
@@ -882,7 +921,8 @@
|
||||||
|
isTabGroupLabel(draggedTab) &&
|
||||||
|
draggedTab._dragData?.expandGroupOnDrop
|
||||||
|
) {
|
||||||
|
- draggedTab.group.collapsed = false;
|
||||||
|
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active");
|
||||||
|
+ gZenFolders.animateGroupMove(draggedTab.group, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -947,10 +987,7 @@
|
||||||
|
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||||
|
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||||
|
// Set this before adjusting dragged tab's position
|
||||||
|
- let pinnedTabs = this.#tabbrowserTabs.visibleTabs.slice(
|
||||||
|
- 0,
|
||||||
|
- gBrowser.pinnedTabCount
|
||||||
|
- );
|
||||||
|
+ let pinnedTabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||||
|
let tabsPerRow = 0;
|
||||||
|
let position = RTL_UI
|
||||||
|
? window.windowUtils.getBoundsWithoutFlushing(
|
||||||
|
@@ -1117,7 +1154,7 @@
|
||||||
|
let dropEffect = this.getDropEffectForTabDrag(event);
|
||||||
|
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
||||||
|
let collapseTabGroupDuringDrag =
|
||||||
|
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
||||||
|
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
||||||
|
|
||||||
|
tab._dragData = {
|
||||||
|
offsetX: this.#tabbrowserTabs.verticalMode
|
||||||
|
@@ -1127,7 +1164,7 @@
|
||||||
|
? event.screenY - window.screenY - tabOffset
|
||||||
|
: event.screenY - window.screenY,
|
||||||
|
scrollPos:
|
||||||
|
- this.#tabbrowserTabs.verticalMode && tab.pinned
|
||||||
|
+ this.#tabbrowserTabs.verticalMode && tab.pinned && false
|
||||||
|
? this.#tabbrowserTabs.pinnedTabsContainer.scrollPosition
|
||||||
|
: this.#tabbrowserTabs.arrowScrollbox.scrollPosition,
|
||||||
|
screenX: event.screenX,
|
||||||
|
@@ -1156,6 +1193,7 @@
|
||||||
|
|
||||||
|
if (collapseTabGroupDuringDrag) {
|
||||||
|
tab.group.collapsed = true;
|
||||||
|
+ gZenFolders.animateGroupMove(tab.group);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1174,6 +1212,16 @@
|
||||||
|
when the tab is first selected to be dragged.
|
||||||
|
*/
|
||||||
|
#updateTabStylesOnDrag(tab) {
|
||||||
|
+ let { movingTabs: zenMovingTabs } = tab._dragData;
|
||||||
|
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
|
||||||
|
+ if (isTabGroupLabel(tab)) {
|
||||||
|
+ movingTab = movingTab.parentElement;
|
||||||
|
+ }
|
||||||
|
+ // "dragtarget" contains the following rules which must only be set AFTER the above
|
||||||
|
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
|
||||||
|
+ movingTab.setAttribute("zen-dragtarget", "");
|
||||||
|
+ }
|
||||||
|
+ return;
|
||||||
|
let isPinned = tab.pinned;
|
||||||
|
let numPinned = gBrowser.pinnedTabCount;
|
||||||
|
let allTabs = this.#tabbrowserTabs.ariaFocusableItems;
|
||||||
|
@@ -1624,10 +1672,7 @@
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- let tabs = this.#tabbrowserTabs.visibleTabs.slice(
|
||||||
|
- 0,
|
||||||
|
- gBrowser.pinnedTabCount
|
||||||
|
- );
|
||||||
|
+ let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||||
|
|
||||||
|
let directionX = screenX > dragData.animLastScreenX;
|
||||||
|
let directionY = screenY > dragData.animLastScreenY;
|
||||||
|
@@ -1636,6 +1681,8 @@
|
||||||
|
|
||||||
|
let { width: tabWidth, height: tabHeight } =
|
||||||
|
draggedTab.getBoundingClientRect();
|
||||||
|
+ tabWidth += 4; // Add 4px to account for the gap
|
||||||
|
+ tabHeight += 4;
|
||||||
|
let shiftSizeX = tabWidth * movingTabs.length;
|
||||||
|
let shiftSizeY = tabHeight;
|
||||||
|
dragData.tabWidth = tabWidth;
|
||||||
|
@@ -1672,8 +1719,8 @@
|
||||||
|
let lastBoundX =
|
||||||
|
lastTabInRow.screenX +
|
||||||
|
lastTabInRow.getBoundingClientRect().width -
|
||||||
|
- (lastMovingTabScreenX + tabWidth);
|
||||||
|
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
|
||||||
|
+ (lastMovingTabScreenX + tabWidth) + 4;
|
||||||
|
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
|
||||||
|
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
||||||
|
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
||||||
|
|
||||||
|
@@ -1833,13 +1880,18 @@
|
||||||
|
this.#clearDragOverGroupingTimer();
|
||||||
|
this.#clearPinnedDropIndicatorTimer();
|
||||||
|
|
||||||
|
- let isPinned = draggedTab.pinned;
|
||||||
|
- let numPinned = gBrowser.pinnedTabCount;
|
||||||
|
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||||
|
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||||
|
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||||
|
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
|
||||||
|
let allTabs = this.#tabbrowserTabs.ariaFocusableItems;
|
||||||
|
let tabs = allTabs.slice(
|
||||||
|
- isPinned ? 0 : numPinned,
|
||||||
|
- isPinned ? numPinned : undefined
|
||||||
|
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
|
||||||
|
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
|
||||||
|
);
|
||||||
|
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ draggedTab = draggedTab.group.labelElement;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (this.#rtlMode) {
|
||||||
|
tabs.reverse();
|
||||||
|
@@ -1854,7 +1906,7 @@
|
||||||
|
let translateAxis = this.#tabbrowserTabs.verticalMode
|
||||||
|
? "translateY"
|
||||||
|
: "translateX";
|
||||||
|
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
|
||||||
|
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
|
||||||
|
let tabSize = this.#tabbrowserTabs.verticalMode ? tabHeight : tabWidth;
|
||||||
|
let translateX = event.screenX - dragData.screenX;
|
||||||
|
let translateY = event.screenY - dragData.screenY;
|
||||||
|
@@ -1870,6 +1922,12 @@
|
||||||
|
);
|
||||||
|
let lastMovingTab = movingTabs.at(-1);
|
||||||
|
let firstMovingTab = movingTabs[0];
|
||||||
|
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ lastMovingTab = lastMovingTab.group;
|
||||||
|
+ }
|
||||||
|
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ firstMovingTab = firstMovingTab.group;
|
||||||
|
+ }
|
||||||
|
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||||
|
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||||
|
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||||
|
@@ -1884,6 +1942,13 @@
|
||||||
|
let endBound = this.#rtlMode
|
||||||
|
? endEdge(this.#tabbrowserTabs) - lastMovingTabScreen
|
||||||
|
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
||||||
|
+ {
|
||||||
|
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
|
||||||
|
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
|
||||||
|
+ 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
|
||||||
|
@@ -2075,6 +2140,8 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
let dropElement = getOverlappedElement();
|
||||||
|
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
|
||||||
|
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
|
||||||
|
|
||||||
|
let newDropElementIndex;
|
||||||
|
if (dropElement) {
|
||||||
|
@@ -2157,7 +2224,7 @@
|
||||||
|
? Services.prefs.getIntPref(
|
||||||
|
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
||||||
|
) / 100
|
||||||
|
- : 0.5;
|
||||||
|
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
|
||||||
|
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
||||||
|
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
||||||
|
if (logicalForward && shouldMoveOver) {
|
||||||
|
@@ -2190,6 +2257,7 @@
|
||||||
|
// If dragging a group over another group, don't make it look like it is
|
||||||
|
// possible to drop the dragged group inside the other group.
|
||||||
|
if (
|
||||||
|
+ false &&
|
||||||
|
isTabGroupLabel(draggedTab) &&
|
||||||
|
dropElement?.group &&
|
||||||
|
(!dropElement.group.collapsed ||
|
||||||
|
@@ -2216,20 +2284,13 @@
|
||||||
|
let isOutOfBounds = isPinned
|
||||||
|
? dropElement.elementIndex >= numPinned
|
||||||
|
: dropElement.elementIndex < numPinned;
|
||||||
|
- if (isOutOfBounds) {
|
||||||
|
- // Drop after last pinned tab
|
||||||
|
- dropElement = this.#tabbrowserTabs.ariaFocusableItems[numPinned - 1];
|
||||||
|
- dropBefore = false;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (
|
||||||
|
- gBrowser._tabGroupsEnabled &&
|
||||||
|
- isTab(draggedTab) &&
|
||||||
|
- !isPinned &&
|
||||||
|
- (!numPinned || newDropElementIndex > numPinned)
|
||||||
|
- ) {
|
||||||
|
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
|
||||||
|
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
||||||
|
+ if (draggedTab && !dropElement?.group) {
|
||||||
|
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||||
|
+ }
|
||||||
|
let groupingDelay = Services.prefs.getIntPref(
|
||||||
|
"browser.tabs.dragDrop.createGroup.delayMS"
|
||||||
|
);
|
||||||
|
@@ -2237,6 +2298,7 @@
|
||||||
|
// When dragging tab(s) over an ungrouped tab, signal to the user
|
||||||
|
// that dropping the tab(s) will create a new tab group.
|
||||||
|
let shouldCreateGroupOnDrop =
|
||||||
|
+ false &&
|
||||||
|
!movingTabsSet.has(dropElement) &&
|
||||||
|
isTab(dropElement) &&
|
||||||
|
!dropElement?.group &&
|
||||||
|
@@ -2245,6 +2307,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;
|
||||||
|
@@ -2302,6 +2365,14 @@
|
||||||
|
dropElement = dropElementGroup.tabs[0];
|
||||||
|
dropBefore = true;
|
||||||
|
}
|
||||||
|
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
|
||||||
|
+ dropElement,
|
||||||
|
+ draggedTab,
|
||||||
|
+ overlapPercent,
|
||||||
|
+ movingTabs,
|
||||||
|
+ dropBefore,
|
||||||
|
+ colorCode
|
||||||
|
+ ));
|
||||||
|
}
|
||||||
|
this.#setDragOverGroupColor(colorCode);
|
||||||
|
this.#tabbrowserTabs.toggleAttribute(
|
||||||
|
@@ -2324,10 +2395,11 @@
|
||||||
|
dragData.dropBefore = dropBefore;
|
||||||
|
dragData.animDropElementIndex = newDropElementIndex;
|
||||||
|
|
||||||
|
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
|
||||||
|
// Shift background tabs to leave a gap where the dragged tab
|
||||||
|
// would currently be dropped.
|
||||||
|
for (let item of tabs) {
|
||||||
|
- if (item == draggedTab) {
|
||||||
|
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2417,11 +2489,13 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
finishAnimateTabMove() {
|
||||||
|
+ gZenPinnedTabManager.onDragFinish();
|
||||||
|
if (!this.#isMovingTab()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.#setMovingTabMode(false);
|
||||||
|
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||||
|
|
||||||
|
for (let item of this.#tabbrowserTabs.ariaFocusableItems) {
|
||||||
|
this.#resetGroupTarget(item);
|
||||||
|
@@ -2457,7 +2531,7 @@
|
||||||
|
tab.style.left = "";
|
||||||
|
tab.style.top = "";
|
||||||
|
tab.style.maxWidth = "";
|
||||||
|
- tab.removeAttribute("dragtarget");
|
||||||
|
+ tab.removeAttribute("zen-dragtarget");
|
||||||
|
}
|
||||||
|
for (let label of draggedTabDocument.getElementsByClassName(
|
||||||
|
"tab-group-label-container"
|
||||||
|
@@ -2467,7 +2541,7 @@
|
||||||
|
label.style.left = "";
|
||||||
|
label.style.top = "";
|
||||||
|
label.style.maxWidth = "";
|
||||||
|
- label.removeAttribute("dragtarget");
|
||||||
|
+ label.removeAttribute("zen-dragtarget");
|
||||||
|
}
|
||||||
|
let periphery = draggedTabDocument.getElementById(
|
||||||
|
"tabbrowser-arrowscrollbox-periphery"
|
||||||
@@ -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 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362efc001afdd 100644
|
index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 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 @@
|
||||||
@@ -42,7 +42,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
".tab-label-container":
|
".tab-label-container":
|
||||||
"pinned,selected=visuallyselected,labeldirection",
|
"pinned,selected=visuallyselected,labeldirection",
|
||||||
".tab-label":
|
".tab-label":
|
||||||
@@ -184,7 +187,7 @@
|
@@ -186,7 +189,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
set _visuallySelected(val) {
|
set _visuallySelected(val) {
|
||||||
@@ -51,7 +51,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,11 +223,21 @@
|
@@ -222,11 +225,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get visible() {
|
get visible() {
|
||||||
@@ -78,7 +78,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
get hidden() {
|
get hidden() {
|
||||||
@@ -295,7 +308,7 @@
|
@@ -297,7 +310,7 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
get lastAccessed() {
|
get lastAccessed() {
|
||||||
@@ -372,8 +385,11 @@
|
@@ -374,8 +387,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get group() {
|
get group() {
|
||||||
@@ -101,7 +101,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -468,6 +484,8 @@
|
@@ -470,6 +486,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") ||
|
||||||
@@ -110,7 +110,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
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")
|
||||||
) {
|
) {
|
||||||
@@ -522,6 +540,10 @@
|
@@ -524,6 +542,10 @@
|
||||||
this.style.MozUserFocus = "";
|
this.style.MozUserFocus = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
on_click(event) {
|
on_click(event) {
|
||||||
if (event.button != 0) {
|
if (event.button != 0) {
|
||||||
return;
|
return;
|
||||||
@@ -570,6 +592,7 @@
|
@@ -572,6 +594,7 @@
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -129,7 +129,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
gBrowser.removeTab(this, {
|
gBrowser.removeTab(this, {
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
@@ -582,6 +605,14 @@
|
@@ -584,6 +607,14 @@
|
||||||
// (see tabbrowser-tabs 'click' handler).
|
// (see tabbrowser-tabs 'click' handler).
|
||||||
gBrowser.tabContainer._blockDblClick = true;
|
gBrowser.tabContainer._blockDblClick = true;
|
||||||
}
|
}
|
||||||
@@ -144,7 +144,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
on_dblclick(event) {
|
on_dblclick(event) {
|
||||||
@@ -605,6 +636,8 @@
|
@@ -607,6 +638,8 @@
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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 c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394b7dbc6a7 100644
|
index c0eafd4faf8d57b8486c5bf8917375850ec8147e..326bf96d9346aba7096d518fbf63cc349868d0d0 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
|
||||||
@@ -432,15 +432,64 @@
|
@@ -450,15 +450,64 @@
|
||||||
return this.tabContainer.visibleTabs;
|
return this.tabContainer.visibleTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
set selectedTab(val) {
|
set selectedTab(val) {
|
||||||
if (
|
if (
|
||||||
gSharedTabWarning.willShowSharedTabWarning(val) ||
|
gSharedTabWarning.willShowSharedTabWarning(val) ||
|
||||||
@@ -588,6 +637,7 @@
|
@@ -613,6 +662,7 @@
|
||||||
this.tabpanels.appendChild(panel);
|
this.tabpanels.appendChild(panel);
|
||||||
|
|
||||||
let tab = this.tabs[0];
|
let tab = this.tabs[0];
|
||||||
@@ -77,7 +77,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
tab.linkedPanel = uniqueId;
|
tab.linkedPanel = uniqueId;
|
||||||
this._selectedTab = tab;
|
this._selectedTab = tab;
|
||||||
this._selectedBrowser = browser;
|
this._selectedBrowser = browser;
|
||||||
@@ -873,13 +923,17 @@
|
@@ -898,13 +948,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.showTab(aTab);
|
this.showTab(aTab);
|
||||||
@@ -96,7 +96,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
aTab.setAttribute("pinned", "true");
|
aTab.setAttribute("pinned", "true");
|
||||||
this._updateTabBarForPinnedTabs();
|
this._updateTabBarForPinnedTabs();
|
||||||
@@ -892,11 +946,15 @@
|
@@ -917,11 +971,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#handleTabMove(aTab, () => {
|
this.#handleTabMove(aTab, () => {
|
||||||
@@ -113,7 +113,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
});
|
});
|
||||||
|
|
||||||
aTab.style.marginInlineStart = "";
|
aTab.style.marginInlineStart = "";
|
||||||
@@ -1073,6 +1131,8 @@
|
@@ -1098,6 +1156,8 @@
|
||||||
|
|
||||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (
|
if (
|
||||||
aIconURL &&
|
aIconURL &&
|
||||||
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
|
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
|
||||||
@@ -1082,6 +1142,9 @@
|
@@ -1107,6 +1167,9 @@
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -132,7 +132,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
let browser = this.getBrowserForTab(aTab);
|
let browser = this.getBrowserForTab(aTab);
|
||||||
browser.mIconURL = aIconURL;
|
browser.mIconURL = aIconURL;
|
||||||
@@ -1445,6 +1508,7 @@
|
@@ -1470,6 +1533,7 @@
|
||||||
if (!this._previewMode) {
|
if (!this._previewMode) {
|
||||||
newTab.recordTimeFromUnloadToReload();
|
newTab.recordTimeFromUnloadToReload();
|
||||||
newTab.updateLastAccessed();
|
newTab.updateLastAccessed();
|
||||||
@@ -140,7 +140,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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()) {
|
||||||
@@ -1597,6 +1661,9 @@
|
@@ -1622,6 +1686,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeEl = document.activeElement;
|
let activeEl = document.activeElement;
|
||||||
@@ -150,7 +150,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// If focus is on the old tab, move it to the new tab.
|
// If focus is on the old tab, move it to the new tab.
|
||||||
if (activeEl == oldTab) {
|
if (activeEl == oldTab) {
|
||||||
newTab.focus();
|
newTab.focus();
|
||||||
@@ -1920,7 +1987,8 @@
|
@@ -1945,7 +2012,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||||
@@ -160,7 +160,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2028,7 +2096,7 @@
|
@@ -2053,7 +2121,7 @@
|
||||||
newIndex = this.selectedTab._tPos + 1;
|
newIndex = this.selectedTab._tPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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"
|
||||||
@@ -2303,6 +2371,7 @@
|
@@ -2328,6 +2396,7 @@
|
||||||
uriIsAboutBlank,
|
uriIsAboutBlank,
|
||||||
userContextId,
|
userContextId,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -177,7 +177,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} = {}) {
|
} = {}) {
|
||||||
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
|
||||||
@@ -2376,8 +2445,7 @@
|
@@ -2401,8 +2470,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);
|
||||||
}
|
}
|
||||||
@@ -187,7 +187,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
b.setAttribute("transparent", "true");
|
b.setAttribute("transparent", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2542,7 +2610,7 @@
|
@@ -2567,7 +2635,7 @@
|
||||||
|
|
||||||
let panel = this.getPanel(browser);
|
let panel = this.getPanel(browser);
|
||||||
let uniqueId = this._generateUniquePanelID();
|
let uniqueId = this._generateUniquePanelID();
|
||||||
@@ -196,7 +196,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
aTab.linkedPanel = uniqueId;
|
aTab.linkedPanel = uniqueId;
|
||||||
|
|
||||||
// Inject the <browser> into the DOM if necessary.
|
// Inject the <browser> into the DOM if necessary.
|
||||||
@@ -2601,8 +2669,8 @@
|
@@ -2626,8 +2694,8 @@
|
||||||
// If we transitioned from one browser to two browsers, we need to set
|
// 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) {
|
||||||
@@ -207,7 +207,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else {
|
} else {
|
||||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||||
}
|
}
|
||||||
@@ -2779,7 +2847,6 @@
|
@@ -2814,7 +2882,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,
|
||||||
@@ -215,7 +215,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
focusUrlBar: true,
|
focusUrlBar: true,
|
||||||
});
|
});
|
||||||
resolve(this.selectedBrowser);
|
resolve(this.selectedBrowser);
|
||||||
@@ -2859,6 +2926,8 @@
|
@@ -2923,6 +2990,8 @@
|
||||||
schemelessInput,
|
schemelessInput,
|
||||||
hasValidUserGestureActivation = false,
|
hasValidUserGestureActivation = false,
|
||||||
textDirectiveUserActivation = false,
|
textDirectiveUserActivation = false,
|
||||||
@@ -224,7 +224,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
// all callers of addTab that pass a params object need to pass
|
// all callers of addTab that pass a params object need to pass
|
||||||
@@ -2869,6 +2938,12 @@
|
@@ -2933,6 +3002,12 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,7 +237,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||||
}
|
}
|
||||||
@@ -2932,6 +3007,19 @@
|
@@ -2996,6 +3071,19 @@
|
||||||
noInitialLabel,
|
noInitialLabel,
|
||||||
skipBackgroundNotify,
|
skipBackgroundNotify,
|
||||||
});
|
});
|
||||||
@@ -257,7 +257,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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, {
|
||||||
@@ -2940,6 +3028,7 @@
|
@@ -3004,6 +3092,7 @@
|
||||||
ownerTab,
|
ownerTab,
|
||||||
openerTab,
|
openerTab,
|
||||||
pinned,
|
pinned,
|
||||||
@@ -265,7 +265,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
bulkOrderedOpen,
|
bulkOrderedOpen,
|
||||||
tabGroup: tabGroup ?? openerTab?.group,
|
tabGroup: tabGroup ?? openerTab?.group,
|
||||||
});
|
});
|
||||||
@@ -2958,6 +3047,7 @@
|
@@ -3022,6 +3111,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
triggeringRemoteType,
|
triggeringRemoteType,
|
||||||
@@ -273,7 +273,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
if (focusUrlBar) {
|
if (focusUrlBar) {
|
||||||
@@ -3078,6 +3168,12 @@
|
@@ -3146,6 +3236,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +286,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// Additionally send pinned tab events
|
// Additionally send pinned tab events
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this.#notifyPinnedStatus(t);
|
this.#notifyPinnedStatus(t);
|
||||||
@@ -3248,10 +3344,10 @@
|
@@ -3330,10 +3426,10 @@
|
||||||
isAdoptingGroup = false,
|
isAdoptingGroup = false,
|
||||||
isUserTriggered = false,
|
isUserTriggered = false,
|
||||||
telemetryUserCreateSource = "unknown",
|
telemetryUserCreateSource = "unknown",
|
||||||
@@ -298,7 +298,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!color) {
|
if (!color) {
|
||||||
@@ -3272,9 +3368,14 @@
|
@@ -3354,9 +3450,14 @@
|
||||||
label,
|
label,
|
||||||
isAdoptingGroup
|
isAdoptingGroup
|
||||||
);
|
);
|
||||||
@@ -315,7 +315,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
group.addTabs(tabs);
|
group.addTabs(tabs);
|
||||||
|
|
||||||
@@ -3395,7 +3496,7 @@
|
@@ -3477,7 +3578,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#handleTabMove(tab, () =>
|
this.#handleTabMove(tab, () =>
|
||||||
@@ -324,7 +324,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3597,6 +3698,7 @@
|
@@ -3679,6 +3780,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
triggeringRemoteType,
|
triggeringRemoteType,
|
||||||
@@ -332,7 +332,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
// 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
|
||||||
@@ -3666,6 +3768,7 @@
|
@@ -3748,6 +3850,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
name,
|
name,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -340,7 +340,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3853,7 +3956,7 @@
|
@@ -3935,7 +4038,7 @@
|
||||||
// Add a new tab if needed.
|
// Add a new tab if needed.
|
||||||
if (!tab) {
|
if (!tab) {
|
||||||
let createLazyBrowser =
|
let createLazyBrowser =
|
||||||
@@ -349,7 +349,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
let url = "about:blank";
|
let url = "about:blank";
|
||||||
if (tabData.entries?.length) {
|
if (tabData.entries?.length) {
|
||||||
@@ -3890,8 +3993,10 @@
|
@@ -3972,8 +4075,10 @@
|
||||||
insertTab: false,
|
insertTab: false,
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
@@ -361,7 +361,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (select) {
|
if (select) {
|
||||||
tabToSelect = tab;
|
tabToSelect = tab;
|
||||||
}
|
}
|
||||||
@@ -3903,7 +4008,8 @@
|
@@ -3985,7 +4090,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, {});
|
||||||
@@ -371,7 +371,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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
|
||||||
@@ -3917,7 +4023,10 @@
|
@@ -3999,7 +4105,10 @@
|
||||||
tabGroup.stateData.id,
|
tabGroup.stateData.id,
|
||||||
tabGroup.stateData.color,
|
tabGroup.stateData.color,
|
||||||
tabGroup.stateData.collapsed,
|
tabGroup.stateData.collapsed,
|
||||||
@@ -383,7 +383,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
tabsFragment.appendChild(tabGroup.node);
|
tabsFragment.appendChild(tabGroup.node);
|
||||||
}
|
}
|
||||||
@@ -3962,9 +4071,23 @@
|
@@ -4044,9 +4153,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;
|
||||||
@@ -407,7 +407,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
if (tabs.length > 1 || !tabs[0].selected) {
|
if (tabs.length > 1 || !tabs[0].selected) {
|
||||||
this._updateTabsAfterInsert();
|
this._updateTabsAfterInsert();
|
||||||
@@ -4155,11 +4278,14 @@
|
@@ -4237,11 +4360,14 @@
|
||||||
if (ownerTab) {
|
if (ownerTab) {
|
||||||
tab.owner = ownerTab;
|
tab.owner = ownerTab;
|
||||||
}
|
}
|
||||||
@@ -423,7 +423,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (
|
if (
|
||||||
!bulkOrderedOpen &&
|
!bulkOrderedOpen &&
|
||||||
((openerTab &&
|
((openerTab &&
|
||||||
@@ -4171,7 +4297,7 @@
|
@@ -4253,7 +4379,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;
|
||||||
@@ -432,7 +432,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
tabGroup = previousTab.group;
|
tabGroup = previousTab.group;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
@@ -4182,7 +4308,7 @@
|
@@ -4264,7 +4390,7 @@
|
||||||
) {
|
) {
|
||||||
elementIndex = Infinity;
|
elementIndex = Infinity;
|
||||||
} else if (previousTab.visible) {
|
} else if (previousTab.visible) {
|
||||||
@@ -441,7 +441,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else if (previousTab == FirefoxViewHandler.tab) {
|
} else if (previousTab == FirefoxViewHandler.tab) {
|
||||||
elementIndex = 0;
|
elementIndex = 0;
|
||||||
}
|
}
|
||||||
@@ -4210,14 +4336,14 @@
|
@@ -4292,14 +4418,14 @@
|
||||||
}
|
}
|
||||||
// Ensure index is within bounds.
|
// Ensure index is within bounds.
|
||||||
if (tab.pinned) {
|
if (tab.pinned) {
|
||||||
@@ -460,7 +460,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
if (pinned && !itemAfter?.pinned) {
|
if (pinned && !itemAfter?.pinned) {
|
||||||
itemAfter = null;
|
itemAfter = null;
|
||||||
@@ -4228,7 +4354,7 @@
|
@@ -4310,7 +4436,7 @@
|
||||||
|
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
|
|
||||||
@@ -469,7 +469,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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);
|
||||||
@@ -4264,6 +4390,7 @@
|
@@ -4346,6 +4472,7 @@
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this._updateTabBarForPinnedTabs();
|
this._updateTabBarForPinnedTabs();
|
||||||
}
|
}
|
||||||
@@ -477,7 +477,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -4553,6 +4680,9 @@
|
@@ -4635,6 +4762,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +487,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4814,6 +4944,7 @@
|
@@ -4896,6 +5026,7 @@
|
||||||
telemetrySource,
|
telemetrySource,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
@@ -495,7 +495,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// 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 (
|
||||||
@@ -4903,6 +5034,7 @@
|
@@ -4985,6 +5116,7 @@
|
||||||
if (lastToClose) {
|
if (lastToClose) {
|
||||||
this.removeTab(lastToClose, aParams);
|
this.removeTab(lastToClose, aParams);
|
||||||
}
|
}
|
||||||
@@ -503,7 +503,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
@@ -4941,6 +5073,12 @@
|
@@ -5023,6 +5155,12 @@
|
||||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,7 +516,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// 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) {
|
||||||
@@ -4955,6 +5093,9 @@
|
@@ -5037,6 +5175,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);
|
||||||
@@ -526,7 +526,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (
|
if (
|
||||||
!this._beginRemoveTab(aTab, {
|
!this._beginRemoveTab(aTab, {
|
||||||
closeWindowFastpath: true,
|
closeWindowFastpath: true,
|
||||||
@@ -5003,7 +5144,13 @@
|
@@ -5085,7 +5226,13 @@
|
||||||
// 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;
|
||||||
@@ -541,7 +541,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5137,7 +5284,7 @@
|
@@ -5219,7 +5366,7 @@
|
||||||
closeWindowWithLastTab != null
|
closeWindowWithLastTab != null
|
||||||
? closeWindowWithLastTab
|
? closeWindowWithLastTab
|
||||||
: !window.toolbar.visible ||
|
: !window.toolbar.visible ||
|
||||||
@@ -550,7 +550,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
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,
|
||||||
@@ -5161,6 +5308,7 @@
|
@@ -5243,6 +5390,7 @@
|
||||||
|
|
||||||
newTab = true;
|
newTab = true;
|
||||||
}
|
}
|
||||||
@@ -558,7 +558,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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.
|
||||||
@@ -5201,13 +5349,7 @@
|
@@ -5283,13 +5431,7 @@
|
||||||
aTab._mouseleave();
|
aTab._mouseleave();
|
||||||
|
|
||||||
if (newTab) {
|
if (newTab) {
|
||||||
@@ -573,7 +573,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else {
|
} else {
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -5340,6 +5482,7 @@
|
@@ -5422,6 +5564,7 @@
|
||||||
this.tabs[i]._tPos = i;
|
this.tabs[i]._tPos = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,7 +581,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (!this._windowIsClosing) {
|
if (!this._windowIsClosing) {
|
||||||
// update tab close buttons state
|
// update tab close buttons state
|
||||||
this.tabContainer._updateCloseButtons();
|
this.tabContainer._updateCloseButtons();
|
||||||
@@ -5552,6 +5695,7 @@
|
@@ -5643,6 +5786,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let excludeTabs = new Set(aExcludeTabs);
|
let excludeTabs = new Set(aExcludeTabs);
|
||||||
@@ -589,7 +589,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
// 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.
|
||||||
@@ -5564,13 +5708,13 @@
|
@@ -5655,13 +5799,13 @@
|
||||||
!excludeTabs.has(aTab.owner) &&
|
!excludeTabs.has(aTab.owner) &&
|
||||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||||
) {
|
) {
|
||||||
@@ -605,7 +605,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
|
|
||||||
let tab = this.tabContainer.findNextTab(aTab, {
|
let tab = this.tabContainer.findNextTab(aTab, {
|
||||||
@@ -5586,7 +5730,7 @@
|
@@ -5677,7 +5821,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab) {
|
if (tab) {
|
||||||
@@ -614,7 +614,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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
|
||||||
@@ -5607,7 +5751,7 @@
|
@@ -5698,7 +5842,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -623,7 +623,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
_blurTab(aTab) {
|
_blurTab(aTab) {
|
||||||
@@ -6013,10 +6157,10 @@
|
@@ -6104,10 +6248,10 @@
|
||||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -636,7 +636,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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.
|
||||||
@@ -6075,6 +6219,7 @@
|
@@ -6166,6 +6310,7 @@
|
||||||
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
|
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
|
||||||
*/
|
*/
|
||||||
replaceTabWithWindow(aTab, aOptions) {
|
replaceTabWithWindow(aTab, aOptions) {
|
||||||
@@ -644,7 +644,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (this.tabs.length == 1) {
|
if (this.tabs.length == 1) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -6208,7 +6353,7 @@
|
@@ -6299,7 +6444,7 @@
|
||||||
* `true` if element is a `<tab-group>`
|
* `true` if element is a `<tab-group>`
|
||||||
*/
|
*/
|
||||||
isTabGroup(element) {
|
isTabGroup(element) {
|
||||||
@@ -653,7 +653,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -6284,8 +6429,8 @@
|
@@ -6375,8 +6520,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
@@ -664,7 +664,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else {
|
} else {
|
||||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||||
}
|
}
|
||||||
@@ -6311,10 +6456,16 @@
|
@@ -6402,10 +6547,16 @@
|
||||||
this.#handleTabMove(
|
this.#handleTabMove(
|
||||||
element,
|
element,
|
||||||
() => {
|
() => {
|
||||||
@@ -683,7 +683,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||||
neighbor.after(element);
|
neighbor.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6372,23 +6523,28 @@
|
@@ -6463,23 +6614,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;
|
||||||
@@ -718,7 +718,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} 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
|
||||||
@@ -6401,14 +6557,34 @@
|
@@ -6492,14 +6648,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.
|
||||||
@@ -754,7 +754,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
element.pinned
|
element.pinned
|
||||||
? this.tabContainer.pinnedTabsContainer
|
? this.tabContainer.pinnedTabsContainer
|
||||||
: this.tabContainer;
|
: this.tabContainer;
|
||||||
@@ -6417,7 +6593,7 @@
|
@@ -6508,7 +6684,7 @@
|
||||||
element,
|
element,
|
||||||
() => {
|
() => {
|
||||||
if (moveBefore) {
|
if (moveBefore) {
|
||||||
@@ -763,7 +763,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else if (targetElement) {
|
} else if (targetElement) {
|
||||||
targetElement.after(element);
|
targetElement.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6489,10 +6665,10 @@
|
@@ -6580,10 +6756,10 @@
|
||||||
* @param {TabMetricsContext} [metricsContext]
|
* @param {TabMetricsContext} [metricsContext]
|
||||||
*/
|
*/
|
||||||
moveTabToGroup(aTab, aGroup, metricsContext) {
|
moveTabToGroup(aTab, aGroup, metricsContext) {
|
||||||
@@ -776,7 +776,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||||
@@ -6522,6 +6698,7 @@
|
@@ -6613,6 +6789,7 @@
|
||||||
|
|
||||||
let state = {
|
let state = {
|
||||||
tabIndex: tab._tPos,
|
tabIndex: tab._tPos,
|
||||||
@@ -784,7 +784,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
};
|
};
|
||||||
if (tab.visible) {
|
if (tab.visible) {
|
||||||
state.elementIndex = tab.elementIndex;
|
state.elementIndex = tab.elementIndex;
|
||||||
@@ -6548,7 +6725,7 @@
|
@@ -6639,7 +6816,7 @@
|
||||||
let changedTabGroup =
|
let changedTabGroup =
|
||||||
previousTabState.tabGroupId != currentTabState.tabGroupId;
|
previousTabState.tabGroupId != currentTabState.tabGroupId;
|
||||||
|
|
||||||
@@ -793,7 +793,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
tab.dispatchEvent(
|
tab.dispatchEvent(
|
||||||
new CustomEvent("TabMove", {
|
new CustomEvent("TabMove", {
|
||||||
bubbles: true,
|
bubbles: true,
|
||||||
@@ -6585,6 +6762,10 @@
|
@@ -6676,6 +6853,10 @@
|
||||||
|
|
||||||
moveActionCallback();
|
moveActionCallback();
|
||||||
|
|
||||||
@@ -804,7 +804,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// 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();
|
||||||
@@ -7486,7 +7667,7 @@
|
@@ -7576,7 +7757,7 @@
|
||||||
// preventDefault(). It will still raise the window if appropriate.
|
// preventDefault(). It will still raise the window if appropriate.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -813,7 +813,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
window.focus();
|
window.focus();
|
||||||
aEvent.preventDefault();
|
aEvent.preventDefault();
|
||||||
break;
|
break;
|
||||||
@@ -7501,7 +7682,6 @@
|
@@ -7593,7 +7774,6 @@
|
||||||
}
|
}
|
||||||
case "TabGroupCollapse":
|
case "TabGroupCollapse":
|
||||||
aEvent.target.tabs.forEach(tab => {
|
aEvent.target.tabs.forEach(tab => {
|
||||||
@@ -821,7 +821,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "TabGroupCreateByUser":
|
case "TabGroupCreateByUser":
|
||||||
@@ -8442,6 +8622,7 @@
|
@@ -8542,6 +8722,7 @@
|
||||||
aWebProgress.isTopLevel
|
aWebProgress.isTopLevel
|
||||||
) {
|
) {
|
||||||
this.mTab.setAttribute("busy", "true");
|
this.mTab.setAttribute("busy", "true");
|
||||||
@@ -829,7 +829,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||||
}
|
}
|
||||||
@@ -9443,7 +9624,7 @@ var TabContextMenu = {
|
@@ -9543,7 +9724,7 @@ var TabContextMenu = {
|
||||||
);
|
);
|
||||||
contextUnpinSelectedTabs.hidden =
|
contextUnpinSelectedTabs.hidden =
|
||||||
!this.contextTab.pinned || !this.multiselected;
|
!this.contextTab.pinned || !this.multiselected;
|
||||||
@@ -838,7 +838,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// Build Ask Chat items
|
// Build Ask Chat items
|
||||||
TabContextMenu.GenAI.buildTabMenu(
|
TabContextMenu.GenAI.buildTabMenu(
|
||||||
document.getElementById("context_askChat"),
|
document.getElementById("context_askChat"),
|
||||||
@@ -9763,6 +9944,7 @@ var TabContextMenu = {
|
@@ -9863,6 +10044,7 @@ var TabContextMenu = {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -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 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b424098ba3e7b 100644
|
index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41fbf97ac20 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
|
||||||
@@ -14,11 +14,11 @@
|
@@ -14,11 +14,11 @@
|
||||||
@@ -77,8 +77,8 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
+ };
|
+ };
|
||||||
|
|
||||||
this.#updateLabelAriaAttributes();
|
this.#updateLabelAriaAttributes();
|
||||||
this.#updateCollapsedAriaAttributes();
|
|
||||||
@@ -144,6 +163,8 @@
|
@@ -143,6 +162,8 @@
|
||||||
// mounts after getting created by `Tabbrowser.adoptTabGroup`.
|
// mounts after getting created by `Tabbrowser.adoptTabGroup`.
|
||||||
this.#wasCreatedByAdoption = false;
|
this.#wasCreatedByAdoption = false;
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
|
|
||||||
resetDefaultGroupName = () => {
|
resetDefaultGroupName = () => {
|
||||||
this.#defaultGroupName = "";
|
this.#defaultGroupName = "";
|
||||||
@@ -228,7 +249,10 @@
|
@@ -227,7 +248,10 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -99,7 +99,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
}
|
}
|
||||||
|
|
||||||
get color() {
|
get color() {
|
||||||
@@ -322,6 +346,9 @@
|
@@ -321,6 +345,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
set collapsed(val) {
|
set collapsed(val) {
|
||||||
@@ -109,7 +109,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
if (!!val == this.collapsed) {
|
if (!!val == this.collapsed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -399,7 +426,6 @@
|
@@ -406,7 +433,6 @@
|
||||||
tabGroupName,
|
tabGroupName,
|
||||||
})
|
})
|
||||||
.then(result => {
|
.then(result => {
|
||||||
@@ -117,7 +117,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,7 +444,57 @@
|
@@ -425,7 +451,57 @@
|
||||||
* @returns {MozTabbrowserTab[]}
|
* @returns {MozTabbrowserTab[]}
|
||||||
*/
|
*/
|
||||||
get tabs() {
|
get tabs() {
|
||||||
@@ -176,7 +176,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -498,7 +574,6 @@
|
@@ -506,7 +582,6 @@
|
||||||
addTabs(tabs, metricsContext) {
|
addTabs(tabs, metricsContext) {
|
||||||
for (let tab of tabs) {
|
for (let tab of tabs) {
|
||||||
if (tab.pinned) {
|
if (tab.pinned) {
|
||||||
@@ -184,7 +184,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
}
|
}
|
||||||
let tabToMove =
|
let tabToMove =
|
||||||
this.ownerGlobal === tab.ownerGlobal
|
this.ownerGlobal === tab.ownerGlobal
|
||||||
@@ -561,7 +636,7 @@
|
@@ -569,7 +644,7 @@
|
||||||
*/
|
*/
|
||||||
on_click(event) {
|
on_click(event) {
|
||||||
let isToggleElement =
|
let isToggleElement =
|
||||||
@@ -193,7 +193,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
event.target === this.#overflowCountLabel;
|
event.target === this.#overflowCountLabel;
|
||||||
if (isToggleElement && event.button === 0) {
|
if (isToggleElement && event.button === 0) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
@@ -630,5 +705,6 @@
|
@@ -638,5 +713,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,8 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||||
index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78bec02d253a 100644
|
index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2a736d9f8 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
|
||||||
@@ -44,6 +44,9 @@
|
@@ -411,7 +411,7 @@
|
||||||
* @returns {MozTabbrowserTab|vbox}
|
|
||||||
*/
|
|
||||||
const elementToMove = element => {
|
|
||||||
+ if (element.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ return element.group;
|
|
||||||
+ }
|
|
||||||
if (isTab(element)) {
|
|
||||||
return element;
|
|
||||||
}
|
|
||||||
@@ -423,7 +426,7 @@
|
|
||||||
// and we're not hitting the scroll buttons.
|
// and we're not hitting the scroll buttons.
|
||||||
if (
|
if (
|
||||||
event.button != 0 ||
|
event.button != 0 ||
|
||||||
@@ -21,7 +11,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
event.composedTarget.localName == "toolbarbutton"
|
event.composedTarget.localName == "toolbarbutton"
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
@@ -504,7 +507,6 @@
|
@@ -492,7 +492,6 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (isTabGroupLabel(event.target)) {
|
} else if (isTabGroupLabel(event.target)) {
|
||||||
@@ -29,7 +19,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
} else if (
|
} else if (
|
||||||
event.originalTarget.closest("scrollbox") &&
|
event.originalTarget.closest("scrollbox") &&
|
||||||
!Services.prefs.getBoolPref(
|
!Services.prefs.getBoolPref(
|
||||||
@@ -540,6 +542,9 @@
|
@@ -528,6 +527,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
on_keydown(event) {
|
on_keydown(event) {
|
||||||
@@ -39,153 +29,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
let { altKey, shiftKey } = event;
|
let { altKey, shiftKey } = event;
|
||||||
let [accel, nonAccel] =
|
let [accel, nonAccel] =
|
||||||
AppConstants.platform == "macosx"
|
AppConstants.platform == "macosx"
|
||||||
@@ -777,7 +782,7 @@
|
@@ -720,7 +722,6 @@
|
||||||
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
|
||||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
|
||||||
// Set this before adjusting dragged tab's position
|
|
||||||
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
|
||||||
+ let pinnedTabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
|
||||||
let tabsPerRow = 0;
|
|
||||||
let position = RTL_UI
|
|
||||||
? window.windowUtils.getBoundsWithoutFlushing(
|
|
||||||
@@ -942,7 +947,7 @@
|
|
||||||
let dropEffect = this.getDropEffectForTabDrag(event);
|
|
||||||
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
|
||||||
let collapseTabGroupDuringDrag =
|
|
||||||
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
|
||||||
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
|
||||||
|
|
||||||
tab._dragData = {
|
|
||||||
offsetX: this.verticalMode
|
|
||||||
@@ -952,7 +957,7 @@
|
|
||||||
? event.screenY - window.screenY - tabOffset
|
|
||||||
: event.screenY - window.screenY,
|
|
||||||
scrollPos:
|
|
||||||
- this.verticalMode && tab.pinned
|
|
||||||
+ this.verticalMode && tab.pinned && false
|
|
||||||
? this.pinnedTabsContainer.scrollPosition
|
|
||||||
: this.arrowScrollbox.scrollPosition,
|
|
||||||
screenX: event.screenX,
|
|
||||||
@@ -981,6 +986,7 @@
|
|
||||||
|
|
||||||
if (collapseTabGroupDuringDrag) {
|
|
||||||
tab.group.collapsed = true;
|
|
||||||
+ gZenFolders.animateGroupMove(tab.group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1027,6 +1033,10 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
|
||||||
+ if (draggedTab && dropEffect === "move") {
|
|
||||||
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
|
|
||||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
|
|
||||||
+ }
|
|
||||||
if (
|
|
||||||
(dropEffect == "move" || dropEffect == "copy") &&
|
|
||||||
document == draggedTab.ownerDocument &&
|
|
||||||
@@ -1154,7 +1164,8 @@
|
|
||||||
isTabGroupLabel(draggedTab) &&
|
|
||||||
draggedTab._dragData?.expandGroupOnDrop
|
|
||||||
) {
|
|
||||||
- draggedTab.group.collapsed = false;
|
|
||||||
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active");
|
|
||||||
+ gZenFolders.animateGroupMove(draggedTab.group, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1208,6 +1219,18 @@
|
|
||||||
|
|
||||||
this._tabDropIndicator.hidden = true;
|
|
||||||
event.stopPropagation();
|
|
||||||
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
|
|
||||||
+ draggedTab.removeAttribute("zen-has-splitted");
|
|
||||||
+ draggedTab._visuallySelected = false;
|
|
||||||
+ }
|
|
||||||
+ if (draggedTab && dropEffect == "move") {
|
|
||||||
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
|
||||||
+
|
|
||||||
+ if (moved) {
|
|
||||||
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
if (draggedTab && dropEffect == "copy") {
|
|
||||||
let duplicatedDraggedTab;
|
|
||||||
let duplicatedTabs = [];
|
|
||||||
@@ -1232,8 +1255,9 @@
|
|
||||||
let translateOffsetY = oldTranslateY % tabHeight;
|
|
||||||
let newTranslateX = oldTranslateX - translateOffsetX;
|
|
||||||
let newTranslateY = oldTranslateY - translateOffsetY;
|
|
||||||
- let isPinned = draggedTab.pinned;
|
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
|
||||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
|
||||||
|
|
||||||
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
|
||||||
// Update both translate axis for pinned vertical expanded tabs
|
|
||||||
@@ -1249,8 +1273,8 @@
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let tabs = this.ariaFocusableItems.slice(
|
|
||||||
- isPinned ? 0 : numPinned,
|
|
||||||
- isPinned ? numPinned : undefined
|
|
||||||
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
|
|
||||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
|
|
||||||
);
|
|
||||||
let size = this.verticalMode ? "height" : "width";
|
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
|
||||||
@@ -1299,11 +1323,13 @@
|
|
||||||
this.dragToPinPromoCard,
|
|
||||||
];
|
|
||||||
let shouldPin =
|
|
||||||
+ false &&
|
|
||||||
isTab(draggedTab) &&
|
|
||||||
!draggedTab.pinned &&
|
|
||||||
(overPinnedDropIndicator ||
|
|
||||||
dragToPinTargets.some(el => el.contains(event.target)));
|
|
||||||
let shouldUnpin =
|
|
||||||
+ false &&
|
|
||||||
isTab(draggedTab) &&
|
|
||||||
draggedTab.pinned &&
|
|
||||||
this.arrowScrollbox.contains(event.target);
|
|
||||||
@@ -1321,6 +1347,7 @@
|
|
||||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
|
||||||
} else if (this.verticalMode) {
|
|
||||||
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
|
||||||
+ shouldTranslate = false;
|
|
||||||
} else {
|
|
||||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
|
||||||
}
|
|
||||||
@@ -1515,6 +1542,7 @@
|
|
||||||
|
|
||||||
let nextItem = this.ariaFocusableItems[newIndex];
|
|
||||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
|
||||||
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
|
||||||
gBrowser.loadTabs(urls, {
|
|
||||||
inBackground,
|
|
||||||
replace,
|
|
||||||
@@ -1553,6 +1581,17 @@
|
|
||||||
}
|
|
||||||
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
|
||||||
|
|
||||||
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
|
||||||
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
|
||||||
+ if (moved) {
|
|
||||||
+ delete draggedTab._dragData;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ } else if (dt.mozUserCancelled) {
|
|
||||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true);
|
|
||||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (
|
|
||||||
dt.mozUserCancelled ||
|
|
||||||
dt.dropEffect != "none" ||
|
|
||||||
@@ -1719,7 +1758,6 @@
|
|
||||||
|
|
||||||
this.toggleAttribute("overflow", true);
|
this.toggleAttribute("overflow", true);
|
||||||
this._updateCloseButtons();
|
this._updateCloseButtons();
|
||||||
@@ -193,7 +37,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
|
|
||||||
document
|
document
|
||||||
.getElementById("tab-preview-panel")
|
.getElementById("tab-preview-panel")
|
||||||
@@ -1777,7 +1815,7 @@
|
@@ -780,7 +781,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get newTabButton() {
|
get newTabButton() {
|
||||||
@@ -202,7 +46,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
get verticalMode() {
|
get verticalMode() {
|
||||||
@@ -1793,6 +1831,7 @@
|
@@ -796,6 +797,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get overflowing() {
|
get overflowing() {
|
||||||
@@ -210,7 +54,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
return this.hasAttribute("overflow");
|
return this.hasAttribute("overflow");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1806,29 +1845,54 @@
|
@@ -809,29 +811,54 @@
|
||||||
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
||||||
pinnedChildren.pop();
|
pinnedChildren.pop();
|
||||||
}
|
}
|
||||||
@@ -275,7 +119,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1895,29 +1959,23 @@
|
@@ -898,17 +925,10 @@
|
||||||
|
|
||||||
let elementIndex = 0;
|
let elementIndex = 0;
|
||||||
|
|
||||||
@@ -295,26 +139,22 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
if (isTab(child) && child.visible) {
|
if (isTab(child) && child.visible) {
|
||||||
child.elementIndex = elementIndex++;
|
child.elementIndex = elementIndex++;
|
||||||
focusableItems.push(child);
|
focusableItems.push(child);
|
||||||
} else if (isTabGroup(child)) {
|
@@ -916,11 +936,13 @@
|
||||||
child.labelElement.elementIndex = elementIndex++;
|
child.labelElement.elementIndex = elementIndex++;
|
||||||
focusableItems.push(child.labelElement);
|
focusableItems.push(child.labelElement);
|
||||||
-
|
|
||||||
- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
|
||||||
- visibleTabsInGroup.forEach(tab => {
|
|
||||||
- tab.elementIndex = elementIndex++;
|
|
||||||
- });
|
|
||||||
- focusableItems.push(...visibleTabsInGroup);
|
|
||||||
+ if (!child.hasAttribute("split-view-group")) {
|
|
||||||
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
|
|
||||||
+ visibleTabsInGroup.forEach(tab => {
|
|
||||||
+ tab.elementIndex = elementIndex++;
|
|
||||||
+ });
|
|
||||||
+ focusableItems.push(...visibleTabsInGroup);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1929,6 +1987,7 @@
|
- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||||
|
+ if (!child.hasAttribute("split-view-group")) {
|
||||||
|
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
|
||||||
|
visibleTabsInGroup.forEach(tab => {
|
||||||
|
tab.elementIndex = elementIndex++;
|
||||||
|
});
|
||||||
|
focusableItems.push(...visibleTabsInGroup);
|
||||||
|
+ }
|
||||||
|
} else if (child.tagName == "tab-split-view-wrapper") {
|
||||||
|
let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible);
|
||||||
|
visibleTabsInSplitView.forEach(tab => {
|
||||||
|
@@ -964,6 +986,7 @@
|
||||||
_invalidateCachedTabs() {
|
_invalidateCachedTabs() {
|
||||||
this.#allTabs = null;
|
this.#allTabs = null;
|
||||||
this._invalidateCachedVisibleTabs();
|
this._invalidateCachedVisibleTabs();
|
||||||
@@ -322,18 +162,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
_invalidateCachedVisibleTabs() {
|
_invalidateCachedVisibleTabs() {
|
||||||
@@ -1944,8 +2003,8 @@
|
@@ -1067,7 +1090,7 @@
|
||||||
#isContainerVerticalPinnedGrid(tab) {
|
|
||||||
return (
|
|
||||||
this.verticalMode &&
|
|
||||||
- tab.pinned &&
|
|
||||||
- this.hasAttribute("expanded") &&
|
|
||||||
+ (tab.hasAttribute("zen-essential")) &&
|
|
||||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
|
||||||
!this.expandOnHover
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1961,7 +2020,7 @@
|
|
||||||
|
|
||||||
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.
|
||||||
@@ -342,7 +171,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.before(tab);
|
node.before(tab);
|
||||||
@@ -2056,7 +2115,7 @@
|
@@ -1162,7 +1185,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.
|
||||||
@@ -351,7 +180,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
const newTab2 = this.newTabButton;
|
const newTab2 = this.newTabButton;
|
||||||
const newTabVertical = document.getElementById(
|
const newTabVertical = document.getElementById(
|
||||||
"vertical-tabs-newtab-button"
|
"vertical-tabs-newtab-button"
|
||||||
@@ -2156,8 +2215,10 @@
|
@@ -1263,8 +1286,10 @@
|
||||||
*/
|
*/
|
||||||
_handleTabSelect(aInstant) {
|
_handleTabSelect(aInstant) {
|
||||||
let selectedTab = this.selectedItem;
|
let selectedTab = this.selectedItem;
|
||||||
@@ -362,7 +191,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
selectedTab._notselectedsinceload = false;
|
selectedTab._notselectedsinceload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2166,7 +2227,7 @@
|
@@ -1273,7 +1298,7 @@
|
||||||
* @param {boolean} [shouldScrollInstantly=false]
|
* @param {boolean} [shouldScrollInstantly=false]
|
||||||
*/
|
*/
|
||||||
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
|
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
|
||||||
@@ -371,265 +200,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
if (arrowScrollbox?.overflowing) {
|
if (arrowScrollbox?.overflowing) {
|
||||||
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
|
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
|
||||||
}
|
}
|
||||||
@@ -2305,6 +2366,16 @@
|
@@ -1406,7 +1431,7 @@
|
||||||
when the tab is first selected to be dragged.
|
|
||||||
*/
|
|
||||||
#updateTabStylesOnDrag(tab) {
|
|
||||||
+ let { movingTabs: zenMovingTabs } = tab._dragData;
|
|
||||||
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
|
|
||||||
+ if (isTabGroupLabel(tab)) {
|
|
||||||
+ movingTab = movingTab.parentElement;
|
|
||||||
+ }
|
|
||||||
+ // "dragtarget" contains the following rules which must only be set AFTER the above
|
|
||||||
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
|
|
||||||
+ movingTab.setAttribute("zen-dragtarget", "");
|
|
||||||
+ }
|
|
||||||
+ return;
|
|
||||||
let isPinned = tab.pinned;
|
|
||||||
let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
let allTabs = this.ariaFocusableItems;
|
|
||||||
@@ -2578,7 +2649,7 @@
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- let tabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
|
||||||
+ let tabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
|
||||||
|
|
||||||
let directionX = screenX > dragData.animLastScreenX;
|
|
||||||
let directionY = screenY > dragData.animLastScreenY;
|
|
||||||
@@ -2587,6 +2658,8 @@
|
|
||||||
|
|
||||||
let { width: tabWidth, height: tabHeight } =
|
|
||||||
draggedTab.getBoundingClientRect();
|
|
||||||
+ tabWidth += 4; // Add 4px to account for the gap
|
|
||||||
+ tabHeight += 4;
|
|
||||||
let shiftSizeX = tabWidth * movingTabs.length;
|
|
||||||
let shiftSizeY = tabHeight;
|
|
||||||
dragData.tabWidth = tabWidth;
|
|
||||||
@@ -2623,8 +2696,8 @@
|
|
||||||
let lastBoundX =
|
|
||||||
lastTabInRow.screenX +
|
|
||||||
lastTabInRow.getBoundingClientRect().width -
|
|
||||||
- (lastMovingTabScreenX + tabWidth);
|
|
||||||
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
|
|
||||||
+ (lastMovingTabScreenX + tabWidth) + 4;
|
|
||||||
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
|
|
||||||
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
|
||||||
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
|
||||||
|
|
||||||
@@ -2782,13 +2855,18 @@
|
|
||||||
this.#clearDragOverGroupingTimer();
|
|
||||||
this.#clearPinnedDropIndicatorTimer();
|
|
||||||
|
|
||||||
- let isPinned = draggedTab.pinned;
|
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
|
||||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
|
||||||
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
|
|
||||||
let allTabs = this.ariaFocusableItems;
|
|
||||||
let tabs = allTabs.slice(
|
|
||||||
- isPinned ? 0 : numPinned,
|
|
||||||
- isPinned ? numPinned : undefined
|
|
||||||
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
|
|
||||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
|
|
||||||
);
|
|
||||||
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ draggedTab = draggedTab.group.labelElement;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (this.#rtlMode) {
|
|
||||||
tabs.reverse();
|
|
||||||
@@ -2799,7 +2877,7 @@
|
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
|
||||||
let size = this.verticalMode ? "height" : "width";
|
|
||||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
|
||||||
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
|
|
||||||
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
|
|
||||||
let tabSize = this.verticalMode ? tabHeight : tabWidth;
|
|
||||||
let translateX = event.screenX - dragData.screenX;
|
|
||||||
let translateY = event.screenY - dragData.screenY;
|
|
||||||
@@ -2815,6 +2893,12 @@
|
|
||||||
);
|
|
||||||
let lastMovingTab = movingTabs.at(-1);
|
|
||||||
let firstMovingTab = movingTabs[0];
|
|
||||||
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ lastMovingTab = lastMovingTab.group;
|
|
||||||
+ }
|
|
||||||
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ firstMovingTab = firstMovingTab.group;
|
|
||||||
+ }
|
|
||||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
|
||||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
|
||||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
|
||||||
@@ -2829,6 +2913,11 @@
|
|
||||||
let endBound = this.#rtlMode
|
|
||||||
? endEdge(this) - lastMovingTabScreen
|
|
||||||
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
|
||||||
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
|
|
||||||
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
|
|
||||||
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
|
|
||||||
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
|
|
||||||
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
|
|
||||||
translate = Math.min(Math.max(translate, startBound), endBound);
|
|
||||||
|
|
||||||
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
|
||||||
@@ -3018,6 +3107,8 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
let dropElement = getOverlappedElement();
|
|
||||||
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
|
|
||||||
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
|
|
||||||
|
|
||||||
let newDropElementIndex;
|
|
||||||
if (dropElement) {
|
|
||||||
@@ -3099,7 +3190,7 @@
|
|
||||||
? Services.prefs.getIntPref(
|
|
||||||
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
|
||||||
) / 100
|
|
||||||
- : 0.5;
|
|
||||||
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
|
|
||||||
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
|
||||||
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
|
||||||
if (logicalForward && shouldMoveOver) {
|
|
||||||
@@ -3132,6 +3223,7 @@
|
|
||||||
// If dragging a group over another group, don't make it look like it is
|
|
||||||
// possible to drop the dragged group inside the other group.
|
|
||||||
if (
|
|
||||||
+ false &&
|
|
||||||
isTabGroupLabel(draggedTab) &&
|
|
||||||
dropElement?.group &&
|
|
||||||
(!dropElement.group.collapsed ||
|
|
||||||
@@ -3158,20 +3250,13 @@
|
|
||||||
let isOutOfBounds = isPinned
|
|
||||||
? dropElement.elementIndex >= numPinned
|
|
||||||
: dropElement.elementIndex < numPinned;
|
|
||||||
- if (isOutOfBounds) {
|
|
||||||
- // Drop after last pinned tab
|
|
||||||
- dropElement = this.ariaFocusableItems[numPinned - 1];
|
|
||||||
- dropBefore = false;
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (
|
|
||||||
- gBrowser._tabGroupsEnabled &&
|
|
||||||
- isTab(draggedTab) &&
|
|
||||||
- !isPinned &&
|
|
||||||
- (!numPinned || newDropElementIndex > numPinned)
|
|
||||||
- ) {
|
|
||||||
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
|
|
||||||
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
|
||||||
+ if (draggedTab && !dropElement?.group) {
|
|
||||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
|
||||||
+ }
|
|
||||||
let groupingDelay = Services.prefs.getIntPref(
|
|
||||||
"browser.tabs.dragDrop.createGroup.delayMS"
|
|
||||||
);
|
|
||||||
@@ -3179,6 +3264,7 @@
|
|
||||||
// When dragging tab(s) over an ungrouped tab, signal to the user
|
|
||||||
// that dropping the tab(s) will create a new tab group.
|
|
||||||
let shouldCreateGroupOnDrop =
|
|
||||||
+ false &&
|
|
||||||
!movingTabsSet.has(dropElement) &&
|
|
||||||
isTab(dropElement) &&
|
|
||||||
!dropElement?.group &&
|
|
||||||
@@ -3187,6 +3273,7 @@
|
|
||||||
// When dragging tab(s) over a collapsed tab group label, signal to the
|
|
||||||
// user that dropping the tab(s) will add them to the group.
|
|
||||||
let shouldDropIntoCollapsedTabGroup =
|
|
||||||
+ false &&
|
|
||||||
isTabGroupLabel(dropElement) &&
|
|
||||||
dropElement.group.collapsed &&
|
|
||||||
overlapPercent > dragOverGroupingThreshold;
|
|
||||||
@@ -3231,19 +3318,14 @@
|
|
||||||
dropElement = dropElementGroup;
|
|
||||||
colorCode = undefined;
|
|
||||||
} else if (isTabGroupLabel(dropElement)) {
|
|
||||||
- if (dropBefore) {
|
|
||||||
- // Dropping right before the tab group.
|
|
||||||
- dropElement = dropElementGroup;
|
|
||||||
- colorCode = undefined;
|
|
||||||
- } else if (dropElementGroup.collapsed) {
|
|
||||||
- // Dropping right after the collapsed tab group.
|
|
||||||
- dropElement = dropElementGroup;
|
|
||||||
- colorCode = undefined;
|
|
||||||
- } else {
|
|
||||||
- // Dropping right before the first tab in the tab group.
|
|
||||||
- dropElement = dropElementGroup.tabs[0];
|
|
||||||
- dropBefore = true;
|
|
||||||
- }
|
|
||||||
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
|
|
||||||
+ dropElement,
|
|
||||||
+ draggedTab,
|
|
||||||
+ overlapPercent,
|
|
||||||
+ movingTabs,
|
|
||||||
+ dropBefore,
|
|
||||||
+ colorCode
|
|
||||||
+ ));
|
|
||||||
}
|
|
||||||
this.#setDragOverGroupColor(colorCode);
|
|
||||||
this.toggleAttribute("movingtab-addToGroup", colorCode);
|
|
||||||
@@ -3262,11 +3344,11 @@
|
|
||||||
dragData.dropElement = dropElement;
|
|
||||||
dragData.dropBefore = dropBefore;
|
|
||||||
dragData.animDropElementIndex = newDropElementIndex;
|
|
||||||
-
|
|
||||||
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
|
|
||||||
// Shift background tabs to leave a gap where the dragged tab
|
|
||||||
// would currently be dropped.
|
|
||||||
for (let item of tabs) {
|
|
||||||
- if (item == draggedTab) {
|
|
||||||
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -3388,12 +3470,14 @@
|
|
||||||
element?.removeAttribute("dragover-groupTarget");
|
|
||||||
}
|
|
||||||
|
|
||||||
- finishAnimateTabMove() {
|
|
||||||
- if (!this.#isMovingTab()) {
|
|
||||||
+ finishAnimateTabMove(always = false) {
|
|
||||||
+ gZenPinnedTabManager.onDragFinish();
|
|
||||||
+ if (!this.#isMovingTab() && !always) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.#setMovingTabMode(false);
|
|
||||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
|
||||||
|
|
||||||
for (let item of this.ariaFocusableItems) {
|
|
||||||
this.#resetGroupTarget(item);
|
|
||||||
@@ -3440,17 +3524,16 @@
|
|
||||||
tab.style.left = "";
|
|
||||||
tab.style.top = "";
|
|
||||||
tab.style.maxWidth = "";
|
|
||||||
- tab.removeAttribute("dragtarget");
|
|
||||||
+ tab.removeAttribute("zen-dragtarget");
|
|
||||||
}
|
|
||||||
for (let label of draggedTabDocument.getElementsByClassName(
|
|
||||||
"tab-group-label-container"
|
|
||||||
)) {
|
|
||||||
label.style.width = "";
|
|
||||||
- label.style.height = "";
|
|
||||||
label.style.left = "";
|
|
||||||
label.style.top = "";
|
|
||||||
label.style.maxWidth = "";
|
|
||||||
- label.removeAttribute("dragtarget");
|
|
||||||
+ label.removeAttribute("zen-dragtarget");
|
|
||||||
}
|
|
||||||
let periphery = draggedTabDocument.getElementById(
|
|
||||||
"tabbrowser-arrowscrollbox-periphery"
|
|
||||||
@@ -3522,7 +3605,7 @@
|
|
||||||
let postTransitionCleanup = () => {
|
|
||||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
|
||||||
};
|
|
||||||
- if (gReduceMotion) {
|
|
||||||
+ if (true || gReduceMotion) {
|
|
||||||
postTransitionCleanup();
|
|
||||||
} else {
|
|
||||||
let onTransitionEnd = transitionendEvent => {
|
|
||||||
@@ -3686,7 +3769,7 @@
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_notifyBackgroundTab(aTab) {
|
_notifyBackgroundTab(aTab) {
|
||||||
@@ -638,25 +209,3 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3795,7 +3878,10 @@
|
|
||||||
#getDragTarget(event, { ignoreSides = false } = {}) {
|
|
||||||
let { target } = event;
|
|
||||||
while (target) {
|
|
||||||
- if (isTab(target) || isTabGroupLabel(target)) {
|
|
||||||
+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) {
|
|
||||||
+ if (target.classList?.contains("tab-group-label-container")) {
|
|
||||||
+ target = target.querySelector(".tab-group-label");
|
|
||||||
+ }
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
target = target.parentNode;
|
|
||||||
@@ -3812,6 +3898,9 @@
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ if (target?.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ target = target.group.labelElement;
|
|
||||||
+ }
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c6da90098 100644
|
index 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bfe907f0e2 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
|
||||||
@@ -297,7 +297,6 @@ export class UrlbarController {
|
@@ -299,7 +299,6 @@ export class UrlbarController {
|
||||||
const isMac = AppConstants.platform == "macosx";
|
const isMac = AppConstants.platform == "macosx";
|
||||||
// Handle readline/emacs-style navigation bindings on Mac.
|
// Handle readline/emacs-style navigation bindings on Mac.
|
||||||
if (
|
if (
|
||||||
@@ -10,7 +10,7 @@ index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c
|
|||||||
this.view.isOpen &&
|
this.view.isOpen &&
|
||||||
event.ctrlKey &&
|
event.ctrlKey &&
|
||||||
(event.key == "n" || event.key == "p")
|
(event.key == "n" || event.key == "p")
|
||||||
@@ -441,6 +440,8 @@ export class UrlbarController {
|
@@ -443,6 +442,8 @@ export class UrlbarController {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d355858bcf37b 100644
|
index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d21420357586fb7f14 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
|
||||||
@@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
||||||
lazy.UrlbarUtils.getLogger({ prefix: "Input" })
|
lazy.UrlbarUtils.getLogger({ prefix: "Input" })
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||||
|
|
||||||
const UNLIMITED_MAX_RESULTS = 99;
|
const UNLIMITED_MAX_RESULTS = 99;
|
||||||
@@ -437,7 +444,16 @@ export class UrlbarInput {
|
@@ -454,7 +461,16 @@ export class UrlbarInput {
|
||||||
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
// 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 afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this._suppressPrimaryAdjustment = false;
|
this._suppressPrimaryAdjustment = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,6 +529,10 @@ export class UrlbarInput {
|
@@ -530,6 +546,10 @@ export class UrlbarInput {
|
||||||
hideSearchTerms = false,
|
hideSearchTerms = false,
|
||||||
isSameDocument = false
|
isSameDocument = false
|
||||||
) {
|
) {
|
||||||
@@ -44,7 +44,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (!this.isAddressbar) {
|
if (!this.isAddressbar) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Cannot set URI for UrlbarInput that is not an address bar"
|
"Cannot set URI for UrlbarInput that is not an address bar"
|
||||||
@@ -790,8 +810,16 @@ export class UrlbarInput {
|
@@ -807,8 +827,16 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1207,7 +1235,11 @@ export class UrlbarInput {
|
@@ -1224,7 +1252,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.#providesSearchMode(result)) {
|
if (!this.#providesSearchMode(result)) {
|
||||||
@@ -75,7 +75,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isCanonized) {
|
if (isCanonized) {
|
||||||
@@ -2298,6 +2330,32 @@ export class UrlbarInput {
|
@@ -2347,6 +2379,32 @@ export class UrlbarInput {
|
||||||
await this.#updateLayoutBreakoutDimensions();
|
await this.#updateLayoutBreakoutDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
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
|
||||||
@@ -2312,6 +2370,13 @@ export class UrlbarInput {
|
@@ -2361,6 +2419,13 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.setAttribute("breakout-extend", "true");
|
this.setAttribute("breakout-extend", "true");
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
// 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")) {
|
||||||
@@ -2331,6 +2396,24 @@ export class UrlbarInput {
|
@@ -2380,6 +2445,24 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this.removeAttribute("breakout-extend");
|
this.removeAttribute("breakout-extend");
|
||||||
this.#updateTextboxPosition();
|
this.#updateTextboxPosition();
|
||||||
}
|
}
|
||||||
@@ -2361,7 +2444,7 @@ export class UrlbarInput {
|
@@ -2410,7 +2493,7 @@ export class UrlbarInput {
|
||||||
forceUnifiedSearchButtonAvailable = false
|
forceUnifiedSearchButtonAvailable = false
|
||||||
) {
|
) {
|
||||||
let prevState = this.getAttribute("pageproxystate");
|
let prevState = this.getAttribute("pageproxystate");
|
||||||
@@ -156,7 +156,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this.setAttribute("pageproxystate", state);
|
this.setAttribute("pageproxystate", state);
|
||||||
this._inputContainer.setAttribute("pageproxystate", state);
|
this._inputContainer.setAttribute("pageproxystate", state);
|
||||||
this._identityBox?.setAttribute("pageproxystate", state);
|
this._identityBox?.setAttribute("pageproxystate", state);
|
||||||
@@ -2595,10 +2678,12 @@ export class UrlbarInput {
|
@@ -2646,10 +2729,12 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.textbox.style.top = px(
|
this.textbox.style.top = px(
|
||||||
@@ -169,7 +169,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2658,9 +2743,10 @@ export class UrlbarInput {
|
@@ -2709,9 +2794,10 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,7 +181,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
);
|
);
|
||||||
this.textbox.style.setProperty(
|
this.textbox.style.setProperty(
|
||||||
"--urlbar-height",
|
"--urlbar-height",
|
||||||
@@ -3093,6 +3179,7 @@ export class UrlbarInput {
|
@@ -3144,6 +3230,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_toggleActionOverride(event) {
|
_toggleActionOverride(event) {
|
||||||
@@ -189,7 +189,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
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 ||
|
||||||
@@ -3197,7 +3284,7 @@ export class UrlbarInput {
|
@@ -3248,7 +3335,7 @@ export class UrlbarInput {
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||||
@@ -198,7 +198,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
: 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.
|
||||||
@@ -3501,6 +3588,7 @@ export class UrlbarInput {
|
@@ -3552,6 +3639,7 @@ export class UrlbarInput {
|
||||||
resultDetails = null,
|
resultDetails = null,
|
||||||
browser = this.window.gBrowser.selectedBrowser
|
browser = this.window.gBrowser.selectedBrowser
|
||||||
) {
|
) {
|
||||||
@@ -206,7 +206,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (this.isAddressbar) {
|
if (this.isAddressbar) {
|
||||||
this.#prepareAddressbarLoad(
|
this.#prepareAddressbarLoad(
|
||||||
url,
|
url,
|
||||||
@@ -3608,6 +3696,10 @@ export class UrlbarInput {
|
@@ -3659,6 +3747,10 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
reuseEmpty = true;
|
reuseEmpty = true;
|
||||||
}
|
}
|
||||||
@@ -217,7 +217,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (
|
if (
|
||||||
where == "tab" &&
|
where == "tab" &&
|
||||||
reuseEmpty &&
|
reuseEmpty &&
|
||||||
@@ -3615,6 +3707,9 @@ export class UrlbarInput {
|
@@ -3666,6 +3758,9 @@ export class UrlbarInput {
|
||||||
) {
|
) {
|
||||||
where = "current";
|
where = "current";
|
||||||
}
|
}
|
||||||
@@ -227,7 +227,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
return where;
|
return where;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3872,6 +3967,7 @@ export class UrlbarInput {
|
@@ -3923,6 +4018,7 @@ export class UrlbarInput {
|
||||||
this.setResultForCurrentValue(null);
|
this.setResultForCurrentValue(null);
|
||||||
this.handleCommand();
|
this.handleCommand();
|
||||||
this.controller.clearLastQueryContextCache();
|
this.controller.clearLastQueryContextCache();
|
||||||
@@ -235,7 +235,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
this._suppressStartQuery = false;
|
this._suppressStartQuery = false;
|
||||||
});
|
});
|
||||||
@@ -3879,7 +3975,6 @@ export class UrlbarInput {
|
@@ -3930,7 +4026,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.
|
||||||
@@ -243,7 +243,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
let controller =
|
let controller =
|
||||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||||
@@ -3991,7 +4086,11 @@ export class UrlbarInput {
|
@@ -4040,7 +4135,11 @@ export class UrlbarInput {
|
||||||
if (!engineName && !source && !this.hasAttribute("searchmode")) {
|
if (!engineName && !source && !this.hasAttribute("searchmode")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -256,7 +256,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (this._searchModeIndicatorTitle) {
|
if (this._searchModeIndicatorTitle) {
|
||||||
this._searchModeIndicatorTitle.textContent = "";
|
this._searchModeIndicatorTitle.textContent = "";
|
||||||
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
||||||
@@ -4302,6 +4401,7 @@ export class UrlbarInput {
|
@@ -4351,6 +4450,7 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.document.l10n.setAttributes(
|
this.document.l10n.setAttributes(
|
||||||
this.inputField,
|
this.inputField,
|
||||||
@@ -264,7 +264,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
l10nId,
|
l10nId,
|
||||||
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
|
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
|
||||||
);
|
);
|
||||||
@@ -4413,6 +4513,11 @@ export class UrlbarInput {
|
@@ -4462,6 +4562,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_click(event) {
|
_on_click(event) {
|
||||||
@@ -276,7 +276,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (
|
if (
|
||||||
event.target == this.inputField ||
|
event.target == this.inputField ||
|
||||||
event.target == this._inputContainer
|
event.target == this._inputContainer
|
||||||
@@ -4485,7 +4590,7 @@ export class UrlbarInput {
|
@@ -4534,7 +4639,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +285,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this.view.autoOpen({ event });
|
this.view.autoOpen({ event });
|
||||||
} else {
|
} else {
|
||||||
if (this._untrimOnFocusAfterKeydown) {
|
if (this._untrimOnFocusAfterKeydown) {
|
||||||
@@ -4525,9 +4630,16 @@ export class UrlbarInput {
|
@@ -4574,9 +4679,16 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_mousedown(event) {
|
_on_mousedown(event) {
|
||||||
@@ -303,7 +303,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
event.target != this.inputField &&
|
event.target != this.inputField &&
|
||||||
@@ -4538,6 +4650,10 @@ export class UrlbarInput {
|
@@ -4587,6 +4699,10 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.focusedViaMousedown = !this.focused;
|
this.focusedViaMousedown = !this.focused;
|
||||||
this._preventClickSelectsAll = this.focused;
|
this._preventClickSelectsAll = this.focused;
|
||||||
@@ -314,7 +314,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
// 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().
|
||||||
@@ -4573,7 +4689,7 @@ export class UrlbarInput {
|
@@ -4622,7 +4738,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
// Don't close the view when clicking on a tab; we may want to keep the
|
// 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.
|
||||||
@@ -323,7 +323,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4890,7 +5006,7 @@ export class UrlbarInput {
|
@@ -4939,7 +5055,7 @@ export class UrlbarInput {
|
||||||
// When we are in actions search mode we can show more results so
|
// When we are in actions search mode we can show more results so
|
||||||
// increase the limit.
|
// increase the limit.
|
||||||
let maxResults =
|
let maxResults =
|
||||||
|
|||||||
@@ -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 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126c1d32b04 100644
|
index c12d875172650dddfe7de623a776149517c83302..66e923ed2c84e350dd7ba7a20e362666cec8f307 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
|
||||||
@@ -852,6 +852,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
@@ -854,6 +854,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.providerName == "UrlbarProviderTabToSearch") {
|
if (result.providerName == "UrlbarProviderTabToSearch") {
|
||||||
@@ -10,7 +10,7 @@ index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126
|
|||||||
// Discard the result if a tab-to-search result was added already.
|
// Discard the result if a tab-to-search result was added already.
|
||||||
if (!state.canAddTabToSearch) {
|
if (!state.canAddTabToSearch) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1498,7 +1499,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
@@ -1500,7 +1501,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||||
usedLimits.maxResultCount++;
|
usedLimits.maxResultCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
index 46ad55519aecd6c14034a9faa91c7ad8e5c1c422..e8d9c06499a2b273483edd21faf902c936462b59 100644
|
index 531cecb9da3465d392ea82248e6ebb3fe6476b47..f3cce2a66bb8465ae022df0c1b9823e7e88cba21 100644
|
||||||
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||||
index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e16ea53ed 100644
|
index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58bc893ac14 100644
|
||||||
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||||
@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") {
|
@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") {
|
||||||
@@ -26,7 +26,7 @@ index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e
|
|||||||
h.visit_count, h.typed,
|
h.visit_count, h.typed,
|
||||||
0, t.open_count,
|
0, t.open_count,
|
||||||
:matchBehavior, :searchBehavior, NULL)
|
:matchBehavior, :searchBehavior, NULL)
|
||||||
@@ -1120,11 +1122,13 @@ Search.prototype = {
|
@@ -1126,11 +1128,13 @@ Search.prototype = {
|
||||||
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
|
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
|
||||||
: undefined;
|
: undefined;
|
||||||
let tabGroup = row.getResultByName("groupId");
|
let tabGroup = row.getResultByName("groupId");
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||||
index ece407214669009e263b507b5236ab28da33efe9..8f22426295e2b001438918f44d2c22ed7a697c2f 100644
|
index b864cf9a9159d1f4e162ff5e8895a2bc95dee881..b30ee47b4f6d9025648ca5d93ee79f993cb6f4c2 100644
|
||||||
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||||
@@ -845,6 +845,7 @@ export class Query {
|
@@ -873,6 +873,7 @@ export class Query {
|
||||||
if (
|
if (
|
||||||
result.heuristic &&
|
result.heuristic &&
|
||||||
this.context.searchMode &&
|
this.context.searchMode &&
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13dc8e61fbc 100644
|
index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b033e5a4394 100644
|
||||||
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
@@ -74,6 +74,7 @@ export var UrlbarUtils = {
|
@@ -77,6 +77,7 @@ export var UrlbarUtils = {
|
||||||
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
||||||
SUGGESTED_INDEX: "suggestedIndex",
|
SUGGESTED_INDEX: "suggestedIndex",
|
||||||
TAIL_SUGGESTION: "tailSuggestion",
|
TAIL_SUGGESTION: "tailSuggestion",
|
||||||
@@ -10,7 +10,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
// Defines provider types.
|
// Defines provider types.
|
||||||
@@ -133,6 +134,7 @@ export var UrlbarUtils = {
|
@@ -136,6 +137,7 @@ export var UrlbarUtils = {
|
||||||
OTHER_NETWORK: 6,
|
OTHER_NETWORK: 6,
|
||||||
ADDON: 7,
|
ADDON: 7,
|
||||||
ACTIONS: 8,
|
ACTIONS: 8,
|
||||||
@@ -18,7 +18,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
// Per-result exposure telemetry.
|
// Per-result exposure telemetry.
|
||||||
@@ -544,6 +546,8 @@ export var UrlbarUtils = {
|
@@ -547,6 +549,8 @@ export var UrlbarUtils = {
|
||||||
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
|
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
|
||||||
case "UrlbarProviderHistoryUrlHeuristic":
|
case "UrlbarProviderHistoryUrlHeuristic":
|
||||||
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
|
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||||
index 50961e4beb75012ef0ed6f261a95854712cc69d7..93bcfca9270ff34dbe6386789fdae6066457438d 100644
|
index beff1d41e47efad09256459589176d96c69f7a8a..c850dad31454d61c4edb6e183db07b2d51fb9fc8 100644
|
||||||
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||||
@@ -585,6 +585,7 @@ export class UrlbarValueFormatter {
|
@@ -585,6 +585,7 @@ export class UrlbarValueFormatter {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b50b9fa2e8 100644
|
index 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2ef873b348 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
|
||||||
@@ -620,7 +620,7 @@ export class UrlbarView {
|
@@ -620,7 +620,7 @@ export class UrlbarView {
|
||||||
@@ -11,7 +11,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5
|
|||||||
// Try to reuse the cached top-sites context. If it's not cached, then
|
// 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.
|
||||||
@@ -2734,6 +2734,8 @@ export class UrlbarView {
|
@@ -2751,6 +2751,8 @@ export class UrlbarView {
|
||||||
if (row?.hasAttribute("row-selectable")) {
|
if (row?.hasAttribute("row-selectable")) {
|
||||||
row?.toggleAttribute("selected", true);
|
row?.toggleAttribute("selected", true);
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5
|
|||||||
if (element != row) {
|
if (element != row) {
|
||||||
row?.toggleAttribute("descendant-selected", true);
|
row?.toggleAttribute("descendant-selected", true);
|
||||||
}
|
}
|
||||||
@@ -3215,7 +3217,7 @@ export class UrlbarView {
|
@@ -3232,7 +3234,7 @@ export class UrlbarView {
|
||||||
}
|
}
|
||||||
|
|
||||||
#enableOrDisableRowWrap() {
|
#enableOrDisableRowWrap() {
|
||||||
|
|||||||
@@ -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 6207e6c8aa1e303ec151bc1e5c51c277ef776ee6..d3783a3c459c94880be1c95dc265a7d4887f67a1 100644
|
index 7e50d7f5512cb4304d6fd2ecb6952fbff0b8f98e..ba09805f07b754b4b36d5a650252d5578184d031 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
|
||||||
@@ -223,7 +223,7 @@ export const PREFS_CONFIG = new Map([
|
@@ -250,7 +250,7 @@ export const PREFS_CONFIG = new Map([
|
||||||
"showSponsoredTopSites",
|
"showSponsoredTopSites",
|
||||||
{
|
{
|
||||||
title: "Show sponsored top sites",
|
title: "Show sponsored top sites",
|
||||||
|
|||||||
@@ -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 b884f0167e5de87a45cf523436ceaceb710d35ae..eedc80278a5c93f81ce90c0d6198924549c07fc3 100644
|
index bb06e9224a4e195122d8a47ccf97c3481342cf86..959862e95ec00c7dc18256bd2572c1d7285415d4 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
|
||||||
@@ -362,17 +362,17 @@ bin/libfreebl_64int_3.so
|
@@ -372,17 +372,17 @@ bin/libfreebl_64int_3.so
|
||||||
; [MaintenanceService]
|
; [MaintenanceService]
|
||||||
;
|
;
|
||||||
#ifdef MOZ_MAINTENANCE_SERVICE
|
#ifdef MOZ_MAINTENANCE_SERVICE
|
||||||
|
|||||||
@@ -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 f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1135fe766 100644
|
index 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad9eb7eaf8 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 f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1
|
|||||||
|
|
||||||
# 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).
|
||||||
@@ -154,7 +154,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
|
@@ -153,7 +153,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
|
||||||
|
|||||||
@@ -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 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0197351d1 100755
|
index 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8aa919456 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
|
||||||
@@ -841,7 +841,7 @@ Section "-InstallEndCleanup"
|
@@ -842,7 +842,7 @@ Section "-InstallEndCleanup"
|
||||||
; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't
|
; 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 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0
|
|||||||
${EndIf}
|
${EndIf}
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@@ -1969,5 +1969,5 @@ FunctionEnd
|
@@ -1970,5 +1970,5 @@ FunctionEnd
|
||||||
|
|
||||||
Function .onGUIEnd
|
Function .onGUIEnd
|
||||||
${OnEndCommon}
|
${OnEndCommon}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
diff --git a/browser/installer/windows/nsis/uninstaller.nsi b/browser/installer/windows/nsis/uninstaller.nsi
|
diff --git a/browser/installer/windows/nsis/uninstaller.nsi b/browser/installer/windows/nsis/uninstaller.nsi
|
||||||
old mode 100755
|
old mode 100755
|
||||||
new mode 100644
|
new mode 100644
|
||||||
index 559c8b46ee06bc42c91da49b5d9e397fe8ff6126..62094a5d98712a41a607ba01ca2adfa1e4f51ccd
|
index fd104f8ab0bd51d6a99c121b60e2695a54b0dfd0..9b117e5a1f5e8adac7d22cd65154529418fd2e5b
|
||||||
--- a/browser/installer/windows/nsis/uninstaller.nsi
|
--- a/browser/installer/windows/nsis/uninstaller.nsi
|
||||||
+++ b/browser/installer/windows/nsis/uninstaller.nsi
|
+++ b/browser/installer/windows/nsis/uninstaller.nsi
|
||||||
@@ -507,6 +507,7 @@ Section "Uninstall"
|
@@ -519,6 +519,7 @@ Section "Uninstall"
|
||||||
${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID"
|
${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID"
|
||||||
${un.RegCleanFileHandler} ".webp" "FirefoxHTML-$AppUserModelID"
|
${un.RegCleanFileHandler} ".webp" "FirefoxHTML-$AppUserModelID"
|
||||||
${un.RegCleanFileHandler} ".avif" "FirefoxHTML-$AppUserModelID"
|
${un.RegCleanFileHandler} ".avif" "FirefoxHTML-$AppUserModelID"
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
diff --git a/browser/modules/BrowserDOMWindow.sys.mjs b/browser/modules/BrowserDOMWindow.sys.mjs
|
diff --git a/browser/modules/BrowserDOMWindow.sys.mjs b/browser/modules/BrowserDOMWindow.sys.mjs
|
||||||
index 534d23b3e66176ea77f3ef577bf9630626948b9d..752e229bbe725ae394b7648adb949635f2bd70e4 100644
|
index e951af5edb966718ee20422c8e46d868c177cd1c..cd41305a4da8e675417eca7df5cd4a1ecee90c3d 100644
|
||||||
--- a/browser/modules/BrowserDOMWindow.sys.mjs
|
--- a/browser/modules/BrowserDOMWindow.sys.mjs
|
||||||
+++ b/browser/modules/BrowserDOMWindow.sys.mjs
|
+++ b/browser/modules/BrowserDOMWindow.sys.mjs
|
||||||
@@ -374,7 +374,7 @@ export class BrowserDOMWindow {
|
@@ -437,7 +437,7 @@ export class BrowserDOMWindow {
|
||||||
// Passing a null-URI to only create the content window,
|
// Passing a null-URI to only create the content window,
|
||||||
// and pass true for aSkipLoad to prevent loading of
|
// and pass true for aSkipLoad to prevent loading of
|
||||||
// about:blank
|
// about:blank
|
||||||
- return this.getContentWindowOrOpenURIInFrame(
|
- return this.#getContentWindowOrOpenURIInFrame(
|
||||||
+ let res = this.getContentWindowOrOpenURIInFrame(
|
+ let res = this.#getContentWindowOrOpenURIInFrame(
|
||||||
null,
|
null,
|
||||||
aParams,
|
aParams,
|
||||||
aWhere,
|
aWhere,
|
||||||
@@ -382,6 +382,10 @@ export class BrowserDOMWindow {
|
@@ -445,6 +445,10 @@ export class BrowserDOMWindow {
|
||||||
aName,
|
aName,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -21,4 +21,4 @@ index 534d23b3e66176ea77f3ef577bf9630626948b9d..752e229bbe725ae394b7648adb949635
|
|||||||
+ return res;
|
+ return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
openURIInFrame(aURI, aParams, aWhere, aFlags, aName) {
|
/**
|
||||||
|
|||||||
@@ -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 17cad7b3fbdd6dff862483892f37f72c00792c88..90ea4d95738eb50d1a4a67ee7df087e7c2a68b3d 100644
|
index 31229b3bc1b93565a57c2c0b0307ceeb594c3936..30456ef5d3c58e96717cd292f861a04a790d0ee1 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
|
||||||
@@ -478,7 +478,7 @@ export var ExtensionsUI = {
|
@@ -480,7 +480,7 @@ export var ExtensionsUI = {
|
||||||
eventCallback,
|
eventCallback,
|
||||||
removeOnDismissal: true,
|
removeOnDismissal: true,
|
||||||
popupOptions: {
|
popupOptions: {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 f7a3e8272f1f22286a26bf50d78b23aa82b49df8..a690732012331dfc40cc08fef4453c28c6587a24 100644
|
index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410d016a5a3 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
|
||||||
@@ -541,7 +541,7 @@ export const URILoadingHelper = {
|
@@ -541,7 +541,7 @@ export const URILoadingHelper = {
|
||||||
|
|||||||
@@ -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 b1062108c6f6174a680e9b235ee9cb2037f94924..31aac7bdee4ebb07e9de58e7c3e5e6833c94e968 100644
|
index 0a15e3d60d408f119bd03007567d5dd1fa178c36..443901657296d0d15a95e1d39e826b1c008aac4d 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 @@
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
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 c77a0e6388c4061d9e6ee5f396a3e3af8867e4fe..3da164d2414e8726675ac0184310c9363365387f 100644
|
index 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca26a4a5b8c 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
|
||||||
@@ -102,7 +102,7 @@ body {
|
@@ -102,7 +102,7 @@ body {
|
||||||
--toolbarbutton-border-radius: 4px;
|
--toolbarbutton-border-radius: var(--button-border-radius);
|
||||||
--identity-box-margin-inline: 4px;
|
--identity-box-margin-inline: 4px;
|
||||||
--urlbar-min-height: max(32px, 1.4em);
|
--urlbar-min-height: max(32px, 1.4em);
|
||||||
- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
|
- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
|
||||||
+ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2);
|
+ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2);
|
||||||
|
|
||||||
/* This should be used for icons and chiclets inside the input field. It makes
|
/* This should be used for icons and chiclets inside the input field, as well
|
||||||
the gap around them more uniform when they are close to the field edges */
|
as result rows. It makes the gap around them more uniform when they are
|
||||||
@@ -170,8 +170,6 @@ body {
|
@@ -171,8 +171,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);
|
||||||
@@ -20,7 +20,7 @@ index c77a0e6388c4061d9e6ee5f396a3e3af8867e4fe..3da164d2414e8726675ac0184310c936
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Themes define a set of toolbox foreground and background colors which we
|
/* Themes define a set of toolbox foreground and background colors which we
|
||||||
@@ -281,13 +279,13 @@ body {
|
@@ -282,13 +280,13 @@ body {
|
||||||
|
|
||||||
@media (-moz-platform: macos) and (not (-moz-mac-rtl)) {
|
@media (-moz-platform: macos) and (not (-moz-mac-rtl)) {
|
||||||
&:-moz-locale-dir(ltr) {
|
&:-moz-locale-dir(ltr) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 8edca63dc52ec207475ed9965559d28c06e27971..a5a949be1868af5d0bb04747a9f5b737c00ae49c 100644
|
index d542e962d42b17140888e299ed43a838047ee48c..5e0b72f147687924c48dfed0318f53b765a4d497 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,13 +81,6 @@
|
@@ -81,13 +81,6 @@
|
||||||
@@ -11,7 +11,7 @@ index 8edca63dc52ec207475ed9965559d28c06e27971..a5a949be1868af5d0bb04747a9f5b737
|
|||||||
- background-color: var(--urlbar-box-bgcolor);
|
- background-color: var(--urlbar-box-bgcolor);
|
||||||
- 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-inner-border-radius);
|
||||||
-}
|
-}
|
||||||
|
|
||||||
#urlbar[focused] {
|
#urlbar[focused] {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 94036d036a64c8845c02d4ffbcf3f99b5d88576e..2ab3f060c9952f1b0c7bee3d5c3a1d7035e6736a 100644
|
index 6085ce0614c9ea7d650c9526b295953f46b30cb6..06b4af758d9ae033dd0b7436f08e6748047c8bbe 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
|
||||||
@@ -316,3 +316,5 @@
|
@@ -317,3 +317,5 @@
|
||||||
|
|
||||||
skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg)
|
skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg)
|
||||||
skin/classic/browser/illustrations/yelpRealtime-opt-in.svg (../shared/illustrations/yelpRealtime-opt-in.svg)
|
skin/classic/browser/illustrations/yelpRealtime-opt-in.svg (../shared/illustrations/yelpRealtime-opt-in.svg)
|
||||||
|
|||||||
@@ -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 e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf5ecbd642 100644
|
index db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f23063dbd 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
|
||||||
@@ -134,7 +134,6 @@
|
@@ -140,7 +140,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
browser:is([blank], [pendingpaint]) {
|
browser:is([blank], [pendingpaint]) {
|
||||||
@@ -10,7 +10,7 @@ index e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf
|
|||||||
}
|
}
|
||||||
|
|
||||||
browser[type="content"] {
|
browser[type="content"] {
|
||||||
@@ -276,7 +275,7 @@
|
@@ -323,7 +322,7 @@
|
||||||
|
|
||||||
.dialogStack {
|
.dialogStack {
|
||||||
z-index: var(--browser-stack-z-index-dialog-stack);
|
z-index: var(--browser-stack-z-index-dialog-stack);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css
|
diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css
|
||||||
index aaeae8fd0e999aecda02bf287b39c4d96ad73f3c..d8196d9b1b5491d73b18a7c7d7fef55bc11fe31b 100644
|
index 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7b8c4d3da 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
|
||||||
@@ -11,6 +11,7 @@
|
@@ -11,6 +11,7 @@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d85fc4c91a 100644
|
index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2bff889716 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
|
||||||
@@ -21,7 +21,7 @@
|
@@ -21,7 +21,7 @@
|
||||||
@@ -23,7 +23,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
--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"] {
|
||||||
@@ -259,7 +259,6 @@
|
@@ -267,7 +267,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
|
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
|
||||||
@@ -31,7 +31,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:is([selected], [multiselected]) {
|
&:is([selected], [multiselected]) {
|
||||||
@@ -273,6 +272,7 @@
|
@@ -281,6 +280,7 @@
|
||||||
border-radius: inherit;
|
border-radius: inherit;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -39,7 +39,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -472,14 +472,11 @@
|
@@ -480,14 +480,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 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
/* Fade the favicon out */
|
/* Fade the favicon out */
|
||||||
transition-property: filter, opacity;
|
transition-property: filter, opacity;
|
||||||
@@ -496,10 +493,6 @@
|
@@ -504,10 +501,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 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
/* Fade the favicon out */
|
/* Fade the favicon out */
|
||||||
transition-property: filter, opacity;
|
transition-property: filter, opacity;
|
||||||
@@ -572,7 +565,7 @@
|
@@ -575,7 +568,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 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
&[crashed] {
|
&[crashed] {
|
||||||
@@ -580,7 +573,7 @@
|
@@ -583,7 +576,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
||||||
@@ -84,7 +84,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&[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");
|
||||||
}
|
}
|
||||||
@@ -637,7 +630,7 @@
|
@@ -640,7 +633,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&[crashed] {
|
&[crashed] {
|
||||||
display: revert;
|
display: revert;
|
||||||
}
|
}
|
||||||
@@ -738,7 +731,7 @@
|
@@ -741,7 +734,7 @@
|
||||||
has not been added to root. There are certain scenarios when that attribute is temporarily
|
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,7 +102,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&:is([soundplaying], [muted], [activemedia-blocked]) {
|
&:is([soundplaying], [muted], [activemedia-blocked]) {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@@ -1226,7 +1219,7 @@ tab-group {
|
@@ -1245,7 +1238,7 @@ tab-group {
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"][expanded] {
|
#tabbrowser-tabs[orient="vertical"][expanded] {
|
||||||
@@ -111,7 +111,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
|
&[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);
|
||||||
}
|
}
|
||||||
@@ -1685,7 +1678,7 @@ tab-group {
|
@@ -1692,7 +1685,7 @@ tab-group {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
#vertical-tabs-newtab-button {
|
#vertical-tabs-newtab-button {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
min-height: var(--tab-min-height);
|
min-height: var(--tab-min-height);
|
||||||
@@ -1696,7 +1689,7 @@ tab-group {
|
@@ -1703,7 +1696,7 @@ tab-group {
|
||||||
margin-inline: var(--tab-inner-inline-margin);
|
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 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@@ -1720,7 +1713,7 @@ tab-group {
|
@@ -1727,7 +1720,7 @@ tab-group {
|
||||||
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
|
* 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 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
margin-block: var(--tab-block-margin);
|
margin-block: var(--tab-block-margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1913,7 +1906,6 @@ tab-group {
|
@@ -1915,7 +1908,6 @@ tab-group {
|
||||||
|
|
||||||
&:not([expanded]) {
|
&:not([expanded]) {
|
||||||
.tabbrowser-tab[pinned] {
|
.tabbrowser-tab[pinned] {
|
||||||
@@ -146,7 +146,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tab-background {
|
.tab-background {
|
||||||
@@ -1953,8 +1945,8 @@ tab-group {
|
@@ -1955,8 +1947,8 @@ tab-group {
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
inset: auto;
|
inset: auto;
|
||||||
@@ -157,7 +157,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
|
|
||||||
&:-moz-window-inactive {
|
&:-moz-window-inactive {
|
||||||
background-image:
|
background-image:
|
||||||
@@ -2073,7 +2065,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
@@ -2075,7 +2067,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||||
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 1744e627bbcfc69ccccb207ad1cbf0c262afb9be..50cc9da2076d946771fb5aca1402f1cbe6a531c8 100644
|
index 15dcfbc95afab9f28bd58379da0ef3e24d1b4595..73827cc5cffe47099feea36cbeffb547e955b37e 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
|
||||||
@@ -6,7 +6,7 @@
|
@@ -6,7 +6,7 @@
|
||||||
@@ -20,7 +20,7 @@ index 1744e627bbcfc69ccccb207ad1cbf0c262afb9be..50cc9da2076d946771fb5aca1402f1cb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* When rich suggestions are enabled the urlbar identity icon is given extra padding to
|
/* When rich suggestions are enabled the urlbar identity icon is given extra padding to
|
||||||
@@ -321,10 +321,14 @@
|
@@ -320,10 +320,14 @@
|
||||||
|
|
||||||
.urlbar[breakout][breakout-extend] {
|
.urlbar[breakout][breakout-extend] {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
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 ec849fc792572e75d12b9e7cd7e6b7f32c799fa9..17c7d442854b774817ef5b3b96e732c19bebef9d 100644
|
index e0a05846eb0a329fc58b660f806912a1afe7c6c9..0d02e227a84ff4229104dd9cf9cd20f50a8d136c 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 @@
|
||||||
|
|
||||||
--urlbarView-small-font-size: 0.85em;
|
--urlbarView-small-font-size: 0.85em;
|
||||||
|
|
||||||
- --urlbarView-results-padding: 4px;
|
- --urlbarView-results-padding: 7px;
|
||||||
+ --urlbarView-results-padding: 8px;
|
+ --urlbarView-results-padding: 8px;
|
||||||
--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;
|
||||||
@@ -173,7 +173,6 @@
|
@@ -171,7 +171,6 @@
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
:root[uidensity="touch"] & {
|
:root[uidensity="touch"] & {
|
||||||
|
|||||||
18
src/devtools/client/locales/en-US/toolbox-properties.patch
Normal file
18
src/devtools/client/locales/en-US/toolbox-properties.patch
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/devtools/client/locales/en-US/toolbox.properties b/devtools/client/locales/en-US/toolbox.properties
|
||||||
|
index d4f986b024d3505b8c151f8e0166a20ff1862c5d..b2fb69e8897abdacb090d5a6faca203656e7cd44 100644
|
||||||
|
--- a/devtools/client/locales/en-US/toolbox.properties
|
||||||
|
+++ b/devtools/client/locales/en-US/toolbox.properties
|
||||||
|
@@ -66,11 +66,11 @@ toolbox.androidElementPicker.mac.tooltip=Pick an element from the Android phone
|
||||||
|
|
||||||
|
# LOCALIZATION NOTE (toolbox.elementPicker.key)
|
||||||
|
# Key shortcut used to toggle the element picker.
|
||||||
|
-toolbox.elementPicker.key=CmdOrCtrl+Shift+C
|
||||||
|
+toolbox.elementPicker.key=CmdOrCtrl+Shift+L
|
||||||
|
|
||||||
|
# LOCALIZATION NOTE (toolbox.elementPicker.mac.key)
|
||||||
|
# Key shortcut used to toggle the element picker for macOS.
|
||||||
|
-toolbox.elementPicker.mac.key=Cmd+Opt+C
|
||||||
|
+toolbox.elementPicker.mac.key=Cmd+Opt+L
|
||||||
|
|
||||||
|
# LOCALIZATION NOTE (toolbox.viewCssSourceInStyleEditor.label)
|
||||||
|
# Used as a message in either tooltips or contextual menu items to open the
|
||||||
@@ -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 ea27f1209ddb9b33ae044186c2b795685a0bde67..6d808a760885f0e26ff307a39d6977228359fe71 100644
|
index a0026f953e8383741221d60ed5c02d0c12740f09..fd5c49d0b8997f29d3dee8dc23e2c373341eb972 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
|
||||||
@@ -344,6 +344,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [
|
@@ -342,6 +342,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [
|
||||||
"transform-origin",
|
"transform-origin",
|
||||||
"translate",
|
"translate",
|
||||||
"-moz-window-transform",
|
"-moz-window-transform",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 95de0614e392e00036500a5b3ef9976041f37ec6..2c842055ce1d7ffd94c8f21a82305a3a13d493e0 100644
|
index 7d26af162be5620649ff36d7cf7d3835a8ac7a20..c0fbd46c22f1eacc82058919714174d15e8106f1 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
|
||||||
@@ -816,6 +816,7 @@ DevToolsStartup.prototype = {
|
@@ -816,6 +816,7 @@ DevToolsStartup.prototype = {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 83d84537f94863d47a30887362fa1ce5a9809427..104d170d5e5114f965b7698fc59d2bad12265261 100644
|
index 625640eef45baba74255c00c603f0834e1f0aa2c..8b7893cf3848edf9121f7cbefcc3a1c76894fa37 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[] = {
|
@@ -118,7 +118,7 @@ static const RedirEntry kRedirMap[] = {
|
||||||
{"crashes", "chrome://global/content/crashes.html",
|
{"crashes", "chrome://global/content/crashes.html",
|
||||||
nsIAboutModule::IS_SECURE_CHROME_UI},
|
nsIAboutModule::IS_SECURE_CHROME_UI},
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 0c2ef36f9765b6904659ac0ed4329468ca89225f..d06552e8d4ac102dd50a1afea10938ca32aeb788 100644
|
index 55d24fe16311a286813f7668a227d2ef0cc7e5d7..1a7c2352daf1e04e38a8fb81f80a1f9a58ba2cb5 100644
|
||||||
--- a/dom/base/Document.cpp
|
--- a/dom/base/Document.cpp
|
||||||
+++ b/dom/base/Document.cpp
|
+++ b/dom/base/Document.cpp
|
||||||
@@ -466,6 +466,7 @@
|
@@ -465,6 +465,7 @@
|
||||||
#include "prtime.h"
|
#include "prtime.h"
|
||||||
#include "prtypes.h"
|
#include "prtypes.h"
|
||||||
#include "xpcpublic.h"
|
#include "xpcpublic.h"
|
||||||
@@ -10,7 +10,7 @@ index 0c2ef36f9765b6904659ac0ed4329468ca89225f..d06552e8d4ac102dd50a1afea10938ca
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#include "mozilla/Encoding.h"
|
#include "mozilla/Encoding.h"
|
||||||
@@ -3428,6 +3429,10 @@ void Document::FillStyleSetUserAndUASheets() {
|
@@ -3442,6 +3443,10 @@ void Document::FillStyleSetUserAndUASheets() {
|
||||||
for (StyleSheet* sheet : *sheetService->UserStyleSheets()) {
|
for (StyleSheet* sheet : *sheetService->UserStyleSheets()) {
|
||||||
styleSet.AppendStyleSheet(*sheet);
|
styleSet.AppendStyleSheet(*sheet);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 157d46c37d0a465f02f794eda4323f7e344c5e63..aec8b819dbcf853c2e6d5513000149449fae36fd 100644
|
index 81d73c33af8c95e6f687c05354fb8a0e894dcd44..775742e1e4f84618dce45cbcb14229dc6c4f2b64 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
|
||||||
@@ -21154,6 +21154,22 @@ use.counter.css.page:
|
@@ -21086,6 +21086,22 @@ use.counter.css.page:
|
||||||
send_in_pings:
|
send_in_pings:
|
||||||
- use-counters
|
- use-counters
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ index 157d46c37d0a465f02f794eda4323f7e344c5e63..aec8b819dbcf853c2e6d551300014944
|
|||||||
css_transform_origin:
|
css_transform_origin:
|
||||||
type: counter
|
type: counter
|
||||||
description: >
|
description: >
|
||||||
@@ -33175,6 +33191,22 @@ use.counter.css.doc:
|
@@ -33056,6 +33072,22 @@ use.counter.css.doc:
|
||||||
send_in_pings:
|
send_in_pings:
|
||||||
- use-counters
|
- use-counters
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp
|
diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp
|
||||||
index 741a8f1744f48e7db4dbda64c856efaf9f3564b0..f9a2c0878f8a923903ed8eb65cbd355d40b41715 100644
|
index 3cb7a43dd9535ccf6ffaa60df39b487f07760208..ed3632e9f38ee88df39500356777ae5b3ba7202a 100644
|
||||||
--- a/dom/media/mediaelement/HTMLMediaElement.cpp
|
--- a/dom/media/mediaelement/HTMLMediaElement.cpp
|
||||||
+++ b/dom/media/mediaelement/HTMLMediaElement.cpp
|
+++ b/dom/media/mediaelement/HTMLMediaElement.cpp
|
||||||
@@ -453,6 +453,7 @@ class HTMLMediaElement::MediaControlKeyListener final
|
@@ -453,6 +453,7 @@ class HTMLMediaElement::MediaControlKeyListener final
|
||||||
@@ -10,7 +10,7 @@ index 741a8f1744f48e7db4dbda64c856efaf9f3564b0..f9a2c0878f8a923903ed8eb65cbd355d
|
|||||||
NotifyAudibleStateChanged(mIsOwnerAudible
|
NotifyAudibleStateChanged(mIsOwnerAudible
|
||||||
? MediaAudibleState::eAudible
|
? MediaAudibleState::eAudible
|
||||||
: MediaAudibleState::eInaudible);
|
: MediaAudibleState::eInaudible);
|
||||||
@@ -7191,6 +7192,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) {
|
@@ -7234,6 +7235,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) {
|
||||||
QueueTask(std::move(runner));
|
QueueTask(std::move(runner));
|
||||||
mQueueTimeUpdateRunnerTime = TimeStamp::Now();
|
mQueueTimeUpdateRunnerTime = TimeStamp::Now();
|
||||||
mLastCurrentTime = CurrentTime();
|
mLastCurrentTime = CurrentTime();
|
||||||
|
|||||||
@@ -1,336 +0,0 @@
|
|||||||
diff --git a/mfbt/tests/TestUniquePtr.cpp b/mfbt/tests/TestUniquePtr.cpp
|
|
||||||
--- a/mfbt/tests/TestUniquePtr.cpp
|
|
||||||
+++ b/mfbt/tests/TestUniquePtr.cpp
|
|
||||||
@@ -314,43 +314,45 @@
|
|
||||||
gADestructorCalls = 0;
|
|
||||||
gBDestructorCalls = 0;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
-typedef void (&FreeSignature)(void*);
|
|
||||||
+struct Free {
|
|
||||||
+ void operator()(void* aPtr) { free(aPtr); }
|
|
||||||
+};
|
|
||||||
|
|
||||||
static size_t DeleteIntFunctionCallCount = 0;
|
|
||||||
+struct DeleteIntFunction {
|
|
||||||
+ void operator()(void* aPtr) {
|
|
||||||
+ DeleteIntFunctionCallCount++;
|
|
||||||
+ delete[] static_cast<int*>(aPtr);
|
|
||||||
+ }
|
|
||||||
+};
|
|
||||||
|
|
||||||
-static void DeleteIntFunction(void* aPtr) {
|
|
||||||
- DeleteIntFunctionCallCount++;
|
|
||||||
- delete[] static_cast<int*>(aPtr);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-static void SetMallocedInt(UniquePtr<int, FreeSignature>& aPtr, int aI) {
|
|
||||||
+static void SetMallocedInt(UniquePtr<int, Free>& aPtr, int aI) {
|
|
||||||
int* newPtr = static_cast<int*>(malloc(sizeof(int)));
|
|
||||||
*newPtr = aI;
|
|
||||||
aPtr.reset(newPtr);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static UniquePtr<int, FreeSignature> MallocedInt(int aI) {
|
|
||||||
- UniquePtr<int, FreeSignature> ptr(static_cast<int*>(malloc(sizeof(int))),
|
|
||||||
- free);
|
|
||||||
+static UniquePtr<int, Free> MallocedInt(int aI) {
|
|
||||||
+ UniquePtr<int, Free> ptr(static_cast<int*>(malloc(sizeof(int))), Free{});
|
|
||||||
*ptr = aI;
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
static bool TestFunctionReferenceDeleter() {
|
|
||||||
// Look for allocator mismatches and leaks to verify these bits
|
|
||||||
- UniquePtr<int, FreeSignature> i1(MallocedInt(17));
|
|
||||||
+ UniquePtr<int, Free> i1(MallocedInt(17));
|
|
||||||
CHECK(*i1 == 17);
|
|
||||||
|
|
||||||
SetMallocedInt(i1, 42);
|
|
||||||
CHECK(*i1 == 42);
|
|
||||||
|
|
||||||
// These bits use a custom deleter so we can instrument deletion.
|
|
||||||
{
|
|
||||||
- UniquePtr<int, FreeSignature> i2 =
|
|
||||||
- UniquePtr<int, FreeSignature>(new int[42], DeleteIntFunction);
|
|
||||||
+ UniquePtr<int, DeleteIntFunction> i2 =
|
|
||||||
+ UniquePtr<int, DeleteIntFunction>(new int[42], DeleteIntFunction{});
|
|
||||||
CHECK(DeleteIntFunctionCallCount == 0);
|
|
||||||
|
|
||||||
i2.reset(new int[76]);
|
|
||||||
CHECK(DeleteIntFunctionCallCount == 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
|
|
||||||
--- a/build/moz.configure/toolchain.configure
|
|
||||||
+++ b/build/moz.configure/toolchain.configure
|
|
||||||
@@ -231,11 +231,11 @@
|
|
||||||
nargs=1,
|
|
||||||
help="Location of platform SDK to use",
|
|
||||||
)
|
|
||||||
|
|
||||||
def mac_sdk_min_version():
|
|
||||||
- return "15.5"
|
|
||||||
+ return "26.0"
|
|
||||||
|
|
||||||
@depends(
|
|
||||||
"--with-macos-sdk",
|
|
||||||
host,
|
|
||||||
bootstrap_path(
|
|
||||||
diff --git a/browser/themes/osx/places/organizer.css b/browser/themes/osx/places/organizer.css
|
|
||||||
index 60e3d65d9ea5..730aa23aed6c 100644
|
|
||||||
--- a/browser/themes/osx/places/organizer.css
|
|
||||||
+++ b/browser/themes/osx/places/organizer.css
|
|
||||||
@@ -11,13 +11,15 @@
|
|
||||||
padding: 4px 4px 3px;
|
|
||||||
border-bottom: 1px solid ThreeDShadow;
|
|
||||||
|
|
||||||
- &::after {
|
|
||||||
- content: "";
|
|
||||||
- position: absolute;
|
|
||||||
- inset: 0;
|
|
||||||
- appearance: auto;
|
|
||||||
- -moz-default-appearance: -moz-window-titlebar;
|
|
||||||
- z-index: -1;
|
|
||||||
+ @media not (-moz-mac-tahoe-theme) {
|
|
||||||
+ &::after {
|
|
||||||
+ content: "";
|
|
||||||
+ position: absolute;
|
|
||||||
+ inset: 0;
|
|
||||||
+ appearance: auto;
|
|
||||||
+ -moz-default-appearance: -moz-window-titlebar;
|
|
||||||
+ z-index: -1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/browser/themes/shared/pageInfo.css b/browser/themes/shared/pageInfo.css
|
|
||||||
index 92259765b92f..e7bf5a299abe 100644
|
|
||||||
--- a/browser/themes/shared/pageInfo.css
|
|
||||||
+++ b/browser/themes/shared/pageInfo.css
|
|
||||||
@@ -14,13 +14,15 @@
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
- &::after {
|
|
||||||
- content: "";
|
|
||||||
- position: absolute;
|
|
||||||
- inset: 0;
|
|
||||||
- appearance: auto;
|
|
||||||
- -moz-default-appearance: -moz-window-titlebar;
|
|
||||||
- z-index: -1;
|
|
||||||
+ @media not (-moz-mac-tahoe-theme) {
|
|
||||||
+ &::after {
|
|
||||||
+ content: "";
|
|
||||||
+ position: absolute;
|
|
||||||
+ inset: 0;
|
|
||||||
+ appearance: auto;
|
|
||||||
+ -moz-default-appearance: -moz-window-titlebar;
|
|
||||||
+ z-index: -1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/layout/style/test/chrome/chrome-only-media-queries.js b/layout/style/test/chrome/chrome-only-media-queries.js
|
|
||||||
index e200152ba41b..88ba56525e99 100644
|
|
||||||
--- a/layout/style/test/chrome/chrome-only-media-queries.js
|
|
||||||
+++ b/layout/style/test/chrome/chrome-only-media-queries.js
|
|
||||||
@@ -4,6 +4,7 @@ const CHROME_ONLY_TOGGLES = [
|
|
||||||
"-moz-print-preview",
|
|
||||||
"-moz-overlay-scrollbars",
|
|
||||||
"-moz-mac-big-sur-theme",
|
|
||||||
+ "-moz-mac-tahoe-theme",
|
|
||||||
"-moz-menubar-drag",
|
|
||||||
"-moz-windows-accent-color-in-titlebar",
|
|
||||||
"-moz-swipe-animation-enabled",
|
|
||||||
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
|
|
||||||
index b0082951254a..ddbcd495260b 100644
|
|
||||||
--- a/servo/components/style/gecko/media_features.rs
|
|
||||||
+++ b/servo/components/style/gecko/media_features.rs
|
|
||||||
@@ -645,7 +645,7 @@ macro_rules! lnf_int_feature {
|
|
||||||
/// to support new types in these entries and (2) ensuring that either
|
|
||||||
/// nsPresContext::MediaFeatureValuesChanged is called when the value that
|
|
||||||
/// would be returned by the evaluator function could change.
|
|
||||||
-pub static MEDIA_FEATURES: [QueryFeatureDescription; 58] = [
|
|
||||||
+pub static MEDIA_FEATURES: [QueryFeatureDescription; 59] = [
|
|
||||||
feature!(
|
|
||||||
atom!("width"),
|
|
||||||
AllowsRanges::Yes,
|
|
||||||
@@ -918,6 +918,7 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 58] = [
|
|
||||||
),
|
|
||||||
lnf_int_feature!(atom!("-moz-menubar-drag"), MenuBarDrag),
|
|
||||||
lnf_int_feature!(atom!("-moz-mac-big-sur-theme"), MacBigSurTheme),
|
|
||||||
+ lnf_int_feature!(atom!("-moz-mac-tahoe-theme"), MacTahoeTheme),
|
|
||||||
feature!(
|
|
||||||
atom!("-moz-mac-rtl"),
|
|
||||||
AllowsRanges::No,
|
|
||||||
diff --git a/toolkit/themes/shared/menu.css b/toolkit/themes/shared/menu.css
|
|
||||||
index f1330e7dd7a3..23c04a931ae0 100644
|
|
||||||
--- a/toolkit/themes/shared/menu.css
|
|
||||||
+++ b/toolkit/themes/shared/menu.css
|
|
||||||
@@ -31,6 +31,11 @@ panel {
|
|
||||||
}
|
|
||||||
@media (-moz-platform: macos) {
|
|
||||||
--menuitem-padding: 3px 9px;
|
|
||||||
+
|
|
||||||
+ @media (-moz-mac-tahoe-theme) {
|
|
||||||
+ --menuitem-padding: 4px 11px;
|
|
||||||
+ --menuitem-border-radius: 7px;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (-moz-platform: windows) {
|
|
||||||
diff --git a/widget/LookAndFeel.h b/widget/LookAndFeel.h
|
|
||||||
index fc1e28206ac2..1661476a75f0 100644
|
|
||||||
--- a/widget/LookAndFeel.h
|
|
||||||
+++ b/widget/LookAndFeel.h
|
|
||||||
@@ -117,6 +117,12 @@ class LookAndFeel {
|
|
||||||
*/
|
|
||||||
MacBigSurTheme,
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * A Boolean value to determine whether the macOS Tahoe-specific
|
|
||||||
+ * theming should be used.
|
|
||||||
+ */
|
|
||||||
+ MacTahoeTheme,
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* AlertNotificationOrigin indicates from which corner of the
|
|
||||||
* screen alerts slide in, and from which direction (horizontal/vertical).
|
|
||||||
diff --git a/widget/cocoa/nsCocoaWindow.h b/widget/cocoa/nsCocoaWindow.h
|
|
||||||
index 38aca9f32590..9484ef078900 100644
|
|
||||||
--- a/widget/cocoa/nsCocoaWindow.h
|
|
||||||
+++ b/widget/cocoa/nsCocoaWindow.h
|
|
||||||
@@ -111,6 +111,9 @@ class TextInputHandler;
|
|
||||||
- (void)setEffectViewWrapperForStyle:(mozilla::WindowShadow)aStyle;
|
|
||||||
@property(nonatomic) mozilla::WindowShadow shadowStyle;
|
|
||||||
|
|
||||||
+- (void)updateTitlebarTransparency;
|
|
||||||
+- (void)setTitlebarSeparatorStyle:(NSTitlebarSeparatorStyle)aStyle API_AVAILABLE(macos(11.0));
|
|
||||||
+
|
|
||||||
- (void)releaseJSObjects;
|
|
||||||
|
|
||||||
@end
|
|
||||||
diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm
|
|
||||||
index c9991df86dc6..c746a78b8440 100644
|
|
||||||
--- a/widget/cocoa/nsCocoaWindow.mm
|
|
||||||
+++ b/widget/cocoa/nsCocoaWindow.mm
|
|
||||||
@@ -7611,6 +7611,15 @@ - (id)initWithContentRect:(NSRect)aContentRect
|
|
||||||
// vibrancy effect and window border.
|
|
||||||
- (void)setEffectViewWrapperForStyle:(WindowShadow)aStyle {
|
|
||||||
NSView* wrapper = [&]() -> NSView* {
|
|
||||||
+ if (@available(macOS 26.0, *)) {
|
|
||||||
+ if (aStyle == WindowShadow::Menu) {
|
|
||||||
+ // Menus on macOS 26 use glass instead of vibrancy.
|
|
||||||
+ auto* effectView =
|
|
||||||
+ [[NSGlassEffectView alloc] initWithFrame:self.contentView.frame];
|
|
||||||
+ effectView.cornerRadius = 12.0f;
|
|
||||||
+ return effectView;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
if (aStyle == WindowShadow::Menu || aStyle == WindowShadow::Tooltip) {
|
|
||||||
const bool isMenu = aStyle == WindowShadow::Menu;
|
|
||||||
auto* effectView =
|
|
||||||
@@ -7721,6 +7730,7 @@ - (void)setDrawsContentsIntoWindowFrame:(BOOL)aState {
|
|
||||||
mDrawsIntoWindowFrame = aState;
|
|
||||||
if (changed) {
|
|
||||||
[self reflowTitlebarElements];
|
|
||||||
+ [self updateTitlebarTransparency];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -7850,6 +7860,32 @@ - (void)reflowTitlebarElements {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+- (void)updateTitlebarTransparency {
|
|
||||||
+ if (self.drawsContentsIntoWindowFrame) {
|
|
||||||
+ // Hide the titlebar if we are drawing into it
|
|
||||||
+ self.titlebarAppearsTransparent = true;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (@available(macOS 26.0, *)) {
|
|
||||||
+ // On macOS 26, the titlebar must be transparent to hide the separator.
|
|
||||||
+ // This does not affect the titlebar background on macOS 26, as it
|
|
||||||
+ // already matches the window background even when not transparent.
|
|
||||||
+ if (self.titlebarSeparatorStyle == NSTitlebarSeparatorStyleNone) {
|
|
||||||
+ self.titlebarAppearsTransparent = true;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // Show the titlebar otherwise.
|
|
||||||
+ self.titlebarAppearsTransparent = false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+- (void)setTitlebarSeparatorStyle:(NSTitlebarSeparatorStyle)aStyle {
|
|
||||||
+ [super setTitlebarSeparatorStyle:aStyle];
|
|
||||||
+ [self updateTitlebarTransparency];
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
- (BOOL)respondsToSelector:(SEL)aSelector {
|
|
||||||
// Claim the window doesn't respond to this so that the system
|
|
||||||
// doesn't steal keyboard equivalents for it. Bug 613710.
|
|
||||||
@@ -8166,8 +8202,6 @@ - (void)setDrawsContentsIntoWindowFrame:(BOOL)aState {
|
|
||||||
BOOL stateChanged = self.drawsContentsIntoWindowFrame != aState;
|
|
||||||
[super setDrawsContentsIntoWindowFrame:aState];
|
|
||||||
if (stateChanged && [self.delegate isKindOfClass:[WindowDelegate class]]) {
|
|
||||||
- // Hide the titlebar if we are drawing into it
|
|
||||||
- self.titlebarAppearsTransparent = aState;
|
|
||||||
self.titleVisibility = aState ? NSWindowTitleHidden : NSWindowTitleVisible;
|
|
||||||
|
|
||||||
// Here we extend / shrink our mainChildView.
|
|
||||||
diff --git a/widget/cocoa/nsLookAndFeel.mm b/widget/cocoa/nsLookAndFeel.mm
|
|
||||||
index 16cf2ed9b0ea..579b2445adfe 100644
|
|
||||||
--- a/widget/cocoa/nsLookAndFeel.mm
|
|
||||||
+++ b/widget/cocoa/nsLookAndFeel.mm
|
|
||||||
@@ -458,6 +458,9 @@ static bool PrefersNonBlinkingTextInsertionIndicator() {
|
|
||||||
case IntID::MacBigSurTheme:
|
|
||||||
aResult = nsCocoaFeatures::OnBigSurOrLater();
|
|
||||||
break;
|
|
||||||
+ case IntID::MacTahoeTheme:
|
|
||||||
+ aResult = nsCocoaFeatures::OnTahoeOrLater();
|
|
||||||
+ break;
|
|
||||||
case IntID::AlertNotificationOrigin:
|
|
||||||
aResult = NS_ALERT_TOP;
|
|
||||||
break;
|
|
||||||
diff --git a/widget/cocoa/nsNativeThemeCocoa.mm b/widget/cocoa/nsNativeThemeCocoa.mm
|
|
||||||
index 6ddd495b73f9..b94b8331be87 100644
|
|
||||||
--- a/widget/cocoa/nsNativeThemeCocoa.mm
|
|
||||||
+++ b/widget/cocoa/nsNativeThemeCocoa.mm
|
|
||||||
@@ -191,6 +191,10 @@ static NSControlSize ControlSizeForEnum(CocoaSize enumControlSize) {
|
|
||||||
|
|
||||||
static void InflateControlRect(NSRect* rect, NSControlSize cocoaControlSize,
|
|
||||||
const CellMarginArray& marginSet) {
|
|
||||||
+ if (nsCocoaFeatures::OnTahoeOrLater()) {
|
|
||||||
+ // Controls on macOS 26 fill the entire frame and do not require inflation.
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
auto controlSize = EnumSizeForCocoaSize(cocoaControlSize);
|
|
||||||
const IntMargin& buttonMargins = marginSet[controlSize];
|
|
||||||
rect->origin.x -= buttonMargins.left;
|
|
||||||
diff --git a/widget/nsXPLookAndFeel.cpp b/widget/nsXPLookAndFeel.cpp
|
|
||||||
index c0dde6e1c04a..24b6f83930a7 100644
|
|
||||||
--- a/widget/nsXPLookAndFeel.cpp
|
|
||||||
+++ b/widget/nsXPLookAndFeel.cpp
|
|
||||||
@@ -121,6 +121,7 @@ static const char sIntPrefs[][45] = {
|
|
||||||
"ui.windowsMica",
|
|
||||||
"ui.windowsMicaPopups",
|
|
||||||
"ui.macBigSurTheme",
|
|
||||||
+ "ui.macTahoeTheme",
|
|
||||||
"ui.alertNotificationOrigin",
|
|
||||||
"ui.scrollToClick",
|
|
||||||
"ui.IMERawInputUnderlineStyle",
|
|
||||||
diff --git a/xpcom/ds/StaticAtoms.py b/xpcom/ds/StaticAtoms.py
|
|
||||||
index e1a0497dc0b9..ec88f0496378 100644
|
|
||||||
--- a/xpcom/ds/StaticAtoms.py
|
|
||||||
+++ b/xpcom/ds/StaticAtoms.py
|
|
||||||
@@ -2283,6 +2283,7 @@ STATIC_ATOMS = [
|
|
||||||
Atom("_moz_windows_mica", "-moz-windows-mica"),
|
|
||||||
Atom("_moz_windows_mica_popups", "-moz-windows-mica-popups"),
|
|
||||||
Atom("_moz_mac_big_sur_theme", "-moz-mac-big-sur-theme"),
|
|
||||||
+ Atom("_moz_mac_tahoe_theme", "-moz-mac-tahoe-theme"),
|
|
||||||
Atom("_moz_mac_rtl", "-moz-mac-rtl"),
|
|
||||||
Atom("_moz_mac_titlebar_height", "-moz-mac-titlebar-height"),
|
|
||||||
Atom("_moz_platform", "-moz-platform"),
|
|
||||||
@@ -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 7c8f9c8c8ea4cc43825b388e7dd655a2ef34e75f..da5f48bb2d55ae306c72b062169a9758ad10c014 100644
|
index a7b60e40e6947754374dcda2fc69cdb329c337ac..c7e025109c4c43865205cbd445d9d20305974974 100644
|
||||||
--- a/layout/generic/nsIFrame.cpp
|
--- a/layout/generic/nsIFrame.cpp
|
||||||
+++ b/layout/generic/nsIFrame.cpp
|
+++ b/layout/generic/nsIFrame.cpp
|
||||||
@@ -11912,6 +11912,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const {
|
@@ -11899,6 +11899,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const {
|
||||||
gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms(
|
gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms(
|
||||||
uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel));
|
uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel));
|
||||||
|
|
||||||
|
|||||||
@@ -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 2413696f643246a825e184732bfba6eb33f606fd..932d3c316ee60c59b5f999e5ddd65c6acee3129d 100644
|
index 9f86fdfe6a70394c5fcd9e07177e5f325c2e4951..f9b3bc2e366f0cee2fbc992c4babce068b954413 100644
|
||||||
--- a/layout/style/nsStyleStruct.cpp
|
--- a/layout/style/nsStyleStruct.cpp
|
||||||
+++ b/layout/style/nsStyleStruct.cpp
|
+++ b/layout/style/nsStyleStruct.cpp
|
||||||
@@ -3273,6 +3273,9 @@ nsStyleUIReset::nsStyleUIReset()
|
@@ -3233,6 +3233,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 2413696f643246a825e184732bfba6eb33f606fd..932d3c316ee60c59b5f999e5ddd65c6a
|
|||||||
mTransitions(
|
mTransitions(
|
||||||
nsStyleAutoArray<StyleTransition>::WITH_SINGLE_INITIAL_ELEMENT),
|
nsStyleAutoArray<StyleTransition>::WITH_SINGLE_INITIAL_ELEMENT),
|
||||||
mTransitionTimingFunctionCount(1),
|
mTransitionTimingFunctionCount(1),
|
||||||
@@ -3317,6 +3320,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource)
|
@@ -3277,6 +3280,7 @@ nsStyleUIReset::nsStyleUIReset(const nsStyleUIReset& aSource)
|
||||||
mWindowOpacity(aSource.mWindowOpacity),
|
mWindowOpacity(aSource.mWindowOpacity),
|
||||||
mMozWindowInputRegionMargin(aSource.mMozWindowInputRegionMargin),
|
mMozWindowInputRegionMargin(aSource.mMozWindowInputRegionMargin),
|
||||||
mMozWindowTransform(aSource.mMozWindowTransform),
|
mMozWindowTransform(aSource.mMozWindowTransform),
|
||||||
|
|||||||
@@ -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 f40f005606946b1149bfb7b67d1df9be04ddaf07..64da397ceb4192aacd24c4cd9fb0efbad2d363ed 100644
|
index 46f9312292b6f332947e68586ae770acffe8c418..2408eb06ab466faba99e83b5c92759cf3277edad 100644
|
||||||
--- a/layout/style/nsStyleStruct.h
|
--- a/layout/style/nsStyleStruct.h
|
||||||
+++ b/layout/style/nsStyleStruct.h
|
+++ b/layout/style/nsStyleStruct.h
|
||||||
@@ -2094,6 +2094,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset {
|
@@ -2055,6 +2055,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset {
|
||||||
// The margin of the window region that should be transparent to events.
|
// The margin of the window region that should be transparent to events.
|
||||||
mozilla::StyleLength mMozWindowInputRegionMargin;
|
mozilla::StyleLength mMozWindowInputRegionMargin;
|
||||||
mozilla::StyleTransform mMozWindowTransform;
|
mozilla::StyleTransform mMozWindowTransform;
|
||||||
|
|||||||
@@ -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 86dc55502b05eed6e4bb0a2ed489e1e8e76840cb..2c2918b2d3c76063662fe59d7fde745a36a92ab6 100644
|
index 34f519ad1107736f47719679be7f4fa20cd718c1..7f886071259d6ddd971ca5c92180de0cca9a0f5d 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
|
||||||
@@ -19316,6 +19316,7 @@
|
@@ -19496,6 +19496,7 @@
|
||||||
mirror: always
|
mirror: always
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build
|
diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build
|
||||||
index 906a2fcdcc2684ff4326aeb7f22f3441add7e56c..37e16b62d012498c66bc3a38f4ce48972298b6be 100644
|
index d2330003caf35c43d6831fb0d356ece513906f78..76c2faf822ddaf645eb03d93380c58b4e3b510c0 100644
|
||||||
--- a/netwerk/protocol/http/moz.build
|
--- a/netwerk/protocol/http/moz.build
|
||||||
+++ b/netwerk/protocol/http/moz.build
|
+++ b/netwerk/protocol/http/moz.build
|
||||||
@@ -225,7 +225,7 @@ LOCAL_INCLUDES += [
|
@@ -227,7 +227,7 @@ LOCAL_INCLUDES += [
|
||||||
"/netwerk/url-classifier",
|
"/netwerk/url-classifier",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -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 b0082951254ad592c73caaa16c5b5c57127831a9..9b3566b08aacfcf2cfbf9941b2b3ca91a31ade59 100644
|
index ddbcd495260b5bcc4f55ebf7c06fcb6b5dc595c7..c629ac40f4fe3e03ffc765d3b65f3d348f4b05c6 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};
|
||||||
|
|||||||
@@ -1,37 +1,30 @@
|
|||||||
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 979c6a0960cb8c490b612649d0fac55cd7b7d0f7..f149f248f705484b3572ca462660932dd792e312 100644
|
index d5f320c5e97aae9bfd43d28e3d4a274d9bbc0787..24dc32a5bf6ae9abaa8f3fe8c37b031a76fb4d60 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
|
||||||
@@ -440,11 +440,11 @@ Tester.prototype = {
|
@@ -438,10 +438,10 @@ Tester.prototype = {
|
||||||
this.currentTest &&
|
// But not the Thunderbird window, it doesn't have these things!
|
||||||
window.gBrowser &&
|
if (AppConstants.MOZ_APP_NAME != "thunderbird") {
|
||||||
AppConstants.MOZ_APP_NAME != "thunderbird" &&
|
// Remove stale tabs
|
||||||
- gBrowser.tabs.length > 1
|
- if (this.currentTest && window.gBrowser && gBrowser.tabs.length > 1) {
|
||||||
+ gBrowser.tabs.length > 2
|
+ if (this.currentTest && window.gBrowser && gBrowser.tabs.length > 2) {
|
||||||
) {
|
let lastURI = "";
|
||||||
let lastURI = "";
|
let lastURIcount = 0;
|
||||||
let lastURIcount = 0;
|
- while (gBrowser.tabs.length > 1) {
|
||||||
- while (gBrowser.tabs.length > 1) {
|
+ while (gBrowser.tabs.length > 2) {
|
||||||
+ while (gBrowser.tabs.length > 2) {
|
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.
|
@@ -476,12 +476,6 @@ 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) {
|
||||||
- gBrowser.addTab("about:blank", {
|
- gBrowser.addTab("about:blank", {
|
||||||
- skipAnimation: true,
|
- skipAnimation: true,
|
||||||
- triggeringPrincipal:
|
- triggeringPrincipal:
|
||||||
- Services.scriptSecurityManager.getSystemPrincipal(),
|
- Services.scriptSecurityManager.getSystemPrincipal(),
|
||||||
- });
|
- });
|
||||||
- gBrowser.removeTab(gBrowser.selectedTab, { skipPermitUnload: true });
|
- gBrowser.removeTab(gBrowser.selectedTab, { skipPermitUnload: true });
|
||||||
+ // gBrowser.addTab("about:blank", {
|
gBrowser.stop();
|
||||||
+ // skipAnimation: true,
|
}
|
||||||
+ // triggeringPrincipal:
|
|
||||||
+ // Services.scriptSecurityManager.getSystemPrincipal(),
|
|
||||||
+ // });
|
|
||||||
+ // gBrowser.removeTab(gBrowser.selectedTab, { skipPermitUnload: true });
|
|
||||||
gBrowser.stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs
|
diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs
|
||||||
index 21b6295bf46336a70ed0a3797cf3210c8c0cb545..5a7018f1f923e977f63fae296ffdff1730ad1218 100644
|
index ea47bd1029de4571a045c1ee17c313dc9d62cad8..0f8afca693e0fc112839cfb998fd8baa20227f06 100644
|
||||||
--- a/toolkit/actors/PictureInPictureChild.sys.mjs
|
--- a/toolkit/actors/PictureInPictureChild.sys.mjs
|
||||||
+++ b/toolkit/actors/PictureInPictureChild.sys.mjs
|
+++ b/toolkit/actors/PictureInPictureChild.sys.mjs
|
||||||
@@ -292,6 +292,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild {
|
@@ -295,6 +295,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild {
|
||||||
if (
|
if (
|
||||||
video &&
|
video &&
|
||||||
PictureInPictureChild.videoIsPlaying(video) &&
|
PictureInPictureChild.videoIsPlaying(video) &&
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/content/widgets/findbar.js b/toolkit/content/widgets/findbar.js
|
diff --git a/toolkit/content/widgets/findbar.js b/toolkit/content/widgets/findbar.js
|
||||||
index 8ca512e0b212bb6e25ed37e7edb4f8e2587d5bb0..5abfff92b3a8df5d138082af96419668a2c8a9bb 100644
|
index 589d96886b1c9a1bd0e819957978a8968402e98b..4df4be8dbbe67063f0e1920baa2db3f5b909b11b 100644
|
||||||
--- a/toolkit/content/widgets/findbar.js
|
--- a/toolkit/content/widgets/findbar.js
|
||||||
+++ b/toolkit/content/widgets/findbar.js
|
+++ b/toolkit/content/widgets/findbar.js
|
||||||
@@ -1188,6 +1188,7 @@
|
@@ -1188,6 +1188,7 @@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js
|
diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js
|
||||||
index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163b914adec 100644
|
index cfe2da6e199667bd668f117cc8972212c7f57da2..bdd7dcc26139202e6e31afde47dc4d877f3db3c5 100644
|
||||||
--- a/toolkit/content/widgets/tabbox.js
|
--- a/toolkit/content/widgets/tabbox.js
|
||||||
+++ b/toolkit/content/widgets/tabbox.js
|
+++ b/toolkit/content/widgets/tabbox.js
|
||||||
@@ -213,7 +213,7 @@
|
@@ -213,7 +213,7 @@
|
||||||
@@ -11,7 +11,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163
|
|||||||
this._selectedPanel?.classList.add("deck-selected");
|
this._selectedPanel?.classList.add("deck-selected");
|
||||||
}
|
}
|
||||||
this.setAttribute("selectedIndex", val);
|
this.setAttribute("selectedIndex", val);
|
||||||
@@ -610,7 +610,7 @@
|
@@ -697,7 +697,7 @@
|
||||||
if (!tab) {
|
if (!tab) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163
|
|||||||
if (otherTab != tab && otherTab.selected) {
|
if (otherTab != tab && otherTab.selected) {
|
||||||
otherTab._selected = false;
|
otherTab._selected = false;
|
||||||
}
|
}
|
||||||
@@ -646,6 +646,7 @@
|
@@ -733,6 +733,7 @@
|
||||||
* @param {MozTab|null} [val]
|
* @param {MozTab|null} [val]
|
||||||
*/
|
*/
|
||||||
set selectedItem(val) {
|
set selectedItem(val) {
|
||||||
@@ -28,7 +28,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163
|
|||||||
if (val && !val.selected) {
|
if (val && !val.selected) {
|
||||||
// The selectedIndex setter ignores invalid values
|
// The selectedIndex setter ignores invalid values
|
||||||
// such as -1 if |val| isn't one of our child nodes.
|
// such as -1 if |val| isn't one of our child nodes.
|
||||||
@@ -823,7 +824,7 @@
|
@@ -910,7 +911,7 @@
|
||||||
if (tab == startTab) {
|
if (tab == startTab) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ index 70afbfc87d543971e6f8a0661a44b682920a7bc4..2035222f4680e2eaa27b3072a12a9163
|
|||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -885,10 +886,11 @@
|
@@ -972,10 +973,11 @@
|
||||||
* @param {boolean} [aWrap]
|
* @param {boolean} [aWrap]
|
||||||
*/
|
*/
|
||||||
advanceSelectedTab(aDir, aWrap) {
|
advanceSelectedTab(aDir, aWrap) {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
|
diff --git a/toolkit/content/xul.css b/toolkit/content/xul.css
|
||||||
index badef34e6072da6e0e1180f5f08ab201a89fa195..2842eee9d5655444ccac8c085f19df0247886d64 100644
|
index 57dd6042d2620dd64c55e0e966913047a6c3502f..40d016a0a13596439046e2bbcfa59daa30f10b2d 100644
|
||||||
--- a/toolkit/content/xul.css
|
--- a/toolkit/content/xul.css
|
||||||
+++ b/toolkit/content/xul.css
|
+++ b/toolkit/content/xul.css
|
||||||
@@ -461,7 +461,8 @@ deck > *|*:not(:-moz-native-anonymous) {
|
@@ -463,7 +463,8 @@ deck > *|*:not(:-moz-native-anonymous) {
|
||||||
}
|
|
||||||
|
|
||||||
tabpanels > .deck-selected,
|
tabpanels > .deck-selected,
|
||||||
|
tabpanels > .split-view-panel,
|
||||||
|
tabpanels > .split-view-splitter,
|
||||||
-deck > .deck-selected {
|
-deck > .deck-selected {
|
||||||
+deck > .deck-selected,
|
+deck > .deck-selected,
|
||||||
+tabpanels > [zen-split="true"] {
|
+tabpanels > [zen-split="true"] {
|
||||||
|
|||||||
@@ -1,16 +1,8 @@
|
|||||||
diff --git a/toolkit/modules/ShortcutUtils.sys.mjs b/toolkit/modules/ShortcutUtils.sys.mjs
|
diff --git a/toolkit/modules/ShortcutUtils.sys.mjs b/toolkit/modules/ShortcutUtils.sys.mjs
|
||||||
index 3e796cb6586ad39257a29c2a6da1d0415f4c2676..98b639c726efee850456a3af8a01f0ce66423ba0 100644
|
index e52e88a09a281e69ecf15e7b84b8b98736e1dbdd..f47fbe24e0860195e11fe5231ab27e52aad96d0b 100644
|
||||||
--- a/toolkit/modules/ShortcutUtils.sys.mjs
|
--- a/toolkit/modules/ShortcutUtils.sys.mjs
|
||||||
+++ b/toolkit/modules/ShortcutUtils.sys.mjs
|
+++ b/toolkit/modules/ShortcutUtils.sys.mjs
|
||||||
@@ -140,6 +140,7 @@ export var ShortcutUtils = {
|
@@ -414,13 +414,11 @@ export var ShortcutUtils = {
|
||||||
key = keyCode.replace(/^VK_/, "");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
+ if (!keyAttribute) return "";
|
|
||||||
key = keyAttribute.toUpperCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -373,13 +374,11 @@ export var ShortcutUtils = {
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case event.DOM_VK_UP: // fall through
|
case event.DOM_VK_UP: // fall through
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
|
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
|
||||||
index e43870b10c5b35165fd21b48065980060104dc52..71e3db5618c834bc4ff9d481b1e667f2b02b183e 100644
|
index a17e15c74c8e627cf805d1f026438759af7e4a97..fc6e1e6b2711e474d65a688b2481b7a26cad2a71 100644
|
||||||
--- a/toolkit/modules/moz.build
|
--- a/toolkit/modules/moz.build
|
||||||
+++ b/toolkit/modules/moz.build
|
+++ b/toolkit/modules/moz.build
|
||||||
@@ -280,6 +280,7 @@ for var in (
|
@@ -280,6 +280,7 @@ for var in (
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
|
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
|
||||||
index 2fdcf62bde7805e52737cb06ec67908fa40524c9..b9f9e3abeb5cf770b29e1354615184fce2162ec7 100644
|
index f3032042d34766b0e94c56872f91271f307ffc89..8c8540e8bf8d3df5b33e2f0da6b94a32e75684b5 100644
|
||||||
--- a/toolkit/moz.configure
|
--- a/toolkit/moz.configure
|
||||||
+++ b/toolkit/moz.configure
|
+++ b/toolkit/moz.configure
|
||||||
@@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project):
|
@@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project):
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
||||||
index 2c1e187d14bae0dcc17a1fa2de768e7c949b3776..c322b770bdc1a0786d8e3bf1af618e3d3d3dd26e 100644
|
index 3562dfc61f6462a4e46ff321d4df4df23f48949d..2afc42cae98a24ecfd129c8a3dd1e7e0a94882ab 100644
|
||||||
--- a/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
--- a/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
||||||
+++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
+++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
||||||
@@ -1227,12 +1227,12 @@ var AddonManagerInternal = {
|
@@ -1243,12 +1243,12 @@ var AddonManagerInternal = {
|
||||||
ITEM_VERSION: aAddon.version,
|
ITEM_VERSION: aAddon.version,
|
||||||
ITEM_STATUS: addonStatus,
|
ITEM_STATUS: addonStatus,
|
||||||
APP_ID: Services.appinfo.ID,
|
APP_ID: Services.appinfo.ID,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css
|
diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css
|
||||||
index 1eb2c44694bb4970134fb5d290e32c7053103461..8d8237029976960048cb9aceede918c9e20c523b 100644
|
index e9dedcacb868fb0908c3432e1ccf3956b383aea7..6418c08550b9b4876df20ca5f93d093be0583f83 100644
|
||||||
--- a/toolkit/themes/shared/aboutReader.css
|
--- a/toolkit/themes/shared/aboutReader.css
|
||||||
+++ b/toolkit/themes/shared/aboutReader.css
|
+++ b/toolkit/themes/shared/aboutReader.css
|
||||||
@@ -1181,3 +1181,43 @@ pre code {
|
@@ -1181,3 +1181,43 @@ pre code {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/themes/shared/in-content/common-shared.css b/toolkit/themes/shared/in-content/common-shared.css
|
diff --git a/toolkit/themes/shared/in-content/common-shared.css b/toolkit/themes/shared/in-content/common-shared.css
|
||||||
index 96129498de63153704711bf7a21fb10922e80917..83f7b5ee2f15197dc42ec02ec1a73cc2bfc19a4d 100644
|
index 2d068aa3472887e089254834d92f75b9f6d9894b..1a6d5b87fdcfb338222475bb6362820e3915955d 100644
|
||||||
--- a/toolkit/themes/shared/in-content/common-shared.css
|
--- a/toolkit/themes/shared/in-content/common-shared.css
|
||||||
+++ b/toolkit/themes/shared/in-content/common-shared.css
|
+++ b/toolkit/themes/shared/in-content/common-shared.css
|
||||||
@@ -4,7 +4,7 @@
|
@@ -4,7 +4,7 @@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/themes/shared/menulist.css b/toolkit/themes/shared/menulist.css
|
diff --git a/toolkit/themes/shared/menulist.css b/toolkit/themes/shared/menulist.css
|
||||||
index 8f9c006945e67f668075bd36ce83d5a772a9a796..08d68c015b001233548cd6c7babad17f3a638702 100644
|
index 73149025f13e8805774c004820d57755d2bf89a9..f503e6bcd1c466757fc58e033aa0d68343685e28 100644
|
||||||
--- a/toolkit/themes/shared/menulist.css
|
--- a/toolkit/themes/shared/menulist.css
|
||||||
+++ b/toolkit/themes/shared/menulist.css
|
+++ b/toolkit/themes/shared/menulist.css
|
||||||
@@ -53,7 +53,7 @@
|
@@ -53,7 +53,7 @@
|
||||||
@@ -9,5 +9,5 @@ index 8f9c006945e67f668075bd36ce83d5a772a9a796..08d68c015b001233548cd6c7babad17f
|
|||||||
- background-color: var(--button-background-color);
|
- background-color: var(--button-background-color);
|
||||||
+ background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1));
|
+ background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1));
|
||||||
color: var(--button-text-color);
|
color: var(--button-text-color);
|
||||||
border-radius: var(--border-radius-small);
|
border-radius: var(--button-border-radius);
|
||||||
padding-block: 4px;
|
padding-block: 4px;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/themes/shared/pictureinpicture/player.css b/toolkit/themes/shared/pictureinpicture/player.css
|
diff --git a/toolkit/themes/shared/pictureinpicture/player.css b/toolkit/themes/shared/pictureinpicture/player.css
|
||||||
index 33b10bebcdfe636d7ff0f61a11d5fa4664a31f78..83b53817c53f43cca3be40b490300109b4949f5b 100644
|
index 12dba9ec5eee93476034b1e8b503a301fc18dbcb..b81c9e997d85e78cdf6ab460e14a5128117639bd 100644
|
||||||
--- a/toolkit/themes/shared/pictureinpicture/player.css
|
--- a/toolkit/themes/shared/pictureinpicture/player.css
|
||||||
+++ b/toolkit/themes/shared/pictureinpicture/player.css
|
+++ b/toolkit/themes/shared/pictureinpicture/player.css
|
||||||
@@ -738,3 +738,17 @@ input:checked + .slider::before {
|
@@ -738,3 +738,17 @@ input:checked + .slider::before {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user