Chromium Code Reviews| Index: chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc |
| diff --git a/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc b/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc |
| index efc2f1ff66bc86a58ef29f16cf8c01cf78a62947..1216d880bc0ea90a57b01dedefe23cb06d958f5a 100644 |
| --- a/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc |
| +++ b/chrome/browser/extensions/api/language_settings_private/language_settings_private_api.cc |
| @@ -245,26 +245,63 @@ LanguageSettingsPrivateGetLanguageListFunction::Run() { |
| return RespondNow(OneArgument(std::move(language_list))); |
| } |
| -LanguageSettingsPrivateSetLanguageListFunction:: |
| - LanguageSettingsPrivateSetLanguageListFunction() |
| - : chrome_details_(this) { |
| -} |
| +LanguageSettingsPrivateEnableLanguageFunction:: |
| + LanguageSettingsPrivateEnableLanguageFunction() |
| + : chrome_details_(this) {} |
| + |
| +LanguageSettingsPrivateEnableLanguageFunction:: |
| + ~LanguageSettingsPrivateEnableLanguageFunction() {} |
| + |
| +ExtensionFunction::ResponseAction |
| +LanguageSettingsPrivateEnableLanguageFunction::Run() { |
| + std::unique_ptr<language_settings_private::EnableLanguage::Params> |
| + parameters = |
| + language_settings_private::EnableLanguage::Params::Create(*args_); |
| + EXTENSION_FUNCTION_VALIDATE(parameters.get()); |
| + |
| + std::unique_ptr<translate::TranslatePrefs> translate_prefs = |
| + ChromeTranslateClient::CreateTranslatePrefs( |
| + chrome_details_.GetProfile()->GetPrefs()); |
| + |
| + std::vector<std::string> languages; |
| + translate_prefs->GetLanguageList(&languages); |
| + |
| + if (std::find(languages.begin(), languages.end(), |
| + parameters->language_code) == languages.end()) { |
|
stevenjb
2016/08/22 17:03:50
We should invert this and set a 'Language already
michaelpg
2016/08/22 18:24:46
Done.
|
| + languages.push_back(parameters->language_code); |
| + translate_prefs->UpdateLanguageList(languages); |
| + } |
| -LanguageSettingsPrivateSetLanguageListFunction:: |
| - ~LanguageSettingsPrivateSetLanguageListFunction() { |
| + return RespondNow(NoArguments()); |
| } |
| +LanguageSettingsPrivateDisableLanguageFunction:: |
| + LanguageSettingsPrivateDisableLanguageFunction() |
| + : chrome_details_(this) {} |
| + |
| +LanguageSettingsPrivateDisableLanguageFunction:: |
| + ~LanguageSettingsPrivateDisableLanguageFunction() {} |
| + |
| ExtensionFunction::ResponseAction |
| -LanguageSettingsPrivateSetLanguageListFunction::Run() { |
| - std::unique_ptr<language_settings_private::SetLanguageList::Params> |
| +LanguageSettingsPrivateDisableLanguageFunction::Run() { |
| + std::unique_ptr<language_settings_private::DisableLanguage::Params> |
| parameters = |
| - language_settings_private::SetLanguageList::Params::Create(*args_); |
| + language_settings_private::DisableLanguage::Params::Create(*args_); |
| EXTENSION_FUNCTION_VALIDATE(parameters.get()); |
| std::unique_ptr<translate::TranslatePrefs> translate_prefs = |
| ChromeTranslateClient::CreateTranslatePrefs( |
| chrome_details_.GetProfile()->GetPrefs()); |
| - translate_prefs->UpdateLanguageList(parameters->language_codes); |
| + |
| + std::vector<std::string> languages; |
| + translate_prefs->GetLanguageList(&languages); |
| + |
| + auto it = |
| + std::find(languages.begin(), languages.end(), parameters->language_code); |
| + if (it != languages.end()) { |
|
stevenjb
2016/08/22 17:03:49
ditto.
michaelpg
2016/08/22 18:24:46
Done.
|
| + languages.erase(it); |
| + translate_prefs->UpdateLanguageList(languages); |
| + } |
| return RespondNow(NoArguments()); |
| } |