forked from ZenBrowserMirrors/zen-desktop
Update to firefox 136.0
This commit is contained in:
parent
6115bbabc8
commit
f7995f6da7
12 changed files with 152 additions and 230 deletions
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
Zen is currently built using Firefox version `135.0.1`! 🚀
|
Zen is currently built using Firefox version `135.0.1`! 🚀
|
||||||
|
|
||||||
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 135.0.1`!
|
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 136.0`!
|
||||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||||
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
8d18d852fbaeaa05c6ec3ebd9b35312f2c58021f
|
|
|
@ -60,7 +60,7 @@ def update_readme(last_version, new_version, is_rc=False):
|
||||||
def update_l10n_last_commit_hash():
|
def update_l10n_last_commit_hash():
|
||||||
L10N_REPO = "https://github.com/mozilla-l10n/firefox-l10n"
|
L10N_REPO = "https://github.com/mozilla-l10n/firefox-l10n"
|
||||||
try:
|
try:
|
||||||
os.system(f"git clone {L10N_REPO} l10n-temp")
|
os.system(f"git clone {L10N_REPO} l10n-temp --depth 1")
|
||||||
if not os.path.exists("firefox-cache"):
|
if not os.path.exists("firefox-cache"):
|
||||||
os.mkdir("firefox-cache")
|
os.mkdir("firefox-cache")
|
||||||
os.system("cat l10n-temp/.git/refs/heads/main > firefox-cache/l10n-last-commit-hash")
|
os.system("cat l10n-temp/.git/refs/heads/main > firefox-cache/l10n-last-commit-hash")
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
||||||
index 1e5c0f1c59175ec4a39938974c4a7a5c6355439f..ac9fe4b792c12a1aecba1fbbc941da9be6a53ce4 100644
|
index 53e4616a99b7826453d5b6dea027184d90bc73f7..90c9fe5683411cf3087bebd3d0941decf6d23e89 100644
|
||||||
--- a/browser/base/content/aboutDialog.xhtml
|
--- a/browser/base/content/aboutDialog.xhtml
|
||||||
+++ b/browser/base/content/aboutDialog.xhtml
|
+++ b/browser/base/content/aboutDialog.xhtml
|
||||||
@@ -36,6 +36,7 @@
|
@@ -34,6 +34,7 @@
|
||||||
|
|
||||||
<html:link rel="localization" href="branding/brand.ftl"/>
|
<html:link rel="localization" href="branding/brand.ftl"/>
|
||||||
<html:link rel="localization" href="browser/aboutDialog.ftl"/>
|
<html:link rel="localization" href="browser/aboutDialog.ftl"/>
|
||||||
|
@ -10,7 +10,7 @@ index 1e5c0f1c59175ec4a39938974c4a7a5c6355439f..ac9fe4b792c12a1aecba1fbbc941da9b
|
||||||
</linkset>
|
</linkset>
|
||||||
|
|
||||||
<html:div id="aboutDialogContainer">
|
<html:div id="aboutDialogContainer">
|
||||||
@@ -130,13 +131,15 @@
|
@@ -124,21 +125,23 @@
|
||||||
</description>
|
</description>
|
||||||
</vbox>
|
</vbox>
|
||||||
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
||||||
|
@ -27,11 +27,12 @@ index 1e5c0f1c59175ec4a39938974c4a7a5c6355439f..ac9fe4b792c12a1aecba1fbbc941da9b
|
||||||
</vbox>
|
</vbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -144,7 +147,7 @@
|
<vbox id="bottomBox">
|
||||||
<hbox pack="center">
|
<hbox pack="center">
|
||||||
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"/>
|
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"/>
|
||||||
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
|
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/about/legal/terms/firefox/" data-l10n-id="bottomLinks-rights"/>
|
||||||
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
|
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
|
||||||
|
+ <label is="text-link" class="bottom-link" href="about:rights" data-l10n-id="bottomLinks-rights"/>
|
||||||
+ <label is="text-link" class="bottom-link" href="https://www.zen-browser.app/privacy-policy/" data-l10n-id="bottomLinks-privacy"/>
|
+ <label is="text-link" class="bottom-link" href="https://www.zen-browser.app/privacy-policy/" data-l10n-id="bottomLinks-privacy"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
<description id="trademark" data-l10n-id="trademarkInfo"></description>
|
<description id="trademark" data-l10n-id="trademarkInfo"></description>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
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 891c067d6ad718061c410c04743bed25744504b5..135c8515bbcb534c3f900e7ba1ee4d3b9fe17436 100644
|
index 68849f5093cd8ab99ab0747d972799eaf3ad7e22..3b4e6a179ab7b71859f832709778c326a39cffda 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
|
||||||
@@ -25,6 +25,7 @@
|
@@ -26,6 +26,7 @@
|
||||||
sizemode="normal"
|
sizemode="normal"
|
||||||
retargetdocumentfocus="urlbar-input"
|
retargetdocumentfocus="urlbar-input"
|
||||||
scrolling="false"
|
scrolling="false"
|
||||||
|
@ -10,7 +10,7 @@ index 891c067d6ad718061c410c04743bed25744504b5..135c8515bbcb534c3f900e7ba1ee4d3b
|
||||||
persist="screenX screenY width height sizemode"
|
persist="screenX screenY width height sizemode"
|
||||||
data-l10n-sync="true">
|
data-l10n-sync="true">
|
||||||
<head>
|
<head>
|
||||||
@@ -99,6 +100,8 @@
|
@@ -100,6 +101,8 @@
|
||||||
|
|
||||||
<title data-l10n-id="browser-main-window-default-title"></title>
|
<title data-l10n-id="browser-main-window-default-title"></title>
|
||||||
|
|
||||||
|
@ -19,15 +19,15 @@ index 891c067d6ad718061c410c04743bed25744504b5..135c8515bbcb534c3f900e7ba1ee4d3b
|
||||||
# All JS files which are needed by browser.xhtml and other top level windows to
|
# All JS files which are needed by browser.xhtml and other top level windows to
|
||||||
# support MacOS specific features *must* go into the global-scripts.inc file so
|
# support MacOS specific features *must* go into the global-scripts.inc file so
|
||||||
# that they can be shared with macWindow.inc.xhtml.
|
# that they can be shared with macWindow.inc.xhtml.
|
||||||
@@ -143,6 +146,7 @@
|
@@ -169,6 +172,7 @@
|
||||||
window.addEventListener("DOMContentLoaded",
|
});
|
||||||
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
});
|
||||||
</script>
|
</script>
|
||||||
+#include zen-assets.inc.xhtml
|
+#include zen-assets.inc.xhtml
|
||||||
</head>
|
</head>
|
||||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||||
@@ -164,9 +168,13 @@
|
@@ -190,9 +194,13 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
|
|
|
@ -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 d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b34451aa51 100644
|
index 777eabb7524f2b021a03b3f54d69faee49b7381d..192d2fa058f7d9f043532c0ae6e4c08129d16b8e 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
|
||||||
@@ -16,6 +16,7 @@
|
@@ -16,6 +16,7 @@
|
||||||
|
@ -10,9 +10,9 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
|
||||||
<stack class="tab-icon-stack">
|
<stack class="tab-icon-stack">
|
||||||
<hbox class="tab-throbber"/>
|
<hbox class="tab-throbber"/>
|
||||||
<hbox class="tab-icon-pending"/>
|
<hbox class="tab-icon-pending"/>
|
||||||
@@ -35,8 +36,10 @@
|
@@ -32,8 +33,10 @@
|
||||||
|
<hbox class="tab-secondary-label">
|
||||||
<label class="tab-icon-sound-label tab-icon-sound-pip-label" data-l10n-id="browser-tab-audio-pip" role="presentation"/>
|
<label class="tab-icon-sound-label tab-icon-sound-pip-label" data-l10n-id="browser-tab-audio-pip" role="presentation"/>
|
||||||
<label class="tab-icon-sound-label tab-icon-sound-tooltip-label" role="presentation"/>
|
|
||||||
</hbox>
|
</hbox>
|
||||||
+ <label class="tab-reset-pin-label" data-l10n-id="tab-reset-pin-label" role="presentation"/>
|
+ <label class="tab-reset-pin-label" data-l10n-id="tab-reset-pin-label" role="presentation"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
|
@ -48,16 +48,16 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
|
||||||
}
|
}
|
||||||
|
|
||||||
get lastAccessed() {
|
get lastAccessed() {
|
||||||
@@ -451,6 +454,8 @@
|
@@ -438,6 +441,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") ||
|
||||||
+ event.target.classList.contains("tab-reset-button") ||
|
+ event.target.classList.contains("tab-reset-button") ||
|
||||||
+ event.target.classList.contains("tab-reset-pin-button") ||
|
+ event.target.classList.contains("tab-reset-pin-button") ||
|
||||||
event.target.classList.contains("tab-icon-overlay")
|
event.target.classList.contains("tab-icon-overlay") ||
|
||||||
|
event.target.classList.contains("tab-audio-button")
|
||||||
) {
|
) {
|
||||||
eventMaySelectTab = false;
|
@@ -536,6 +541,7 @@
|
||||||
@@ -544,6 +549,7 @@
|
|
||||||
if (this.multiselected) {
|
if (this.multiselected) {
|
||||||
gBrowser.removeMultiSelectedTabs();
|
gBrowser.removeMultiSelectedTabs();
|
||||||
} else {
|
} else {
|
||||||
|
@ -65,7 +65,7 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
|
||||||
gBrowser.removeTab(this, {
|
gBrowser.removeTab(this, {
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
@@ -553,6 +559,14 @@
|
@@ -545,6 +551,14 @@
|
||||||
// (see tabbrowser-tabs 'click' handler).
|
// (see tabbrowser-tabs 'click' handler).
|
||||||
gBrowser.tabContainer._blockDblClick = true;
|
gBrowser.tabContainer._blockDblClick = true;
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
|
||||||
}
|
}
|
||||||
|
|
||||||
on_dblclick(event) {
|
on_dblclick(event) {
|
||||||
@@ -576,6 +590,8 @@
|
@@ -568,6 +582,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 ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91676f569e 100644
|
index 628aa6596627c85efe361fc1ece8fd58f7ee653e..8bc9d9806ba6283bfa1b6b738b6c7c7547437c9f 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
|
||||||
@@ -406,11 +406,50 @@
|
@@ -412,11 +412,50 @@
|
||||||
return this.tabContainer.visibleTabs;
|
return this.tabContainer.visibleTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,8 +55,8 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
@@ -807,7 +846,7 @@
|
@@ -814,7 +853,7 @@
|
||||||
this.showTab(aTab);
|
this.ungroupTab(aTab);
|
||||||
if (this.tabContainer.verticalMode) {
|
if (this.tabContainer.verticalMode) {
|
||||||
this._handleTabMove(aTab, () =>
|
this._handleTabMove(aTab, () =>
|
||||||
- this.verticalPinnedTabsContainer.appendChild(aTab)
|
- this.verticalPinnedTabsContainer.appendChild(aTab)
|
||||||
|
@ -64,7 +64,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
this.moveTabTo(aTab, this.pinnedTabCount, { forceStandaloneTab: true });
|
this.moveTabTo(aTab, this.pinnedTabCount, { forceStandaloneTab: true });
|
||||||
@@ -828,7 +867,7 @@
|
@@ -835,7 +874,7 @@
|
||||||
// the moving of a tab from the vertical pinned tabs container
|
// the moving of a tab from the vertical pinned tabs container
|
||||||
// and back into arrowscrollbox.
|
// and back into arrowscrollbox.
|
||||||
aTab.removeAttribute("pinned");
|
aTab.removeAttribute("pinned");
|
||||||
|
@ -73,7 +73,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.moveTabTo(aTab, this.pinnedTabCount - 1, {
|
this.moveTabTo(aTab, this.pinnedTabCount - 1, {
|
||||||
@@ -1055,6 +1094,8 @@
|
@@ -1018,6 +1057,8 @@
|
||||||
|
|
||||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (
|
if (
|
||||||
aIconURL &&
|
aIconURL &&
|
||||||
!aLoadingPrincipal &&
|
!aLoadingPrincipal &&
|
||||||
@@ -1065,6 +1106,9 @@
|
@@ -1028,6 +1069,9 @@
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
|
|
||||||
let browser = this.getBrowserForTab(aTab);
|
let browser = this.getBrowserForTab(aTab);
|
||||||
browser.mIconURL = aIconURL;
|
browser.mIconURL = aIconURL;
|
||||||
@@ -1310,6 +1354,7 @@
|
@@ -1273,6 +1317,7 @@
|
||||||
if (!this._previewMode) {
|
if (!this._previewMode) {
|
||||||
newTab.recordTimeFromUnloadToReload();
|
newTab.recordTimeFromUnloadToReload();
|
||||||
newTab.updateLastAccessed();
|
newTab.updateLastAccessed();
|
||||||
|
@ -100,7 +100,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
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()) {
|
||||||
@@ -1462,6 +1507,9 @@
|
@@ -1425,6 +1470,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeEl = document.activeElement;
|
let activeEl = document.activeElement;
|
||||||
|
@ -110,7 +110,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
// 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();
|
||||||
@@ -1785,7 +1833,7 @@
|
@@ -1748,7 +1796,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||||
|
@ -119,7 +119,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1888,7 +1936,7 @@
|
@@ -1851,7 +1899,7 @@
|
||||||
newIndex = this.selectedTab._tPos + 1;
|
newIndex = this.selectedTab._tPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
let browser;
|
let browser;
|
||||||
if (targetTab) {
|
if (targetTab) {
|
||||||
browser = this.getBrowserForTab(targetTab);
|
browser = this.getBrowserForTab(targetTab);
|
||||||
@@ -2222,7 +2270,8 @@
|
@@ -2182,7 +2230,8 @@
|
||||||
b.setAttribute("name", name);
|
b.setAttribute("name", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
b.setAttribute("transparent", "true");
|
b.setAttribute("transparent", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2387,7 +2436,7 @@
|
@@ -2347,7 +2396,7 @@
|
||||||
|
|
||||||
let panel = this.getPanel(browser);
|
let panel = this.getPanel(browser);
|
||||||
let uniqueId = this._generateUniquePanelID();
|
let uniqueId = this._generateUniquePanelID();
|
||||||
|
@ -147,7 +147,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
aTab.linkedPanel = uniqueId;
|
aTab.linkedPanel = uniqueId;
|
||||||
|
|
||||||
// Inject the <browser> into the DOM if necessary.
|
// Inject the <browser> into the DOM if necessary.
|
||||||
@@ -2446,8 +2495,8 @@
|
@@ -2406,8 +2455,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) {
|
||||||
|
@ -158,7 +158,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
} else {
|
} else {
|
||||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||||
}
|
}
|
||||||
@@ -2679,6 +2728,12 @@
|
@@ -2639,6 +2688,12 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
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);
|
||||||
}
|
}
|
||||||
@@ -2742,6 +2797,12 @@
|
@@ -2702,6 +2757,12 @@
|
||||||
noInitialLabel,
|
noInitialLabel,
|
||||||
skipBackgroundNotify,
|
skipBackgroundNotify,
|
||||||
});
|
});
|
||||||
|
@ -184,7 +184,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
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, {
|
||||||
@@ -2885,6 +2946,9 @@
|
@@ -2845,6 +2906,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
// Additionally send pinned tab events
|
// Additionally send pinned tab events
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this._notifyPinnedStatus(t);
|
this._notifyPinnedStatus(t);
|
||||||
@@ -3403,6 +3467,24 @@
|
@@ -3367,6 +3431,24 @@
|
||||||
) {
|
) {
|
||||||
tabWasReused = true;
|
tabWasReused = true;
|
||||||
tab = this.selectedTab;
|
tab = this.selectedTab;
|
||||||
|
@ -219,7 +219,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (!tabData.pinned) {
|
if (!tabData.pinned) {
|
||||||
this.unpinTab(tab);
|
this.unpinTab(tab);
|
||||||
} else {
|
} else {
|
||||||
@@ -3416,6 +3498,7 @@
|
@@ -3380,6 +3462,7 @@
|
||||||
restoreTabsLazily && !select && !tabData.pinned;
|
restoreTabsLazily && !select && !tabData.pinned;
|
||||||
|
|
||||||
let url = "about:blank";
|
let url = "about:blank";
|
||||||
|
@ -227,7 +227,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (tabData.entries?.length) {
|
if (tabData.entries?.length) {
|
||||||
let activeIndex = (tabData.index || tabData.entries.length) - 1;
|
let activeIndex = (tabData.index || tabData.entries.length) - 1;
|
||||||
// Ensure the index is in bounds.
|
// Ensure the index is in bounds.
|
||||||
@@ -3451,7 +3534,24 @@
|
@@ -3415,7 +3498,24 @@
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
});
|
});
|
||||||
|
@ -253,7 +253,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (select) {
|
if (select) {
|
||||||
tabToSelect = tab;
|
tabToSelect = tab;
|
||||||
}
|
}
|
||||||
@@ -3464,8 +3564,8 @@
|
@@ -3428,8 +3528,8 @@
|
||||||
// inserted in the DOM. If the tab is not yet in the DOM,
|
// inserted in the DOM. If the tab is not yet in the DOM,
|
||||||
// just insert it in the right place from the start.
|
// just insert it in the right place from the start.
|
||||||
if (!tab.parentNode) {
|
if (!tab.parentNode) {
|
||||||
|
@ -264,7 +264,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
tab.toggleAttribute("pinned", true);
|
tab.toggleAttribute("pinned", true);
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
// Then ensure all the tab open/pinning information is sent.
|
// Then ensure all the tab open/pinning information is sent.
|
||||||
@@ -3729,7 +3829,7 @@
|
@@ -3693,7 +3793,7 @@
|
||||||
// Ensure we have an index if one was not provided.
|
// Ensure we have an index if one was not provided.
|
||||||
if (typeof index != "number") {
|
if (typeof index != "number") {
|
||||||
// Move the new tab after another tab if needed, to the end otherwise.
|
// Move the new tab after another tab if needed, to the end otherwise.
|
||||||
|
@ -273,7 +273,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (
|
if (
|
||||||
!bulkOrderedOpen &&
|
!bulkOrderedOpen &&
|
||||||
((openerTab &&
|
((openerTab &&
|
||||||
@@ -3780,7 +3880,7 @@
|
@@ -3744,7 +3844,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @type {MozTabbrowserTab|undefined} */
|
/** @type {MozTabbrowserTab|undefined} */
|
||||||
|
@ -282,7 +282,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
|
|
||||||
if (tabGroup) {
|
if (tabGroup) {
|
||||||
@@ -4095,6 +4195,9 @@
|
@@ -4059,6 +4159,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
this.removeTabs(selectedTabs);
|
this.removeTabs(selectedTabs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4427,6 +4530,7 @@
|
@@ -4391,6 +4494,7 @@
|
||||||
skipSessionStore,
|
skipSessionStore,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
|
@ -300,7 +300,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (UserInteraction.running("browser.tabs.opening", window)) {
|
if (UserInteraction.running("browser.tabs.opening", window)) {
|
||||||
UserInteraction.finish("browser.tabs.opening", window);
|
UserInteraction.finish("browser.tabs.opening", window);
|
||||||
}
|
}
|
||||||
@@ -4443,6 +4547,12 @@
|
@@ -4407,6 +4511,12 @@
|
||||||
TelemetryStopwatch.start("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
TelemetryStopwatch.start("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
// 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) {
|
||||||
@@ -4457,7 +4567,9 @@
|
@@ -4421,7 +4531,9 @@
|
||||||
// frame created for it (for example, by updating the visually selected
|
// frame created for it (for example, by updating the visually selected
|
||||||
// state).
|
// state).
|
||||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||||
|
@ -324,7 +324,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (
|
if (
|
||||||
!this._beginRemoveTab(aTab, {
|
!this._beginRemoveTab(aTab, {
|
||||||
closeWindowFastpath: true,
|
closeWindowFastpath: true,
|
||||||
@@ -4471,7 +4583,6 @@
|
@@ -4435,7 +4547,6 @@
|
||||||
TelemetryStopwatch.cancel("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
TelemetryStopwatch.cancel("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -332,7 +332,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
let lockTabSizing =
|
let lockTabSizing =
|
||||||
!this.tabContainer.verticalMode &&
|
!this.tabContainer.verticalMode &&
|
||||||
!aTab.pinned &&
|
!aTab.pinned &&
|
||||||
@@ -4610,14 +4721,14 @@
|
@@ -4574,14 +4685,14 @@
|
||||||
!!this.tabsInCollapsedTabGroups.length;
|
!!this.tabsInCollapsedTabGroups.length;
|
||||||
if (
|
if (
|
||||||
aTab.visible &&
|
aTab.visible &&
|
||||||
|
@ -349,7 +349,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
|
|
||||||
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,
|
||||||
@@ -4641,6 +4752,7 @@
|
@@ -4605,6 +4716,7 @@
|
||||||
|
|
||||||
newTab = true;
|
newTab = true;
|
||||||
}
|
}
|
||||||
|
@ -357,7 +357,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
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.
|
||||||
@@ -4681,9 +4793,7 @@
|
@@ -4645,9 +4757,7 @@
|
||||||
aTab._mouseleave();
|
aTab._mouseleave();
|
||||||
|
|
||||||
if (newTab) {
|
if (newTab) {
|
||||||
|
@ -368,7 +368,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
} else {
|
} else {
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -4812,6 +4922,8 @@
|
@@ -4776,6 +4886,8 @@
|
||||||
this.tabs[i]._tPos = i;
|
this.tabs[i]._tPos = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (!this._windowIsClosing) {
|
if (!this._windowIsClosing) {
|
||||||
if (wasPinned) {
|
if (wasPinned) {
|
||||||
this.tabContainer._positionPinnedTabs();
|
this.tabContainer._positionPinnedTabs();
|
||||||
@@ -5025,7 +5137,7 @@
|
@@ -4994,7 +5106,7 @@
|
||||||
!excludeTabs.has(aTab.owner) &&
|
!excludeTabs.has(aTab.owner) &&
|
||||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||||
) {
|
) {
|
||||||
|
@ -386,7 +386,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try to find a remaining tab that comes after the given tab
|
// Try to find a remaining tab that comes after the given tab
|
||||||
@@ -5047,7 +5159,7 @@
|
@@ -5016,7 +5128,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab) {
|
if (tab) {
|
||||||
|
@ -395,7 +395,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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
|
||||||
@@ -5465,10 +5577,10 @@
|
@@ -5434,10 +5546,10 @@
|
||||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -408,7 +408,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
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.
|
||||||
@@ -5706,7 +5818,7 @@
|
@@ -5675,7 +5787,7 @@
|
||||||
|
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
if (aTab.pinned) {
|
if (aTab.pinned) {
|
||||||
|
@ -417,8 +417,8 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
} else {
|
} else {
|
||||||
aIndex = Math.max(aIndex, this.pinnedTabCount);
|
aIndex = Math.max(aIndex, this.pinnedTabCount);
|
||||||
}
|
}
|
||||||
@@ -5717,7 +5829,7 @@
|
@@ -5684,7 +5796,7 @@
|
||||||
this._lastRelatedTabMap = new WeakMap();
|
}
|
||||||
|
|
||||||
this._handleTabMove(aTab, () => {
|
this._handleTabMove(aTab, () => {
|
||||||
- let neighbor = this.tabs[aIndex];
|
- let neighbor = this.tabs[aIndex];
|
||||||
|
@ -426,7 +426,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (forceStandaloneTab && neighbor.group) {
|
if (forceStandaloneTab && neighbor.group) {
|
||||||
neighbor = neighbor.group;
|
neighbor = neighbor.group;
|
||||||
}
|
}
|
||||||
@@ -5754,6 +5866,8 @@
|
@@ -5721,6 +5833,8 @@
|
||||||
|
|
||||||
moveActionCallback();
|
moveActionCallback();
|
||||||
|
|
||||||
|
@ -435,7 +435,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
// 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();
|
||||||
@@ -5802,7 +5916,7 @@
|
@@ -5771,7 +5885,7 @@
|
||||||
createLazyBrowser,
|
createLazyBrowser,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -444,15 +444,15 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) {
|
if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) {
|
||||||
params.pinned = true;
|
params.pinned = true;
|
||||||
}
|
}
|
||||||
@@ -7443,6 +7557,7 @@
|
@@ -7415,6 +7529,7 @@
|
||||||
aWebProgress.isTopLevel
|
aWebProgress.isTopLevel
|
||||||
) {
|
) {
|
||||||
this.mTab.setAttribute("busy", "true");
|
this.mTab.setAttribute("busy", "true");
|
||||||
+ if (!this.mTab.selected) this.mTab.setAttribute("unread", "true");
|
+ if (!this.mTab.selected) this.mTab.setAttribute("unread", "true");
|
||||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||||
gBrowser.syncThrobberAnimations(this.mTab);
|
}
|
||||||
@@ -8411,7 +8526,7 @@ var TabContextMenu = {
|
@@ -8381,7 +8496,7 @@ var TabContextMenu = {
|
||||||
);
|
);
|
||||||
contextUnpinSelectedTabs.hidden =
|
contextUnpinSelectedTabs.hidden =
|
||||||
!this.contextTab.pinned || !multiselectionContext;
|
!this.contextTab.pinned || !multiselectionContext;
|
||||||
|
@ -461,7 +461,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
// Move Tab items
|
// Move Tab items
|
||||||
let contextMoveTabOptions = document.getElementById(
|
let contextMoveTabOptions = document.getElementById(
|
||||||
"context_moveTabOptions"
|
"context_moveTabOptions"
|
||||||
@@ -8444,7 +8559,7 @@ var TabContextMenu = {
|
@@ -8414,7 +8529,7 @@ var TabContextMenu = {
|
||||||
let contextMoveTabToStart = document.getElementById("context_moveToStart");
|
let contextMoveTabToStart = document.getElementById("context_moveToStart");
|
||||||
let isFirstTab =
|
let isFirstTab =
|
||||||
tabsToMove[0] == visibleTabs[0] ||
|
tabsToMove[0] == visibleTabs[0] ||
|
||||||
|
@ -470,7 +470,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
|
||||||
contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;
|
contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;
|
||||||
|
|
||||||
document.getElementById("context_openTabInWindow").disabled =
|
document.getElementById("context_openTabInWindow").disabled =
|
||||||
@@ -8677,6 +8792,7 @@ var TabContextMenu = {
|
@@ -8647,6 +8762,7 @@ var TabContextMenu = {
|
||||||
if (this.contextTab.multiselected) {
|
if (this.contextTab.multiselected) {
|
||||||
gBrowser.removeMultiSelectedTabs();
|
gBrowser.removeMultiSelectedTabs();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
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 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b76c00fa13 100644
|
index fa96568d366fd3608f9bd583fa793150bd815c8b..1eb9e56d0e3bda0d7fa7fe856521ec261ba3a893 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
|
||||||
@@ -94,7 +94,7 @@
|
@@ -94,7 +94,7 @@
|
||||||
|
@ -11,7 +11,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
@@ -362,7 +362,7 @@
|
@@ -339,7 +339,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 ||
|
||||||
|
@ -20,7 +20,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
event.composedTarget.localName == "toolbarbutton"
|
event.composedTarget.localName == "toolbarbutton"
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
@@ -411,6 +411,7 @@
|
@@ -388,6 +388,7 @@
|
||||||
// Reset the "ignored click" flag
|
// Reset the "ignored click" flag
|
||||||
target._ignoredCloseButtonClicks = false;
|
target._ignoredCloseButtonClicks = false;
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Protects from close-tab-button errant doubleclick:
|
/* Protects from close-tab-button errant doubleclick:
|
||||||
@@ -659,7 +660,7 @@
|
@@ -683,7 +684,7 @@
|
||||||
if (this.#isContainerVerticalPinnedExpanded(tab)) {
|
if (this.#isContainerVerticalPinnedExpanded(tab)) {
|
||||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||||
// Set this before adjusting dragged tab's position
|
// Set this before adjusting dragged tab's position
|
||||||
|
@ -37,7 +37,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
let tabsPerRow = 0;
|
let tabsPerRow = 0;
|
||||||
let position = 0;
|
let position = 0;
|
||||||
for (let pinnedTab of pinnedTabs) {
|
for (let pinnedTab of pinnedTabs) {
|
||||||
@@ -859,6 +860,9 @@
|
@@ -883,6 +884,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||||
|
@ -47,7 +47,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
if (
|
if (
|
||||||
(effects == "move" || effects == "copy") &&
|
(effects == "move" || effects == "copy") &&
|
||||||
this == draggedTab.container &&
|
this == draggedTab.container &&
|
||||||
@@ -972,6 +976,14 @@
|
@@ -996,6 +1000,14 @@
|
||||||
|
|
||||||
this._tabDropIndicator.hidden = true;
|
this._tabDropIndicator.hidden = true;
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
@ -62,7 +62,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
if (draggedTab && dropEffect == "copy") {
|
if (draggedTab && dropEffect == "copy") {
|
||||||
// copy the dropped tab (wherever it's from)
|
// copy the dropped tab (wherever it's from)
|
||||||
let newIndex = this._getDropIndex(event);
|
let newIndex = this._getDropIndex(event);
|
||||||
@@ -1010,8 +1022,8 @@
|
@@ -1034,8 +1046,8 @@
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let pinned = draggedTab.pinned;
|
let pinned = draggedTab.pinned;
|
||||||
|
@ -73,7 +73,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
pinned ? 0 : numPinned,
|
pinned ? 0 : numPinned,
|
||||||
pinned ? numPinned : undefined
|
pinned ? numPinned : undefined
|
||||||
);
|
);
|
||||||
@@ -1090,7 +1102,7 @@
|
@@ -1114,7 +1126,7 @@
|
||||||
let postTransitionCleanup = () => {
|
let postTransitionCleanup = () => {
|
||||||
tab.removeAttribute("tabdrop-samewindow");
|
tab.removeAttribute("tabdrop-samewindow");
|
||||||
|
|
||||||
|
@ -82,16 +82,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
if (dropIndex !== false) {
|
if (dropIndex !== false) {
|
||||||
gBrowser.moveTabTo(tab, dropIndex);
|
gBrowser.moveTabTo(tab, dropIndex);
|
||||||
if (!directionForward) {
|
if (!directionForward) {
|
||||||
@@ -1100,7 +1112,7 @@
|
@@ -1285,7 +1297,8 @@
|
||||||
|
|
||||||
gBrowser.syncThrobberAnimations(tab);
|
|
||||||
};
|
|
||||||
- if (gReduceMotion) {
|
|
||||||
+ if (gReduceMotion || true) {
|
|
||||||
postTransitionCleanup();
|
|
||||||
} else {
|
|
||||||
let onTransitionEnd = transitionendEvent => {
|
|
||||||
@@ -1263,7 +1275,8 @@
|
|
||||||
if (
|
if (
|
||||||
dt.mozUserCancelled ||
|
dt.mozUserCancelled ||
|
||||||
dt.dropEffect != "none" ||
|
dt.dropEffect != "none" ||
|
||||||
|
@ -101,7 +92,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
) {
|
) {
|
||||||
delete draggedTab._dragData;
|
delete draggedTab._dragData;
|
||||||
return;
|
return;
|
||||||
@@ -1478,7 +1491,7 @@
|
@@ -1517,7 +1530,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get newTabButton() {
|
get newTabButton() {
|
||||||
|
@ -110,7 +101,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
|
|
||||||
get verticalMode() {
|
get verticalMode() {
|
||||||
@@ -1498,7 +1511,7 @@
|
@@ -1537,7 +1550,7 @@
|
||||||
if (this.#allTabs) {
|
if (this.#allTabs) {
|
||||||
return this.#allTabs;
|
return this.#allTabs;
|
||||||
}
|
}
|
||||||
|
@ -119,7 +110,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
// remove arrowScrollbox periphery element
|
// remove arrowScrollbox periphery element
|
||||||
children.pop();
|
children.pop();
|
||||||
|
|
||||||
@@ -1512,14 +1525,29 @@
|
@@ -1551,14 +1564,29 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#allTabs = [
|
this.#allTabs = [
|
||||||
|
@ -151,7 +142,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
return children.filter(node => node.tagName == "tab-group");
|
return children.filter(node => node.tagName == "tab-group");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1540,7 +1568,7 @@
|
@@ -1579,7 +1607,7 @@
|
||||||
*/
|
*/
|
||||||
get visibleTabs() {
|
get visibleTabs() {
|
||||||
if (!this.#visibleTabs) {
|
if (!this.#visibleTabs) {
|
||||||
|
@ -160,7 +151,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
return this.#visibleTabs;
|
return this.#visibleTabs;
|
||||||
}
|
}
|
||||||
@@ -1574,10 +1602,8 @@
|
@@ -1613,10 +1641,8 @@
|
||||||
return this.#focusableItems;
|
return this.#focusableItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +164,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
|
|
||||||
let focusableItems = [];
|
let focusableItems = [];
|
||||||
for (let child of children) {
|
for (let child of children) {
|
||||||
@@ -1593,6 +1619,7 @@
|
@@ -1632,6 +1658,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#focusableItems = [
|
this.#focusableItems = [
|
||||||
|
@ -181,7 +172,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
...verticalPinnedTabsContainer.children,
|
...verticalPinnedTabsContainer.children,
|
||||||
...focusableItems,
|
...focusableItems,
|
||||||
];
|
];
|
||||||
@@ -1603,6 +1630,7 @@
|
@@ -1642,6 +1669,7 @@
|
||||||
_invalidateCachedTabs() {
|
_invalidateCachedTabs() {
|
||||||
this.#allTabs = null;
|
this.#allTabs = null;
|
||||||
this._invalidateCachedVisibleTabs();
|
this._invalidateCachedVisibleTabs();
|
||||||
|
@ -189,7 +180,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
|
|
||||||
_invalidateCachedVisibleTabs() {
|
_invalidateCachedVisibleTabs() {
|
||||||
@@ -1617,8 +1645,8 @@
|
@@ -1656,8 +1684,8 @@
|
||||||
#isContainerVerticalPinnedExpanded(tab) {
|
#isContainerVerticalPinnedExpanded(tab) {
|
||||||
return (
|
return (
|
||||||
this.verticalMode &&
|
this.verticalMode &&
|
||||||
|
@ -200,7 +191,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1633,7 +1661,7 @@
|
@@ -1672,7 +1700,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.
|
||||||
|
@ -209,7 +200,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
|
|
||||||
node.before(tab);
|
node.before(tab);
|
||||||
@@ -1733,7 +1761,7 @@
|
@@ -1772,7 +1800,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.
|
||||||
|
@ -218,7 +209,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
const newTab2 = this.newTabButton;
|
const newTab2 = this.newTabButton;
|
||||||
const newTabVertical = document.getElementById(
|
const newTabVertical = document.getElementById(
|
||||||
"vertical-tabs-newtab-button"
|
"vertical-tabs-newtab-button"
|
||||||
@@ -1816,7 +1844,7 @@
|
@@ -1855,7 +1883,7 @@
|
||||||
let rect = ele => {
|
let rect = ele => {
|
||||||
return window.windowUtils.getBoundsWithoutFlushing(ele);
|
return window.windowUtils.getBoundsWithoutFlushing(ele);
|
||||||
};
|
};
|
||||||
|
@ -227,7 +218,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
if (tab && rect(tab).width <= this._tabClipWidth) {
|
if (tab && rect(tab).width <= this._tabClipWidth) {
|
||||||
this.setAttribute("closebuttons", "activetab");
|
this.setAttribute("closebuttons", "activetab");
|
||||||
} else {
|
} else {
|
||||||
@@ -1828,10 +1856,12 @@
|
@@ -1867,10 +1895,12 @@
|
||||||
|
|
||||||
_handleTabSelect(aInstant) {
|
_handleTabSelect(aInstant) {
|
||||||
let selectedTab = this.selectedItem;
|
let selectedTab = this.selectedItem;
|
||||||
|
@ -240,7 +231,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
selectedTab._notselectedsinceload = false;
|
selectedTab._notselectedsinceload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1843,7 +1873,7 @@
|
@@ -1882,7 +1912,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,7 +240,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
if (!tabs.length) {
|
if (!tabs.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1879,7 +1909,7 @@
|
@@ -1918,7 +1948,7 @@
|
||||||
if (isEndTab && !this._hasTabTempMaxWidth) {
|
if (isEndTab && !this._hasTabTempMaxWidth) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -258,7 +249,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
// Force tabs to stay the same width, unless we're closing the last tab,
|
// Force tabs to stay the same width, unless we're closing the last tab,
|
||||||
// which case we need to let them expand just enough so that the overall
|
// which case we need to let them expand just enough so that the overall
|
||||||
// tabbar width is the same.
|
// tabbar width is the same.
|
||||||
@@ -1894,7 +1924,7 @@
|
@@ -1933,7 +1963,7 @@
|
||||||
let tabsToReset = [];
|
let tabsToReset = [];
|
||||||
for (let i = numPinned; i < tabs.length; i++) {
|
for (let i = numPinned; i < tabs.length; i++) {
|
||||||
let tab = tabs[i];
|
let tab = tabs[i];
|
||||||
|
@ -267,7 +258,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
if (!isEndTab) {
|
if (!isEndTab) {
|
||||||
// keep tabs the same width
|
// keep tabs the same width
|
||||||
tab.style.transition = "none";
|
tab.style.transition = "none";
|
||||||
@@ -1960,16 +1990,15 @@
|
@@ -1999,16 +2029,15 @@
|
||||||
// Move pinned tabs to another container when the tabstrip is toggled to vertical
|
// Move pinned tabs to another container when the tabstrip is toggled to vertical
|
||||||
// and when session restore code calls _positionPinnedTabs; update styling whenever
|
// and when session restore code calls _positionPinnedTabs; update styling whenever
|
||||||
// the number of pinned tabs changes.
|
// the number of pinned tabs changes.
|
||||||
|
@ -290,7 +281,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1977,9 +2006,7 @@
|
@@ -2016,9 +2045,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_resetVerticalPinnedTabs() {
|
_resetVerticalPinnedTabs() {
|
||||||
|
@ -301,7 +292,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
|
|
||||||
if (!verticalTabsContainer.children.length) {
|
if (!verticalTabsContainer.children.length) {
|
||||||
return;
|
return;
|
||||||
@@ -1992,8 +2019,8 @@
|
@@ -2031,8 +2058,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_positionPinnedTabs() {
|
_positionPinnedTabs() {
|
||||||
|
@ -312,7 +303,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
let absPositionHorizontalTabs =
|
let absPositionHorizontalTabs =
|
||||||
this.overflowing && tabs.length > numPinned && numPinned > 0;
|
this.overflowing && tabs.length > numPinned && numPinned > 0;
|
||||||
|
|
||||||
@@ -2003,6 +2030,7 @@
|
@@ -2042,6 +2069,7 @@
|
||||||
if (this.verticalMode) {
|
if (this.verticalMode) {
|
||||||
this._updateVerticalPinnedTabs();
|
this._updateVerticalPinnedTabs();
|
||||||
} else if (absPositionHorizontalTabs) {
|
} else if (absPositionHorizontalTabs) {
|
||||||
|
@ -320,7 +311,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
let layoutData = this._pinnedTabsLayoutCache;
|
let layoutData = this._pinnedTabsLayoutCache;
|
||||||
let uiDensity = document.documentElement.getAttribute("uidensity");
|
let uiDensity = document.documentElement.getAttribute("uidensity");
|
||||||
if (!layoutData || layoutData.uiDensity != uiDensity) {
|
if (!layoutData || layoutData.uiDensity != uiDensity) {
|
||||||
@@ -2074,7 +2102,7 @@
|
@@ -2113,7 +2141,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,7 +320,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
|
|
||||||
let directionX = screenX > dragData.animLastScreenX;
|
let directionX = screenX > dragData.animLastScreenX;
|
||||||
let directionY = screenY > dragData.animLastScreenY;
|
let directionY = screenY > dragData.animLastScreenY;
|
||||||
@@ -2257,10 +2285,11 @@
|
@@ -2296,10 +2324,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let pinned = draggedTab.pinned;
|
let pinned = draggedTab.pinned;
|
||||||
|
@ -345,7 +336,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
);
|
);
|
||||||
|
|
||||||
if (this.#rtlMode) {
|
if (this.#rtlMode) {
|
||||||
@@ -2502,8 +2531,9 @@
|
@@ -2541,8 +2570,9 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,7 +348,16 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2668,9 +2698,9 @@
|
@@ -2604,7 +2634,7 @@
|
||||||
|
movingTab._moveTogetherSelectedTabsData.newIndex = movingTabNewIndex;
|
||||||
|
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||||
|
};
|
||||||
|
- if (gReduceMotion) {
|
||||||
|
+ if (gReduceMotion || true) {
|
||||||
|
postTransitionCleanup();
|
||||||
|
} else {
|
||||||
|
let onTransitionEnd = transitionendEvent => {
|
||||||
|
@@ -2707,9 +2737,9 @@
|
||||||
function newIndex(aTab, index) {
|
function newIndex(aTab, index) {
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
if (aTab.pinned) {
|
if (aTab.pinned) {
|
||||||
|
@ -369,7 +369,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2754,7 +2784,7 @@
|
@@ -2793,7 +2823,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_notifyBackgroundTab(aTab) {
|
_notifyBackgroundTab(aTab) {
|
||||||
|
@ -378,73 +378,3 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2772,12 +2802,14 @@
|
|
||||||
selectedTab = {
|
|
||||||
left: selectedTab.left,
|
|
||||||
right: selectedTab.right,
|
|
||||||
+ top: selectedTab.top,
|
|
||||||
+ bottom: selectedTab.bottom,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return [
|
|
||||||
this._lastTabToScrollIntoView,
|
|
||||||
this.arrowScrollbox.scrollClientRect,
|
|
||||||
- { left: lastTabRect.left, right: lastTabRect.right },
|
|
||||||
+ lastTabRect,
|
|
||||||
selectedTab,
|
|
||||||
];
|
|
||||||
})
|
|
||||||
@@ -2794,8 +2826,11 @@
|
|
||||||
delete this._lastTabToScrollIntoView;
|
|
||||||
// Is the new tab already completely visible?
|
|
||||||
if (
|
|
||||||
- scrollRect.left <= tabRect.left &&
|
|
||||||
- tabRect.right <= scrollRect.right
|
|
||||||
+ this.verticalMode
|
|
||||||
+ ? scrollRect.top <= tabRect.top &&
|
|
||||||
+ tabRect.bottom <= scrollRect.bottom
|
|
||||||
+ : scrollRect.left <= tabRect.left &&
|
|
||||||
+ tabRect.right <= scrollRect.right
|
|
||||||
) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -2803,21 +2838,29 @@
|
|
||||||
if (this.arrowScrollbox.smoothScroll) {
|
|
||||||
// Can we make both the new tab and the selected tab completely visible?
|
|
||||||
if (
|
|
||||||
- !selectedRect ||
|
|
||||||
- Math.max(
|
|
||||||
- tabRect.right - selectedRect.left,
|
|
||||||
- selectedRect.right - tabRect.left
|
|
||||||
- ) <= scrollRect.width
|
|
||||||
+ !selectedRect || (this.verticalMode
|
|
||||||
+ ? Math.max(
|
|
||||||
+ tabRect.bottom - selectedRect.top,
|
|
||||||
+ selectedRect.bottom - tabRect.top
|
|
||||||
+ ) <= scrollRect.height
|
|
||||||
+ : Math.max(
|
|
||||||
+ tabRect.right - selectedRect.left,
|
|
||||||
+ selectedRect.right - tabRect.left
|
|
||||||
+ ) <= scrollRect.width)
|
|
||||||
) {
|
|
||||||
this.arrowScrollbox.ensureElementIsVisible(tabToScrollIntoView);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- this.arrowScrollbox.scrollByPixels(
|
|
||||||
- this.#rtlMode
|
|
||||||
- ? selectedRect.right - scrollRect.right
|
|
||||||
- : selectedRect.left - scrollRect.left
|
|
||||||
- );
|
|
||||||
+ let scrollPixels;
|
|
||||||
+ if (this.verticalMode) {
|
|
||||||
+ scrollPixels = tabRect.top - selectedRect.top;
|
|
||||||
+ } else if (this.#rtlMode) {
|
|
||||||
+ scrollPixels = selectedRect.right - scrollRect.right;
|
|
||||||
+ } else {
|
|
||||||
+ scrollPixels = selectedRect.left - scrollRect.left;
|
|
||||||
+ }
|
|
||||||
+ this.arrowScrollbox.scrollByPixels(scrollPixels);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this._animateElement.hasAttribute("highlight")) {
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f4e0945b0 100644
|
index 02c328f0d0724b0cf95c820fe49a43e94a97b3c2..30387bf4f128fdc1d687ee4f6c5a51eb0bee29ea 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
|
||||||
@@ -67,6 +67,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
@@ -67,6 +67,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
|
@ -16,7 +16,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||||
const SEARCH_BUTTON_CLASS = "urlbar-search-button";
|
const SEARCH_BUTTON_CLASS = "urlbar-search-button";
|
||||||
|
|
||||||
@@ -348,7 +355,11 @@ export class UrlbarInput {
|
@@ -349,7 +356,11 @@ 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;
|
||||||
|
@ -28,7 +28,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
this._suppressPrimaryAdjustment = false;
|
this._suppressPrimaryAdjustment = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -424,6 +435,10 @@ export class UrlbarInput {
|
@@ -425,6 +436,10 @@ export class UrlbarInput {
|
||||||
hideSearchTerms = false,
|
hideSearchTerms = false,
|
||||||
isSameDocument = false
|
isSameDocument = false
|
||||||
) {
|
) {
|
||||||
|
@ -39,7 +39,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
// We only need to update the searchModeUI on tab switch conditionally
|
// We only need to update the searchModeUI on tab switch conditionally
|
||||||
// as we only persist searchMode with ScotchBonnet enabled.
|
// as we only persist searchMode with ScotchBonnet enabled.
|
||||||
if (
|
if (
|
||||||
@@ -697,8 +712,11 @@ export class UrlbarInput {
|
@@ -698,8 +713,11 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,10 +52,10 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1087,7 +1105,11 @@ export class UrlbarInput {
|
@@ -1098,7 +1116,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!result.payload.providesSearchMode) {
|
if (!this.#providesSearchMode(result)) {
|
||||||
- this.view.close({ elementPicked: true });
|
- this.view.close({ elementPicked: true });
|
||||||
+ if (this._zenHandleUrlbarClose) {
|
+ if (this._zenHandleUrlbarClose) {
|
||||||
+ this._zenHandleUrlbarClose(true);
|
+ this._zenHandleUrlbarClose(true);
|
||||||
|
@ -65,7 +65,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
}
|
}
|
||||||
|
|
||||||
this.controller.recordSelectedResult(event, result);
|
this.controller.recordSelectedResult(event, result);
|
||||||
@@ -2144,6 +2166,11 @@ export class UrlbarInput {
|
@@ -2157,6 +2179,11 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.setAttribute("breakout-extend", "true");
|
this.setAttribute("breakout-extend", "true");
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
// 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")) {
|
||||||
@@ -2163,6 +2190,11 @@ export class UrlbarInput {
|
@@ -2176,6 +2203,11 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
this.removeAttribute("breakout-extend");
|
this.removeAttribute("breakout-extend");
|
||||||
this.#updateTextboxPosition();
|
this.#updateTextboxPosition();
|
||||||
}
|
}
|
||||||
@@ -2946,7 +2978,7 @@ export class UrlbarInput {
|
@@ -2998,7 +3030,7 @@ export class UrlbarInput {
|
||||||
*/
|
*/
|
||||||
_trimValue(val) {
|
_trimValue(val) {
|
||||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||||
|
@ -98,7 +98,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
: 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.
|
||||||
@@ -3305,7 +3337,7 @@ export class UrlbarInput {
|
@@ -3365,7 +3397,7 @@ export class UrlbarInput {
|
||||||
} else {
|
} else {
|
||||||
where = lazy.BrowserUtils.whereToOpenLink(event, false, false);
|
where = lazy.BrowserUtils.whereToOpenLink(event, false, false);
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
if (where == "current") {
|
if (where == "current") {
|
||||||
where = "tab";
|
where = "tab";
|
||||||
} else if (where == "tab") {
|
} else if (where == "tab") {
|
||||||
@@ -3320,6 +3352,9 @@ export class UrlbarInput {
|
@@ -3380,6 +3412,9 @@ export class UrlbarInput {
|
||||||
) {
|
) {
|
||||||
where = "current";
|
where = "current";
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
return where;
|
return where;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3859,6 +3894,11 @@ export class UrlbarInput {
|
@@ -3921,6 +3956,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_click(event) {
|
_on_click(event) {
|
||||||
|
@ -129,7 +129,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
if (
|
if (
|
||||||
event.target == this.inputField ||
|
event.target == this.inputField ||
|
||||||
event.target == this._inputContainer ||
|
event.target == this._inputContainer ||
|
||||||
@@ -3930,7 +3970,7 @@ export class UrlbarInput {
|
@@ -3992,7 +4032,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
this.view.autoOpen({ event });
|
this.view.autoOpen({ event });
|
||||||
} else {
|
} else {
|
||||||
if (this._untrimOnFocusAfterKeydown) {
|
if (this._untrimOnFocusAfterKeydown) {
|
||||||
@@ -3970,9 +4010,12 @@ export class UrlbarInput {
|
@@ -4032,9 +4072,12 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_mousedown(event) {
|
_on_mousedown(event) {
|
||||||
|
@ -152,7 +152,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
|
||||||
|
|
||||||
if (
|
if (
|
||||||
event.target != this.inputField &&
|
event.target != this.inputField &&
|
||||||
@@ -3982,8 +4025,8 @@ export class UrlbarInput {
|
@@ -4044,8 +4087,8 @@ export class UrlbarInput {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
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 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002f3008dde 100644
|
index 01815c2114a627e5cac183c702bd82f1bd4f58f8..e8eaca11afe18555a8d6421e75b4da92d6ddf693 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
|
||||||
@@ -33,7 +33,7 @@
|
@@ -31,7 +31,7 @@
|
||||||
--tab-icon-overlay-fill: light-dark(white, black);
|
--tab-block-margin: 4px;
|
||||||
--tab-icon-overlay-stroke: light-dark(black, white);
|
--tab-icon-end-margin: 5.5px;
|
||||||
--tab-label-line-height: 1.7;
|
--tab-label-line-height: 1.7;
|
||||||
- --tab-loading-fill: #0A84FF;
|
- --tab-loading-fill: #0A84FF;
|
||||||
+ --tab-loading-fill: var(--zen-primary-color);
|
+ --tab-loading-fill: var(--zen-primary-color);
|
||||||
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
|
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
|
||||||
--tab-selected-textcolor: var(--toolbar-color);
|
--tab-selected-textcolor: var(--toolbar-color);
|
||||||
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
||||||
@@ -207,8 +207,7 @@
|
@@ -209,8 +209,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
|
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
|
||||||
|
@ -21,7 +21,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[movingtab] &:is([selected], [multiselected]) {
|
#tabbrowser-tabs[movingtab] &:is([selected], [multiselected]) {
|
||||||
@@ -238,7 +237,6 @@
|
@@ -249,7 +248,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:not([uidensity=compact]) &[pinned] {
|
:root:not([uidensity=compact]) &[pinned] {
|
||||||
|
@ -29,7 +29,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
}
|
}
|
||||||
|
|
||||||
&:is([selected], [multiselected]) {
|
&:is([selected], [multiselected]) {
|
||||||
@@ -252,6 +250,7 @@
|
@@ -263,6 +261,7 @@
|
||||||
border-radius: inherit;
|
border-radius: inherit;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -37,15 +37,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -511,7 +510,6 @@
|
@@ -617,14 +616,14 @@
|
||||||
background-repeat: no-repeat;
|
|
||||||
border-radius: 10px;
|
|
||||||
-moz-context-properties: fill;
|
|
||||||
- fill: var(--tab-icon-overlay-fill);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -569,14 +567,14 @@
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&[textoverflow] {
|
&[textoverflow] {
|
||||||
|
@ -64,7 +56,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
mask-image: linear-gradient(to right, transparent, black var(--tab-label-mask-size));
|
mask-image: linear-gradient(to right, transparent, black var(--tab-label-mask-size));
|
||||||
}
|
}
|
||||||
@@ -1135,7 +1133,7 @@
|
@@ -1170,7 +1169,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +65,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
#vertical-tabs-newtab-button {
|
#vertical-tabs-newtab-button {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
min-height: var(--tab-min-height);
|
min-height: var(--tab-min-height);
|
||||||
@@ -1146,7 +1144,7 @@
|
@@ -1181,7 +1180,7 @@
|
||||||
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 {
|
||||||
|
@ -82,7 +74,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@@ -1170,7 +1168,7 @@
|
@@ -1205,7 +1204,7 @@
|
||||||
* 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.
|
||||||
*/
|
*/
|
||||||
|
@ -91,7 +83,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
margin-block: var(--tab-block-margin);
|
margin-block: var(--tab-block-margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1194,7 +1192,6 @@
|
@@ -1229,7 +1228,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#vertical-pinned-tabs-container {
|
#vertical-pinned-tabs-container {
|
||||||
|
@ -99,7 +91,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
display: none;
|
display: none;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(var(--tab-pinned-min-width-expanded), auto));
|
grid-template-columns: repeat(auto-fit, minmax(var(--tab-pinned-min-width-expanded), auto));
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@@ -1347,7 +1344,7 @@
|
@@ -1439,7 +1437,7 @@
|
||||||
toolbarbutton:not(#firefox-view-button),
|
toolbarbutton:not(#firefox-view-button),
|
||||||
toolbarpaletteitem:not(#wrapper-firefox-view-button)
|
toolbarpaletteitem:not(#wrapper-firefox-view-button)
|
||||||
) ~ #tabbrowser-tabs {
|
) ~ #tabbrowser-tabs {
|
||||||
|
@ -108,7 +100,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
|
||||||
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
|
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
|
||||||
margin-inline-start: 2px;
|
margin-inline-start: 2px;
|
||||||
}
|
}
|
||||||
@@ -1381,7 +1378,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
@@ -1473,7 +1471,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/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
|
diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
|
||||||
index b735e78b1c2f3e0d85a5224311cdc746007c7eac..50f3c6e40b11220b71a8a3811305661887bb4360 100644
|
index 209fa7536df662e24bc6739b7ac9f911fba70ff0..321bb19cf7996a4632110e0099585d7e4ca4ca8a 100644
|
||||||
--- a/widget/windows/nsWindow.cpp
|
--- a/widget/windows/nsWindow.cpp
|
||||||
+++ b/widget/windows/nsWindow.cpp
|
+++ b/widget/windows/nsWindow.cpp
|
||||||
@@ -165,6 +165,7 @@
|
@@ -165,6 +165,7 @@
|
||||||
|
@ -10,12 +10,12 @@ index b735e78b1c2f3e0d85a5224311cdc746007c7eac..50f3c6e40b11220b71a8a38113056618
|
||||||
#include "nsNativeAppSupportWin.h"
|
#include "nsNativeAppSupportWin.h"
|
||||||
|
|
||||||
#include "nsIGfxInfo.h"
|
#include "nsIGfxInfo.h"
|
||||||
@@ -1071,7 +1072,7 @@ nsresult nsWindow::Create(nsIWidget* aParent, const LayoutDeviceIntRect& aRect,
|
@@ -2535,7 +2536,7 @@ void nsWindow::SetMicaBackdrop(bool aEnabled) {
|
||||||
|
|
||||||
|
// Enable Mica Alt Material if available.
|
||||||
|
const DWM_SYSTEMBACKDROP_TYPE type =
|
||||||
|
- aEnabled ? DWMSBT_TABBEDWINDOW : DWMSBT_AUTO;
|
||||||
|
+ aEnabled ? (StaticPrefs::zen_widget_windows_acrylic_AtStartup() ? DWMSBT_TRANSIENTWINDOW : DWMSBT_TABBEDWINDOW) : DWMSBT_AUTO;
|
||||||
|
DwmSetWindowAttribute(mWnd, DWMWA_SYSTEMBACKDROP_TYPE, &type, sizeof type);
|
||||||
|
}
|
||||||
|
|
||||||
if (WinUtils::MicaEnabled() && !IsPopup()) {
|
|
||||||
// Enable Mica Alt Material if available.
|
|
||||||
- const DWM_SYSTEMBACKDROP_TYPE tabbedWindow = DWMSBT_TABBEDWINDOW;
|
|
||||||
+ const DWM_SYSTEMBACKDROP_TYPE tabbedWindow = StaticPrefs::zen_widget_windows_acrylic_AtStartup() ? DWMSBT_TRANSIENTWINDOW : DWMSBT_TABBEDWINDOW;
|
|
||||||
DwmSetWindowAttribute(mWnd, DWMWA_SYSTEMBACKDROP_TYPE, &tabbedWindow,
|
|
||||||
sizeof tabbedWindow);
|
|
||||||
}
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"version": {
|
"version": {
|
||||||
"product": "firefox",
|
"product": "firefox",
|
||||||
"version": "135.0.1",
|
"version": "135.0.1",
|
||||||
"candidate": "135.0.1"
|
"candidate": "136.0"
|
||||||
},
|
},
|
||||||
"buildOptions": {
|
"buildOptions": {
|
||||||
"generateBranding": true
|
"generateBranding": true
|
||||||
|
@ -53,4 +53,4 @@
|
||||||
"licenseType": "MPL-2.0"
|
"licenseType": "MPL-2.0"
|
||||||
},
|
},
|
||||||
"updateHostname": "updates.zen-browser.app"
|
"updateHostname": "updates.zen-browser.app"
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue