Chromium Code Reviews| 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/i18n/case_conversion.h" | 7 #include "base/i18n/case_conversion.h" |
| 8 #include "base/i18n/icu_string_conversions.h" | 8 #include "base/i18n/icu_string_conversions.h" |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 35 const char kSearchTermsParameter[] = "searchTerms"; | 35 const char kSearchTermsParameter[] = "searchTerms"; |
| 36 const char kSearchTermsParameterFull[] = "{searchTerms}"; | 36 const char kSearchTermsParameterFull[] = "{searchTerms}"; |
| 37 const char kCountParameter[] = "count"; | 37 const char kCountParameter[] = "count"; |
| 38 const char kStartIndexParameter[] = "startIndex"; | 38 const char kStartIndexParameter[] = "startIndex"; |
| 39 const char kStartPageParameter[] = "startPage"; | 39 const char kStartPageParameter[] = "startPage"; |
| 40 const char kLanguageParameter[] = "language"; | 40 const char kLanguageParameter[] = "language"; |
| 41 const char kInputEncodingParameter[] = "inputEncoding"; | 41 const char kInputEncodingParameter[] = "inputEncoding"; |
| 42 const char kOutputEncodingParameter[] = "outputEncoding"; | 42 const char kOutputEncodingParameter[] = "outputEncoding"; |
| 43 | 43 |
| 44 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; | 44 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; |
| 45 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; | |
| 45 // Host/Domain Google searches are relative to. | 46 // Host/Domain Google searches are relative to. |
| 46 const char kGoogleBaseURLParameter[] = "google:baseURL"; | 47 const char kGoogleBaseURLParameter[] = "google:baseURL"; |
| 47 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; | 48 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; |
| 48 // Like google:baseURL, but for the Search Suggest capability. | 49 // Like google:baseURL, but for the Search Suggest capability. |
| 49 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; | 50 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; |
| 50 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; | 51 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; |
| 51 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; | 52 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; |
| 52 const char kGoogleOriginalQueryForSuggestionParameter[] = | 53 const char kGoogleOriginalQueryForSuggestionParameter[] = |
| 53 "google:originalQueryForSuggestion"; | 54 "google:originalQueryForSuggestion"; |
| 54 const char kGoogleRLZParameter[] = "google:RLZ"; | 55 const char kGoogleRLZParameter[] = "google:RLZ"; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 119 } | 120 } |
| 120 | 121 |
| 121 TemplateURLRef::~TemplateURLRef() { | 122 TemplateURLRef::~TemplateURLRef() { |
| 122 } | 123 } |
| 123 | 124 |
| 124 std::string TemplateURLRef::GetURL() const { | 125 std::string TemplateURLRef::GetURL() const { |
| 125 switch (type_) { | 126 switch (type_) { |
| 126 case SEARCH: return owner_->url(); | 127 case SEARCH: return owner_->url(); |
| 127 case SUGGEST: return owner_->suggestions_url(); | 128 case SUGGEST: return owner_->suggestions_url(); |
| 128 case INSTANT: return owner_->instant_url(); | 129 case INSTANT: return owner_->instant_url(); |
| 129 default: NOTREACHED(); return std::string(); | 130 default: |
|
Peter Kasting
2012/06/14 01:04:23
Don't muck with this, please
Bart N
2012/06/15 18:07:34
I think I got some warning and fixed that. Anyway,
| |
| 131 NOTREACHED(); | |
| 132 return std::string(); | |
| 130 } | 133 } |
| 131 } | 134 } |
| 132 | 135 |
| 133 bool TemplateURLRef::SupportsReplacement() const { | 136 bool TemplateURLRef::SupportsReplacement() const { |
| 134 UIThreadSearchTermsData search_terms_data(owner_->profile()); | 137 UIThreadSearchTermsData search_terms_data(owner_->profile()); |
| 135 return SupportsReplacementUsingTermsData(search_terms_data); | 138 return SupportsReplacementUsingTermsData(search_terms_data); |
| 136 } | 139 } |
| 137 | 140 |
| 138 bool TemplateURLRef::SupportsReplacementUsingTermsData( | 141 bool TemplateURLRef::SupportsReplacementUsingTermsData( |
| 139 const SearchTermsData& search_terms_data) const { | 142 const SearchTermsData& search_terms_data) const { |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 365 bool TemplateURLRef::HasGoogleBaseURLs() const { | 368 bool TemplateURLRef::HasGoogleBaseURLs() const { |
| 366 ParseIfNecessary(); | 369 ParseIfNecessary(); |
| 367 for (size_t i = 0; i < replacements_.size(); ++i) { | 370 for (size_t i = 0; i < replacements_.size(); ++i) { |
| 368 if ((replacements_[i].type == GOOGLE_BASE_URL) || | 371 if ((replacements_[i].type == GOOGLE_BASE_URL) || |
| 369 (replacements_[i].type == GOOGLE_BASE_SUGGEST_URL)) | 372 (replacements_[i].type == GOOGLE_BASE_SUGGEST_URL)) |
| 370 return true; | 373 return true; |
| 371 } | 374 } |
| 372 return false; | 375 return false; |
| 373 } | 376 } |
| 374 | 377 |
| 378 bool TemplateURLRef::SupportsAssistedQueryStats() const { | |
| 379 ParseIfNecessary(); | |
| 380 for (size_t i = 0; i < replacements_.size(); ++i) { | |
| 381 if (replacements_[i].type == GOOGLE_ASSISTED_QUERY_STATS) | |
| 382 return true; | |
| 383 } | |
| 384 return false; | |
| 385 } | |
| 386 | |
| 375 void TemplateURLRef::InvalidateCachedValues() const { | 387 void TemplateURLRef::InvalidateCachedValues() const { |
| 376 supports_replacements_ = valid_ = parsed_ = false; | 388 supports_replacements_ = valid_ = parsed_ = false; |
| 377 host_.clear(); | 389 host_.clear(); |
| 378 path_.clear(); | 390 path_.clear(); |
| 379 search_term_key_.clear(); | 391 search_term_key_.clear(); |
| 380 replacements_.clear(); | 392 replacements_.clear(); |
| 381 } | 393 } |
| 382 | 394 |
| 383 bool TemplateURLRef::ParseParameter(size_t start, | 395 bool TemplateURLRef::ParseParameter(size_t start, |
| 384 size_t end, | 396 size_t end, |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 410 url->insert(start, "1"); | 422 url->insert(start, "1"); |
| 411 } else if (parameter == kLanguageParameter) { | 423 } else if (parameter == kLanguageParameter) { |
| 412 replacements->push_back(Replacement(LANGUAGE, start)); | 424 replacements->push_back(Replacement(LANGUAGE, start)); |
| 413 } else if (parameter == kInputEncodingParameter) { | 425 } else if (parameter == kInputEncodingParameter) { |
| 414 replacements->push_back(Replacement(ENCODING, start)); | 426 replacements->push_back(Replacement(ENCODING, start)); |
| 415 } else if (parameter == kOutputEncodingParameter) { | 427 } else if (parameter == kOutputEncodingParameter) { |
| 416 if (!optional) | 428 if (!optional) |
| 417 url->insert(start, kOutputEncodingType); | 429 url->insert(start, kOutputEncodingType); |
| 418 } else if (parameter == kGoogleAcceptedSuggestionParameter) { | 430 } else if (parameter == kGoogleAcceptedSuggestionParameter) { |
| 419 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); | 431 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); |
| 432 } else if (parameter == kGoogleAssistedQueryStatsParameter) { | |
| 433 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); | |
| 420 } else if (parameter == kGoogleBaseURLParameter) { | 434 } else if (parameter == kGoogleBaseURLParameter) { |
| 421 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); | 435 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); |
| 422 } else if (parameter == kGoogleBaseSuggestURLParameter) { | 436 } else if (parameter == kGoogleBaseSuggestURLParameter) { |
| 423 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 437 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); |
| 424 } else if (parameter == kGoogleInstantEnabledParameter) { | 438 } else if (parameter == kGoogleInstantEnabledParameter) { |
| 425 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); | 439 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); |
| 426 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { | 440 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { |
| 427 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 441 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, |
| 428 start)); | 442 start)); |
| 429 } else if (parameter == kGoogleRLZParameter) { | 443 } else if (parameter == kGoogleRLZParameter) { |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 679 } | 693 } |
| 680 | 694 |
| 681 void TemplateURL::ResetKeywordIfNecessary(bool force) { | 695 void TemplateURL::ResetKeywordIfNecessary(bool force) { |
| 682 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { | 696 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { |
| 683 DCHECK(!IsExtensionKeyword()); | 697 DCHECK(!IsExtensionKeyword()); |
| 684 GURL url(TemplateURLService::GenerateSearchURL(this)); | 698 GURL url(TemplateURLService::GenerateSearchURL(this)); |
| 685 if (url.is_valid()) | 699 if (url.is_valid()) |
| 686 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); | 700 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); |
| 687 } | 701 } |
| 688 } | 702 } |
| OLD | NEW |