| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" | 5 #include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
| 6 | 6 |
| 7 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 7 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
| 8 #include <locale.h> | 8 #include <locale.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 3135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3146 // If a version number exist in the preferences file, it overrides the | 3146 // If a version number exist in the preferences file, it overrides the |
| 3147 // version of the built-in data. | 3147 // version of the built-in data. |
| 3148 int version = | 3148 int version = |
| 3149 prefs->GetInteger(prefs::kSearchProviderOverridesVersion); | 3149 prefs->GetInteger(prefs::kSearchProviderOverridesVersion); |
| 3150 return (version >= 0) ? version : kCurrentDataVersion; | 3150 return (version >= 0) ? version : kCurrentDataVersion; |
| 3151 } | 3151 } |
| 3152 | 3152 |
| 3153 TemplateURL* MakePrepopulatedTemplateURL(const string16& name, | 3153 TemplateURL* MakePrepopulatedTemplateURL(const string16& name, |
| 3154 const string16& keyword, | 3154 const string16& keyword, |
| 3155 const base::StringPiece& search_url, | 3155 const base::StringPiece& search_url, |
| 3156 const base::StringPiece& favicon_url, | |
| 3157 const base::StringPiece& suggest_url, | 3156 const base::StringPiece& suggest_url, |
| 3158 const base::StringPiece& instant_url, | 3157 const base::StringPiece& instant_url, |
| 3158 const base::StringPiece& favicon_url, |
| 3159 const base::StringPiece& encoding, | 3159 const base::StringPiece& encoding, |
| 3160 int id) { | 3160 int id) { |
| 3161 TemplateURL* new_turl = new TemplateURL(); | 3161 TemplateURLData data; |
| 3162 new_turl->SetURL(search_url.as_string()); | 3162 data.short_name = name; |
| 3163 new_turl->set_favicon_url(GURL(favicon_url.as_string())); | |
| 3164 new_turl->SetSuggestionsURL(suggest_url.as_string()); | |
| 3165 new_turl->SetInstantURL(instant_url.as_string()); | |
| 3166 new_turl->set_short_name(name); | |
| 3167 if (keyword.empty()) | 3163 if (keyword.empty()) |
| 3168 new_turl->set_autogenerate_keyword(true); | 3164 data.SetAutogenerateKeyword(true); |
| 3169 else | 3165 else |
| 3170 new_turl->set_keyword(keyword); | 3166 data.SetKeyword(keyword); |
| 3171 new_turl->set_show_in_default_list(true); | 3167 data.SetURL(search_url.as_string()); |
| 3172 new_turl->set_safe_for_autoreplace(true); | 3168 data.suggestions_url = suggest_url.as_string(); |
| 3173 new_turl->set_date_created(base::Time()); | 3169 data.instant_url = instant_url.as_string(); |
| 3174 new_turl->set_last_modified(base::Time()); | 3170 data.favicon_url = GURL(favicon_url.as_string()); |
| 3175 std::vector<std::string> turl_encodings; | 3171 data.show_in_default_list = true; |
| 3176 turl_encodings.push_back(encoding.as_string()); | 3172 data.safe_for_autoreplace = true; |
| 3177 new_turl->set_input_encodings(turl_encodings); | 3173 data.input_encodings.push_back(encoding.as_string()); |
| 3178 new_turl->SetPrepopulateId(id); | 3174 data.date_created = base::Time(); |
| 3179 return new_turl; | 3175 data.last_modified = base::Time(); |
| 3176 data.prepopulate_id = id; |
| 3177 return new TemplateURL(data); |
| 3180 } | 3178 } |
| 3181 | 3179 |
| 3182 void GetPrepopulatedTemplateFromPrefs(PrefService* prefs, | 3180 void GetPrepopulatedTemplateFromPrefs(PrefService* prefs, |
| 3183 std::vector<TemplateURL*>* t_urls) { | 3181 std::vector<TemplateURL*>* t_urls) { |
| 3184 if (!prefs) | 3182 if (!prefs) |
| 3185 return; | 3183 return; |
| 3186 | 3184 |
| 3187 const ListValue* list = | 3185 const ListValue* list = |
| 3188 prefs->GetList(prefs::kSearchProviderOverrides); | 3186 prefs->GetList(prefs::kSearchProviderOverrides); |
| 3189 if (!list) | 3187 if (!list) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 3213 engine->Get("id", &val) && val->GetAsInteger(&id)) { | 3211 engine->Get("id", &val) && val->GetAsInteger(&id)) { |
| 3214 // These next fields are not allowed to be empty. | 3212 // These next fields are not allowed to be empty. |
| 3215 if (name.empty() || search_url.empty() || favicon_url.empty() || | 3213 if (name.empty() || search_url.empty() || favicon_url.empty() || |
| 3216 encoding.empty()) | 3214 encoding.empty()) |
| 3217 return; | 3215 return; |
| 3218 } else { | 3216 } else { |
| 3219 // Got a parsing error. No big deal. | 3217 // Got a parsing error. No big deal. |
| 3220 continue; | 3218 continue; |
| 3221 } | 3219 } |
| 3222 t_urls->push_back(MakePrepopulatedTemplateURL(name, keyword, search_url, | 3220 t_urls->push_back(MakePrepopulatedTemplateURL(name, keyword, search_url, |
| 3223 favicon_url, suggest_url, instant_url, encoding, id)); | 3221 suggest_url, instant_url, favicon_url, encoding, id)); |
| 3224 } | 3222 } |
| 3225 } | 3223 } |
| 3226 | 3224 |
| 3227 // The caller owns the returned TemplateURL. | 3225 // The caller owns the returned TemplateURL. |
| 3228 TemplateURL* MakePrepopulatedTemplateURLFromPrepopulateEngine( | 3226 TemplateURL* MakePrepopulatedTemplateURLFromPrepopulateEngine( |
| 3229 const PrepopulatedEngine& engine) { | 3227 const PrepopulatedEngine& engine) { |
| 3230 return MakePrepopulatedTemplateURL(WideToUTF16(engine.name), | 3228 return MakePrepopulatedTemplateURL(WideToUTF16(engine.name), |
| 3231 WideToUTF16(engine.keyword), engine.search_url, engine.favicon_url, | 3229 WideToUTF16(engine.keyword), engine.search_url, engine.suggest_url, |
| 3232 engine.suggest_url, engine.instant_url, engine.encoding, engine.id); | 3230 engine.instant_url, engine.favicon_url, engine.encoding, engine.id); |
| 3233 } | 3231 } |
| 3234 | 3232 |
| 3235 void GetPrepopulatedEngines(PrefService* prefs, | 3233 void GetPrepopulatedEngines(PrefService* prefs, |
| 3236 std::vector<TemplateURL*>* t_urls, | 3234 std::vector<TemplateURL*>* t_urls, |
| 3237 size_t* default_search_provider_index) { | 3235 size_t* default_search_provider_index) { |
| 3238 // If there is a set of search engines in the preferences file, it overrides | 3236 // If there is a set of search engines in the preferences file, it overrides |
| 3239 // the built-in set. | 3237 // the built-in set. |
| 3240 *default_search_provider_index = 0; | 3238 *default_search_provider_index = 0; |
| 3241 GetPrepopulatedTemplateFromPrefs(prefs, t_urls); | 3239 GetPrepopulatedTemplateFromPrefs(prefs, t_urls); |
| 3242 if (!t_urls->empty()) | 3240 if (!t_urls->empty()) |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3306 UTF8ToUTF16(as_gurl.host()) : | 3304 UTF8ToUTF16(as_gurl.host()) : |
| 3307 l10n_util::GetStringUTF16(IDS_UNKNOWN_SEARCH_ENGINE_NAME); | 3305 l10n_util::GetStringUTF16(IDS_UNKNOWN_SEARCH_ENGINE_NAME); |
| 3308 } | 3306 } |
| 3309 | 3307 |
| 3310 SearchEngineType GetEngineType(const std::string& url) { | 3308 SearchEngineType GetEngineType(const std::string& url) { |
| 3311 const PrepopulatedEngine* engine = GetEngineForURL(url); | 3309 const PrepopulatedEngine* engine = GetEngineForURL(url); |
| 3312 return engine ? engine->type : SEARCH_ENGINE_OTHER; | 3310 return engine ? engine->type : SEARCH_ENGINE_OTHER; |
| 3313 } | 3311 } |
| 3314 | 3312 |
| 3315 } // namespace TemplateURLPrepopulateData | 3313 } // namespace TemplateURLPrepopulateData |
| OLD | NEW |