mirror of
https://github.com/zen-browser/desktop.git
synced 2026-06-22 02:43:21 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea88f66f8c | ||
|
|
3169311a2f | ||
|
|
7bf9c4f70f | ||
|
|
eb4cae5bf6 | ||
|
|
b540ca57b4 | ||
|
|
de78f43550 | ||
|
|
ac43c3078c | ||
|
|
22e80793d2 |
@@ -34,8 +34,8 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
|
|||||||
|
|
||||||
### Firefox Versions
|
### Firefox Versions
|
||||||
|
|
||||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `152.0`! 🚀
|
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `152.0.1`! 🚀
|
||||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 152.0`!
|
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 152.0.1`!
|
||||||
|
|
||||||
### Contributing
|
### Contributing
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
01604ce201d4de3c6d4b930d271ce4fe05e8d0c8
|
2960f4c1ce58d289d3b9ec885695f0017d2636ab
|
||||||
@@ -7,10 +7,6 @@
|
|||||||
value: true
|
value: true
|
||||||
condition: "defined(XP_WIN)"
|
condition: "defined(XP_WIN)"
|
||||||
|
|
||||||
- name: widget.windows.mica.popups
|
|
||||||
value: true
|
|
||||||
condition: "defined(XP_WIN)"
|
|
||||||
|
|
||||||
# 1 = DWMSBT_MAINWINDOW
|
# 1 = DWMSBT_MAINWINDOW
|
||||||
# 2 = DWMSBT_TRANSIENTWINDOW (default, also used for popups)
|
# 2 = DWMSBT_TRANSIENTWINDOW (default, also used for popups)
|
||||||
# 3 = DWMSBT_TABBEDWINDOW
|
# 3 = DWMSBT_TABBEDWINDOW
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||||
index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98ff7c5f86 100644
|
index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80bbcf503b2 100644
|
||||||
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||||
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||||
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||||
@@ -186,7 +186,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
});
|
});
|
||||||
|
|
||||||
lazy.log.debug(
|
lazy.log.debug(
|
||||||
@@ -7930,7 +7931,37 @@ class OverflowableToolbar {
|
@@ -7930,7 +7931,39 @@ class OverflowableToolbar {
|
||||||
Math.max(targetWidth, targetChildrenWidth)
|
Math.max(targetWidth, targetChildrenWidth)
|
||||||
);
|
);
|
||||||
totalAvailWidth = Math.ceil(totalAvailWidth);
|
totalAvailWidth = Math.ceil(totalAvailWidth);
|
||||||
@@ -194,6 +194,8 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
+ if (this.#target.id == 'nav-bar-customization-target' &&
|
+ if (this.#target.id == 'nav-bar-customization-target' &&
|
||||||
+ win.gZenVerticalTabsManager._hasSetSingleToolbar &&
|
+ win.gZenVerticalTabsManager._hasSetSingleToolbar &&
|
||||||
+ Services.prefs.getBoolPref("zen.view.overflow-webext-toolbar", true) &&
|
+ Services.prefs.getBoolPref("zen.view.overflow-webext-toolbar", true) &&
|
||||||
|
+ !win.document.documentElement.hasAttribute("zen-creating-workspace") &&
|
||||||
|
+ !win.document.documentElement.hasAttribute("inDOMFullscreen") &&
|
||||||
+ !win.gURLBar.hasAttribute("breakout-extend")) {
|
+ !win.gURLBar.hasAttribute("breakout-extend")) {
|
||||||
+ const availSelectors = ":is(#page-action-buttons, #zen-copy-url-button, .unified-extensions-item, .urlbar-addon-page-action)";
|
+ const availSelectors = ":is(#page-action-buttons, #zen-copy-url-button, .unified-extensions-item, .urlbar-addon-page-action)";
|
||||||
+ const width = [
|
+ const width = [
|
||||||
@@ -225,7 +227,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7991,7 +8022,11 @@ class OverflowableToolbar {
|
@@ -7991,7 +8024,11 @@ class OverflowableToolbar {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -238,7 +240,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
lazy.log.debug(
|
lazy.log.debug(
|
||||||
`Need ${minSize} but width is ${totalAvailWidth} so bailing`
|
`Need ${minSize} but width is ${totalAvailWidth} so bailing`
|
||||||
);
|
);
|
||||||
@@ -8024,7 +8059,7 @@ class OverflowableToolbar {
|
@@ -8024,7 +8061,7 @@ class OverflowableToolbar {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!inserted) {
|
if (!inserted) {
|
||||||
@@ -247,7 +249,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
}
|
}
|
||||||
child.removeAttribute("cui-anchorid");
|
child.removeAttribute("cui-anchorid");
|
||||||
child.removeAttribute("overflowedItem");
|
child.removeAttribute("overflowedItem");
|
||||||
@@ -8150,6 +8185,9 @@ class OverflowableToolbar {
|
@@ -8150,6 +8187,9 @@ class OverflowableToolbar {
|
||||||
* if no such list exists.
|
* if no such list exists.
|
||||||
*/
|
*/
|
||||||
get #webExtList() {
|
get #webExtList() {
|
||||||
@@ -257,7 +259,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
if (!this.#webExtListRef) {
|
if (!this.#webExtListRef) {
|
||||||
let targetID = this.#toolbar.getAttribute("addon-webext-overflowtarget");
|
let targetID = this.#toolbar.getAttribute("addon-webext-overflowtarget");
|
||||||
if (!targetID) {
|
if (!targetID) {
|
||||||
@@ -8161,6 +8199,9 @@ class OverflowableToolbar {
|
@@ -8161,6 +8201,9 @@ class OverflowableToolbar {
|
||||||
let win = this.#toolbar.documentGlobal;
|
let win = this.#toolbar.documentGlobal;
|
||||||
let { panel } = win.gUnifiedExtensions;
|
let { panel } = win.gUnifiedExtensions;
|
||||||
this.#webExtListRef = panel.querySelector(`#${targetID}`);
|
this.#webExtListRef = panel.querySelector(`#${targetID}`);
|
||||||
@@ -267,7 +269,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..126474de8a38a11948c437703c875e98
|
|||||||
}
|
}
|
||||||
return this.#webExtListRef;
|
return this.#webExtListRef;
|
||||||
}
|
}
|
||||||
@@ -8369,7 +8410,7 @@ class OverflowableToolbar {
|
@@ -8369,7 +8412,7 @@ class OverflowableToolbar {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "mousedown": {
|
case "mousedown": {
|
||||||
|
|||||||
13
src/browser/components/nova/NovaPrefs-sys-mjs.patch
Normal file
13
src/browser/components/nova/NovaPrefs-sys-mjs.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/browser/components/nova/NovaPrefs.sys.mjs b/browser/components/nova/NovaPrefs.sys.mjs
|
||||||
|
index 3d22c881c481643fcffbc581523905a1847a7d41..453dd4d9c43d7483c037a993afbf2b854533497c 100644
|
||||||
|
--- a/browser/components/nova/NovaPrefs.sys.mjs
|
||||||
|
+++ b/browser/components/nova/NovaPrefs.sys.mjs
|
||||||
|
@@ -18,7 +18,7 @@ const PLATFORM_PREFS = (() => {
|
||||||
|
})();
|
||||||
|
|
||||||
|
function applyNovaPlatformDefaults() {
|
||||||
|
- const on = Services.prefs.getBoolPref("browser.nova.enabled", false);
|
||||||
|
+ const on = true;
|
||||||
|
const defaults = Services.prefs.getDefaultBranch("");
|
||||||
|
for (const pref of PLATFORM_PREFS) {
|
||||||
|
defaults.setBoolPref(pref, on);
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||||
index 57add34d876fb885275f1147209c6fbeee367a7c..d4c64b9ec8b6d1e6e0bd0b888c6e7351fbe299a4 100644
|
index 57add34d876fb885275f1147209c6fbeee367a7c..be0ab43b299317c0022a5e719f47a070c1574714 100644
|
||||||
--- a/browser/components/preferences/preferences.js
|
--- a/browser/components/preferences/preferences.js
|
||||||
+++ b/browser/components/preferences/preferences.js
|
+++ b/browser/components/preferences/preferences.js
|
||||||
@@ -132,6 +132,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
@@ -132,6 +132,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||||
@@ -10,7 +10,25 @@ index 57add34d876fb885275f1147209c6fbeee367a7c..d4c64b9ec8b6d1e6e0bd0b888c6e7351
|
|||||||
],
|
],
|
||||||
resizeCallback: async ({ title, frame }) => {
|
resizeCallback: async ({ title, frame }) => {
|
||||||
// Search within main document and highlight matched keyword.
|
// Search within main document and highlight matched keyword.
|
||||||
@@ -522,6 +523,10 @@ function init_all() {
|
@@ -437,6 +438,8 @@ const CONFIG_PANES = Object.freeze({
|
||||||
|
tabsBrowsing: {
|
||||||
|
l10nId: "tabs-browsing-section",
|
||||||
|
groupIds: [
|
||||||
|
+ "defaultBrowserHome",
|
||||||
|
+ "startupHome",
|
||||||
|
"browserLayout",
|
||||||
|
"tabs",
|
||||||
|
"pageNavigation",
|
||||||
|
@@ -477,7 +480,7 @@ function register_module(categoryName, categoryObject) {
|
||||||
|
}
|
||||||
|
this._initted = true;
|
||||||
|
let template = document.getElementById("template-" + categoryName);
|
||||||
|
- if (template && !srdSectionPrefs.all) {
|
||||||
|
+ if (template && (!srdSectionPrefs.all || categoryName.startsWith("paneZen"))) {
|
||||||
|
// Replace the template element with the nodes inside of it.
|
||||||
|
template.replaceWith(template.content);
|
||||||
|
|
||||||
|
@@ -522,6 +525,10 @@ function init_all() {
|
||||||
register_module("paneSearch", gSearchPane);
|
register_module("paneSearch", gSearchPane);
|
||||||
register_module("panePrivacy", gPrivacyPane);
|
register_module("panePrivacy", gPrivacyPane);
|
||||||
register_module("paneContainers", gContainersPane);
|
register_module("paneContainers", gContainersPane);
|
||||||
@@ -21,3 +39,15 @@ index 57add34d876fb885275f1147209c6fbeee367a7c..d4c64b9ec8b6d1e6e0bd0b888c6e7351
|
|||||||
|
|
||||||
// Restore the cached Firefox Labs nav button visibility so it shows
|
// Restore the cached Firefox Labs nav button visibility so it shows
|
||||||
// immediately when recipes are expected to be available, before
|
// immediately when recipes are expected to be available, before
|
||||||
|
@@ -651,9 +658,9 @@ async function gotoPref(
|
||||||
|
let redesignEnabled = srdSectionPrefs.all;
|
||||||
|
let categories = document.getElementById("categories");
|
||||||
|
const kDefaultCategoryInternalName = redesignEnabled
|
||||||
|
- ? "paneSync"
|
||||||
|
+ ? "paneTabsBrowsing"
|
||||||
|
: "paneGeneral";
|
||||||
|
- const kDefaultCategory = redesignEnabled ? "sync" : "general";
|
||||||
|
+ const kDefaultCategory = redesignEnabled ? "tabsBrowsing" : "general";
|
||||||
|
let hash = document.location.hash;
|
||||||
|
let category = aCategory || hash.substring(1) || kDefaultCategoryInternalName;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 08b5b56e069d038d72c87355920c4ce8a55ed805..fff7da6865c694b439ee12d05db06d642a5b0a04 100644
|
index 08b5b56e069d038d72c87355920c4ce8a55ed805..555ffd4772d9d4903491fdff9f3682852f8a52bd 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
|
||||||
@@ -511,6 +511,7 @@
|
@@ -511,6 +511,7 @@
|
||||||
@@ -14,9 +14,6 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..fff7da6865c694b439ee12d05db06d64
|
|||||||
return this.tabContainer.visibleTabs;
|
return this.tabContainer.visibleTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
- get pinnedTabCount() {
|
|
||||||
- for (var i = 0; i < this.tabs.length; i++) {
|
|
||||||
- if (!this.tabs[i].pinned) {
|
|
||||||
+ zenHandleTabMove(...args) {
|
+ zenHandleTabMove(...args) {
|
||||||
+ return this.#handleTabMove(...args);
|
+ return this.#handleTabMove(...args);
|
||||||
+ }
|
+ }
|
||||||
@@ -31,15 +28,15 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..fff7da6865c694b439ee12d05db06d64
|
|||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
+ if (!item.pinned && !item.hasAttribute("zen-glance-tab")) {
|
+ if (!item.pinned && !item.hasAttribute("zen-glance-tab")) {
|
||||||
break;
|
+ break;
|
||||||
}
|
+ }
|
||||||
+ if (item.visible) {
|
+ if (item.visible) {
|
||||||
+ i += !item.hasAttribute("zen-glance-tab");
|
+ i += !item.hasAttribute("zen-glance-tab");
|
||||||
+ }
|
+ }
|
||||||
}
|
+ }
|
||||||
return i;
|
+ return i;
|
||||||
}
|
+ }
|
||||||
|
+
|
||||||
+ ungroupTabsUntilNoActive(tab) {
|
+ ungroupTabsUntilNoActive(tab) {
|
||||||
+ if (!tab || !tab.group) return;
|
+ if (!tab || !tab.group) return;
|
||||||
+ const activeGroups = tab.group.activeGroups;
|
+ const activeGroups = tab.group.activeGroups;
|
||||||
@@ -62,17 +59,19 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..fff7da6865c694b439ee12d05db06d64
|
|||||||
+ return i;
|
+ return i;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ get pinnedTabCount() {
|
get pinnedTabCount() {
|
||||||
|
- for (var i = 0; i < this.tabs.length; i++) {
|
||||||
|
- if (!this.tabs[i].pinned) {
|
||||||
+ let i = 0;
|
+ let i = 0;
|
||||||
+ for (let tab of this.tabs) {
|
+ for (let tab of this.tabs) {
|
||||||
+ if (!tab.pinned && !tab.hasAttribute("zen-glance-tab")) {
|
+ if (!tab.pinned && !tab.hasAttribute("zen-glance-tab")) {
|
||||||
+ break;
|
break;
|
||||||
+ }
|
}
|
||||||
+ i += !tab.hasAttribute("zen-glance-tab");
|
+ i += !tab.hasAttribute("zen-glance-tab");
|
||||||
+ }
|
}
|
||||||
+ return i;
|
return i;
|
||||||
+ }
|
}
|
||||||
+
|
|
||||||
+ get tabsWithoutGlance() {
|
+ get tabsWithoutGlance() {
|
||||||
+ return this.tabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
+ return this.tabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
||||||
+ }
|
+ }
|
||||||
@@ -297,7 +296,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..fff7da6865c694b439ee12d05db06d64
|
|||||||
+
|
+
|
||||||
+ let hasZenDefaultUserContextId = false;
|
+ let hasZenDefaultUserContextId = false;
|
||||||
+ let zenForcedWorkspaceId = undefined;
|
+ let zenForcedWorkspaceId = undefined;
|
||||||
+ if (beforeRouteResult.isRouteFound) {
|
+ if (beforeRouteResult.isRouteFound && typeof userContextId !== "undefined") {
|
||||||
+ userContextId = beforeRouteResult.userContextId;
|
+ userContextId = beforeRouteResult.userContextId;
|
||||||
+ hasZenDefaultUserContextId = true;
|
+ hasZenDefaultUserContextId = true;
|
||||||
+ } else if (typeof gZenWorkspaces !== "undefined" && !_forZenEmptyTab) {
|
+ } else if (typeof gZenWorkspaces !== "undefined" && !_forZenEmptyTab) {
|
||||||
|
|||||||
@@ -1,167 +0,0 @@
|
|||||||
diff --git a/gfx/webrender_bindings/WebRenderAPI.cpp b/gfx/webrender_bindings/WebRenderAPI.cpp
|
|
||||||
--- a/gfx/webrender_bindings/WebRenderAPI.cpp
|
|
||||||
+++ b/gfx/webrender_bindings/WebRenderAPI.cpp
|
|
||||||
@@ -298,11 +298,13 @@
|
|
||||||
panic_on_gl_error, picTileWidth, picTileHeight,
|
|
||||||
gfx::gfxVars::WebRenderRequiresHardwareDriver(),
|
|
||||||
StaticPrefs::gfx_webrender_low_quality_pinch_zoom_AtStartup(),
|
|
||||||
StaticPrefs::gfx_webrender_max_shared_surface_size_AtStartup(),
|
|
||||||
StaticPrefs::gfx_webrender_enable_subpixel_aa_AtStartup(),
|
|
||||||
- compositor->ShouldUseLayerCompositor())) {
|
|
||||||
+ compositor->ShouldUseLayerCompositor(),
|
|
||||||
+ StaticPrefs::
|
|
||||||
+ gfx_webrender_opaque_backdrop_fallback_AtStartup())) {
|
|
||||||
// wr_window_new puts a message into gfxCriticalNote if it returns
|
|
||||||
// false
|
|
||||||
MOZ_ASSERT(errorMessage);
|
|
||||||
error.AssignASCII(errorMessage);
|
|
||||||
wr_api_free_error_msg(errorMessage);
|
|
||||||
diff --git a/gfx/webrender_bindings/src/bindings.rs b/gfx/webrender_bindings/src/bindings.rs
|
|
||||||
--- a/gfx/webrender_bindings/src/bindings.rs
|
|
||||||
+++ b/gfx/webrender_bindings/src/bindings.rs
|
|
||||||
@@ -1998,10 +1998,11 @@
|
|
||||||
reject_software_rasterizer: bool,
|
|
||||||
low_quality_pinch_zoom: bool,
|
|
||||||
max_shared_surface_size: i32,
|
|
||||||
enable_subpixel_aa: bool,
|
|
||||||
use_layer_compositor: bool,
|
|
||||||
+ opaque_backdrop_fallback: bool,
|
|
||||||
) -> bool {
|
|
||||||
assert!(unsafe { is_in_render_thread() });
|
|
||||||
|
|
||||||
// Ensure the WR profiler callbacks are hooked up to the Gecko profiler.
|
|
||||||
set_profiler_hooks(Some(&PROFILER_HOOKS));
|
|
||||||
@@ -2164,10 +2165,11 @@
|
|
||||||
texture_cache_config,
|
|
||||||
reject_software_rasterizer,
|
|
||||||
low_quality_pinch_zoom,
|
|
||||||
max_shared_surface_size,
|
|
||||||
enable_dithering,
|
|
||||||
+ opaque_backdrop_fallback,
|
|
||||||
..Default::default()
|
|
||||||
};
|
|
||||||
|
|
||||||
let window_size = DeviceIntSize::new(window_width, window_height);
|
|
||||||
let notifier = Box::new(CppNotifier { window_id });
|
|
||||||
diff --git a/gfx/wr/webrender/src/device/gl.rs b/gfx/wr/webrender/src/device/gl.rs
|
|
||||||
--- a/gfx/wr/webrender/src/device/gl.rs
|
|
||||||
+++ b/gfx/wr/webrender/src/device/gl.rs
|
|
||||||
@@ -3982,10 +3982,14 @@
|
|
||||||
|
|
||||||
pub fn disable_color_write(&self) {
|
|
||||||
self.gl.color_mask(false, false, false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ pub fn set_color_mask(&self, r: bool, g: bool, b: bool, a: bool) {
|
|
||||||
+ self.gl.color_mask(r, g, b, a);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
pub fn set_blend(&mut self, enable: bool) {
|
|
||||||
if enable {
|
|
||||||
self.gl.enable(gl::BLEND);
|
|
||||||
} else {
|
|
||||||
self.gl.disable(gl::BLEND);
|
|
||||||
diff --git a/gfx/wr/webrender/src/renderer/init.rs b/gfx/wr/webrender/src/renderer/init.rs
|
|
||||||
--- a/gfx/wr/webrender/src/renderer/init.rs
|
|
||||||
+++ b/gfx/wr/webrender/src/renderer/init.rs
|
|
||||||
@@ -204,6 +204,8 @@
|
|
||||||
pub low_quality_pinch_zoom: bool,
|
|
||||||
pub max_shared_surface_size: i32,
|
|
||||||
/// If true, open a debug socket to listen for remote debugger.
|
|
||||||
/// Relies on `debugger` cargo feature being enabled.
|
|
||||||
pub enable_debugger: bool,
|
|
||||||
+ /// See explanation of `gfx.webrender.opaque-backdrop-fallback`.
|
|
||||||
+ pub opaque_backdrop_fallback: bool,
|
|
||||||
}
|
|
||||||
@@ -277,9 +279,10 @@
|
|
||||||
enable_instancing: true,
|
|
||||||
reject_software_rasterizer: false,
|
|
||||||
low_quality_pinch_zoom: false,
|
|
||||||
max_shared_surface_size: 2048,
|
|
||||||
enable_debugger: true,
|
|
||||||
+ opaque_backdrop_fallback: false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -802,10 +805,11 @@
|
|
||||||
allocated_native_surfaces: FastHashSet::default(),
|
|
||||||
debug_overlay_state: DebugOverlayState::new(),
|
|
||||||
buffer_damage_tracker: BufferDamageTracker::default(),
|
|
||||||
max_primitive_instance_count,
|
|
||||||
enable_instancing: options.enable_instancing,
|
|
||||||
+ opaque_backdrop_fallback: options.opaque_backdrop_fallback,
|
|
||||||
consecutive_oom_frames: 0,
|
|
||||||
target_frame_publish_id: None,
|
|
||||||
pending_result_msg: None,
|
|
||||||
layer_compositor_frame_state_in_prev_frame: None,
|
|
||||||
external_composite_debug_items: Vec::new(),
|
|
||||||
diff --git a/gfx/wr/webrender/src/renderer/mod.rs b/gfx/wr/webrender/src/renderer/mod.rs
|
|
||||||
--- a/gfx/wr/webrender/src/renderer/mod.rs
|
|
||||||
+++ b/gfx/wr/webrender/src/renderer/mod.rs
|
|
||||||
@@ -867,10 +867,12 @@
|
|
||||||
buffer_damage_tracker: BufferDamageTracker,
|
|
||||||
|
|
||||||
max_primitive_instance_count: usize,
|
|
||||||
enable_instancing: bool,
|
|
||||||
|
|
||||||
+ opaque_backdrop_fallback: bool,
|
|
||||||
+
|
|
||||||
/// Count consecutive oom frames to detectif we are stuck unable to render
|
|
||||||
/// in a loop.
|
|
||||||
consecutive_oom_frames: u32,
|
|
||||||
|
|
||||||
/// update() defers processing of ResultMsg, if frame_publish_id of
|
|
||||||
@@ -2787,18 +2789,29 @@
|
|
||||||
let read_target = ReadTarget::from_texture(cache_texture);
|
|
||||||
|
|
||||||
// Should always be drawing to picture cache tiles or off-screen surface!
|
|
||||||
debug_assert!(!draw_target.is_default());
|
|
||||||
let device_to_framebuffer = Scale::new(1i32);
|
|
||||||
+ let dest_fb_rect = dest * device_to_framebuffer;
|
|
||||||
|
|
||||||
self.device.blit_render_target(
|
|
||||||
read_target,
|
|
||||||
src * device_to_framebuffer,
|
|
||||||
draw_target,
|
|
||||||
- dest * device_to_framebuffer,
|
|
||||||
+ dest_fb_rect,
|
|
||||||
TextureFilter::Linear,
|
|
||||||
);
|
|
||||||
+
|
|
||||||
+ if self.opaque_backdrop_fallback {
|
|
||||||
+ self.device.set_color_mask(false, false, false, true);
|
|
||||||
+ self.device.clear_target(
|
|
||||||
+ Some([0.0, 0.0, 0.0, 1.0]),
|
|
||||||
+ None,
|
|
||||||
+ Some(dest_fb_rect),
|
|
||||||
+ );
|
|
||||||
+ self.device.set_color_mask(true, true, true, true);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn draw_picture_cache_target(
|
|
||||||
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
|
|
||||||
--- a/modules/libpref/init/StaticPrefList.yaml
|
|
||||||
+++ b/modules/libpref/init/StaticPrefList.yaml
|
|
||||||
@@ -8439,10 +8439,17 @@
|
|
||||||
#else
|
|
||||||
value: false
|
|
||||||
#endif
|
|
||||||
mirror: once
|
|
||||||
|
|
||||||
+# Make backdrop-filter treat its captured backdrop as if it had been
|
|
||||||
+# composited over an opaque-black background. (See bug 2036640)
|
|
||||||
+- name: gfx.webrender.opaque-backdrop-fallback
|
|
||||||
+ type: bool
|
|
||||||
+ value: true
|
|
||||||
+ mirror: once
|
|
||||||
+
|
|
||||||
# Disable wait of GPU execution completion
|
|
||||||
- name: gfx.webrender.wait-gpu-finished.disabled
|
|
||||||
type: bool
|
|
||||||
value: false
|
|
||||||
mirror: once
|
|
||||||
|
|
||||||
@@ -323,7 +323,7 @@ zen-workspace {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: color-mix(in srgb, var(--toolbox-textcolor) 95%, var(--zen-primary-color));
|
color: color-mix(in srgb, var(--toolbox-textcolor) 95%, var(--zen-primary-color));
|
||||||
|
|
||||||
--tab-selected-bgcolor: color-mix(in srgb, light-dark(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.18)) 95%, var(--zen-primary-color)) !important;
|
--tab-background-color-selected: color-mix(in srgb, light-dark(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.18)) 95%, var(--zen-primary-color)) !important;
|
||||||
--tab-selected-shadow: 0 0.8px 1.5px 0px light-dark(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.05)) !important;
|
--tab-selected-shadow: 0 0.8px 1.5px 0px light-dark(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.05)) !important;
|
||||||
--tab-selected-textcolor: color-mix(in srgb, var(--toolbox-textcolor) 95%, var(--zen-primary-color)) !important;
|
--tab-selected-textcolor: color-mix(in srgb, var(--toolbox-textcolor) 95%, var(--zen-primary-color)) !important;
|
||||||
|
|
||||||
@@ -399,8 +399,8 @@ zen-workspace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:not(:is([animating-background], [swipe-gesture])) &:not([active]) {
|
:root:not(:is([animating-background], [swipe-gesture])) #navigator-toolbox:not([movingtab]) &:not([active]) {
|
||||||
display: none;
|
-moz-subtree-hidden-only-visually: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ tab-group[split-view-group] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
& > .tabbrowser-tab {
|
& > .tabbrowser-tab {
|
||||||
--tab-selected-bgcolor: var(--zen-split-view-active-tab-bg);
|
--tab-background-color-selected: var(--zen-split-view-active-tab-bg);
|
||||||
--tab-hover-background-color: transparent;
|
--tab-hover-background-color: transparent;
|
||||||
--tab-selected-shadow: none;
|
--tab-selected-shadow: none;
|
||||||
--border-radius-medium: var(--tab-border-radius);
|
--border-radius-medium: var(--tab-border-radius);
|
||||||
@@ -106,7 +106,7 @@ tab-group[split-view-group] {
|
|||||||
|
|
||||||
tab-group[split-view-group]:where([hasactivetab]) &,
|
tab-group[split-view-group]:where([hasactivetab]) &,
|
||||||
&:has(> tab:is([multiselected])) {
|
&:has(> tab:is([multiselected])) {
|
||||||
background-color: var(--tab-selected-bgcolor);
|
background-color: var(--tab-background-color-selected);
|
||||||
box-shadow: var(--tab-selected-shadow);
|
box-shadow: var(--tab-selected-shadow);
|
||||||
|
|
||||||
& > .tabbrowser-tab {
|
& > .tabbrowser-tab {
|
||||||
|
|||||||
@@ -1084,7 +1084,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&[in-urlbar] {
|
&[in-urlbar] {
|
||||||
background: var(--tab-selected-bgcolor) !important;
|
background: var(--tab-background-color-selected) !important;
|
||||||
box-shadow: var(--tab-selected-shadow);
|
box-shadow: var(--tab-selected-shadow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1172,7 +1172,7 @@
|
|||||||
border-radius: var(--border-radius-medium) !important;
|
border-radius: var(--border-radius-medium) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
--tab-selected-bgcolor: light-dark(rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.2));
|
--tab-background-color-selected: light-dark(rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.2));
|
||||||
|
|
||||||
&:not([visuallyselected], [multiselected="true"]) .tab-background {
|
&:not([visuallyselected], [multiselected="true"]) .tab-background {
|
||||||
background: var(--zen-toolbar-element-bg);
|
background: var(--zen-toolbar-element-bg);
|
||||||
@@ -1195,7 +1195,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover .tab-background {
|
&:hover .tab-background {
|
||||||
background: light-dark(rgba(0, 0, 0, 0.1), var(--tab-selected-bgcolor));
|
background: light-dark(rgba(0, 0, 0, 0.1), var(--tab-background-color-selected));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* stylelint-disable-next-line media-query-no-invalid */
|
/* stylelint-disable-next-line media-query-no-invalid */
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
"binaryName": "zen",
|
"binaryName": "zen",
|
||||||
"version": {
|
"version": {
|
||||||
"product": "firefox",
|
"product": "firefox",
|
||||||
"version": "152.0",
|
"version": "152.0.1",
|
||||||
"candidate": "152.0",
|
"candidate": "152.0.1",
|
||||||
"candidateBuild": 1
|
"candidateBuild": 1
|
||||||
},
|
},
|
||||||
"buildOptions": {
|
"buildOptions": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"brandShortName": "Zen",
|
"brandShortName": "Zen",
|
||||||
"brandFullName": "Zen Browser",
|
"brandFullName": "Zen Browser",
|
||||||
"release": {
|
"release": {
|
||||||
"displayVersion": "1.21.2b",
|
"displayVersion": "1.21.3b",
|
||||||
"github": {
|
"github": {
|
||||||
"repo": "zen-browser/desktop"
|
"repo": "zen-browser/desktop"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user