Index: chrome/browser/search_engines/template_url.cc |
diff --git a/chrome/browser/search_engines/template_url.cc b/chrome/browser/search_engines/template_url.cc |
index f53a73162bf8ce92124cf3369bc47412b52f1bfc..cd59366e3db3126e17a8814cef053559e5f06956 100644 |
--- a/chrome/browser/search_engines/template_url.cc |
+++ b/chrome/browser/search_engines/template_url.cc |
@@ -45,20 +45,26 @@ const char kOutputEncodingParameter[] = "outputEncoding"; |
const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; |
const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; |
+ |
// Host/Domain Google searches are relative to. |
const char kGoogleBaseURLParameter[] = "google:baseURL"; |
const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; |
+ |
// Like google:baseURL, but for the Search Suggest capability. |
const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; |
const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; |
+ |
const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; |
const char kGoogleOriginalQueryForSuggestionParameter[] = |
"google:originalQueryForSuggestion"; |
const char kGoogleRLZParameter[] = "google:RLZ"; |
-// Same as kSearchTermsParameter, with no escaping. |
+const char kGoogleSearchClient[] = "google:searchClient"; |
const char kGoogleSearchFieldtrialParameter[] = |
"google:searchFieldtrialParameter"; |
+const char kGoogleSourceIdParameter[] = "google:sourceId"; |
const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; |
+ |
+// Same as kSearchTermsParameter, with no escaping. |
const char kGoogleUnescapedSearchTermsParameter[] = |
"google:unescapedSearchTerms"; |
const char kGoogleUnescapedSearchTermsParameterFull[] = |
@@ -308,12 +314,17 @@ std::string TemplateURLRef::ReplaceSearchTermsUsingTermsData( |
// to happen so that we replace the RLZ template with the |
// empty string. (If we don't handle this case, we hit a |
// NOTREACHED below.) |
-#if defined(ENABLE_RLZ) |
string16 rlz_string = search_terms_data.GetRlzParameterValue(); |
if (!rlz_string.empty()) { |
url.insert(i->index, "rlz=" + UTF16ToUTF8(rlz_string) + "&"); |
} |
-#endif |
+ break; |
+ } |
+ |
+ case GOOGLE_SEARCH_CLIENT: { |
+ std::string client = search_terms_data.GetSearchClient(); |
+ if (!client.empty()) |
+ url.insert(i->index, "client=" + client + "&"); |
break; |
} |
@@ -323,6 +334,15 @@ std::string TemplateURLRef::ReplaceSearchTermsUsingTermsData( |
// url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&"); |
break; |
+ case GOOGLE_SOURCE_ID: { |
+#if defined(OS_ANDROID) |
+ url.insert(i->index, "sourceid=chrome-mobile&"); |
Peter Kasting
2012/12/06 07:02:37
Because this value is fixed, you can insert it dir
gone
2012/12/06 20:59:49
Done.
|
+#else |
+ url.insert(i->index, "sourceid=chrome&"); |
+#endif |
+ break; |
+ } |
+ |
case GOOGLE_UNESCAPED_SEARCH_TERMS: { |
std::string unescaped_terms; |
base::UTF16ToCodepage(search_terms_args.search_terms, |
@@ -548,11 +568,15 @@ bool TemplateURLRef::ParseParameter(size_t start, |
start)); |
} else if (parameter == kGoogleRLZParameter) { |
replacements->push_back(Replacement(GOOGLE_RLZ, start)); |
+ } else if (parameter == kGoogleSearchClient) { |
+ replacements->push_back(Replacement(GOOGLE_SEARCH_CLIENT, start)); |
} else if (parameter == kGoogleSearchFieldtrialParameter) { |
replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); |
} else if (parameter == kGoogleSuggestAPIKeyParameter) { |
url->insert(start, |
net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); |
+ } else if (parameter == kGoogleSourceIdParameter) { |
+ replacements->push_back(Replacement(GOOGLE_SOURCE_ID, start)); |
} else if (parameter == kGoogleUnescapedSearchTermsParameter) { |
replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); |
} else if (!prepopulated_) { |