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

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

Issue 23621037: Send URLs on non-zero prefix suggest requests also. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move set_current_page_url Created 7 years, 3 months 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/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/guid.h" 10 #include "base/guid.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 53
54 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; 54 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats";
55 55
56 // Host/Domain Google searches are relative to. 56 // Host/Domain Google searches are relative to.
57 const char kGoogleBaseURLParameter[] = "google:baseURL"; 57 const char kGoogleBaseURLParameter[] = "google:baseURL";
58 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; 58 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}";
59 59
60 // Like google:baseURL, but for the Search Suggest capability. 60 // Like google:baseURL, but for the Search Suggest capability.
61 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; 61 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL";
62 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; 62 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}";
63 const char kGoogleCurrentPageUrlParameter[] = "google:currentPageUrl";
63 const char kGoogleCursorPositionParameter[] = "google:cursorPosition"; 64 const char kGoogleCursorPositionParameter[] = "google:cursorPosition";
64 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; 65 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter";
65 const char kGoogleInstantExtendedEnabledParameter[] = 66 const char kGoogleInstantExtendedEnabledParameter[] =
66 "google:instantExtendedEnabledParameter"; 67 "google:instantExtendedEnabledParameter";
67 const char kGoogleInstantExtendedEnabledKey[] = 68 const char kGoogleInstantExtendedEnabledKey[] =
68 "google:instantExtendedEnabledKey"; 69 "google:instantExtendedEnabledKey";
69 const char kGoogleInstantExtendedEnabledKeyFull[] = 70 const char kGoogleInstantExtendedEnabledKeyFull[] =
70 "{google:instantExtendedEnabledKey}"; 71 "{google:instantExtendedEnabledKey}";
71 const char kGoogleNTPIsThemedParameter[] = "google:ntpIsThemedParameter"; 72 const char kGoogleNTPIsThemedParameter[] = "google:ntpIsThemedParameter";
72 const char kGoogleOmniboxStartMarginParameter[] = 73 const char kGoogleOmniboxStartMarginParameter[] =
73 "google:omniboxStartMarginParameter"; 74 "google:omniboxStartMarginParameter";
74 const char kGoogleOriginalQueryForSuggestionParameter[] = 75 const char kGoogleOriginalQueryForSuggestionParameter[] =
75 "google:originalQueryForSuggestion"; 76 "google:originalQueryForSuggestion";
76 const char kGooglePageClassificationParameter[] = "google:pageClassification"; 77 const char kGooglePageClassificationParameter[] = "google:pageClassification";
77 const char kGoogleRLZParameter[] = "google:RLZ"; 78 const char kGoogleRLZParameter[] = "google:RLZ";
78 const char kGoogleSearchClient[] = "google:searchClient"; 79 const char kGoogleSearchClient[] = "google:searchClient";
79 const char kGoogleSearchFieldtrialParameter[] = 80 const char kGoogleSearchFieldtrialParameter[] =
80 "google:searchFieldtrialParameter"; 81 "google:searchFieldtrialParameter";
81 const char kGoogleSourceIdParameter[] = "google:sourceId"; 82 const char kGoogleSourceIdParameter[] = "google:sourceId";
82 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; 83 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter";
83 const char kGoogleSuggestClient[] = "google:suggestClient"; 84 const char kGoogleSuggestClient[] = "google:suggestClient";
84 const char kGoogleZeroPrefixUrlParameter[] = "google:zeroPrefixUrl";
85 85
86 // Same as kSearchTermsParameter, with no escaping. 86 // Same as kSearchTermsParameter, with no escaping.
87 const char kGoogleUnescapedSearchTermsParameter[] = 87 const char kGoogleUnescapedSearchTermsParameter[] =
88 "google:unescapedSearchTerms"; 88 "google:unescapedSearchTerms";
89 const char kGoogleUnescapedSearchTermsParameterFull[] = 89 const char kGoogleUnescapedSearchTermsParameterFull[] =
90 "{google:unescapedSearchTerms}"; 90 "{google:unescapedSearchTerms}";
91 91
92 const char kGoogleImageSearchSource[] = "google:imageSearchSource"; 92 const char kGoogleImageSearchSource[] = "google:imageSearchSource";
93 const char kGoogleImageThumbnailParameter[] = "google:imageThumbnail"; 93 const char kGoogleImageThumbnailParameter[] = "google:imageThumbnail";
94 const char kGoogleImageURLParameter[] = "google:imageURL"; 94 const char kGoogleImageURLParameter[] = "google:imageURL";
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 replacements->push_back(Replacement(SEARCH_TERMS, start)); 529 replacements->push_back(Replacement(SEARCH_TERMS, start));
530 } else if (parameter == kCountParameter) { 530 } else if (parameter == kCountParameter) {
531 if (!optional) 531 if (!optional)
532 url->insert(start, kDefaultCount); 532 url->insert(start, kDefaultCount);
533 } else if (parameter == kGoogleAssistedQueryStatsParameter) { 533 } else if (parameter == kGoogleAssistedQueryStatsParameter) {
534 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); 534 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start));
535 } else if (parameter == kGoogleBaseURLParameter) { 535 } else if (parameter == kGoogleBaseURLParameter) {
536 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); 536 replacements->push_back(Replacement(GOOGLE_BASE_URL, start));
537 } else if (parameter == kGoogleBaseSuggestURLParameter) { 537 } else if (parameter == kGoogleBaseSuggestURLParameter) {
538 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); 538 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start));
539 } else if (parameter == kGoogleCurrentPageUrlParameter) {
540 replacements->push_back(Replacement(GOOGLE_CURRENT_PAGE_URL, start));
539 } else if (parameter == kGoogleCursorPositionParameter) { 541 } else if (parameter == kGoogleCursorPositionParameter) {
540 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start)); 542 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start));
541 } else if (parameter == kGoogleImageOriginalHeight) { 543 } else if (parameter == kGoogleImageOriginalHeight) {
542 replacements->push_back( 544 replacements->push_back(
543 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_HEIGHT, start)); 545 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_HEIGHT, start));
544 } else if (parameter == kGoogleImageOriginalWidth) { 546 } else if (parameter == kGoogleImageOriginalWidth) {
545 replacements->push_back( 547 replacements->push_back(
546 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_WIDTH, start)); 548 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_WIDTH, start));
547 } else if (parameter == kGoogleImageSearchSource) { 549 } else if (parameter == kGoogleImageSearchSource) {
548 url->insert(start, GetGoogleImageSearchSource()); 550 url->insert(start, GetGoogleImageSearchSource());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 #else 582 #else
581 url->insert(start, "sourceid=chrome&"); 583 url->insert(start, "sourceid=chrome&");
582 #endif 584 #endif
583 } else if (parameter == kGoogleSuggestAPIKeyParameter) { 585 } else if (parameter == kGoogleSuggestAPIKeyParameter) {
584 url->insert(start, 586 url->insert(start,
585 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); 587 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false));
586 } else if (parameter == kGoogleSuggestClient) { 588 } else if (parameter == kGoogleSuggestClient) {
587 replacements->push_back(Replacement(GOOGLE_SUGGEST_CLIENT, start)); 589 replacements->push_back(Replacement(GOOGLE_SUGGEST_CLIENT, start));
588 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { 590 } else if (parameter == kGoogleUnescapedSearchTermsParameter) {
589 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); 591 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start));
590 } else if (parameter == kGoogleZeroPrefixUrlParameter) {
591 replacements->push_back(Replacement(GOOGLE_ZERO_PREFIX_URL, start));
592 } else if (parameter == kInputEncodingParameter) { 592 } else if (parameter == kInputEncodingParameter) {
593 replacements->push_back(Replacement(ENCODING, start)); 593 replacements->push_back(Replacement(ENCODING, start));
594 } else if (parameter == kLanguageParameter) { 594 } else if (parameter == kLanguageParameter) {
595 replacements->push_back(Replacement(LANGUAGE, start)); 595 replacements->push_back(Replacement(LANGUAGE, start));
596 } else if (parameter == kOutputEncodingParameter) { 596 } else if (parameter == kOutputEncodingParameter) {
597 if (!optional) 597 if (!optional)
598 url->insert(start, kOutputEncodingType); 598 url->insert(start, kOutputEncodingType);
599 } else if ((parameter == kStartIndexParameter) || 599 } else if ((parameter == kStartIndexParameter) ||
600 (parameter == kStartPageParameter)) { 600 (parameter == kStartPageParameter)) {
601 // We don't support these. 601 // We don't support these.
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 std::string(), search_terms_data.GoogleBaseURLValue(), *i, &url); 821 std::string(), search_terms_data.GoogleBaseURLValue(), *i, &url);
822 break; 822 break;
823 823
824 case GOOGLE_BASE_SUGGEST_URL: 824 case GOOGLE_BASE_SUGGEST_URL:
825 DCHECK(!i->is_post_param); 825 DCHECK(!i->is_post_param);
826 HandleReplacement( 826 HandleReplacement(
827 std::string(), search_terms_data.GoogleBaseSuggestURLValue(), *i, 827 std::string(), search_terms_data.GoogleBaseSuggestURLValue(), *i,
828 &url); 828 &url);
829 break; 829 break;
830 830
831 case GOOGLE_CURRENT_PAGE_URL:
832 DCHECK(!i->is_post_param);
833 if (!search_terms_args.current_page_url.empty()) {
834 const std::string& escaped_current_page_url =
835 net::EscapeQueryParamValue(search_terms_args.current_page_url,
Peter Kasting 2013/10/08 01:10:25 Nit: Consider inlining this into the next statemen
H Fung 2013/10/30 23:56:15 Done.
836 true);
837 HandleReplacement("url", escaped_current_page_url, *i, &url);
838 }
839
840 break;
841
831 case GOOGLE_CURSOR_POSITION: 842 case GOOGLE_CURSOR_POSITION:
832 DCHECK(!i->is_post_param); 843 DCHECK(!i->is_post_param);
833 if (search_terms_args.cursor_position != string16::npos) 844 if (search_terms_args.cursor_position != string16::npos)
834 HandleReplacement( 845 HandleReplacement(
835 "cp", 846 "cp",
836 base::StringPrintf("%" PRIuS, search_terms_args.cursor_position), 847 base::StringPrintf("%" PRIuS, search_terms_args.cursor_position),
837 *i, 848 *i,
838 &url); 849 &url);
839 break; 850 break;
840 851
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 case GOOGLE_UNESCAPED_SEARCH_TERMS: { 932 case GOOGLE_UNESCAPED_SEARCH_TERMS: {
922 std::string unescaped_terms; 933 std::string unescaped_terms;
923 base::UTF16ToCodepage(search_terms_args.search_terms, 934 base::UTF16ToCodepage(search_terms_args.search_terms,
924 input_encoding.c_str(), 935 input_encoding.c_str(),
925 base::OnStringConversionError::SKIP, 936 base::OnStringConversionError::SKIP,
926 &unescaped_terms); 937 &unescaped_terms);
927 HandleReplacement(std::string(), unescaped_terms, *i, &url); 938 HandleReplacement(std::string(), unescaped_terms, *i, &url);
928 break; 939 break;
929 } 940 }
930 941
931 case GOOGLE_ZERO_PREFIX_URL:
932 DCHECK(!i->is_post_param);
933 if (!search_terms_args.zero_prefix_url.empty()) {
934 const std::string& escaped_zero_prefix_url =
935 net::EscapeQueryParamValue(search_terms_args.zero_prefix_url,
936 true);
937 HandleReplacement("url", escaped_zero_prefix_url, *i, &url);
938 }
939
940 break;
941
942 case LANGUAGE: 942 case LANGUAGE:
943 HandleReplacement( 943 HandleReplacement(
944 std::string(), search_terms_data.GetApplicationLocale(), *i, &url); 944 std::string(), search_terms_data.GetApplicationLocale(), *i, &url);
945 break; 945 break;
946 946
947 case SEARCH_TERMS: 947 case SEARCH_TERMS:
948 HandleReplacement(std::string(), UTF16ToUTF8(encoded_terms), *i, &url); 948 HandleReplacement(std::string(), UTF16ToUTF8(encoded_terms), *i, &url);
949 break; 949 break;
950 950
951 case GOOGLE_IMAGE_THUMBNAIL: 951 case GOOGLE_IMAGE_THUMBNAIL:
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
1278 // patterns. This means that given patterns 1278 // patterns. This means that given patterns
1279 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], 1279 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ],
1280 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would 1280 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would
1281 // return false. This is important for at least Google, where such URLs 1281 // return false. This is important for at least Google, where such URLs
1282 // are invalid. 1282 // are invalid.
1283 return !search_terms->empty(); 1283 return !search_terms->empty();
1284 } 1284 }
1285 } 1285 }
1286 return false; 1286 return false;
1287 } 1287 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698