[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor-browser/tor-browser-87.0-10.5-1] Bug 40199: Avoid using system locale for intl.accept_languages in GeckoView



commit cbd17396f5b4d63ab39e944dc94e4bf4a150d0d0
Author: Alex Catarineu <acat@xxxxxxxxxxxxxx>
Date:   Tue Oct 20 17:44:36 2020 +0200

    Bug 40199: Avoid using system locale for intl.accept_languages in GeckoView
---
 .../mozilla/geckoview/GeckoRuntimeSettings.java    | 26 +++++++++++++---------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
index 34ffde8bfdd6..181b89796ae5 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
@@ -778,19 +778,25 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
     private String computeAcceptLanguages() {
         ArrayList<String> locales = new ArrayList<String>();
 
-        // Explicitly-set app prefs come first:
-        if (mRequestedLocales != null) {
-            for (String locale : mRequestedLocales) {
-                locales.add(locale.toLowerCase(Locale.ROOT));
-            }
-        }
-        // OS prefs come second:
-        for (String locale : getDefaultLocales()) {
-            locale = locale.toLowerCase(Locale.ROOT);
-            if (!locales.contains(locale)) {
+        // In Desktop, these are defined in the `intl.accept_languages` localized property.
+        // At some point we should probably use the same values here, but for now we use a simple
+        // strategy which will hopefully result in reasonable acceptLanguage values.
+        if (mRequestedLocales != null && mRequestedLocales.length > 0) {
+            String locale = mRequestedLocales[0].toLowerCase(Locale.ROOT);
+            // No need to include `en-us` twice.
+            if (!locale.equals("en-us")) {
                 locales.add(locale);
+                if (locale.contains("-")) {
+                    String lang = locale.split("-")[0];
+                    // No need to include `en` twice.
+                    if (!lang.equals("en")) {
+                        locales.add(lang);
+                    }
+                }
             }
         }
+        locales.add("en-us");
+        locales.add("en");
 
         return TextUtils.join(",", locales);
     }



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits