OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/language_settings_private/language_setti
ngs_private_api.h" | 5 #include "chrome/browser/extensions/api/language_settings_private/language_setti
ngs_private_api.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
| 8 #include <memory> |
8 #include <string> | 9 #include <string> |
9 #include <utility> | 10 #include <utility> |
10 #include <vector> | 11 #include <vector> |
11 | 12 |
12 #include "base/containers/hash_tables.h" | 13 #include "base/containers/hash_tables.h" |
13 #include "base/i18n/rtl.h" | 14 #include "base/i18n/rtl.h" |
14 #include "base/memory/linked_ptr.h" | 15 #include "base/memory/linked_ptr.h" |
15 #include "base/memory/scoped_ptr.h" | |
16 #include "base/strings/string16.h" | 16 #include "base/strings/string16.h" |
17 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
18 #include "base/values.h" | 18 #include "base/values.h" |
19 #include "build/build_config.h" | 19 #include "build/build_config.h" |
20 #include "chrome/browser/browser_process.h" | 20 #include "chrome/browser/browser_process.h" |
21 #include "chrome/browser/extensions/api/language_settings_private/language_setti
ngs_private_delegate.h" | 21 #include "chrome/browser/extensions/api/language_settings_private/language_setti
ngs_private_delegate.h" |
22 #include "chrome/browser/extensions/api/language_settings_private/language_setti
ngs_private_delegate_factory.h" | 22 #include "chrome/browser/extensions/api/language_settings_private/language_setti
ngs_private_delegate_factory.h" |
23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
24 #include "chrome/browser/spellchecker/spellcheck_factory.h" | 24 #include "chrome/browser/spellchecker/spellcheck_factory.h" |
25 #include "chrome/browser/spellchecker/spellcheck_service.h" | 25 #include "chrome/browser/spellchecker/spellcheck_service.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 std::vector<std::string> language_codes; | 64 std::vector<std::string> language_codes; |
65 l10n_util::GetAcceptLanguagesForLocale(app_locale, &language_codes); | 65 l10n_util::GetAcceptLanguagesForLocale(app_locale, &language_codes); |
66 | 66 |
67 // Map of display name -> {language code, native display name}. | 67 // Map of display name -> {language code, native display name}. |
68 typedef std::pair<std::string, base::string16> LanguagePair; | 68 typedef std::pair<std::string, base::string16> LanguagePair; |
69 typedef std::map<base::string16, LanguagePair, | 69 typedef std::map<base::string16, LanguagePair, |
70 l10n_util::StringComparator<base::string16>> LanguageMap; | 70 l10n_util::StringComparator<base::string16>> LanguageMap; |
71 | 71 |
72 // Collator used to sort display names in the current locale. | 72 // Collator used to sort display names in the current locale. |
73 UErrorCode error = U_ZERO_ERROR; | 73 UErrorCode error = U_ZERO_ERROR; |
74 scoped_ptr<icu::Collator> collator(icu::Collator::createInstance( | 74 std::unique_ptr<icu::Collator> collator( |
75 icu::Locale(app_locale.c_str()), error)); | 75 icu::Collator::createInstance(icu::Locale(app_locale.c_str()), error)); |
76 if (U_FAILURE(error)) | 76 if (U_FAILURE(error)) |
77 collator.reset(); | 77 collator.reset(); |
78 LanguageMap language_map( | 78 LanguageMap language_map( |
79 l10n_util::StringComparator<base::string16>(collator.get())); | 79 l10n_util::StringComparator<base::string16>(collator.get())); |
80 | 80 |
81 // Build the list of display names and the language map. | 81 // Build the list of display names and the language map. |
82 for (const auto& code : language_codes) { | 82 for (const auto& code : language_codes) { |
83 base::string16 display_name = l10n_util::GetDisplayNameForLocale( | 83 base::string16 display_name = l10n_util::GetDisplayNameForLocale( |
84 code, app_locale, false); | 84 code, app_locale, false); |
85 base::string16 native_display_name = l10n_util::GetDisplayNameForLocale( | 85 base::string16 native_display_name = l10n_util::GetDisplayNameForLocale( |
(...skipping 13 matching lines...) Expand all Loading... |
99 spellcheck_languages.begin(), spellcheck_languages.end()); | 99 spellcheck_languages.begin(), spellcheck_languages.end()); |
100 | 100 |
101 // Get the list of translatable languages and convert to a set. | 101 // Get the list of translatable languages and convert to a set. |
102 std::vector<std::string> translate_languages; | 102 std::vector<std::string> translate_languages; |
103 translate::TranslateDownloadManager::GetSupportedLanguages( | 103 translate::TranslateDownloadManager::GetSupportedLanguages( |
104 &translate_languages); | 104 &translate_languages); |
105 const base::hash_set<std::string> translate_language_set( | 105 const base::hash_set<std::string> translate_language_set( |
106 translate_languages.begin(), translate_languages.end()); | 106 translate_languages.begin(), translate_languages.end()); |
107 | 107 |
108 // Build the language list from the language map. | 108 // Build the language list from the language map. |
109 scoped_ptr<base::ListValue> language_list(new base::ListValue); | 109 std::unique_ptr<base::ListValue> language_list(new base::ListValue); |
110 for (const auto& entry : language_map) { | 110 for (const auto& entry : language_map) { |
111 const base::string16& display_name = entry.first; | 111 const base::string16& display_name = entry.first; |
112 const LanguagePair& pair = entry.second; | 112 const LanguagePair& pair = entry.second; |
113 | 113 |
114 language_settings_private::Language language; | 114 language_settings_private::Language language; |
115 language.code = pair.first; | 115 language.code = pair.first; |
116 | 116 |
117 base::string16 adjusted_display_name(display_name); | 117 base::string16 adjusted_display_name(display_name); |
118 base::i18n::AdjustStringForLocaleDirection(&adjusted_display_name); | 118 base::i18n::AdjustStringForLocaleDirection(&adjusted_display_name); |
119 language.display_name = base::UTF16ToUTF8(adjusted_display_name); | 119 language.display_name = base::UTF16ToUTF8(adjusted_display_name); |
(...skipping 22 matching lines...) Expand all Loading... |
142 LanguageSettingsPrivateSetLanguageListFunction() | 142 LanguageSettingsPrivateSetLanguageListFunction() |
143 : chrome_details_(this) { | 143 : chrome_details_(this) { |
144 } | 144 } |
145 | 145 |
146 LanguageSettingsPrivateSetLanguageListFunction:: | 146 LanguageSettingsPrivateSetLanguageListFunction:: |
147 ~LanguageSettingsPrivateSetLanguageListFunction() { | 147 ~LanguageSettingsPrivateSetLanguageListFunction() { |
148 } | 148 } |
149 | 149 |
150 ExtensionFunction::ResponseAction | 150 ExtensionFunction::ResponseAction |
151 LanguageSettingsPrivateSetLanguageListFunction::Run() { | 151 LanguageSettingsPrivateSetLanguageListFunction::Run() { |
152 scoped_ptr<language_settings_private::SetLanguageList::Params> parameters = | 152 std::unique_ptr<language_settings_private::SetLanguageList::Params> |
153 language_settings_private::SetLanguageList::Params::Create(*args_); | 153 parameters = |
| 154 language_settings_private::SetLanguageList::Params::Create(*args_); |
154 EXTENSION_FUNCTION_VALIDATE(parameters.get()); | 155 EXTENSION_FUNCTION_VALIDATE(parameters.get()); |
155 | 156 |
156 scoped_ptr<translate::TranslatePrefs> translate_prefs = | 157 std::unique_ptr<translate::TranslatePrefs> translate_prefs = |
157 ChromeTranslateClient::CreateTranslatePrefs( | 158 ChromeTranslateClient::CreateTranslatePrefs( |
158 chrome_details_.GetProfile()->GetPrefs()); | 159 chrome_details_.GetProfile()->GetPrefs()); |
159 translate_prefs->UpdateLanguageList(parameters->language_codes); | 160 translate_prefs->UpdateLanguageList(parameters->language_codes); |
160 | 161 |
161 return RespondNow(NoArguments()); | 162 return RespondNow(NoArguments()); |
162 } | 163 } |
163 | 164 |
164 LanguageSettingsPrivateGetSpellcheckDictionaryStatusesFunction:: | 165 LanguageSettingsPrivateGetSpellcheckDictionaryStatusesFunction:: |
165 LanguageSettingsPrivateGetSpellcheckDictionaryStatusesFunction() { | 166 LanguageSettingsPrivateGetSpellcheckDictionaryStatusesFunction() { |
166 } | 167 } |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 } | 213 } |
213 | 214 |
214 void | 215 void |
215 LanguageSettingsPrivateGetSpellcheckWordsFunction::OnCustomDictionaryChanged( | 216 LanguageSettingsPrivateGetSpellcheckWordsFunction::OnCustomDictionaryChanged( |
216 const SpellcheckCustomDictionary::Change& dictionary_change) { | 217 const SpellcheckCustomDictionary::Change& dictionary_change) { |
217 NOTREACHED() << "SpellcheckCustomDictionary::Observer: " | 218 NOTREACHED() << "SpellcheckCustomDictionary::Observer: " |
218 "OnCustomDictionaryChanged() called before " | 219 "OnCustomDictionaryChanged() called before " |
219 "OnCustomDictionaryLoaded()"; | 220 "OnCustomDictionaryLoaded()"; |
220 } | 221 } |
221 | 222 |
222 scoped_ptr<base::ListValue> | 223 std::unique_ptr<base::ListValue> |
223 LanguageSettingsPrivateGetSpellcheckWordsFunction::GetSpellcheckWords() const { | 224 LanguageSettingsPrivateGetSpellcheckWordsFunction::GetSpellcheckWords() const { |
224 SpellcheckService* service = | 225 SpellcheckService* service = |
225 SpellcheckServiceFactory::GetForContext(browser_context()); | 226 SpellcheckServiceFactory::GetForContext(browser_context()); |
226 SpellcheckCustomDictionary* dictionary = service->GetCustomDictionary(); | 227 SpellcheckCustomDictionary* dictionary = service->GetCustomDictionary(); |
227 DCHECK(dictionary->IsLoaded()); | 228 DCHECK(dictionary->IsLoaded()); |
228 | 229 |
229 // TODO(michaelpg): Sort using app locale. | 230 // TODO(michaelpg): Sort using app locale. |
230 scoped_ptr<base::ListValue> word_list(new base::ListValue()); | 231 std::unique_ptr<base::ListValue> word_list(new base::ListValue()); |
231 const std::set<std::string>& words = dictionary->GetWords(); | 232 const std::set<std::string>& words = dictionary->GetWords(); |
232 for (const std::string& word : words) | 233 for (const std::string& word : words) |
233 word_list->AppendString(word); | 234 word_list->AppendString(word); |
234 return word_list; | 235 return word_list; |
235 } | 236 } |
236 | 237 |
237 LanguageSettingsPrivateAddSpellcheckWordFunction:: | 238 LanguageSettingsPrivateAddSpellcheckWordFunction:: |
238 LanguageSettingsPrivateAddSpellcheckWordFunction() { | 239 LanguageSettingsPrivateAddSpellcheckWordFunction() { |
239 } | 240 } |
240 | 241 |
241 LanguageSettingsPrivateAddSpellcheckWordFunction:: | 242 LanguageSettingsPrivateAddSpellcheckWordFunction:: |
242 ~LanguageSettingsPrivateAddSpellcheckWordFunction() { | 243 ~LanguageSettingsPrivateAddSpellcheckWordFunction() { |
243 } | 244 } |
244 | 245 |
245 ExtensionFunction::ResponseAction | 246 ExtensionFunction::ResponseAction |
246 LanguageSettingsPrivateAddSpellcheckWordFunction::Run() { | 247 LanguageSettingsPrivateAddSpellcheckWordFunction::Run() { |
247 scoped_ptr<language_settings_private::AddSpellcheckWord::Params> params = | 248 std::unique_ptr<language_settings_private::AddSpellcheckWord::Params> params = |
248 language_settings_private::AddSpellcheckWord::Params::Create(*args_); | 249 language_settings_private::AddSpellcheckWord::Params::Create(*args_); |
249 EXTENSION_FUNCTION_VALIDATE(params.get()); | 250 EXTENSION_FUNCTION_VALIDATE(params.get()); |
250 | 251 |
251 SpellcheckService* service = | 252 SpellcheckService* service = |
252 SpellcheckServiceFactory::GetForContext(browser_context()); | 253 SpellcheckServiceFactory::GetForContext(browser_context()); |
253 bool success = service->GetCustomDictionary()->AddWord(params->word); | 254 bool success = service->GetCustomDictionary()->AddWord(params->word); |
254 | 255 |
255 return RespondNow(OneArgument(new base::FundamentalValue(success))); | 256 return RespondNow(OneArgument(new base::FundamentalValue(success))); |
256 } | 257 } |
257 | 258 |
258 LanguageSettingsPrivateRemoveSpellcheckWordFunction:: | 259 LanguageSettingsPrivateRemoveSpellcheckWordFunction:: |
259 LanguageSettingsPrivateRemoveSpellcheckWordFunction() { | 260 LanguageSettingsPrivateRemoveSpellcheckWordFunction() { |
260 } | 261 } |
261 | 262 |
262 LanguageSettingsPrivateRemoveSpellcheckWordFunction:: | 263 LanguageSettingsPrivateRemoveSpellcheckWordFunction:: |
263 ~LanguageSettingsPrivateRemoveSpellcheckWordFunction() { | 264 ~LanguageSettingsPrivateRemoveSpellcheckWordFunction() { |
264 } | 265 } |
265 | 266 |
266 ExtensionFunction::ResponseAction | 267 ExtensionFunction::ResponseAction |
267 LanguageSettingsPrivateRemoveSpellcheckWordFunction::Run() { | 268 LanguageSettingsPrivateRemoveSpellcheckWordFunction::Run() { |
268 scoped_ptr<language_settings_private::RemoveSpellcheckWord::Params> params = | 269 std::unique_ptr<language_settings_private::RemoveSpellcheckWord::Params> |
269 language_settings_private::RemoveSpellcheckWord::Params::Create(*args_); | 270 params = language_settings_private::RemoveSpellcheckWord::Params::Create( |
| 271 *args_); |
270 EXTENSION_FUNCTION_VALIDATE(params.get()); | 272 EXTENSION_FUNCTION_VALIDATE(params.get()); |
271 | 273 |
272 SpellcheckService* service = | 274 SpellcheckService* service = |
273 SpellcheckServiceFactory::GetForContext(browser_context()); | 275 SpellcheckServiceFactory::GetForContext(browser_context()); |
274 bool success = service->GetCustomDictionary()->RemoveWord(params->word); | 276 bool success = service->GetCustomDictionary()->RemoveWord(params->word); |
275 | 277 |
276 return RespondNow(OneArgument(new base::FundamentalValue(success))); | 278 return RespondNow(OneArgument(new base::FundamentalValue(success))); |
277 } | 279 } |
278 | 280 |
279 LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: | 281 LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 LanguageSettingsPrivateRemoveInputMethodFunction:: | 385 LanguageSettingsPrivateRemoveInputMethodFunction:: |
384 ~LanguageSettingsPrivateRemoveInputMethodFunction() { | 386 ~LanguageSettingsPrivateRemoveInputMethodFunction() { |
385 } | 387 } |
386 | 388 |
387 ExtensionFunction::ResponseAction | 389 ExtensionFunction::ResponseAction |
388 LanguageSettingsPrivateRemoveInputMethodFunction::Run() { | 390 LanguageSettingsPrivateRemoveInputMethodFunction::Run() { |
389 return RespondNow(OneArgument(new base::FundamentalValue(true))); | 391 return RespondNow(OneArgument(new base::FundamentalValue(true))); |
390 } | 392 } |
391 | 393 |
392 } // namespace extensions | 394 } // namespace extensions |
OLD | NEW |