1
0
Fork 1
mirror of https://github.com/zen-browser/desktop.git synced 2025-07-07 14:55:30 +02:00

Update to firefox 136.0

This commit is contained in:
mr. M 2025-02-26 20:14:31 +01:00
parent 6115bbabc8
commit f7995f6da7
No known key found for this signature in database
GPG key ID: CBD57A2AEDBDA1FB
12 changed files with 152 additions and 230 deletions

View file

@ -30,7 +30,7 @@
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)!
- 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!

View file

@ -1 +0,0 @@
8d18d852fbaeaa05c6ec3ebd9b35312f2c58021f

View file

@ -60,7 +60,7 @@ def update_readme(last_version, new_version, is_rc=False):
def update_l10n_last_commit_hash():
L10N_REPO = "https://github.com/mozilla-l10n/firefox-l10n"
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"):
os.mkdir("firefox-cache")
os.system("cat l10n-temp/.git/refs/heads/main > firefox-cache/l10n-last-commit-hash")

View file

@ -1,8 +1,8 @@
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
+++ 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="browser/aboutDialog.ftl"/>
@ -10,7 +10,7 @@ index 1e5c0f1c59175ec4a39938974c4a7a5c6355439f..ac9fe4b792c12a1aecba1fbbc941da9b
</linkset>
<html:div id="aboutDialogContainer">
@@ -130,13 +131,15 @@
@@ -124,21 +125,23 @@
</description>
</vbox>
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
@ -27,11 +27,12 @@ index 1e5c0f1c59175ec4a39938974c4a7a5c6355439f..ac9fe4b792c12a1aecba1fbbc941da9b
</vbox>
</vbox>
</hbox>
@@ -144,7 +147,7 @@
<vbox id="bottomBox">
<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:rights" data-l10n-id="bottomLinks-rights"/>
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
- <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/firefox/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;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"/>
</hbox>
<description id="trademark" data-l10n-id="trademarkInfo"></description>

View file

@ -1,8 +1,8 @@
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
+++ b/browser/base/content/browser.xhtml
@@ -25,6 +25,7 @@
@@ -26,6 +26,7 @@
sizemode="normal"
retargetdocumentfocus="urlbar-input"
scrolling="false"
@ -10,7 +10,7 @@ index 891c067d6ad718061c410c04743bed25744504b5..135c8515bbcb534c3f900e7ba1ee4d3b
persist="screenX screenY width height sizemode"
data-l10n-sync="true">
<head>
@@ -99,6 +100,8 @@
@@ -100,6 +101,8 @@
<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
# support MacOS specific features *must* go into the global-scripts.inc file so
# that they can be shared with macWindow.inc.xhtml.
@@ -143,6 +146,7 @@
window.addEventListener("DOMContentLoaded",
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
@@ -169,6 +172,7 @@
});
});
</script>
+#include zen-assets.inc.xhtml
</head>
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
# All sets except for popupsets (commands, keys, and stringbundles)
@@ -164,9 +168,13 @@
@@ -190,9 +194,13 @@
</vbox>
</html:template>

View file

