Chromium Code Reviews| Index: components/search_engines/template_url_prepopulate_data.cc |
| diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc |
| index 72574064b75a2e62e25df051b83e4142941e8793..ff0350558becec847a6ac56b6428ccd17faeb7a7 100644 |
| --- a/components/search_engines/template_url_prepopulate_data.cc |
| +++ b/components/search_engines/template_url_prepopulate_data.cc |
| @@ -21,6 +21,7 @@ |
| #include "components/search_engines/prepopulated_engines.h" |
| #include "components/search_engines/search_engines_pref_names.h" |
| #include "components/search_engines/template_url_data.h" |
| +#include "components/search_engines/template_url_data_util.h" |
| #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| #include "url/gurl.h" |
| @@ -972,59 +973,10 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulationSetFromCountryID( |
| std::vector<std::unique_ptr<TemplateURLData>> t_urls; |
| for (size_t i = 0; i < num_engines; ++i) |
| - t_urls.push_back(MakeTemplateURLDataFromPrepopulatedEngine(*engines[i])); |
| + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(*engines[i])); |
| return t_urls; |
| } |
| -std::unique_ptr<TemplateURLData> MakePrepopulatedTemplateURLData( |
| - const base::string16& name, |
| - const base::string16& keyword, |
| - const base::StringPiece& search_url, |
| - const base::StringPiece& suggest_url, |
| - const base::StringPiece& instant_url, |
| - const base::StringPiece& image_url, |
| - const base::StringPiece& new_tab_url, |
| - const base::StringPiece& contextual_search_url, |
| - const base::StringPiece& search_url_post_params, |
| - const base::StringPiece& suggest_url_post_params, |
| - const base::StringPiece& instant_url_post_params, |
| - const base::StringPiece& image_url_post_params, |
| - const base::StringPiece& favicon_url, |
| - const base::StringPiece& encoding, |
| - const base::ListValue& alternate_urls, |
| - const base::StringPiece& search_terms_replacement_key, |
| - int id) { |
| - std::unique_ptr<TemplateURLData> data(new TemplateURLData); |
| - |
| - data->SetShortName(name); |
| - data->SetKeyword(keyword); |
| - data->SetURL(search_url.as_string()); |
| - data->suggestions_url = suggest_url.as_string(); |
| - data->instant_url = instant_url.as_string(); |
| - data->image_url = image_url.as_string(); |
| - data->new_tab_url = new_tab_url.as_string(); |
| - data->contextual_search_url = contextual_search_url.as_string(); |
| - data->search_url_post_params = search_url_post_params.as_string(); |
| - data->suggestions_url_post_params = suggest_url_post_params.as_string(); |
| - data->instant_url_post_params = instant_url_post_params.as_string(); |
| - data->image_url_post_params = image_url_post_params.as_string(); |
| - data->favicon_url = GURL(favicon_url); |
| - data->show_in_default_list = true; |
| - data->safe_for_autoreplace = true; |
| - data->input_encodings.push_back(encoding.as_string()); |
| - data->date_created = base::Time(); |
| - data->last_modified = base::Time(); |
| - data->prepopulate_id = id; |
| - for (size_t i = 0; i < alternate_urls.GetSize(); ++i) { |
| - std::string alternate_url; |
| - alternate_urls.GetString(i, &alternate_url); |
| - DCHECK(!alternate_url.empty()); |
| - data->alternate_urls.push_back(alternate_url); |
| - } |
| - data->search_terms_replacement_key = search_terms_replacement_key.as_string(); |
| - return data; |
| -} |
| - |
| std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLData( |
| PrefService* prefs) { |
| std::vector<std::unique_ptr<TemplateURLData>> t_urls; |
| @@ -1038,53 +990,10 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLData( |
| size_t num_engines = list->GetSize(); |
| for (size_t i = 0; i != num_engines; ++i) { |
| const base::DictionaryValue* engine; |
| - base::string16 name; |
| - base::string16 keyword; |
| - std::string search_url; |
| - std::string favicon_url; |
| - std::string encoding; |
| - int id = -1; |
| - // The following fields are required for each search engine configuration. |
| + std::unique_ptr<TemplateURLData> t_url; |
| if (list->GetDictionary(i, &engine) && |
| - engine->GetString("name", &name) && !name.empty() && |
| - engine->GetString("keyword", &keyword) && !keyword.empty() && |
| - engine->GetString("search_url", &search_url) && !search_url.empty() && |
| - engine->GetString("favicon_url", &favicon_url) && |
| - !favicon_url.empty() && |
| - engine->GetString("encoding", &encoding) && !encoding.empty() && |
| - engine->GetInteger("id", &id)) { |
| - // These fields are optional. |
| - std::string suggest_url; |
| - std::string instant_url; |
| - std::string image_url; |
| - std::string new_tab_url; |
| - std::string contextual_search_url; |
| - std::string search_url_post_params; |
| - std::string suggest_url_post_params; |
| - std::string instant_url_post_params; |
| - std::string image_url_post_params; |
| - base::ListValue empty_list; |
| - const base::ListValue* alternate_urls = &empty_list; |
| - std::string search_terms_replacement_key; |
| - engine->GetString("suggest_url", &suggest_url); |
| - engine->GetString("instant_url", &instant_url); |
| - engine->GetString("image_url", &image_url); |
| - engine->GetString("new_tab_url", &new_tab_url); |
| - engine->GetString("contextual_search_url", &contextual_search_url); |
| - engine->GetString("search_url_post_params", &search_url_post_params); |
| - engine->GetString("suggest_url_post_params", &suggest_url_post_params); |
| - engine->GetString("instant_url_post_params", &instant_url_post_params); |
| - engine->GetString("image_url_post_params", &image_url_post_params); |
| - engine->GetList("alternate_urls", &alternate_urls); |
| - engine->GetString("search_terms_replacement_key", |
| - &search_terms_replacement_key); |
| - t_urls.push_back(MakePrepopulatedTemplateURLData( |
| - name, keyword, search_url, suggest_url, instant_url, image_url, |
| - new_tab_url, contextual_search_url, search_url_post_params, |
| - suggest_url_post_params, instant_url_post_params, |
| - image_url_post_params, favicon_url, encoding, *alternate_urls, |
| - search_terms_replacement_key, id)); |
| - } |
| + (t_url = TemplateURLDataFromOverrideDictionary(*engine))) |
|
Peter Kasting
2016/11/20 07:57:50
Nit: Don't use statements with side effects in con
Alexander Yashkin
2016/11/20 20:24:05
Thanks, fixed.
|
| + t_urls.push_back(std::move(t_url)); |
| } |
| return t_urls; |
| } |
| @@ -1146,24 +1055,6 @@ std::vector<const PrepopulatedEngine*> GetAllPrepopulatedEngines() { |
| std::end(kAllEngines)); |
| } |
| -std::unique_ptr<TemplateURLData> MakeTemplateURLDataFromPrepopulatedEngine( |
| - const PrepopulatedEngine& engine) { |
| - base::ListValue alternate_urls; |
| - if (engine.alternate_urls) { |
| - for (size_t i = 0; i < engine.alternate_urls_size; ++i) |
| - alternate_urls.AppendString(std::string(engine.alternate_urls[i])); |
| - } |
| - |
| - return MakePrepopulatedTemplateURLData( |
| - base::WideToUTF16(engine.name), base::WideToUTF16(engine.keyword), |
| - engine.search_url, engine.suggest_url, engine.instant_url, |
| - engine.image_url, engine.new_tab_url, engine.contextual_search_url, |
| - engine.search_url_post_params, engine.suggest_url_post_params, |
| - engine.instant_url_post_params, engine.image_url_post_params, |
| - engine.favicon_url, engine.encoding, alternate_urls, |
| - engine.search_terms_replacement_key, engine.id); |
| -} |
| - |
| void ClearPrepopulatedEnginesInPrefs(PrefService* prefs) { |
| if (!prefs) |
| return; |