| Index: chrome/common/spellcheck_common.cc
|
| diff --git a/chrome/common/spellcheck_common.cc b/chrome/common/spellcheck_common.cc
|
| index a69249aff91444333a2de8e0c29f34938f40a240..25d26d19d214e7e39f670c290ce89c0d90ffcd82 100644
|
| --- a/chrome/common/spellcheck_common.cc
|
| +++ b/chrome/common/spellcheck_common.cc
|
| @@ -4,8 +4,13 @@
|
|
|
| #include "chrome/common/spellcheck_common.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "base/files/file_path.h"
|
| #include "base/logging.h"
|
| +#include "base/prefs/pref_service.h"
|
| +#include "base/strings/string_split.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "third_party/icu/source/common/unicode/uloc.h"
|
|
|
| namespace chrome {
|
| @@ -178,5 +183,29 @@ void GetISOLanguageCountryCodeFromLocale(const std::string& locale,
|
| *country_code = std::string(country);
|
| }
|
|
|
| +std::vector<std::string> GetDictionaryLanguagesPref(PrefService* prefs) {
|
| + const base::CommandLine* command_line =
|
| + base::CommandLine::ForCurrentProcess();
|
| +
|
| + std::vector<std::string> dictionary_languages;
|
| + if (command_line->HasSwitch(switches::kEnableMultilingualSpellChecker)) {
|
| + base::SplitString(prefs->GetString(prefs::kSpellCheckDictionaries),
|
| + kDictionaryLanguagesSeparator, &dictionary_languages);
|
| + } else {
|
| + dictionary_languages.push_back(
|
| + prefs->GetString(prefs::kSpellCheckDictionary));
|
| + }
|
| +
|
| + auto empty_strings_begin =
|
| + std::partition(dictionary_languages.begin(), dictionary_languages.end(),
|
| + [](const std::string& language) {
|
| + DCHECK(!language.empty());
|
| + return language.length() > 0;
|
| + });
|
| + dictionary_languages.erase(empty_strings_begin, dictionary_languages.end());
|
| +
|
| + return dictionary_languages;
|
| +}
|
| +
|
| } // namespace spellcheck_common
|
| } // namespace chrome
|
|
|