Index: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
index 2bd35ad4d8e3bba2dd24ddf461955c3a54641e7d..ba5db1d5f94450379a3eb9d561cd2a52d7dd3709 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
@@ -270,25 +270,29 @@ class PwsClientImpl implements PwsClient { |
@VisibleForTesting |
static String prependToAcceptLanguagesIfNecessary(String locale, String acceptLanguages) |
{ |
- if (locale.length() != 5 || locale.charAt(2) != '_') { |
- return acceptLanguages; |
- } |
+ String[] locales = locale.split(","); |
+ Formatter parts = new Formatter(); |
+ for (String l : locales) { |
+ if (l.length() != 5 || l.charAt(2) != '_') { |
+ continue; |
+ } |
- String language = locale.substring(0, 2); |
- String region = locale.substring(3); |
- String languageTag = makeLanguageTag(language, region); |
+ String language = l.substring(0, 2); |
+ String region = l.substring(3); |
+ String languageTag = makeLanguageTag(language, region); |
- if (acceptLanguages.contains(languageTag)) { |
- return acceptLanguages; |
- } |
+ if (acceptLanguages.contains(languageTag)) { |
+ continue; |
+ } |
- Formatter parts = new Formatter(); |
- parts.format("%s,", languageTag); |
- // If language is not in the accept languages list, also add language code. |
- // This will work with the IDS_ACCEPT_LANGUAGES localized strings bundled with Chrome but |
- // may fail on arbitrary lists of language tags due to differences in case and whitespace. |
- if (!acceptLanguages.contains(language + ",") && !acceptLanguages.endsWith(language)) { |
- parts.format("%s,", language); |
+ parts.format("%s,", languageTag); |
+ // If language is not in the accept languages list, also add language code. |
+ // This will work with the IDS_ACCEPT_LANGUAGES localized strings bundled with Chrome |
+ // but may fail on arbitrary lists of language tags due to differences in case and |
+ // whitespace. |
+ if (!acceptLanguages.contains(language + ",") && !acceptLanguages.endsWith(language)) { |
+ parts.format("%s,", language); |
+ } |
} |
parts.format("%s", acceptLanguages); |
return parts.toString(); |