| 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..51ec227c057d7fd2940a0eac905446b74dd97d1c 100644
|
| --- a/chrome/browser/spellchecker/spellcheck_service.cc
|
| +++ b/chrome/browser/spellchecker/spellcheck_service.cc
|
| @@ -90,20 +90,14 @@ 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 +107,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) {
|
| @@ -137,10 +116,12 @@ void SpellcheckService::GetSpellCheckLanguagesFromAcceptLanguages(
|
| chrome::spellcheck_common::GetCorrespondingSpellCheckLanguage(*i);
|
| if (!language.empty() &&
|
| std::find(languages->begin(), languages->end(), language) ==
|
| - languages->end()) {
|
| + languages->end()) {
|
| languages->push_back(language);
|
| }
|
| }
|
| +
|
| + return enabled_spellcheck_languages;
|
| }
|
|
|
| // static
|
|
|