| 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();
|
|
|