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

Side by Side Diff: chrome/browser/search_engines/template_url.cc

Issue 11448005: Add Android-specific parameters to search_engines/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing nits Created 8 years 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 unified diff | Download patch
OLDNEW
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.h" 5 #include "chrome/browser/search_engines/template_url.h"
6 6
7 #include "base/guid.h" 7 #include "base/guid.h"
8 #include "base/i18n/case_conversion.h" 8 #include "base/i18n/case_conversion.h"
9 #include "base/i18n/icu_string_conversions.h" 9 #include "base/i18n/icu_string_conversions.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 27 matching lines...) Expand all
38 const char kSearchTermsParameterFull[] = "{searchTerms}"; 38 const char kSearchTermsParameterFull[] = "{searchTerms}";
39 const char kCountParameter[] = "count"; 39 const char kCountParameter[] = "count";
40 const char kStartIndexParameter[] = "startIndex"; 40 const char kStartIndexParameter[] = "startIndex";
41 const char kStartPageParameter[] = "startPage"; 41 const char kStartPageParameter[] = "startPage";
42 const char kLanguageParameter[] = "language"; 42 const char kLanguageParameter[] = "language";
43 const char kInputEncodingParameter[] = "inputEncoding"; 43 const char kInputEncodingParameter[] = "inputEncoding";
44 const char kOutputEncodingParameter[] = "outputEncoding"; 44 const char kOutputEncodingParameter[] = "outputEncoding";
45 45
46 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; 46 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion";
47 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; 47 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats";
48
48 // Host/Domain Google searches are relative to. 49 // Host/Domain Google searches are relative to.
49 const char kGoogleBaseURLParameter[] = "google:baseURL"; 50 const char kGoogleBaseURLParameter[] = "google:baseURL";
50 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; 51 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}";
52
51 // Like google:baseURL, but for the Search Suggest capability. 53 // Like google:baseURL, but for the Search Suggest capability.
52 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; 54 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL";
53 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; 55 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}";
56
54 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; 57 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter";
55 const char kGoogleOriginalQueryForSuggestionParameter[] = 58 const char kGoogleOriginalQueryForSuggestionParameter[] =
56 "google:originalQueryForSuggestion"; 59 "google:originalQueryForSuggestion";
57 const char kGoogleRLZParameter[] = "google:RLZ"; 60 const char kGoogleRLZParameter[] = "google:RLZ";
58 // Same as kSearchTermsParameter, with no escaping. 61 const char kGoogleSearchClient[] = "google:searchClient";
59 const char kGoogleSearchFieldtrialParameter[] = 62 const char kGoogleSearchFieldtrialParameter[] =
60 "google:searchFieldtrialParameter"; 63 "google:searchFieldtrialParameter";
64 const char kGoogleSourceIdParameter[] = "google:sourceId";
61 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; 65 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter";
66
67 // Same as kSearchTermsParameter, with no escaping.
62 const char kGoogleUnescapedSearchTermsParameter[] = 68 const char kGoogleUnescapedSearchTermsParameter[] =
63 "google:unescapedSearchTerms"; 69 "google:unescapedSearchTerms";
64 const char kGoogleUnescapedSearchTermsParameterFull[] = 70 const char kGoogleUnescapedSearchTermsParameterFull[] =
65 "{google:unescapedSearchTerms}"; 71 "{google:unescapedSearchTerms}";
66 72
67 // Display value for kSearchTermsParameter. 73 // Display value for kSearchTermsParameter.
68 const char kDisplaySearchTerms[] = "%s"; 74 const char kDisplaySearchTerms[] = "%s";
69 75
70 // Display value for kGoogleUnescapedSearchTermsParameter. 76 // Display value for kGoogleUnescapedSearchTermsParameter.
71 const char kDisplayUnescapedSearchTerms[] = "%S"; 77 const char kDisplayUnescapedSearchTerms[] = "%S";
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) + 307 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) +
302 "&"); 308 "&");
303 } 309 }
304 break; 310 break;
305 311
306 case GOOGLE_RLZ: { 312 case GOOGLE_RLZ: {
307 // On platforms that don't have RLZ, we still want this branch 313 // On platforms that don't have RLZ, we still want this branch
308 // to happen so that we replace the RLZ template with the 314 // to happen so that we replace the RLZ template with the
309 // empty string. (If we don't handle this case, we hit a 315 // empty string. (If we don't handle this case, we hit a
310 // NOTREACHED below.) 316 // NOTREACHED below.)
311 #if defined(ENABLE_RLZ)
312 string16 rlz_string = search_terms_data.GetRlzParameterValue(); 317 string16 rlz_string = search_terms_data.GetRlzParameterValue();
313 if (!rlz_string.empty()) { 318 if (!rlz_string.empty()) {
314 url.insert(i->index, "rlz=" + UTF16ToUTF8(rlz_string) + "&"); 319 url.insert(i->index, "rlz=" + UTF16ToUTF8(rlz_string) + "&");
315 } 320 }
316 #endif
317 break; 321 break;
318 } 322 }
319 323
324 case GOOGLE_SEARCH_CLIENT: {
325 std::string client = search_terms_data.GetSearchClient();
326 if (!client.empty())
327 url.insert(i->index, "client=" + client + "&");
328 break;
329 }
330
320 case GOOGLE_SEARCH_FIELDTRIAL_GROUP: 331 case GOOGLE_SEARCH_FIELDTRIAL_GROUP:
321 // We are not currently running any fieldtrials that modulate the search 332 // We are not currently running any fieldtrials that modulate the search
322 // url. If we do, then we'd have some conditional insert such as: 333 // url. If we do, then we'd have some conditional insert such as:
323 // url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&"); 334 // url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&");
324 break; 335 break;
325 336
326 case GOOGLE_UNESCAPED_SEARCH_TERMS: { 337 case GOOGLE_UNESCAPED_SEARCH_TERMS: {
327 std::string unescaped_terms; 338 std::string unescaped_terms;
328 base::UTF16ToCodepage(search_terms_args.search_terms, 339 base::UTF16ToCodepage(search_terms_args.search_terms,
329 input_encoding.c_str(), 340 input_encoding.c_str(),
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); 552 replacements->push_back(Replacement(GOOGLE_BASE_URL, start));
542 } else if (parameter == kGoogleBaseSuggestURLParameter) { 553 } else if (parameter == kGoogleBaseSuggestURLParameter) {
543 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); 554 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start));
544 } else if (parameter == kGoogleInstantEnabledParameter) { 555 } else if (parameter == kGoogleInstantEnabledParameter) {
545 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); 556 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start));
546 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { 557 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) {
547 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, 558 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION,
548 start)); 559 start));
549 } else if (parameter == kGoogleRLZParameter) { 560 } else if (parameter == kGoogleRLZParameter) {
550 replacements->push_back(Replacement(GOOGLE_RLZ, start)); 561 replacements->push_back(Replacement(GOOGLE_RLZ, start));
562 } else if (parameter == kGoogleSearchClient) {
563 replacements->push_back(Replacement(GOOGLE_SEARCH_CLIENT, start));
551 } else if (parameter == kGoogleSearchFieldtrialParameter) { 564 } else if (parameter == kGoogleSearchFieldtrialParameter) {
552 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); 565 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start));
553 } else if (parameter == kGoogleSuggestAPIKeyParameter) { 566 } else if (parameter == kGoogleSuggestAPIKeyParameter) {
554 url->insert(start, 567 url->insert(start,
555 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); 568 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false));
569 } else if (parameter == kGoogleSourceIdParameter) {
570 #if defined(OS_ANDROID)
571 url->insert(start, "sourceid=chrome-mobile&");
572 #else
573 url->insert(start, "sourceid=chrome&");
574 #endif
556 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { 575 } else if (parameter == kGoogleUnescapedSearchTermsParameter) {
557 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); 576 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start));
558 } else if (!prepopulated_) { 577 } else if (!prepopulated_) {
559 // If it's a prepopulated URL, we know that it's safe to remove unknown 578 // If it's a prepopulated URL, we know that it's safe to remove unknown
560 // parameters, so just ignore this and return true below. Otherwise it could 579 // parameters, so just ignore this and return true below. Otherwise it could
561 // be some garbage but can also be a javascript block. Put it back. 580 // be some garbage but can also be a javascript block. Put it back.
562 url->insert(start, full_parameter); 581 url->insert(start, full_parameter);
563 return false; 582 return false;
564 } 583 }
565 return true; 584 return true;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 } 849 }
831 850
832 void TemplateURL::ResetKeywordIfNecessary(bool force) { 851 void TemplateURL::ResetKeywordIfNecessary(bool force) {
833 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { 852 if (IsGoogleSearchURLWithReplaceableKeyword() || force) {
834 DCHECK(!IsExtensionKeyword()); 853 DCHECK(!IsExtensionKeyword());
835 GURL url(TemplateURLService::GenerateSearchURL(this)); 854 GURL url(TemplateURLService::GenerateSearchURL(this));
836 if (url.is_valid()) 855 if (url.is_valid())
837 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); 856 data_.SetKeyword(TemplateURLService::GenerateKeyword(url));
838 } 857 }
839 } 858 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/browser/search_engines/template_url_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698