Chromium Code Reviews| 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 <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 176 LanguageSettingsPrivateGetSpellcheckWordsFunction:: | 176 LanguageSettingsPrivateGetSpellcheckWordsFunction:: |
| 177 ~LanguageSettingsPrivateGetSpellcheckWordsFunction() { | 177 ~LanguageSettingsPrivateGetSpellcheckWordsFunction() { |
| 178 } | 178 } |
| 179 | 179 |
| 180 ExtensionFunction::ResponseAction | 180 ExtensionFunction::ResponseAction |
| 181 LanguageSettingsPrivateGetSpellcheckWordsFunction::Run() { | 181 LanguageSettingsPrivateGetSpellcheckWordsFunction::Run() { |
| 182 SpellcheckService* service = | 182 SpellcheckService* service = |
| 183 SpellcheckServiceFactory::GetForContext(browser_context()); | 183 SpellcheckServiceFactory::GetForContext(browser_context()); |
| 184 SpellcheckCustomDictionary* dictionary = service->GetCustomDictionary(); | 184 SpellcheckCustomDictionary* dictionary = service->GetCustomDictionary(); |
| 185 | 185 |
| 186 if (dictionary->IsLoaded()) | |
| 187 return RespondNow(OneArgument(GetSpellcheckWords().release())); | |
| 188 | |
| 189 dictionary->AddObserver(this); | |
| 190 AddRef(); // Balanced in OnCustomDictionaryLoaded(). | |
| 191 return RespondLater(); | |
| 192 } | |
| 193 | |
| 194 void | |
| 195 LanguageSettingsPrivateGetSpellcheckWordsFunction::OnCustomDictionaryLoaded() { | |
| 196 SpellcheckService* service = | |
| 197 SpellcheckServiceFactory::GetForContext(browser_context()); | |
| 198 service->GetCustomDictionary()->RemoveObserver(this); | |
| 199 Respond(OneArgument(GetSpellcheckWords().release())); | |
| 200 Release(); | |
| 201 } | |
| 202 | |
| 203 void | |
| 204 LanguageSettingsPrivateGetSpellcheckWordsFunction::OnCustomDictionaryChanged( | |
| 205 const SpellcheckCustomDictionary::Change& dictionary_change) { | |
|
stevenjb
2015/09/28 23:58:10
nit: NOTREACHED() << "SpellcheckCustomDictionary C
michaelpg
2015/09/29 00:27:24
Done.
| |
| 206 } | |
| 207 | |
| 208 scoped_ptr<base::ListValue> | |
| 209 LanguageSettingsPrivateGetSpellcheckWordsFunction::GetSpellcheckWords() const { | |
| 210 SpellcheckService* service = | |
| 211 SpellcheckServiceFactory::GetForContext(browser_context()); | |
| 212 SpellcheckCustomDictionary* dictionary = service->GetCustomDictionary(); | |
| 213 DCHECK(dictionary->IsLoaded()); | |
| 214 | |
| 215 // TODO(michaelpg): Sort using app locale. | |
| 186 scoped_ptr<base::ListValue> word_list(new base::ListValue()); | 216 scoped_ptr<base::ListValue> word_list(new base::ListValue()); |
| 187 // TODO(michaelpg): observe the dictionary and respond later if not loaded. | 217 const std::set<std::string>& words = dictionary->GetWords(); |
| 188 if (dictionary->IsLoaded()) { | 218 for (const std::string& word : words) |
| 189 const std::set<std::string>& words = dictionary->GetWords(); | 219 word_list->AppendString(word); |
| 190 for (const std::string& word : words) | 220 return word_list.Pass(); |
| 191 word_list->AppendString(word); | 221 } |
| 192 } | 222 |
| 193 return RespondNow(OneArgument(word_list.release())); | 223 LanguageSettingsPrivateAddSpellcheckWordFunction:: |
| 224 LanguageSettingsPrivateAddSpellcheckWordFunction() { | |
| 225 } | |
| 226 | |
| 227 LanguageSettingsPrivateAddSpellcheckWordFunction:: | |
| 228 ~LanguageSettingsPrivateAddSpellcheckWordFunction() { | |
| 229 } | |
| 230 | |
| 231 ExtensionFunction::ResponseAction | |
| 232 LanguageSettingsPrivateAddSpellcheckWordFunction::Run() { | |
| 233 scoped_ptr<language_settings_private::AddSpellcheckWord::Params> params = | |
| 234 language_settings_private::AddSpellcheckWord::Params::Create(*args_); | |
| 235 EXTENSION_FUNCTION_VALIDATE(params.get()); | |
| 236 | |
| 237 SpellcheckService* service = | |
| 238 SpellcheckServiceFactory::GetForContext(browser_context()); | |
| 239 bool success = service->GetCustomDictionary()->AddWord(params->word); | |
| 240 | |
| 241 return RespondNow(OneArgument(new base::FundamentalValue(success))); | |
| 242 } | |
| 243 | |
| 244 LanguageSettingsPrivateRemoveSpellcheckWordFunction:: | |
| 245 LanguageSettingsPrivateRemoveSpellcheckWordFunction() { | |
| 246 } | |
| 247 | |
| 248 LanguageSettingsPrivateRemoveSpellcheckWordFunction:: | |
| 249 ~LanguageSettingsPrivateRemoveSpellcheckWordFunction() { | |
| 250 } | |
| 251 | |
| 252 ExtensionFunction::ResponseAction | |
| 253 LanguageSettingsPrivateRemoveSpellcheckWordFunction::Run() { | |
| 254 scoped_ptr<language_settings_private::RemoveSpellcheckWord::Params> params = | |
| 255 language_settings_private::RemoveSpellcheckWord::Params::Create(*args_); | |
| 256 EXTENSION_FUNCTION_VALIDATE(params.get()); | |
| 257 | |
| 258 SpellcheckService* service = | |
| 259 SpellcheckServiceFactory::GetForContext(browser_context()); | |
| 260 bool success = service->GetCustomDictionary()->RemoveWord(params->word); | |
| 261 | |
| 262 return RespondNow(OneArgument(new base::FundamentalValue(success))); | |
| 194 } | 263 } |
| 195 | 264 |
| 196 LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: | 265 LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: |
| 197 LanguageSettingsPrivateGetTranslateTargetLanguageFunction() | 266 LanguageSettingsPrivateGetTranslateTargetLanguageFunction() |
| 198 : chrome_details_(this) { | 267 : chrome_details_(this) { |
| 199 } | 268 } |
| 200 | 269 |
| 201 LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: | 270 LanguageSettingsPrivateGetTranslateTargetLanguageFunction:: |
| 202 ~LanguageSettingsPrivateGetTranslateTargetLanguageFunction() { | 271 ~LanguageSettingsPrivateGetTranslateTargetLanguageFunction() { |
| 203 } | 272 } |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 242 LanguageSettingsPrivateRemoveInputMethodFunction:: | 311 LanguageSettingsPrivateRemoveInputMethodFunction:: |
| 243 ~LanguageSettingsPrivateRemoveInputMethodFunction() { | 312 ~LanguageSettingsPrivateRemoveInputMethodFunction() { |
| 244 } | 313 } |
| 245 | 314 |
| 246 ExtensionFunction::ResponseAction | 315 ExtensionFunction::ResponseAction |
| 247 LanguageSettingsPrivateRemoveInputMethodFunction::Run() { | 316 LanguageSettingsPrivateRemoveInputMethodFunction::Run() { |
| 248 return RespondNow(OneArgument(new base::FundamentalValue(true))); | 317 return RespondNow(OneArgument(new base::FundamentalValue(true))); |
| 249 } | 318 } |
| 250 | 319 |
| 251 } // namespace extensions | 320 } // namespace extensions |
| OLD | NEW |