OLD | NEW |
---|---|
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 <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
58 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; | 58 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; |
59 | 59 |
60 // Host/Domain Google searches are relative to. | 60 // Host/Domain Google searches are relative to. |
61 const char kGoogleBaseURLParameter[] = "google:baseURL"; | 61 const char kGoogleBaseURLParameter[] = "google:baseURL"; |
62 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; | 62 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; |
63 | 63 |
64 // Like google:baseURL, but for the Search Suggest capability. | 64 // Like google:baseURL, but for the Search Suggest capability. |
65 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; | 65 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; |
66 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; | 66 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; |
67 const char kGoogleBookmarkBarPinnedParameter[] = "google:bookmarkBarPinned"; | 67 const char kGoogleBookmarkBarPinnedParameter[] = "google:bookmarkBarPinned"; |
68 const char kGoogleCurrentPageUrlParameter[] = "google:currentPageUrl"; | |
68 const char kGoogleCursorPositionParameter[] = "google:cursorPosition"; | 69 const char kGoogleCursorPositionParameter[] = "google:cursorPosition"; |
69 const char kGoogleForceInstantResultsParameter[] = "google:forceInstantResults"; | 70 const char kGoogleForceInstantResultsParameter[] = "google:forceInstantResults"; |
70 const char kGoogleInstantExtendedEnabledParameter[] = | 71 const char kGoogleInstantExtendedEnabledParameter[] = |
71 "google:instantExtendedEnabledParameter"; | 72 "google:instantExtendedEnabledParameter"; |
72 const char kGoogleInstantExtendedEnabledKey[] = | 73 const char kGoogleInstantExtendedEnabledKey[] = |
73 "google:instantExtendedEnabledKey"; | 74 "google:instantExtendedEnabledKey"; |
74 const char kGoogleInstantExtendedEnabledKeyFull[] = | 75 const char kGoogleInstantExtendedEnabledKeyFull[] = |
75 "{google:instantExtendedEnabledKey}"; | 76 "{google:instantExtendedEnabledKey}"; |
76 const char kGoogleNTPIsThemedParameter[] = "google:ntpIsThemedParameter"; | 77 const char kGoogleNTPIsThemedParameter[] = "google:ntpIsThemedParameter"; |
77 const char kGoogleOmniboxStartMarginParameter[] = | 78 const char kGoogleOmniboxStartMarginParameter[] = |
78 "google:omniboxStartMarginParameter"; | 79 "google:omniboxStartMarginParameter"; |
79 const char kGoogleOriginalQueryForSuggestionParameter[] = | 80 const char kGoogleOriginalQueryForSuggestionParameter[] = |
80 "google:originalQueryForSuggestion"; | 81 "google:originalQueryForSuggestion"; |
81 const char kGooglePageClassificationParameter[] = "google:pageClassification"; | 82 const char kGooglePageClassificationParameter[] = "google:pageClassification"; |
82 const char kGoogleRLZParameter[] = "google:RLZ"; | 83 const char kGoogleRLZParameter[] = "google:RLZ"; |
83 const char kGoogleSearchClient[] = "google:searchClient"; | 84 const char kGoogleSearchClient[] = "google:searchClient"; |
84 const char kGoogleSearchFieldtrialParameter[] = | 85 const char kGoogleSearchFieldtrialParameter[] = |
85 "google:searchFieldtrialParameter"; | 86 "google:searchFieldtrialParameter"; |
86 const char kGoogleSourceIdParameter[] = "google:sourceId"; | 87 const char kGoogleSourceIdParameter[] = "google:sourceId"; |
87 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; | 88 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; |
88 const char kGoogleSuggestClient[] = "google:suggestClient"; | 89 const char kGoogleSuggestClient[] = "google:suggestClient"; |
89 const char kGoogleZeroPrefixUrlParameter[] = "google:zeroPrefixUrl"; | |
90 | 90 |
91 // Same as kSearchTermsParameter, with no escaping. | 91 // Same as kSearchTermsParameter, with no escaping. |
92 const char kGoogleUnescapedSearchTermsParameter[] = | 92 const char kGoogleUnescapedSearchTermsParameter[] = |
93 "google:unescapedSearchTerms"; | 93 "google:unescapedSearchTerms"; |
94 const char kGoogleUnescapedSearchTermsParameterFull[] = | 94 const char kGoogleUnescapedSearchTermsParameterFull[] = |
95 "{google:unescapedSearchTerms}"; | 95 "{google:unescapedSearchTerms}"; |
96 | 96 |
97 const char kGoogleImageSearchSource[] = "google:imageSearchSource"; | 97 const char kGoogleImageSearchSource[] = "google:imageSearchSource"; |
98 const char kGoogleImageThumbnailParameter[] = "google:imageThumbnail"; | 98 const char kGoogleImageThumbnailParameter[] = "google:imageThumbnail"; |
99 const char kGoogleImageURLParameter[] = "google:imageURL"; | 99 const char kGoogleImageURLParameter[] = "google:imageURL"; |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
552 if (!optional) | 552 if (!optional) |
553 url->insert(start, kDefaultCount); | 553 url->insert(start, kDefaultCount); |
554 } else if (parameter == kGoogleAssistedQueryStatsParameter) { | 554 } else if (parameter == kGoogleAssistedQueryStatsParameter) { |
555 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); | 555 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); |
556 } else if (parameter == kGoogleBaseURLParameter) { | 556 } else if (parameter == kGoogleBaseURLParameter) { |
557 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); | 557 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); |
558 } else if (parameter == kGoogleBaseSuggestURLParameter) { | 558 } else if (parameter == kGoogleBaseSuggestURLParameter) { |
559 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 559 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); |
560 } else if (parameter == kGoogleBookmarkBarPinnedParameter) { | 560 } else if (parameter == kGoogleBookmarkBarPinnedParameter) { |
561 replacements->push_back(Replacement(GOOGLE_BOOKMARK_BAR_PINNED, start)); | 561 replacements->push_back(Replacement(GOOGLE_BOOKMARK_BAR_PINNED, start)); |
562 } else if (parameter == kGoogleCurrentPageUrlParameter) { | |
563 replacements->push_back(Replacement(GOOGLE_CURRENT_PAGE_URL, start)); | |
562 } else if (parameter == kGoogleCursorPositionParameter) { | 564 } else if (parameter == kGoogleCursorPositionParameter) { |
563 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start)); | 565 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start)); |
564 } else if (parameter == kGoogleImageOriginalHeight) { | 566 } else if (parameter == kGoogleImageOriginalHeight) { |
565 replacements->push_back( | 567 replacements->push_back( |
566 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_HEIGHT, start)); | 568 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_HEIGHT, start)); |
567 } else if (parameter == kGoogleImageOriginalWidth) { | 569 } else if (parameter == kGoogleImageOriginalWidth) { |
568 replacements->push_back( | 570 replacements->push_back( |
569 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_WIDTH, start)); | 571 Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_WIDTH, start)); |
570 } else if (parameter == kGoogleImageSearchSource) { | 572 } else if (parameter == kGoogleImageSearchSource) { |
571 url->insert(start, GetGoogleImageSearchSource()); | 573 url->insert(start, GetGoogleImageSearchSource()); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
603 #else | 605 #else |
604 url->insert(start, "sourceid=chrome&"); | 606 url->insert(start, "sourceid=chrome&"); |
605 #endif | 607 #endif |
606 } else if (parameter == kGoogleSuggestAPIKeyParameter) { | 608 } else if (parameter == kGoogleSuggestAPIKeyParameter) { |
607 url->insert(start, | 609 url->insert(start, |
608 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); | 610 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); |
609 } else if (parameter == kGoogleSuggestClient) { | 611 } else if (parameter == kGoogleSuggestClient) { |
610 replacements->push_back(Replacement(GOOGLE_SUGGEST_CLIENT, start)); | 612 replacements->push_back(Replacement(GOOGLE_SUGGEST_CLIENT, start)); |
611 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { | 613 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { |
612 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); | 614 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); |
613 } else if (parameter == kGoogleZeroPrefixUrlParameter) { | |
614 replacements->push_back(Replacement(GOOGLE_ZERO_PREFIX_URL, start)); | |
615 } else if (parameter == kInputEncodingParameter) { | 615 } else if (parameter == kInputEncodingParameter) { |
616 replacements->push_back(Replacement(ENCODING, start)); | 616 replacements->push_back(Replacement(ENCODING, start)); |
617 } else if (parameter == kLanguageParameter) { | 617 } else if (parameter == kLanguageParameter) { |
618 replacements->push_back(Replacement(LANGUAGE, start)); | 618 replacements->push_back(Replacement(LANGUAGE, start)); |
619 } else if (parameter == kOutputEncodingParameter) { | 619 } else if (parameter == kOutputEncodingParameter) { |
620 if (!optional) | 620 if (!optional) |
621 url->insert(start, kOutputEncodingType); | 621 url->insert(start, kOutputEncodingType); |
622 } else if ((parameter == kStartIndexParameter) || | 622 } else if ((parameter == kStartIndexParameter) || |
623 (parameter == kStartPageParameter)) { | 623 (parameter == kStartPageParameter)) { |
624 // We don't support these. | 624 // We don't support these. |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
855 if (showing_search_terms_) { | 855 if (showing_search_terms_) { |
856 // Log whether the bookmark bar is pinned when the user is seeing | 856 // Log whether the bookmark bar is pinned when the user is seeing |
857 // InstantExtended on the SRP. | 857 // InstantExtended on the SRP. |
858 DCHECK(!i->is_post_param); | 858 DCHECK(!i->is_post_param); |
859 HandleReplacement( | 859 HandleReplacement( |
860 "bmbp", search_terms_args.bookmark_bar_pinned ? "1" : "0", *i, | 860 "bmbp", search_terms_args.bookmark_bar_pinned ? "1" : "0", *i, |
861 &url); | 861 &url); |
862 } | 862 } |
863 break; | 863 break; |
864 | 864 |
865 case GOOGLE_CURRENT_PAGE_URL: | |
866 DCHECK(!i->is_post_param); | |
867 if (!search_terms_args.current_page_url.empty()) { | |
868 HandleReplacement( | |
869 "url", | |
870 net::EscapeQueryParamValue(search_terms_args.current_page_url, | |
871 true), | |
Peter Kasting
2013/10/31 21:55:51
Nit: Using a temp like the original code did would
H Fung
2013/11/01 19:16:50
Done.
| |
872 *i, &url); | |
873 } | |
874 break; | |
875 | |
865 case GOOGLE_CURSOR_POSITION: | 876 case GOOGLE_CURSOR_POSITION: |
866 DCHECK(!i->is_post_param); | 877 DCHECK(!i->is_post_param); |
867 if (search_terms_args.cursor_position != string16::npos) | 878 if (search_terms_args.cursor_position != string16::npos) |
868 HandleReplacement( | 879 HandleReplacement( |
869 "cp", | 880 "cp", |
870 base::StringPrintf("%" PRIuS, search_terms_args.cursor_position), | 881 base::StringPrintf("%" PRIuS, search_terms_args.cursor_position), |
871 *i, | 882 *i, |
872 &url); | 883 &url); |
873 break; | 884 break; |
874 | 885 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
958 case GOOGLE_UNESCAPED_SEARCH_TERMS: { | 969 case GOOGLE_UNESCAPED_SEARCH_TERMS: { |
959 std::string unescaped_terms; | 970 std::string unescaped_terms; |
960 base::UTF16ToCodepage(search_terms_args.search_terms, | 971 base::UTF16ToCodepage(search_terms_args.search_terms, |
961 input_encoding.c_str(), | 972 input_encoding.c_str(), |
962 base::OnStringConversionError::SKIP, | 973 base::OnStringConversionError::SKIP, |
963 &unescaped_terms); | 974 &unescaped_terms); |
964 HandleReplacement(std::string(), unescaped_terms, *i, &url); | 975 HandleReplacement(std::string(), unescaped_terms, *i, &url); |
965 break; | 976 break; |
966 } | 977 } |
967 | 978 |
968 case GOOGLE_ZERO_PREFIX_URL: | |
969 DCHECK(!i->is_post_param); | |
970 if (!search_terms_args.zero_prefix_url.empty()) { | |
971 const std::string& escaped_zero_prefix_url = | |
972 net::EscapeQueryParamValue(search_terms_args.zero_prefix_url, | |
973 true); | |
974 HandleReplacement("url", escaped_zero_prefix_url, *i, &url); | |
975 } | |
976 | |
977 break; | |
978 | |
979 case LANGUAGE: | 979 case LANGUAGE: |
980 HandleReplacement( | 980 HandleReplacement( |
981 std::string(), search_terms_data.GetApplicationLocale(), *i, &url); | 981 std::string(), search_terms_data.GetApplicationLocale(), *i, &url); |
982 break; | 982 break; |
983 | 983 |
984 case SEARCH_TERMS: | 984 case SEARCH_TERMS: |
985 HandleReplacement(std::string(), UTF16ToUTF8(encoded_terms), *i, &url); | 985 HandleReplacement(std::string(), UTF16ToUTF8(encoded_terms), *i, &url); |
986 break; | 986 break; |
987 | 987 |
988 case GOOGLE_IMAGE_THUMBNAIL: | 988 case GOOGLE_IMAGE_THUMBNAIL: |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1319 // patterns. This means that given patterns | 1319 // patterns. This means that given patterns |
1320 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], | 1320 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], |
1321 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would | 1321 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would |
1322 // return false. This is important for at least Google, where such URLs | 1322 // return false. This is important for at least Google, where such URLs |
1323 // are invalid. | 1323 // are invalid. |
1324 return !search_terms->empty(); | 1324 return !search_terms->empty(); |
1325 } | 1325 } |
1326 } | 1326 } |
1327 return false; | 1327 return false; |
1328 } | 1328 } |
OLD | NEW |