tor-browser

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

commit 9875ad826552dc5386dc38b6548ef65cbcc0321d
parent 4958c48cef9558cf04518d6444a4cb856601253a
Author: hackademix <giorgio@maone.net>
Date:   Mon, 11 Sep 2023 23:48:07 +0200

BB 42084: Ensure English spoofing works even if preferences are set out of order.

Diffstat:
Mtoolkit/components/resistfingerprinting/RFPHelper.sys.mjs | 7+++++++
1 file changed, 7 insertions(+), 0 deletions(-)

diff --git a/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs b/toolkit/components/resistfingerprinting/RFPHelper.sys.mjs @@ -74,6 +74,9 @@ class _RFPHelper { // Add RFP and Letterboxing observers if prefs are enabled this._handleResistFingerprintingChanged(); this._handleLetterboxingPrefChanged(); + + // Synchronize language preferences if accidentally messed up (tor-browser#42084) + this._handleSpoofEnglishChanged(); } uninit() { @@ -131,6 +134,7 @@ class _RFPHelper { this._handleResistFingerprintingChanged(); break; case kPrefSpoofEnglish: + case "intl.accept_languages": this._handleSpoofEnglishChanged(); break; case kPrefLetterboxing: @@ -174,6 +178,7 @@ class _RFPHelper { } _handleSpoofEnglishChanged() { + Services.prefs.removeObserver("intl.accept_languages", this); switch (Services.prefs.getIntPref(kPrefSpoofEnglish)) { case 0: // will prompt // This should only happen when turning privacy.resistFingerprinting off. @@ -186,6 +191,8 @@ class _RFPHelper { break; case 2: // spoof Services.prefs.setCharPref("intl.accept_languages", "en-US, en"); + // Ensure spoofing works if preferences are set out of order + Services.prefs.addObserver("intl.accept_languages", this); break; default: break;