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 0eaa075f75ab7620fdd54c9e401934354058dcb9..a8e7fe51514b28e13d90ff06f0b93ed32311ccdc 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,58 +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->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; |
@@ -1037,52 +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. |
- 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)); |
+ if (list->GetDictionary(i, &engine)) { |
+ auto t_url = TemplateURLDataFromOverrideDictionary(*engine); |
+ if (t_url) |
+ t_urls.push_back(std::move(t_url)); |
} |
} |
return t_urls; |
@@ -1145,24 +1056,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; |