| 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..238f77be18b75dff175157b45e7a90babdfe857d 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;
|
| }
|
|
|
| @@ -548,11 +559,19 @@ 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) {
|
| +#if defined(OS_ANDROID)
|
| + url->insert(start, "sourceid=chrome-mobile&");
|
| +#else
|
| + url->insert(start, "sourceid=chrome&");
|
| +#endif
|
| } else if (parameter == kGoogleUnescapedSearchTermsParameter) {
|
| replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start));
|
| } else if (!prepopulated_) {
|
|
|