Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(914)

Unified Diff: components/search_engines/template_url_prepopulate_data.cc

Issue 2347973002: Enable Chrome to tweak search engines for some locales (Closed)
Patch Set: compile Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1aac969e1e227a416214df3b4ac958480019970e..2a1e135febacc45228d2d35d2974cab5661cec80 100644
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -615,14 +615,12 @@ int GetCountryIDFromPrefs(PrefService* prefs) {
return prefs->GetInteger(prefs::kCountryIDAtInstall);
}
-void GetPrepopulationSetFromCountryID(PrefService* prefs,
- const PrepopulatedEngine*** engines,
- size_t* num_engines) {
- // NOTE: This function should ALWAYS set its outparams.
-
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulationSetFromCountryID(
+ int country_id) {
+ const PrepopulatedEngine** engines;
+ size_t num_engines;
// If you add a new country make sure to update the unit test for coverage.
- switch (GetCountryIDFromPrefs(prefs)) {
-
+ switch (country_id) {
#define CHAR_A 'A'
#define CHAR_B 'B'
#define CHAR_C 'C'
@@ -656,9 +654,9 @@ void GetPrepopulationSetFromCountryID(PrefService* prefs,
#define UNHANDLED_COUNTRY(code1, code2)\
case CODE_TO_ID(code1, code2):
#define END_UNHANDLED_COUNTRIES(code1, code2)\
- *engines = engines_##code1##code2;\
- *num_engines = arraysize(engines_##code1##code2);\
- return;
+ engines = engines_##code1##code2;\
+ num_engines = arraysize(engines_##code1##code2);\
+ break;
#define DECLARE_COUNTRY(code1, code2)\
UNHANDLED_COUNTRY(code1, code2)\
END_UNHANDLED_COUNTRIES(code1, code2)
@@ -971,6 +969,11 @@ void GetPrepopulationSetFromCountryID(PrefService* prefs,
default: // Unhandled location
END_UNHANDLED_COUNTRIES(def, ault)
}
+
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls;
+ for (size_t i = 0; i < num_engines; ++i)
+ t_urls.push_back(MakeTemplateURLDataFromPrepopulatedEngine(*engines[i]));
+ return t_urls;
}
std::unique_ptr<TemplateURLData> MakePrepopulatedTemplateURLData(
@@ -1121,14 +1124,24 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
if (!t_urls.empty())
return t_urls;
- const PrepopulatedEngine** engines;
- size_t num_engines;
- GetPrepopulationSetFromCountryID(prefs, &engines, &num_engines);
- for (size_t i = 0; i != num_engines; ++i) {
- t_urls.push_back(MakeTemplateURLDataFromPrepopulatedEngine(*engines[i]));
+ return GetPrepopulationSetFromCountryID(GetCountryIDFromPrefs(prefs));
+}
+
+#if defined(OS_ANDROID)
+std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
+ const std::string& locale,
+ PrefService* prefs) {
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls;
Peter Kasting 2016/09/23 01:28:36 Nit: This is only used to return the empty object
Ian Wen 2016/09/23 22:01:56 Done.
+
+ int country_id = CountryStringToCountryID(locale);
+ if (country_id == kCountryIDUnknown ||
+ country_id == GetCountryIDFromPrefs(prefs)) {
+ return t_urls;
}
- return t_urls;
+
+ return GetPrepopulationSetFromCountryID(country_id);
}
+#endif
std::vector<const PrepopulatedEngine*> GetAllPrepopulatedEngines() {
return std::vector<const PrepopulatedEngine*>(std::begin(kAllEngines),

Powered by Google App Engine
This is Rietveld 408576698