| Index: chrome/browser/spellchecker/spellcheck_service.cc | 
| diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc | 
| index 314b32405a47d2fef77e751a256bff3e4914ddf8..aff7b3d8ad9433d055d0b43c7368aa3473e34150 100644 | 
| --- a/chrome/browser/spellchecker/spellcheck_service.cc | 
| +++ b/chrome/browser/spellchecker/spellcheck_service.cc | 
| @@ -4,6 +4,8 @@ | 
|  | 
| #include "chrome/browser/spellchecker/spellcheck_service.h" | 
|  | 
| +#include <algorithm> | 
| + | 
| #include "base/logging.h" | 
| #include "base/prefs/pref_member.h" | 
| #include "base/prefs/pref_service.h" | 
| @@ -90,20 +92,15 @@ base::WeakPtr<SpellcheckService> SpellcheckService::GetWeakPtr() { | 
| } | 
|  | 
| // static | 
| -int SpellcheckService::GetSpellCheckLanguages( | 
| +size_t SpellcheckService::GetSpellCheckLanguages( | 
| content::BrowserContext* context, | 
| std::vector<std::string>* languages) { | 
| PrefService* prefs = user_prefs::UserPrefs::Get(context); | 
| + | 
| StringPrefMember accept_languages_pref; | 
| -  StringPrefMember dictionary_language_pref; | 
| accept_languages_pref.Init(prefs::kAcceptLanguages, prefs); | 
| -  dictionary_language_pref.Init(prefs::kSpellCheckDictionary, prefs); | 
| -  std::string dictionary_language = dictionary_language_pref.GetValue(); | 
|  | 
| -  // Now scan through the list of accept languages, and find possible mappings | 
| -  // from this list to the existing list of spell check languages. | 
| std::vector<std::string> accept_languages; | 
| - | 
| #if defined(OS_MACOSX) | 
| if (spellcheck_mac::SpellCheckerAvailable()) | 
| spellcheck_mac::GetAvailableLanguages(&accept_languages); | 
| @@ -113,23 +110,8 @@ int SpellcheckService::GetSpellCheckLanguages( | 
| base::SplitString(accept_languages_pref.GetValue(), ',', &accept_languages); | 
| #endif  // !OS_MACOSX | 
|  | 
| -  GetSpellCheckLanguagesFromAcceptLanguages( | 
| -      accept_languages, dictionary_language, languages); | 
| - | 
| -  for (size_t i = 0; i < languages->size(); ++i) { | 
| -    if ((*languages)[i] == dictionary_language) | 
| -      return i; | 
| -  } | 
| -  return -1; | 
| -} | 
| - | 
| -// static | 
| -void SpellcheckService::GetSpellCheckLanguagesFromAcceptLanguages( | 
| -    const std::vector<std::string>& accept_languages, | 
| -    const std::string& dictionary_language, | 
| -    std::vector<std::string>* languages) { | 
| -  // The current dictionary language should be there. | 
| -  languages->push_back(dictionary_language); | 
| +  *languages = chrome::spellcheck_common::GetDictionaryLanguagesPref(prefs); | 
| +  size_t enabled_spellcheck_languages = languages->size(); | 
|  | 
| for (std::vector<std::string>::const_iterator i = accept_languages.begin(); | 
| i != accept_languages.end(); ++i) { | 
| @@ -141,6 +123,8 @@ void SpellcheckService::GetSpellCheckLanguagesFromAcceptLanguages( | 
| languages->push_back(language); | 
| } | 
| } | 
| + | 
| +  return enabled_spellcheck_languages; | 
| } | 
|  | 
| // static | 
|  |