| Index: chrome/browser/android/preferences/pref_service_bridge.cc
 | 
| diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
 | 
| index dcb62ecb3e2f0dececb066ad88d6fb0b7ae33d40..4a0de4305c09919f435e380296ea88a63eccf24e 100644
 | 
| --- a/chrome/browser/android/preferences/pref_service_bridge.cc
 | 
| +++ b/chrome/browser/android/preferences/pref_service_bridge.cc
 | 
| @@ -1138,7 +1138,7 @@ void PrefServiceBridge::PrependToAcceptLanguagesIfNecessary(
 | 
|                          base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
 | 
|  
 | 
|    std::set<std::string> seen_tags;
 | 
| -  std::vector<std::pair<std::string, std::string>> unique_locale_list;
 | 
| +  std::vector<std::string> unique_locale_list;
 | 
|    for (const std::string& locale_str : locale_list) {
 | 
|      char locale_ID[ULOC_FULLNAME_CAPACITY] = {};
 | 
|      char language_code_buffer[ULOC_LANG_CAPACITY] = {};
 | 
| @@ -1176,29 +1176,13 @@ void PrefServiceBridge::PrependToAcceptLanguagesIfNecessary(
 | 
|        continue;
 | 
|  
 | 
|      seen_tags.insert(language_tag);
 | 
| -    unique_locale_list.push_back(std::make_pair(language_code, country_code));
 | 
| -  }
 | 
| -
 | 
| -  // If language is not in the accept languages list, also add language
 | 
| -  // code. A language code should only be inserted after the last
 | 
| -  // languageTag that contains that language.
 | 
| -  // This will work with the IDS_ACCEPT_LANGUAGE localized strings bundled
 | 
| -  // with Chrome but may fail on arbitrary lists of language tags due to
 | 
| -  // differences in case and whitespace.
 | 
| -  std::set<std::string> seen_languages;
 | 
| -  std::vector<std::string> output_list;
 | 
| -  for (auto it = unique_locale_list.rbegin(); it != unique_locale_list.rend();
 | 
| -       ++it) {
 | 
| -    if (seen_languages.find(it->first) == seen_languages.end()) {
 | 
| -      output_list.push_back(it->first);
 | 
| -      seen_languages.insert(it->first);
 | 
| +    if (!country_code.empty()) {
 | 
| +      unique_locale_list.push_back(language_tag);
 | 
| +    } else {
 | 
| +      unique_locale_list.push_back(language_code);
 | 
|      }
 | 
| -    if (!it->second.empty())
 | 
| -      output_list.push_back(it->first + "-" + it->second);
 | 
|    }
 | 
| -
 | 
| -  std::reverse(output_list.begin(), output_list.end());
 | 
| -  *accept_languages = base::JoinString(output_list, ",");
 | 
| +  *accept_languages = base::JoinString(unique_locale_list, ",");
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| 
 |