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 |