summaryrefslogtreecommitdiffstats
path: root/chrome/browser/search_engines/template_url_service.cc
diff options
context:
space:
mode:
authorbeaudoin@chromium.org <beaudoin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-09 18:54:16 +0000
committerbeaudoin@chromium.org <beaudoin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-09 18:54:16 +0000
commit5b30787532fe44ff67e29fbbedfb1781663a4f06 (patch)
tree295a5c2dd952ffd77ba62c76c110127e3db7fdbb /chrome/browser/search_engines/template_url_service.cc
parent46b3c98e14058daa45e7240bb23693e59d8cdd42 (diff)
downloadchromium_src-5b30787532fe44ff67e29fbbedfb1781663a4f06.zip
chromium_src-5b30787532fe44ff67e29fbbedfb1781663a4f06.tar.gz
chromium_src-5b30787532fe44ff67e29fbbedfb1781663a4f06.tar.bz2
Introduces a search term extraction mechanism working for arbitrary search providers.
Repalces the omnibox content with the actual search term when searching on the user's default search engine. Meant to be used with instant extended. Note: Will only convert URLs that have the espv=1 query parameter. BUG=139176, 135106 Review URL: https://chromiumcodereview.appspot.com/10908226 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160884 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/search_engines/template_url_service.cc')
-rw-r--r--chrome/browser/search_engines/template_url_service.cc21
1 files changed, 20 insertions, 1 deletions
diff --git a/chrome/browser/search_engines/template_url_service.cc b/chrome/browser/search_engines/template_url_service.cc
index 0d46d5e..a7d943f 100644
--- a/chrome/browser/search_engines/template_url_service.cc
+++ b/chrome/browser/search_engines/template_url_service.cc
@@ -85,7 +85,8 @@ bool TemplateURLsHaveSamePrefs(const TemplateURL* url1,
(url1->favicon_url() == url2->favicon_url()) &&
(url1->safe_for_autoreplace() == url2->safe_for_autoreplace()) &&
(url1->show_in_default_list() == url2->show_in_default_list()) &&
- (url1->input_encodings() == url2->input_encodings());
+ (url1->input_encodings() == url2->input_encodings()) &&
+ (url1->alternate_urls() == url2->alternate_urls());
}
const char kFirstPotentialEngineHistogramName[] =
@@ -1301,6 +1302,9 @@ syncer::SyncData TemplateURLService::CreateSyncDataFromTemplateURL(
se_specifics->set_instant_url(turl.instant_url());
se_specifics->set_last_modified(turl.last_modified().ToInternalValue());
se_specifics->set_sync_guid(turl.sync_guid());
+ for (size_t i = 0; i < turl.alternate_urls().size(); ++i)
+ se_specifics->add_alternate_urls(turl.alternate_urls()[i]);
+
return syncer::SyncData::CreateLocalData(se_specifics->sync_guid(),
se_specifics->keyword(),
specifics);
@@ -1360,6 +1364,9 @@ TemplateURL* TemplateURLService::CreateTemplateURLFromTemplateURLAndSyncData(
data.last_modified = base::Time::FromInternalValue(specifics.last_modified());
data.prepopulate_id = specifics.prepopulate_id();
data.sync_guid = specifics.sync_guid();
+ data.alternate_urls.clear();
+ for (int i = 0; i < specifics.alternate_urls_size(); ++i)
+ data.alternate_urls.push_back(specifics.alternate_urls(i));
TemplateURL* turl = new TemplateURL(profile, data);
DCHECK(!turl->IsExtensionKeyword());
@@ -1627,6 +1634,7 @@ void TemplateURLService::SaveDefaultSearchProviderToPrefs(
std::string keyword;
std::string id_string;
std::string prepopulate_id;
+ ListValue alternate_urls;
if (t_url) {
DCHECK(!t_url->IsExtensionKeyword());
enabled = true;
@@ -1641,6 +1649,8 @@ void TemplateURLService::SaveDefaultSearchProviderToPrefs(
keyword = UTF16ToUTF8(t_url->keyword());
id_string = base::Int64ToString(t_url->id());
prepopulate_id = base::Int64ToString(t_url->prepopulate_id());
+ for (size_t i = 0; i < t_url->alternate_urls().size(); ++i)
+ alternate_urls.AppendString(t_url->alternate_urls()[i]);
}
prefs->SetBoolean(prefs::kDefaultSearchProviderEnabled, enabled);
prefs->SetString(prefs::kDefaultSearchProviderSearchURL, search_url);
@@ -1652,6 +1662,7 @@ void TemplateURLService::SaveDefaultSearchProviderToPrefs(
prefs->SetString(prefs::kDefaultSearchProviderKeyword, keyword);
prefs->SetString(prefs::kDefaultSearchProviderID, id_string);
prefs->SetString(prefs::kDefaultSearchProviderPrepopulateID, prepopulate_id);
+ prefs->Set(prefs::kDefaultSearchProviderAlternateURLs, alternate_urls);
}
bool TemplateURLService::LoadDefaultSearchProviderFromPrefs(
@@ -1700,6 +1711,8 @@ bool TemplateURLService::LoadDefaultSearchProviderFromPrefs(
std::string id_string = prefs->GetString(prefs::kDefaultSearchProviderID);
std::string prepopulate_id =
prefs->GetString(prefs::kDefaultSearchProviderPrepopulateID);
+ const ListValue* alternate_urls =
+ prefs->GetList(prefs::kDefaultSearchProviderAlternateURLs);
TemplateURLData data;
data.short_name = name;
@@ -1709,6 +1722,12 @@ bool TemplateURLService::LoadDefaultSearchProviderFromPrefs(
data.instant_url = instant_url;
data.favicon_url = GURL(icon_url);
data.show_in_default_list = true;
+ data.alternate_urls.clear();
+ for (size_t i = 0; i < alternate_urls->GetSize(); ++i) {
+ std::string alternate_url;
+ if (alternate_urls->GetString(i, &alternate_url))
+ data.alternate_urls.push_back(alternate_url);
+ }
base::SplitString(encodings, ';', &data.input_encodings);
if (!id_string.empty() && !*is_managed) {
int64 value;