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

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: Adding sourceid changes 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
337 case GOOGLE_SOURCE_ID: {
338 #if defined(OS_ANDROID)
339 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.
340 #else
341 url.insert(i->index, "sourceid=chrome&");
342 #endif
343 break;
344 }
345
326 case GOOGLE_UNESCAPED_SEARCH_TERMS: { 346 case GOOGLE_UNESCAPED_SEARCH_TERMS: {
327 std::string unescaped_terms; 347 std::string unescaped_terms;
328 base::UTF16ToCodepage(search_terms_args.search_terms, 348 base::UTF16ToCodepage(search_terms_args.search_terms,
329 input_encoding.c_str(), 349 input_encoding.c_str(),
330 base::OnStringConversionError::SKIP, 350 base::OnStringConversionError::SKIP,
331 &unescaped_terms); 351 &unescaped_terms);
332 url.insert(i->index, std::string(unescaped_terms.begin(), 352 url.insert(i->index, std::string(unescaped_terms.begin(),
333 unescaped_terms.end())); 353 unescaped_terms.end()));
334 break; 354 break;
335 } 355 }
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); 561 replacements->push_back(Replacement(GOOGLE_BASE_URL, start));
542 } else if (parameter == kGoogleBaseSuggestURLParameter) { 562 } else if (parameter == kGoogleBaseSuggestURLParameter) {
543 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); 563 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start));
544 } else if (parameter == kGoogleInstantEnabledParameter) { 564 } else if (parameter == kGoogleInstantEnabledParameter) {
545 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); 565 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start));
546 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { 566 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) {
547 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, 567 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION,
548 start)); 568 start));
549 } else if (parameter == kGoogleRLZParameter) { 569 } else if (parameter == kGoogleRLZParameter) {
550 replacements->push_back(Replacement(GOOGLE_RLZ, start)); 570 replacements->push_back(Replacement(GOOGLE_RLZ, start));
571 } else if (parameter == kGoogleSearchClient) {
572 replacements->push_back(Replacement(GOOGLE_SEARCH_CLIENT, start));
551 } else if (parameter == kGoogleSearchFieldtrialParameter) { 573 } else if (parameter == kGoogleSearchFieldtrialParameter) {
552 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); 574 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start));
553 } else if (parameter == kGoogleSuggestAPIKeyParameter) { 575 } else if (parameter == kGoogleSuggestAPIKeyParameter) {
554 url->insert(start, 576 url->insert(start,
555 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); 577 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false));
578 } else if (parameter == kGoogleSourceIdParameter) {
579 replacements->push_back(Replacement(GOOGLE_SOURCE_ID, start));
556 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { 580 } else if (parameter == kGoogleUnescapedSearchTermsParameter) {
557 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); 581 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start));
558 } else if (!prepopulated_) { 582 } else if (!prepopulated_) {
559 // If it's a prepopulated URL, we know that it's safe to remove unknown 583 // 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 584 // 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. 585 // be some garbage but can also be a javascript block. Put it back.
562 url->insert(start, full_parameter); 586 url->insert(start, full_parameter);
563 return false; 587 return false;
564 } 588 }
565 return true; 589 return true;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 } 854 }
831 855
832 void TemplateURL::ResetKeywordIfNecessary(bool force) { 856 void TemplateURL::ResetKeywordIfNecessary(bool force) {
833 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { 857 if (IsGoogleSearchURLWithReplaceableKeyword() || force) {
834 DCHECK(!IsExtensionKeyword()); 858 DCHECK(!IsExtensionKeyword());
835 GURL url(TemplateURLService::GenerateSearchURL(this)); 859 GURL url(TemplateURLService::GenerateSearchURL(this));
836 if (url.is_valid()) 860 if (url.is_valid())
837 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); 861 data_.SetKeyword(TemplateURLService::GenerateKeyword(url));
838 } 862 }
839 } 863 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698