| 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 "base/format_macros.h" |
| 7 #include "base/guid.h" | 8 #include "base/guid.h" |
| 8 #include "base/i18n/case_conversion.h" | 9 #include "base/i18n/case_conversion.h" |
| 9 #include "base/i18n/icu_string_conversions.h" | 10 #include "base/i18n/icu_string_conversions.h" |
| 10 #include "base/i18n/rtl.h" | 11 #include "base/i18n/rtl.h" |
| 11 #include "base/logging.h" | 12 #include "base/logging.h" |
| 12 #include "base/metrics/field_trial.h" | 13 #include "base/metrics/field_trial.h" |
| 13 #include "base/string_number_conversions.h" | 14 #include "base/string_number_conversions.h" |
| 14 #include "base/string_util.h" | 15 #include "base/string_util.h" |
| 15 #include "base/stringprintf.h" | 16 #include "base/stringprintf.h" |
| 16 #include "base/utf_string_conversions.h" | 17 #include "base/utf_string_conversions.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 46 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; | 47 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; |
| 47 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; | 48 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; |
| 48 | 49 |
| 49 // Host/Domain Google searches are relative to. | 50 // Host/Domain Google searches are relative to. |
| 50 const char kGoogleBaseURLParameter[] = "google:baseURL"; | 51 const char kGoogleBaseURLParameter[] = "google:baseURL"; |
| 51 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; | 52 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; |
| 52 | 53 |
| 53 // Like google:baseURL, but for the Search Suggest capability. | 54 // Like google:baseURL, but for the Search Suggest capability. |
| 54 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; | 55 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; |
| 55 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; | 56 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; |
| 56 | 57 const char kGoogleCursorPositionParameter[] = "google:cursorPosition"; |
| 57 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; | 58 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; |
| 58 const char kGoogleInstantExtendedEnabledParameter[] = | 59 const char kGoogleInstantExtendedEnabledParameter[] = |
| 59 "google:instantExtendedEnabledParameter"; | 60 "google:instantExtendedEnabledParameter"; |
| 60 const char kGoogleOriginalQueryForSuggestionParameter[] = | 61 const char kGoogleOriginalQueryForSuggestionParameter[] = |
| 61 "google:originalQueryForSuggestion"; | 62 "google:originalQueryForSuggestion"; |
| 62 const char kGoogleRLZParameter[] = "google:RLZ"; | 63 const char kGoogleRLZParameter[] = "google:RLZ"; |
| 63 const char kGoogleSearchClient[] = "google:searchClient"; | 64 const char kGoogleSearchClient[] = "google:searchClient"; |
| 64 const char kGoogleSearchFieldtrialParameter[] = | 65 const char kGoogleSearchFieldtrialParameter[] = |
| 65 "google:searchFieldtrialParameter"; | 66 "google:searchFieldtrialParameter"; |
| 66 const char kGoogleSourceIdParameter[] = "google:sourceId"; | 67 const char kGoogleSourceIdParameter[] = "google:sourceId"; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 return std::string(); | 138 return std::string(); |
| 138 } | 139 } |
| 139 | 140 |
| 140 } // namespace | 141 } // namespace |
| 141 | 142 |
| 142 | 143 |
| 143 // TemplateURLRef::SearchTermsArgs -------------------------------------------- | 144 // TemplateURLRef::SearchTermsArgs -------------------------------------------- |
| 144 | 145 |
| 145 TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const string16& search_terms) | 146 TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const string16& search_terms) |
| 146 : search_terms(search_terms), | 147 : search_terms(search_terms), |
| 147 accepted_suggestion(NO_SUGGESTIONS_AVAILABLE) { | 148 accepted_suggestion(NO_SUGGESTIONS_AVAILABLE), |
| 149 cursor_position(string16::npos) { |
| 148 } | 150 } |
| 149 | 151 |
| 150 | 152 |
| 151 // TemplateURLRef ------------------------------------------------------------- | 153 // TemplateURLRef ------------------------------------------------------------- |
| 152 | 154 |
| 153 TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type) | 155 TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type) |
| 154 : owner_(owner), | 156 : owner_(owner), |
| 155 type_(type), | 157 type_(type), |
| 156 index_in_owner_(-1), | 158 index_in_owner_(-1), |
| 157 parsed_(false), | 159 parsed_(false), |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 } | 291 } |
| 290 | 292 |
| 291 case GOOGLE_BASE_URL: | 293 case GOOGLE_BASE_URL: |
| 292 url.insert(i->index, search_terms_data.GoogleBaseURLValue()); | 294 url.insert(i->index, search_terms_data.GoogleBaseURLValue()); |
| 293 break; | 295 break; |
| 294 | 296 |
| 295 case GOOGLE_BASE_SUGGEST_URL: | 297 case GOOGLE_BASE_SUGGEST_URL: |
| 296 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue()); | 298 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue()); |
| 297 break; | 299 break; |
| 298 | 300 |
| 301 case GOOGLE_CURSOR_POSITION: |
| 302 if (search_terms_args.cursor_position != string16::npos) |
| 303 url.insert(i->index, |
| 304 base::StringPrintf("cp=%" PRIuS "&", |
| 305 search_terms_args.cursor_position)); |
| 306 break; |
| 307 |
| 299 case GOOGLE_INSTANT_ENABLED: | 308 case GOOGLE_INSTANT_ENABLED: |
| 300 url.insert(i->index, search_terms_data.InstantEnabledParam()); | 309 url.insert(i->index, search_terms_data.InstantEnabledParam()); |
| 301 break; | 310 break; |
| 302 | 311 |
| 303 case GOOGLE_INSTANT_EXTENDED_ENABLED: | 312 case GOOGLE_INSTANT_EXTENDED_ENABLED: |
| 304 url.insert(i->index, search_terms_data.InstantExtendedEnabledParam()); | 313 url.insert(i->index, search_terms_data.InstantExtendedEnabledParam()); |
| 305 break; | 314 break; |
| 306 | 315 |
| 307 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION: | 316 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION: |
| 308 if (search_terms_args.accepted_suggestion >= 0 || | 317 if (search_terms_args.accepted_suggestion >= 0 || |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 if (!optional) | 557 if (!optional) |
| 549 url->insert(start, kOutputEncodingType); | 558 url->insert(start, kOutputEncodingType); |
| 550 } else if (parameter == kGoogleAcceptedSuggestionParameter) { | 559 } else if (parameter == kGoogleAcceptedSuggestionParameter) { |
| 551 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); | 560 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); |
| 552 } else if (parameter == kGoogleAssistedQueryStatsParameter) { | 561 } else if (parameter == kGoogleAssistedQueryStatsParameter) { |
| 553 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); | 562 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); |
| 554 } else if (parameter == kGoogleBaseURLParameter) { | 563 } else if (parameter == kGoogleBaseURLParameter) { |
| 555 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); | 564 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); |
| 556 } else if (parameter == kGoogleBaseSuggestURLParameter) { | 565 } else if (parameter == kGoogleBaseSuggestURLParameter) { |
| 557 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 566 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); |
| 567 } else if (parameter == kGoogleCursorPositionParameter) { |
| 568 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start)); |
| 558 } else if (parameter == kGoogleInstantEnabledParameter) { | 569 } else if (parameter == kGoogleInstantEnabledParameter) { |
| 559 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); | 570 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); |
| 560 } else if (parameter == kGoogleInstantExtendedEnabledParameter) { | 571 } else if (parameter == kGoogleInstantExtendedEnabledParameter) { |
| 561 replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED, | 572 replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED, |
| 562 start)); | 573 start)); |
| 563 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { | 574 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { |
| 564 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 575 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, |
| 565 start)); | 576 start)); |
| 566 } else if (parameter == kGoogleRLZParameter) { | 577 } else if (parameter == kGoogleRLZParameter) { |
| 567 replacements->push_back(Replacement(GOOGLE_RLZ, start)); | 578 replacements->push_back(Replacement(GOOGLE_RLZ, start)); |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 855 } | 866 } |
| 856 | 867 |
| 857 void TemplateURL::ResetKeywordIfNecessary(bool force) { | 868 void TemplateURL::ResetKeywordIfNecessary(bool force) { |
| 858 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { | 869 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { |
| 859 DCHECK(!IsExtensionKeyword()); | 870 DCHECK(!IsExtensionKeyword()); |
| 860 GURL url(TemplateURLService::GenerateSearchURL(this)); | 871 GURL url(TemplateURLService::GenerateSearchURL(this)); |
| 861 if (url.is_valid()) | 872 if (url.is_valid()) |
| 862 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); | 873 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); |
| 863 } | 874 } |
| 864 } | 875 } |
| OLD | NEW |