[tor-commits] [tor-browser] branch tor-browser-91.9.0esr-11.5-1 updated: fixup! Bug 40309: Avoid using regional OS locales
gitolite role
git at cupani.torproject.org
Wed May 18 19:49:33 UTC 2022
This is an automated email from the git hooks/post-receive script.
richard pushed a commit to branch tor-browser-91.9.0esr-11.5-1
in repository tor-browser.
The following commit(s) were added to refs/heads/tor-browser-91.9.0esr-11.5-1 by this push:
new 65b1177a09f91 fixup! Bug 40309: Avoid using regional OS locales
65b1177a09f91 is described below
commit 65b1177a09f919d62f21d0b9ba35e165f4675a14
Author: Pier Angelo Vendrame <pierov at torproject.org>
AuthorDate: Wed May 18 19:22:37 2022 +0200
fixup! Bug 40309: Avoid using regional OS locales
Avoid regional OS locales if the pref
`intl.regional_prefs.use_os_locales` is false but RFP is enabled.
---
intl/locale/LocaleService.cpp | 34 ++++++++++++++++++++++++++++++----
1 file changed, 30 insertions(+), 4 deletions(-)
diff --git a/intl/locale/LocaleService.cpp b/intl/locale/LocaleService.cpp
index ac001ee98991c..10342c6024998 100644
--- a/intl/locale/LocaleService.cpp
+++ b/intl/locale/LocaleService.cpp
@@ -15,6 +15,7 @@
#include "mozilla/intl/OSPreferences.h"
#include "nsDirectoryService.h"
#include "nsDirectoryServiceDefs.h"
+#include "nsContentUtils.h"
#include "nsIObserverService.h"
#include "nsStringEnumerator.h"
#include "nsXULAppAPI.h"
@@ -447,11 +448,36 @@ LocaleService::GetRegionalPrefsLocales(nsTArray<nsCString>& aRetVal) {
// If the user specified that they want to use OS Regional Preferences
// locales, try to retrieve them and use.
- if (useOSLocales) {
- if (NS_SUCCEEDED(
+ if (useOSLocales && NS_SUCCEEDED(
OSPreferences::GetInstance()->GetRegionalPrefsLocales(aRetVal))) {
- return NS_OK;
- }
+ return NS_OK;
+ }
+ if (useOSLocales || nsContentUtils::ShouldResistFingerprinting()) {
+ // If we fail to retrieve them, or we have RFP enabled, just return the app
+ // locales.
+ GetAppLocalesAsBCP47(aRetVal);
+ return NS_OK;
+ }
+
+ // Otherwise, fetch OS Regional Preferences locales and compare the first one
+ // to the app locale. If the language subtag matches, we can safely use
+ // the OS Regional Preferences locale.
+ //
+ // This facilitates scenarios such as Firefox in "en-US" and User sets
+ // regional prefs to "en-GB".
+ nsAutoCString appLocale;
+ AutoTArray<nsCString, 10> regionalPrefsLocales;
+ LocaleService::GetInstance()->GetAppLocaleAsBCP47(appLocale);
+
+ if (NS_FAILED(OSPreferences::GetInstance()->GetRegionalPrefsLocales(
+ regionalPrefsLocales))) {
+ GetAppLocalesAsBCP47(aRetVal);
+ return NS_OK;
+ }
+
+ if (LocaleService::LanguagesMatch(appLocale, regionalPrefsLocales[0])) {
+ aRetVal = regionalPrefsLocales.Clone();
+ return NS_OK;
}
// Otherwise use the app locales.
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tor-commits
mailing list