Commit c5a92f46 authored by Alex Catarineu's avatar Alex Catarineu Committed by Matthew Finkel
Browse files

Bug 40199: Avoid using system locale for intl.accept_languages in GeckoView

parent 5a6dafe0
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -758,19 +758,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());
        // 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();
            // 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);
                    }
                }
        // OS prefs come second:
        for (String locale : getDefaultLocales()) {
            locale = locale.toLowerCase();
            if (!locales.contains(locale)) {
                locales.add(locale);
            }
        }
        locales.add("en-us");
        locales.add("en");

        return TextUtils.join(",", locales);
    }