diff options
Diffstat (limited to 'website-appearance-ui-rfp.patch')
-rw-r--r-- | website-appearance-ui-rfp.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/website-appearance-ui-rfp.patch b/website-appearance-ui-rfp.patch new file mode 100644 index 0000000..0de5504 --- /dev/null +++ b/website-appearance-ui-rfp.patch @@ -0,0 +1,52 @@ +--- a/browser/components/preferences/main.js ++++ b/browser/components/preferences/main.js +@@ -3737,6 +3737,7 @@ const AppearanceChooser = { + FORCED_COLORS_QUERY.addEventListener("change", this); + SYSTEM_DARK_MODE_QUERY.addEventListener("change", this); + Services.prefs.addObserver(PREF_USE_SYSTEM_COLORS, this); ++ Services.prefs.addObserver("privacy.resistFingerprinting", this); + Services.obs.addObserver(this, "look-and-feel-changed"); + this._update(); + }, +@@ -3756,6 +3757,7 @@ const AppearanceChooser = { + + destroy() { + Services.prefs.removeObserver(PREF_USE_SYSTEM_COLORS, this); ++ Services.prefs.removeObserver("privacy.resistFingerprinting", this); + Services.obs.removeObserver(this, "look-and-feel-changed"); + FORCED_COLORS_QUERY.removeEventListener("change", this); + SYSTEM_DARK_MODE_QUERY.removeEventListener("change", this); +@@ -3798,5 +3800,33 @@ const AppearanceChooser = { + (AppConstants.platform == "win" || + !Services.prefs.getBoolPref(PREF_USE_SYSTEM_COLORS)); + this.warning.hidden = !forcingColorsAndNoColorSchemeSupport; ++ ++ if (Services.prefs.getBoolPref("privacy.resistFingerprinting")) { ++ document.getElementById("web-appearance-chooser").style.opacity = 0.3; ++ document.getElementById("web-appearance-chooser").style.pointerEvents = "none"; ++ const infoBox = document.createElement("div"); ++ infoBox.id = "web-appearance-rfp-warning"; ++ infoBox.classList.add("info-box-container"); ++ infoBox.style.display = "flex"; ++ infoBox.style.alignItems = "center"; ++ infoBox.style.marginTop = "10px"; ++ infoBox.style.marginBottom = "5px"; ++ const text = document.createElement("div"); ++ text.innerText = "This feature is disabled because ResistFingerprinting is enabled. This means LibreWolf will force web content to display in a light theme."; ++ infoBox.appendChild(text); ++ const learnMore = document.createElement("a"); ++ learnMore.classList.add("text-link"); ++ learnMore.style.marginLeft = "5px"; ++ learnMore.style.flexShrink = 0; ++ learnMore.setAttribute("is", "learn-more"); ++ learnMore.href = "https://librewolf.net/docs/faq/#why-is-librewolf-forcing-light-theme"; ++ learnMore.innerText = "Learn more"; ++ infoBox.appendChild(learnMore); ++ document.getElementById("webAppearanceSettings").insertBefore(infoBox, document.getElementById("webAppearanceSettings").children[2]); ++ } else { ++ document.getElementById("web-appearance-rfp-warning")?.remove(); ++ document.getElementById("web-appearance-chooser").style.opacity = 1; ++ document.getElementById("web-appearance-chooser").style.pointerEvents = "all"; ++ } + }, + }; |