Chromium Code Reviews| Index: chrome/browser/extensions/api/omnibox/omnibox_api.cc |
| diff --git a/chrome/browser/extensions/api/omnibox/omnibox_api.cc b/chrome/browser/extensions/api/omnibox/omnibox_api.cc |
| index 55a6ee7689c27e467c7926fe35aebedbc8e0d050..28d8917b71123b4d7dc4dd7bdcb5a29cbaeaaf00 100644 |
| --- a/chrome/browser/extensions/api/omnibox/omnibox_api.cc |
| +++ b/chrome/browser/extensions/api/omnibox/omnibox_api.cc |
| @@ -28,6 +28,9 @@ |
| #include "content/public/browser/notification_service.h" |
| #include "ui/gfx/image/image.h" |
| +namespace SendSuggestions = extensions::api::omnibox::SendSuggestions; |
| +namespace SetDefaultSuggestion = extensions::api::omnibox::SetDefaultSuggestion; |
| + |
| namespace events { |
| const char kOnInputStarted[] = "omnibox.onInputStarted"; |
| const char kOnInputChanged[] = "omnibox.onInputChanged"; |
| @@ -224,17 +227,20 @@ gfx::Image OmniboxAPI::GetOmniboxPopupIcon(const std::string& extension_id) { |
| bool OmniboxSendSuggestionsFunction::RunImpl() { |
| ExtensionOmniboxSuggestions suggestions; |
| - ListValue* suggestions_value; |
| - EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &suggestions.request_id)); |
| - EXTENSION_FUNCTION_VALIDATE(args_->GetList(1, &suggestions_value)); |
| + scoped_ptr<SendSuggestions::Params> params( |
| + SendSuggestions::Params::Create(*args_)); |
| + EXTENSION_FUNCTION_VALIDATE(params.get()); |
| + |
| + suggestions.request_id = params->request_id; |
| + std::vector<linked_ptr<SendSuggestions::Params::SuggestResultsType> > |
| + suggest_results = params->suggest_results; |
| - suggestions.suggestions.resize(suggestions_value->GetSize()); |
| - for (size_t i = 0; i < suggestions_value->GetSize(); ++i) { |
| + suggestions.suggestions.resize(suggest_results.size()); |
| + for (size_t i = 0; i < suggest_results.size(); ++i) { |
| ExtensionOmniboxSuggestion& suggestion = suggestions.suggestions[i]; |
| - DictionaryValue* suggestion_value; |
| - EXTENSION_FUNCTION_VALIDATE(suggestions_value->GetDictionary( |
| - i, &suggestion_value)); |
| - EXTENSION_FUNCTION_VALIDATE(suggestion.Populate(*suggestion_value, true)); |
| + |
| + EXTENSION_FUNCTION_VALIDATE(suggestion.Populate( |
| + suggest_results.at(i)->additional_properties, true)); |
|
Devlin
2013/02/27 23:18:43
nit: why use at(), instead of just suggest_results
Aaron Jacobs
2013/02/27 23:28:43
Done.
|
| } |
| content::NotificationService::current()->Notify( |
| @@ -247,9 +253,12 @@ bool OmniboxSendSuggestionsFunction::RunImpl() { |
| bool OmniboxSetDefaultSuggestionFunction::RunImpl() { |
| ExtensionOmniboxSuggestion suggestion; |
| - DictionaryValue* suggestion_value; |
| - EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &suggestion_value)); |
| - EXTENSION_FUNCTION_VALIDATE(suggestion.Populate(*suggestion_value, false)); |
| + scoped_ptr<SetDefaultSuggestion::Params> params( |
| + SetDefaultSuggestion::Params::Create(*args_)); |
|
Devlin
2013/02/27 23:18:43
nit: still 4-space line continuation :)
Aaron Jacobs
2013/02/27 23:28:43
Done.
|
| + EXTENSION_FUNCTION_VALIDATE(params.get()); |
| + |
| + EXTENSION_FUNCTION_VALIDATE( |
| + suggestion.PopulateFromDefaultSuggestion(params->suggestion)); |
| ExtensionPrefs* prefs = |
| ExtensionSystem::Get(profile())->extension_service()->extension_prefs(); |
| @@ -310,6 +319,17 @@ bool ExtensionOmniboxSuggestion::Populate(const base::DictionaryValue& value, |
| return true; |
| } |
| +bool ExtensionOmniboxSuggestion::PopulateFromDefaultSuggestion( |
| + const SetDefaultSuggestion::Params::Suggestion& suggestion) { |
| + description_styles.clear(); |
| + description_styles.push_back( |
| + ACMatchClassification(0, ACMatchClassification::NONE)); |
| + |
| + description = UTF8ToUTF16(suggestion.description); |
| + |
| + return true; |
| +} |
| + |
| bool ExtensionOmniboxSuggestion::ReadStylesFromValue( |
| const ListValue& styles_value) { |
| description_styles.clear(); |