| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/search_engines/template_url.h" | 5 #include "components/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 129 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 140 | 140 | 
| 141 | 141 | 
| 142 // TemplateURLRef::SearchTermsArgs -------------------------------------------- | 142 // TemplateURLRef::SearchTermsArgs -------------------------------------------- | 
| 143 | 143 | 
| 144 TemplateURLRef::SearchTermsArgs::SearchTermsArgs( | 144 TemplateURLRef::SearchTermsArgs::SearchTermsArgs( | 
| 145     const base::string16& search_terms) | 145     const base::string16& search_terms) | 
| 146     : search_terms(search_terms), | 146     : search_terms(search_terms), | 
| 147       input_type(metrics::OmniboxInputType::INVALID), | 147       input_type(metrics::OmniboxInputType::INVALID), | 
| 148       accepted_suggestion(NO_SUGGESTIONS_AVAILABLE), | 148       accepted_suggestion(NO_SUGGESTIONS_AVAILABLE), | 
| 149       cursor_position(base::string16::npos), | 149       cursor_position(base::string16::npos), | 
| 150       enable_omnibox_start_margin(false), |  | 
| 151       page_classification(metrics::OmniboxEventProto::INVALID_SPEC), | 150       page_classification(metrics::OmniboxEventProto::INVALID_SPEC), | 
| 152       bookmark_bar_pinned(false), |  | 
| 153       append_extra_query_params(false), | 151       append_extra_query_params(false), | 
| 154       force_instant_results(false), | 152       force_instant_results(false), | 
| 155       from_app_list(false), | 153       from_app_list(false), | 
| 156       contextual_search_params(ContextualSearchParams()) { | 154       contextual_search_params(ContextualSearchParams()) { | 
| 157 } | 155 } | 
| 158 | 156 | 
| 159 TemplateURLRef::SearchTermsArgs::~SearchTermsArgs() { | 157 TemplateURLRef::SearchTermsArgs::~SearchTermsArgs() { | 
| 160 } | 158 } | 
| 161 | 159 | 
| 162 TemplateURLRef::SearchTermsArgs::ContextualSearchParams:: | 160 TemplateURLRef::SearchTermsArgs::ContextualSearchParams:: | 
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 563     replacements->push_back(Replacement(SEARCH_TERMS, start)); | 561     replacements->push_back(Replacement(SEARCH_TERMS, start)); | 
| 564   } else if (parameter == "count") { | 562   } else if (parameter == "count") { | 
| 565     if (!optional) | 563     if (!optional) | 
| 566       url->insert(start, kDefaultCount); | 564       url->insert(start, kDefaultCount); | 
| 567   } else if (parameter == "google:assistedQueryStats") { | 565   } else if (parameter == "google:assistedQueryStats") { | 
| 568     replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); | 566     replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); | 
| 569   } else if (parameter == "google:baseURL") { | 567   } else if (parameter == "google:baseURL") { | 
| 570     replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); | 568     replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); | 
| 571   } else if (parameter == "google:baseSuggestURL") { | 569   } else if (parameter == "google:baseSuggestURL") { | 
| 572     replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 570     replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 
| 573   } else if (parameter == "google:bookmarkBarPinned") { |  | 
| 574     replacements->push_back(Replacement(GOOGLE_BOOKMARK_BAR_PINNED, start)); |  | 
| 575   } else if (parameter == "google:currentPageUrl") { | 571   } else if (parameter == "google:currentPageUrl") { | 
| 576     replacements->push_back(Replacement(GOOGLE_CURRENT_PAGE_URL, start)); | 572     replacements->push_back(Replacement(GOOGLE_CURRENT_PAGE_URL, start)); | 
| 577   } else if (parameter == "google:cursorPosition") { | 573   } else if (parameter == "google:cursorPosition") { | 
| 578     replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start)); | 574     replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start)); | 
| 579   } else if (parameter == "google:forceInstantResults") { | 575   } else if (parameter == "google:forceInstantResults") { | 
| 580     replacements->push_back(Replacement(GOOGLE_FORCE_INSTANT_RESULTS, start)); | 576     replacements->push_back(Replacement(GOOGLE_FORCE_INSTANT_RESULTS, start)); | 
| 581   } else if (parameter == "google:imageOriginalHeight") { | 577   } else if (parameter == "google:imageOriginalHeight") { | 
| 582     replacements->push_back( | 578     replacements->push_back( | 
| 583         Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_HEIGHT, start)); | 579         Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_HEIGHT, start)); | 
| 584   } else if (parameter == "google:imageOriginalWidth") { | 580   } else if (parameter == "google:imageOriginalWidth") { | 
| 585     replacements->push_back( | 581     replacements->push_back( | 
| 586         Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_WIDTH, start)); | 582         Replacement(TemplateURLRef::GOOGLE_IMAGE_ORIGINAL_WIDTH, start)); | 
| 587   } else if (parameter == "google:imageSearchSource") { | 583   } else if (parameter == "google:imageSearchSource") { | 
| 588     replacements->push_back( | 584     replacements->push_back( | 
| 589         Replacement(TemplateURLRef::GOOGLE_IMAGE_SEARCH_SOURCE, start)); | 585         Replacement(TemplateURLRef::GOOGLE_IMAGE_SEARCH_SOURCE, start)); | 
| 590   } else if (parameter == "google:imageThumbnail") { | 586   } else if (parameter == "google:imageThumbnail") { | 
| 591     replacements->push_back( | 587     replacements->push_back( | 
| 592         Replacement(TemplateURLRef::GOOGLE_IMAGE_THUMBNAIL, start)); | 588         Replacement(TemplateURLRef::GOOGLE_IMAGE_THUMBNAIL, start)); | 
| 593   } else if (parameter == "google:imageURL") { | 589   } else if (parameter == "google:imageURL") { | 
| 594     replacements->push_back(Replacement(TemplateURLRef::GOOGLE_IMAGE_URL, | 590     replacements->push_back(Replacement(TemplateURLRef::GOOGLE_IMAGE_URL, | 
| 595                                         start)); | 591                                         start)); | 
| 596   } else if (parameter == "google:inputType") { | 592   } else if (parameter == "google:inputType") { | 
| 597     replacements->push_back(Replacement(TemplateURLRef::GOOGLE_INPUT_TYPE, | 593     replacements->push_back(Replacement(TemplateURLRef::GOOGLE_INPUT_TYPE, | 
| 598                                         start)); | 594                                         start)); | 
| 599   } else if (parameter == "google:instantExtendedEnabledParameter") { | 595   } else if (parameter == "google:instantExtendedEnabledParameter") { | 
| 600     replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED, | 596     replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED, | 
| 601                                         start)); | 597                                         start)); | 
| 602   } else if (parameter == "google:instantExtendedEnabledKey") { | 598   } else if (parameter == "google:instantExtendedEnabledKey") { | 
| 603     url->insert(start, google_util::kInstantExtendedAPIParam); | 599     url->insert(start, google_util::kInstantExtendedAPIParam); | 
| 604   } else if (parameter == "google:ntpIsThemedParameter") { |  | 
| 605     replacements->push_back(Replacement(GOOGLE_NTP_IS_THEMED, start)); |  | 
| 606   } else if (parameter == "google:omniboxStartMarginParameter") { |  | 
| 607     replacements->push_back(Replacement(GOOGLE_OMNIBOX_START_MARGIN, start)); |  | 
| 608   } else if (parameter == "google:contextualSearchVersion") { | 600   } else if (parameter == "google:contextualSearchVersion") { | 
| 609     replacements->push_back( | 601     replacements->push_back( | 
| 610         Replacement(GOOGLE_CONTEXTUAL_SEARCH_VERSION, start)); | 602         Replacement(GOOGLE_CONTEXTUAL_SEARCH_VERSION, start)); | 
| 611   } else if (parameter == "google:contextualSearchContextData") { | 603   } else if (parameter == "google:contextualSearchContextData") { | 
| 612     replacements->push_back( | 604     replacements->push_back( | 
| 613         Replacement(GOOGLE_CONTEXTUAL_SEARCH_CONTEXT_DATA, start)); | 605         Replacement(GOOGLE_CONTEXTUAL_SEARCH_CONTEXT_DATA, start)); | 
| 614   } else if (parameter == "google:originalQueryForSuggestion") { | 606   } else if (parameter == "google:originalQueryForSuggestion") { | 
| 615     replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 607     replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 
| 616                                         start)); | 608                                         start)); | 
| 617   } else if (parameter == "google:pageClassification") { | 609   } else if (parameter == "google:pageClassification") { | 
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 896             std::string(), search_terms_data.GoogleBaseURLValue(), *i, &url); | 888             std::string(), search_terms_data.GoogleBaseURLValue(), *i, &url); | 
| 897         break; | 889         break; | 
| 898 | 890 | 
| 899       case GOOGLE_BASE_SUGGEST_URL: | 891       case GOOGLE_BASE_SUGGEST_URL: | 
| 900         DCHECK(!i->is_post_param); | 892         DCHECK(!i->is_post_param); | 
| 901         HandleReplacement( | 893         HandleReplacement( | 
| 902             std::string(), search_terms_data.GoogleBaseSuggestURLValue(), *i, | 894             std::string(), search_terms_data.GoogleBaseSuggestURLValue(), *i, | 
| 903             &url); | 895             &url); | 
| 904         break; | 896         break; | 
| 905 | 897 | 
| 906       case GOOGLE_BOOKMARK_BAR_PINNED: |  | 
| 907         if (search_terms_data.IsShowingSearchTermsOnSearchResultsPages()) { |  | 
| 908           // Log whether the bookmark bar is pinned when the user is seeing |  | 
| 909           // InstantExtended on the SRP. |  | 
| 910           DCHECK(!i->is_post_param); |  | 
| 911           HandleReplacement( |  | 
| 912               "bmbp", search_terms_args.bookmark_bar_pinned ? "1" : "0", *i, |  | 
| 913               &url); |  | 
| 914         } |  | 
| 915         break; |  | 
| 916 |  | 
| 917       case GOOGLE_CURRENT_PAGE_URL: | 898       case GOOGLE_CURRENT_PAGE_URL: | 
| 918         DCHECK(!i->is_post_param); | 899         DCHECK(!i->is_post_param); | 
| 919         if (!search_terms_args.current_page_url.empty()) { | 900         if (!search_terms_args.current_page_url.empty()) { | 
| 920           const std::string& escaped_current_page_url = | 901           const std::string& escaped_current_page_url = | 
| 921               net::EscapeQueryParamValue(search_terms_args.current_page_url, | 902               net::EscapeQueryParamValue(search_terms_args.current_page_url, | 
| 922                                          true); | 903                                          true); | 
| 923           HandleReplacement("url", escaped_current_page_url, *i, &url); | 904           HandleReplacement("url", escaped_current_page_url, *i, &url); | 
| 924         } | 905         } | 
| 925         break; | 906         break; | 
| 926 | 907 | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
| 951 | 932 | 
| 952       case GOOGLE_INSTANT_EXTENDED_ENABLED: | 933       case GOOGLE_INSTANT_EXTENDED_ENABLED: | 
| 953         DCHECK(!i->is_post_param); | 934         DCHECK(!i->is_post_param); | 
| 954         HandleReplacement(std::string(), | 935         HandleReplacement(std::string(), | 
| 955                           search_terms_data.InstantExtendedEnabledParam( | 936                           search_terms_data.InstantExtendedEnabledParam( | 
| 956                               type_ == SEARCH), | 937                               type_ == SEARCH), | 
| 957                           *i, | 938                           *i, | 
| 958                           &url); | 939                           &url); | 
| 959         break; | 940         break; | 
| 960 | 941 | 
| 961       case GOOGLE_NTP_IS_THEMED: |  | 
| 962         DCHECK(!i->is_post_param); |  | 
| 963         HandleReplacement( |  | 
| 964             std::string(), search_terms_data.NTPIsThemedParam(), *i, &url); |  | 
| 965         break; |  | 
| 966 |  | 
| 967       case GOOGLE_OMNIBOX_START_MARGIN: |  | 
| 968         DCHECK(!i->is_post_param); |  | 
| 969         if (search_terms_args.enable_omnibox_start_margin) { |  | 
| 970           int omnibox_start_margin = search_terms_data.OmniboxStartMargin(); |  | 
| 971           if (omnibox_start_margin >= 0) { |  | 
| 972             HandleReplacement("es_sm", base::IntToString(omnibox_start_margin), |  | 
| 973                               *i, &url); |  | 
| 974           } |  | 
| 975         } |  | 
| 976         break; |  | 
| 977 |  | 
| 978       case GOOGLE_CONTEXTUAL_SEARCH_VERSION: | 942       case GOOGLE_CONTEXTUAL_SEARCH_VERSION: | 
| 979         if (search_terms_args.contextual_search_params.version >= 0) { | 943         if (search_terms_args.contextual_search_params.version >= 0) { | 
| 980           HandleReplacement( | 944           HandleReplacement( | 
| 981               "ctxs", | 945               "ctxs", | 
| 982               base::IntToString( | 946               base::IntToString( | 
| 983                   search_terms_args.contextual_search_params.version), | 947                   search_terms_args.contextual_search_params.version), | 
| 984               *i, | 948               *i, | 
| 985               &url); | 949               &url); | 
| 986         } | 950         } | 
| 987         break; | 951         break; | 
| (...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1513       // patterns. This means that given patterns | 1477       // patterns. This means that given patterns | 
| 1514       //    [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], | 1478       //    [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], | 
| 1515       // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would | 1479       // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would | 
| 1516       // return false. This is important for at least Google, where such URLs | 1480       // return false. This is important for at least Google, where such URLs | 
| 1517       // are invalid. | 1481       // are invalid. | 
| 1518       return !search_terms->empty(); | 1482       return !search_terms->empty(); | 
| 1519     } | 1483     } | 
| 1520   } | 1484   } | 
| 1521   return false; | 1485   return false; | 
| 1522 } | 1486 } | 
| OLD | NEW | 
|---|