@ -1,5 +1,5 @@
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
+++ b/browser/components/tabbrowser/content/tab.js
@@ -16,6 +16,7 @@
@ -10,9 +10,9 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
<stack class="tab-icon-stack">
<hbox class="tab-throbber"/>
<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-tooltip-label" role="presentation"/>
</hbox>
+ <label class="tab-reset-pin-label" data-l10n-id="tab-reset-pin-label" role="presentation"/>
</vbox>
@ -48,16 +48,16 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
}
get lastAccessed() {
@@ -451,6 +454,8 @@
@@ -438,6 +441,8 @@
this.style.MozUserFocus = "ignore";
} else if (
event.target.classList.contains("tab-close-button") ||
+ event.target.classList.contains("tab-reset-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;
@@ -544,6 +549,7 @@
@@ -536,6 +541,7 @@
if (this.multiselected) {
gBrowser.removeMultiSelectedTabs();
} else {
@ -65,7 +65,7 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
gBrowser.removeTab(this, {
animate: true,
triggeringEvent: event,
@@ -553,6 +559,14 @@
@@ -545,6 +551,14 @@
// (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true;
}
@ -80,7 +80,7 @@ index d41c486c02a6f09dcff5741a59ad8b617294c481..8e902dcb3792c75238ac13a8bf9199b3
}
on_dblclick(event) {
@@ -576,6 +590,8 @@
@@ -568,6 +582,8 @@
animate: true,
triggeringEvent: event,
});

View file

@ -1,8 +1,8 @@
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
+++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -406,11 +406,50 @@
@@ -412,11 +412,50 @@
return this.tabContainer.visibleTabs;
}
@ -55,8 +55,8 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
}
return i;
}
@@ -807,7 +846,7 @@
this.showTab(aTab);
@@ -814,7 +853,7 @@
this.ungroupTab(aTab);
if (this.tabContainer.verticalMode) {
this._handleTabMove(aTab, () =>
- this.verticalPinnedTabsContainer.appendChild(aTab)
@ -64,7 +64,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
);
} else {
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
// and back into arrowscrollbox.
aTab.removeAttribute("pinned");
@ -73,7 +73,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
});
} else {
this.moveTabTo(aTab, this.pinnedTabCount - 1, {
@@ -1055,6 +1094,8 @@
@@ -1018,6 +1057,8 @@
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
@ -82,7 +82,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (
aIconURL &&
!aLoadingPrincipal &&
@@ -1065,6 +1106,9 @@
@@ -1028,6 +1069,9 @@
);
return;
}
@ -92,7 +92,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
let browser = this.getBrowserForTab(aTab);
browser.mIconURL = aIconURL;
@@ -1310,6 +1354,7 @@
@@ -1273,6 +1317,7 @@
if (!this._previewMode) {
newTab.recordTimeFromUnloadToReload();
newTab.updateLastAccessed();
@ -100,7 +100,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
oldTab.updateLastAccessed();
// if this is the foreground window, update the last-seen timestamps.
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
@@ -1462,6 +1507,9 @@
@@ -1425,6 +1470,9 @@
}
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 (activeEl == oldTab) {
newTab.focus();
@@ -1785,7 +1833,7 @@
@@ -1748,7 +1796,7 @@
}
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
@ -119,7 +119,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
return false;
}
@@ -1888,7 +1936,7 @@
@@ -1851,7 +1899,7 @@
newIndex = this.selectedTab._tPos + 1;
}
@ -128,7 +128,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
let browser;
if (targetTab) {
browser = this.getBrowserForTab(targetTab);
@@ -2222,7 +2270,8 @@
@@ -2182,7 +2230,8 @@
b.setAttribute("name", name);
}
@ -138,7 +138,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
b.setAttribute("transparent", "true");
}
@@ -2387,7 +2436,7 @@
@@ -2347,7 +2396,7 @@
let panel = this.getPanel(browser);
let uniqueId = this._generateUniquePanelID();
@ -147,7 +147,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
aTab.linkedPanel = uniqueId;
// 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
// hasSiblings=false on both the existing browser and the new browser.
if (this.tabs.length == 2) {
@ -158,7 +158,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
} else {
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)) {
UserInteraction.start("browser.tabs.opening", "initting", window);
}
@@ -2742,6 +2797,12 @@
@@ -2702,6 +2757,12 @@
noInitialLabel,
skipBackgroundNotify,
});
@ -184,7 +184,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (insertTab) {
// insert the tab into the tab container in the correct position
this._insertTabAtIndex(t, {
@@ -2885,6 +2946,9 @@
@@ -2845,6 +2906,9 @@
}
}
@ -194,7 +194,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
// Additionally send pinned tab events
if (pinned) {
this._notifyPinnedStatus(t);
@@ -3403,6 +3467,24 @@
@@ -3367,6 +3431,24 @@
) {
tabWasReused = true;
tab = this.selectedTab;
@ -219,7 +219,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (!tabData.pinned) {
this.unpinTab(tab);
} else {
@@ -3416,6 +3498,7 @@
@@ -3380,6 +3462,7 @@
restoreTabsLazily && !select && !tabData.pinned;
let url = "about:blank";
@ -227,7 +227,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (tabData.entries?.length) {
let activeIndex = (tabData.index || tabData.entries.length) - 1;
// Ensure the index is in bounds.
@@ -3451,7 +3534,24 @@
@@ -3415,7 +3498,24 @@
skipLoad: true,
preferredRemoteType,
});
@ -253,7 +253,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (select) {
tabToSelect = tab;
}
@@ -3464,8 +3564,8 @@
@@ -3428,8 +3528,8 @@
// inserted in the DOM. If the tab is not yet in the DOM,
// just insert it in the right place from the start.
if (!tab.parentNode) {
@ -264,7 +264,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
tab.toggleAttribute("pinned", true);
this.tabContainer._invalidateCachedTabs();
// 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.
if (typeof index != "number") {
// Move the new tab after another tab if needed, to the end otherwise.
@ -273,7 +273,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (
!bulkOrderedOpen &&
((openerTab &&
@@ -3780,7 +3880,7 @@
@@ -3744,7 +3844,7 @@
}
/** @type {MozTabbrowserTab|undefined} */
@ -282,7 +282,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
this.tabContainer._invalidateCachedTabs();
if (tabGroup) {
@@ -4095,6 +4195,9 @@
@@ -4059,6 +4159,9 @@
return;
}
@ -292,7 +292,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
this.removeTabs(selectedTabs);
}
@@ -4427,6 +4530,7 @@
@@ -4391,6 +4494,7 @@
skipSessionStore,
} = {}
) {
@ -300,7 +300,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (UserInteraction.running("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);
}
@ -313,7 +313,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
// Handle requests for synchronously removing an already
// asynchronously closing tab.
if (!animate && aTab.closing) {
@@ -4457,7 +4567,9 @@
@@ -4421,7 +4531,9 @@
// frame created for it (for example, by updating the visually selected
// state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
@ -324,7 +324,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (
!this._beginRemoveTab(aTab, {
closeWindowFastpath: true,
@@ -4471,7 +4583,6 @@
@@ -4435,7 +4547,6 @@
TelemetryStopwatch.cancel("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
return;
}
@ -332,7 +332,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
let lockTabSizing =
!this.tabContainer.verticalMode &&
!aTab.pinned &&
@@ -4610,14 +4721,14 @@
@@ -4574,14 +4685,14 @@
!!this.tabsInCollapsedTabGroups.length;
if (
aTab.visible &&
@ -349,7 +349,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here,
@@ -4641,6 +4752,7 @@
@@ -4605,6 +4716,7 @@
newTab = true;
}
@ -357,7 +357,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -4681,9 +4793,7 @@
@@ -4645,9 +4757,7 @@
aTab._mouseleave();
if (newTab) {
@ -368,7 +368,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
} else {
TabBarVisibility.update();
}
@@ -4812,6 +4922,8 @@
@@ -4776,6 +4886,8 @@
this.tabs[i]._tPos = i;
}
@ -377,7 +377,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (!this._windowIsClosing) {
if (wasPinned) {
this.tabContainer._positionPinnedTabs();
@@ -5025,7 +5137,7 @@
@@ -4994,7 +5106,7 @@
!excludeTabs.has(aTab.owner) &&
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
@@ -5047,7 +5159,7 @@
@@ -5016,7 +5128,7 @@
}
if (tab) {
@ -395,7 +395,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
}
// 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");
}
@ -408,7 +408,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
aTab.selected ||
aTab.closing ||
// 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.
if (aTab.pinned) {
@ -417,8 +417,8 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
} else {
aIndex = Math.max(aIndex, this.pinnedTabCount);
}
@@ -5717,7 +5829,7 @@
this._lastRelatedTabMap = new WeakMap();
@@ -5684,7 +5796,7 @@
}
this._handleTabMove(aTab, () => {
- let neighbor = this.tabs[aIndex];
@ -426,7 +426,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (forceStandaloneTab && neighbor.group) {
neighbor = neighbor.group;
}
@@ -5754,6 +5866,8 @@
@@ -5721,6 +5833,8 @@
moveActionCallback();
@ -435,7 +435,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
// Clear tabs cache after moving nodes because the order of tabs may have
// changed.
this.tabContainer._invalidateCachedTabs();
@@ -5802,7 +5916,7 @@
@@ -5771,7 +5885,7 @@
createLazyBrowser,
};
@ -444,15 +444,15 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) {
params.pinned = true;
}
@@ -7443,6 +7557,7 @@
@@ -7415,6 +7529,7 @@
aWebProgress.isTopLevel
) {
this.mTab.setAttribute("busy", "true");
+ if (!this.mTab.selected) this.mTab.setAttribute("unread", "true");
gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected;
gBrowser.syncThrobberAnimations(this.mTab);
@@ -8411,7 +8526,7 @@ var TabContextMenu = {
}
@@ -8381,7 +8496,7 @@ var TabContextMenu = {
);
contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !multiselectionContext;
@ -461,7 +461,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
// Move Tab items
let contextMoveTabOptions = document.getElementById(
"context_moveTabOptions"
@@ -8444,7 +8559,7 @@ var TabContextMenu = {
@@ -8414,7 +8529,7 @@ var TabContextMenu = {
let contextMoveTabToStart = document.getElementById("context_moveToStart");
let isFirstTab =
tabsToMove[0] == visibleTabs[0] ||
@ -470,7 +470,7 @@ index ff90a70bdad6c94ec4b90027ff102972d0eb28e5..2766dcccb4cc0c435b06a2f61d382f91
contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;
document.getElementById("context_openTabInWindow").disabled =
@@ -8677,6 +8792,7 @@ var TabContextMenu = {
@@ -8647,6 +8762,7 @@ var TabContextMenu = {
if (this.contextTab.multiselected) {
gBrowser.removeMultiSelectedTabs();
} else {

View file

@ -1,5 +1,5 @@
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
+++ b/browser/components/tabbrowser/content/tabs.js
@@ -94,7 +94,7 @@
@ -11,7 +11,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
return true;
};
@@ -362,7 +362,7 @@
@@ -339,7 +339,7 @@
// and we're not hitting the scroll buttons.
if (
event.button != 0 ||
@ -20,7 +20,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
event.composedTarget.localName == "toolbarbutton"
) {
return;
@@ -411,6 +411,7 @@
@@ -388,6 +388,7 @@
// Reset the "ignored click" flag
target._ignoredCloseButtonClicks = false;
}
@ -28,7 +28,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
/* Protects from close-tab-button errant doubleclick:
@@ -659,7 +660,7 @@
@@ -683,7 +684,7 @@
if (this.#isContainerVerticalPinnedExpanded(tab)) {
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
// Set this before adjusting dragged tab's position
@ -37,7 +37,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
let tabsPerRow = 0;
let position = 0;
for (let pinnedTab of pinnedTabs) {
@@ -859,6 +860,9 @@
@@ -883,6 +884,9 @@
}
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
@ -47,7 +47,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (
(effects == "move" || effects == "copy") &&
this == draggedTab.container &&
@@ -972,6 +976,14 @@
@@ -996,6 +1000,14 @@
this._tabDropIndicator.hidden = true;
event.stopPropagation();
@ -62,7 +62,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (draggedTab && dropEffect == "copy") {
// copy the dropped tab (wherever it's from)
let newIndex = this._getDropIndex(event);
@@ -1010,8 +1022,8 @@
@@ -1034,8 +1046,8 @@
}
} else {
let pinned = draggedTab.pinned;
@ -73,7 +73,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
pinned ? 0 : numPinned,
pinned ? numPinned : undefined
);
@@ -1090,7 +1102,7 @@
@@ -1114,7 +1126,7 @@
let postTransitionCleanup = () => {
tab.removeAttribute("tabdrop-samewindow");
@ -82,16 +82,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (dropIndex !== false) {
gBrowser.moveTabTo(tab, dropIndex);
if (!directionForward) {
@@ -1100,7 +1112,7 @@
gBrowser.syncThrobberAnimations(tab);
};
- if (gReduceMotion) {
+ if (gReduceMotion || true) {
postTransitionCleanup();
} else {
let onTransitionEnd = transitionendEvent => {
@@ -1263,7 +1275,8 @@
@@ -1285,7 +1297,8 @@
if (
dt.mozUserCancelled ||
dt.dropEffect != "none" ||
@ -101,7 +92,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
) {
delete draggedTab._dragData;
return;
@@ -1478,7 +1491,7 @@
@@ -1517,7 +1530,7 @@
}
get newTabButton() {
@ -110,7 +101,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
get verticalMode() {
@@ -1498,7 +1511,7 @@
@@ -1537,7 +1550,7 @@
if (this.#allTabs) {
return this.#allTabs;
}
@ -119,7 +110,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
// remove arrowScrollbox periphery element
children.pop();
@@ -1512,14 +1525,29 @@
@@ -1551,14 +1564,29 @@
}
this.#allTabs = [
@ -151,7 +142,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
return children.filter(node => node.tagName == "tab-group");
}
@@ -1540,7 +1568,7 @@
@@ -1579,7 +1607,7 @@
*/
get visibleTabs() {
if (!this.#visibleTabs) {
@ -160,7 +151,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
return this.#visibleTabs;
}
@@ -1574,10 +1602,8 @@
@@ -1613,10 +1641,8 @@
return this.#focusableItems;
}
@ -173,7 +164,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
let focusableItems = [];
for (let child of children) {
@@ -1593,6 +1619,7 @@
@@ -1632,6 +1658,7 @@
}
this.#focusableItems = [
@ -181,7 +172,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
...verticalPinnedTabsContainer.children,
...focusableItems,
];
@@ -1603,6 +1630,7 @@
@@ -1642,6 +1669,7 @@
_invalidateCachedTabs() {
this.#allTabs = null;
this._invalidateCachedVisibleTabs();
@ -189,7 +180,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
_invalidateCachedVisibleTabs() {
@@ -1617,8 +1645,8 @@
@@ -1656,8 +1684,8 @@
#isContainerVerticalPinnedExpanded(tab) {
return (
this.verticalMode &&
@ -200,7 +191,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
);
}
@@ -1633,7 +1661,7 @@
@@ -1672,7 +1700,7 @@
if (node == null) {
// We have a container for non-tab elements at the end of the scrollbox.
@ -209,7 +200,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
node.before(tab);
@@ -1733,7 +1761,7 @@
@@ -1772,7 +1800,7 @@
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
// Attach the long click popup to all of them.
@ -218,7 +209,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
const newTab2 = this.newTabButton;
const newTabVertical = document.getElementById(
"vertical-tabs-newtab-button"
@@ -1816,7 +1844,7 @@
@@ -1855,7 +1883,7 @@
let rect = ele => {
return window.windowUtils.getBoundsWithoutFlushing(ele);
};
@ -227,7 +218,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (tab && rect(tab).width <= this._tabClipWidth) {
this.setAttribute("closebuttons", "activetab");
} else {
@@ -1828,10 +1856,12 @@
@@ -1867,10 +1895,12 @@
_handleTabSelect(aInstant) {
let selectedTab = this.selectedItem;
@ -240,7 +231,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
selectedTab._notselectedsinceload = false;
}
@@ -1843,7 +1873,7 @@
@@ -1882,7 +1912,7 @@
return;
}
@ -249,7 +240,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (!tabs.length) {
return;
}
@@ -1879,7 +1909,7 @@
@@ -1918,7 +1948,7 @@
if (isEndTab && !this._hasTabTempMaxWidth) {
return;
}
@ -258,7 +249,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
// 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
// tabbar width is the same.
@@ -1894,7 +1924,7 @@
@@ -1933,7 +1963,7 @@
let tabsToReset = [];
for (let i = numPinned; i < tabs.length; i++) {
let tab = tabs[i];
@ -267,7 +258,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (!isEndTab) {
// keep tabs the same width
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
// and when session restore code calls _positionPinnedTabs; update styling whenever
// the number of pinned tabs changes.
@ -290,7 +281,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
}
@@ -1977,9 +2006,7 @@
@@ -2016,9 +2045,7 @@
}
_resetVerticalPinnedTabs() {
@ -301,7 +292,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
if (!verticalTabsContainer.children.length) {
return;
@@ -1992,8 +2019,8 @@
@@ -2031,8 +2058,8 @@
}
_positionPinnedTabs() {
@ -312,7 +303,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
let absPositionHorizontalTabs =
this.overflowing && tabs.length > numPinned && numPinned > 0;
@@ -2003,6 +2030,7 @@
@@ -2042,6 +2069,7 @@
if (this.verticalMode) {
this._updateVerticalPinnedTabs();
} else if (absPositionHorizontalTabs) {
@ -320,7 +311,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
let layoutData = this._pinnedTabsLayoutCache;
let uiDensity = document.documentElement.getAttribute("uidensity");
if (!layoutData || layoutData.uiDensity != uiDensity) {
@@ -2074,7 +2102,7 @@
@@ -2113,7 +2141,7 @@
return;
}
@ -329,7 +320,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
let directionX = screenX > dragData.animLastScreenX;
let directionY = screenY > dragData.animLastScreenY;
@@ -2257,10 +2285,11 @@
@@ -2296,10 +2324,11 @@
}
let pinned = draggedTab.pinned;
@ -345,7 +336,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
);
if (this.#rtlMode) {
@@ -2502,8 +2531,9 @@
@@ -2541,8 +2570,9 @@
);
}
@ -357,7 +348,16 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
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) {
// Don't allow mixing pinned and unpinned tabs.
if (aTab.pinned) {
@ -369,7 +369,7 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
}
}
@@ -2754,7 +2784,7 @@
@@ -2793,7 +2823,7 @@
}
_notifyBackgroundTab(aTab) {
@ -378,73 +378,3 @@ index 8aeb244ffca9f48661805f5b7d860b5896055562..53ac909f773efab33e0d69e53dd557b7
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")) {

View file

@ -1,5 +1,5 @@
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
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
@@ -67,6 +67,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
@ -16,7 +16,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
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"
// event but does not set the primary selection.
this._suppressPrimaryAdjustment = true;
@ -28,7 +28,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
this._suppressPrimaryAdjustment = false;
}
@@ -424,6 +435,10 @@ export class UrlbarInput {
@@ -425,6 +436,10 @@ export class UrlbarInput {
hideSearchTerms = false,
isSameDocument = false
) {
@ -39,7 +39,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
// We only need to update the searchModeUI on tab switch conditionally
// as we only persist searchMode with ScotchBonnet enabled.
if (
@@ -697,8 +712,11 @@ export class UrlbarInput {
@@ -698,8 +713,11 @@ export class UrlbarInput {
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 });
+ if (this._zenHandleUrlbarClose) {
+ this._zenHandleUrlbarClose(true);
@ -65,7 +65,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
}
this.controller.recordSelectedResult(event, result);
@@ -2144,6 +2166,11 @@ export class UrlbarInput {
@@ -2157,6 +2179,11 @@ export class UrlbarInput {
this.setAttribute("breakout-extend", "true");
@ -77,7 +77,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
// Enable the animation only after the first extend call to ensure it
// doesn't run when opening a new window.
if (!this.hasAttribute("breakout-extend-animate")) {
@@ -2163,6 +2190,11 @@ export class UrlbarInput {
@@ -2176,6 +2203,11 @@ export class UrlbarInput {
return;
}
@ -89,7 +89,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
this.removeAttribute("breakout-extend");
this.#updateTextboxPosition();
}
@@ -2946,7 +2978,7 @@ export class UrlbarInput {
@@ -2998,7 +3030,7 @@ export class UrlbarInput {
*/
_trimValue(val) {
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
@ -98,7 +98,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
: val;
// Only trim value if the directionality doesn't change to RTL and we're not
// showing a strikeout https protocol.
@@ -3305,7 +3337,7 @@ export class UrlbarInput {
@@ -3365,7 +3397,7 @@ export class UrlbarInput {
} else {
where = lazy.BrowserUtils.whereToOpenLink(event, false, false);
}
@ -107,7 +107,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
if (where == "current") {
where = "tab";
} else if (where == "tab") {
@@ -3320,6 +3352,9 @@ export class UrlbarInput {
@@ -3380,6 +3412,9 @@ export class UrlbarInput {
) {
where = "current";
}
@ -117,7 +117,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
return where;
}
@@ -3859,6 +3894,11 @@ export class UrlbarInput {
@@ -3921,6 +3956,11 @@ export class UrlbarInput {
}
_on_click(event) {
@ -129,7 +129,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
if (
event.target == this.inputField ||
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 });
} else {
if (this._untrimOnFocusAfterKeydown) {
@@ -3970,9 +4010,12 @@ export class UrlbarInput {
@@ -4032,9 +4072,12 @@ export class UrlbarInput {
}
_on_mousedown(event) {
@ -152,7 +152,7 @@ index 50968dc04b527438acf30151f0c2e92f8b45097c..7f3579d39e53a36135fbabb786a6e07f
if (
event.target != this.inputField &&
@@ -3982,8 +4025,8 @@ export class UrlbarInput {
@@ -4044,8 +4087,8 @@ export class UrlbarInput {
break;
}

View file

@ -1,17 +1,17 @@
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
+++ b/browser/themes/shared/tabbrowser/tabs.css
@@ -33,7 +33,7 @@
--tab-icon-overlay-fill: light-dark(white, black);
--tab-icon-overlay-stroke: light-dark(black, white);
@@ -31,7 +31,7 @@
--tab-block-margin: 4px;
--tab-icon-end-margin: 5.5px;
--tab-label-line-height: 1.7;
- --tab-loading-fill: #0A84FF;
+ --tab-loading-fill: var(--zen-primary-color);
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
--tab-selected-textcolor: var(--toolbar-color);
--tab-selected-bgcolor: var(--toolbar-bgcolor);
@@ -207,8 +207,7 @@
@@ -209,8 +209,7 @@
}
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
@ -21,7 +21,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
}
#tabbrowser-tabs[movingtab] &:is([selected], [multiselected]) {
@@ -238,7 +237,6 @@
@@ -249,7 +248,6 @@
}
:root:not([uidensity=compact]) &[pinned] {
@ -29,7 +29,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
}
&:is([selected], [multiselected]) {
@@ -252,6 +250,7 @@
@@ -263,6 +261,7 @@
border-radius: inherit;
position: relative;
overflow: hidden;
@ -37,15 +37,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
&::before {
position: absolute;
@@ -511,7 +510,6 @@
background-repeat: no-repeat;
border-radius: 10px;
-moz-context-properties: fill;
- fill: var(--tab-icon-overlay-fill);
}
}
@@ -569,14 +567,14 @@
@@ -617,14 +616,14 @@
}
&[textoverflow] {
@ -64,7 +56,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
direction: rtl;
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 {
appearance: none;
min-height: var(--tab-min-height);
@@ -1146,7 +1144,7 @@
@@ -1181,7 +1180,7 @@
margin-inline: var(--tab-inner-inline-margin);
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
@ -82,7 +74,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
}
&:hover {
@@ -1170,7 +1168,7 @@
@@ -1205,7 +1204,7 @@
* 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.
*/
@ -91,7 +83,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
margin-block: var(--tab-block-margin);
}
@@ -1194,7 +1192,6 @@
@@ -1229,7 +1228,6 @@
}
#vertical-pinned-tabs-container {
@ -99,7 +91,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
display: none;
grid-template-columns: repeat(auto-fit, minmax(var(--tab-pinned-min-width-expanded), auto));
overflow-y: auto;
@@ -1347,7 +1344,7 @@
@@ -1439,7 +1437,7 @@
toolbarbutton:not(#firefox-view-button),
toolbarpaletteitem:not(#wrapper-firefox-view-button)
) ~ #tabbrowser-tabs {
@ -108,7 +100,7 @@ index 96f930638c04c7ddcc8dc1a7fe4dce8b12a325e6..9e11e715ade485c33ba4c8f719b41002
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 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);
}

View file

@ -1,5 +1,5 @@
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
+++ b/widget/windows/nsWindow.cpp
@@ -165,6 +165,7 @@
@ -10,12 +10,12 @@ index b735e78b1c2f3e0d85a5224311cdc746007c7eac..50f3c6e40b11220b71a8a38113056618
#include "nsNativeAppSupportWin.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);
}

View file

@ -6,7 +6,7 @@
"version": {
"product": "firefox",
"version": "135.0.1",
"candidate": "135.0.1"
"candidate": "136.0"
},
"buildOptions": {
"generateBranding": true
@ -53,4 +53,4 @@
"licenseType": "MPL-2.0"
},
"updateHostname": "updates.zen-browser.app"
}
}