tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 9982432f5c46351e0e5c6f4b4e28f8948b6245bd
parent 9875ad826552dc5386dc38b6548ef65cbcc0321d
Author: Pier Angelo Vendrame <pierov@torproject.org>
Date:   Tue,  7 May 2024 17:50:20 +0200

BB 41930: Remove the UI to customize accept_languages.

Diffstat:
Mbrowser/components/preferences/main.inc.xhtml | 4++++
Mbrowser/components/preferences/main.js | 18+++++++++++++++++-
Mtoolkit/components/resistfingerprinting/RFPHelper.sys.mjs | 10+++++++---
3 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml @@ -195,6 +195,7 @@ </hbox> <hbox id="languagesBox" align="center"> + <!-- <description flex="1" control="chooseLanguage" data-l10n-id="choose-language-description"/> <button id="chooseLanguage" is="highlightable-button" @@ -209,6 +210,9 @@ languages-customize-select-language.placeholder, languages-customize-add.label, " /> + --> + <checkbox id="spoofEnglish" + data-l10n-id="languages-customize-spoof-english"/> </hbox> <checkbox id="useSystemLocale" hidden="true" diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js @@ -4614,7 +4614,23 @@ var gMainPane = { }); } - setEventListener("chooseLanguage", "command", gMainPane.showLanguages); + // setEventListener("chooseLanguage", "command", gMainPane.showLanguages); + { + const spoofEnglish = document.getElementById("spoofEnglish"); + const kPrefSpoofEnglish = "privacy.spoof_english"; + const preference = Preferences.add({ + id: kPrefSpoofEnglish, + type: "int", + }); + const spoofEnglishChanged = () => { + spoofEnglish.checked = preference.value == 2; + }; + spoofEnglishChanged(); + preference.on("change", spoofEnglishChanged); + setEventListener("spoofEnglish", "command", () => { + preference.value = spoofEnglish.checked ? 2 : 1; + }); + } // TODO (Bug 1817084) Remove this code when we disable the extension setEventListener( "fxtranslateButton", diff --git a/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs b/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs @@ -185,9 +185,13 @@ class _RFPHelper { // Works like disabling accept-language spoofing. // fall through case 1: // don't spoof - // We don't reset intl.accept_languages. Instead, setting - // privacy.spoof_english to 1 allows user to change preferred language - // settings through Preferences UI. + if (this.rfpEnabled) { + // When RFP is enabled, we force intl.accept_languages to be the + // default, or en-US, en when spoof English is enabled. + // See tor-browser#41930. + Services.prefs.clearUserPref("intl.accept_languages"); + Services.prefs.addObserver("intl.accept_languages", this); + } break; case 2: // spoof Services.prefs.setCharPref("intl.accept_languages", "en-US, en");