Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 78 } | 78 } |
| 79 | 79 |
| 80 TemplateURLRef::TemplateURLRef(const std::string& url, | 80 TemplateURLRef::TemplateURLRef(const std::string& url, |
| 81 int index_offset, | 81 int index_offset, |
| 82 int page_offset) | 82 int page_offset) |
| 83 : url_(url), | 83 : url_(url), |
| 84 index_offset_(index_offset), | 84 index_offset_(index_offset), |
| 85 page_offset_(page_offset), | 85 page_offset_(page_offset), |
| 86 parsed_(false), | 86 parsed_(false), |
| 87 valid_(false), | 87 valid_(false), |
| 88 supports_replacements_(false) { | 88 supports_replacements_(false), |
| 89 prepopulated_(false) { | |
| 89 } | 90 } |
| 90 | 91 |
| 91 void TemplateURLRef::Set(const std::string& url, | 92 void TemplateURLRef::Set(const std::string& url, |
| 92 int index_offset, | 93 int index_offset, |
| 93 int page_offset) { | 94 int page_offset) { |
| 94 url_ = url; | 95 url_ = url; |
| 95 index_offset_ = index_offset; | 96 index_offset_ = index_offset; |
| 96 page_offset_ = page_offset; | 97 page_offset_ = page_offset; |
| 97 InvalidateCachedValues(); | 98 InvalidateCachedValues(); |
| 98 } | 99 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 } else if (parameter == kGoogleBaseSuggestURLParameter) { | 144 } else if (parameter == kGoogleBaseSuggestURLParameter) { |
| 144 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 145 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); |
| 145 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { | 146 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { |
| 146 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 147 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, |
| 147 start)); | 148 start)); |
| 148 } else if (parameter == kGoogleRLZParameter) { | 149 } else if (parameter == kGoogleRLZParameter) { |
| 149 replacements->push_back(Replacement(GOOGLE_RLZ, start)); | 150 replacements->push_back(Replacement(GOOGLE_RLZ, start)); |
| 150 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { | 151 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { |
| 151 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); | 152 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); |
| 152 } else { | 153 } else { |
| 153 // It can be some garbage but can also be a javascript block. Put it back. | 154 // If it's a prepopulated URL, we know that it's safe to remove unknown |
| 154 url->insert(start, full_parameter); | 155 // parameters. Otherwise it could be some garbage but can also be a |
| 156 // javascript block. Put it back. | |
| 157 if (!prepopulated_) | |
| 158 url->insert(start, full_parameter); | |
| 155 return false; | 159 return false; |
| 156 } | 160 } |
| 157 return true; | 161 return true; |
| 158 } | 162 } |
| 159 | 163 |
| 160 std::string TemplateURLRef::ParseURL(const std::string& url, | 164 std::string TemplateURLRef::ParseURL(const std::string& url, |
| 161 Replacements* replacements, | 165 Replacements* replacements, |
| 162 bool* valid) const { | 166 bool* valid) const { |
| 163 *valid = false; | 167 *valid = false; |
| 164 std::string parsed_url = url; | 168 std::string parsed_url = url; |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 678 for (std::vector<ImageRef>::const_iterator i = image_refs_.begin(); | 682 for (std::vector<ImageRef>::const_iterator i = image_refs_.begin(); |
| 679 i != image_refs_.end(); ++i) { | 683 i != image_refs_.end(); ++i) { |
| 680 if ((i->type == "image/x-icon" || i->type == "image/vnd.microsoft.icon") | 684 if ((i->type == "image/x-icon" || i->type == "image/vnd.microsoft.icon") |
| 681 && i->width == kFaviconSize && i->height == kFaviconSize) { | 685 && i->width == kFaviconSize && i->height == kFaviconSize) { |
| 682 return i->url; | 686 return i->url; |
| 683 } | 687 } |
| 684 } | 688 } |
| 685 return GURL(); | 689 return GURL(); |
| 686 } | 690 } |
| 687 | 691 |
| 692 void TemplateURL::SetPrepopulateId(int id) { | |
| 693 prepopulate_id_ = id; | |
| 694 if (id > 0) | |
|
sky
2011/06/28 21:02:26
Convert these to SetTemplateURLRefsPrepopulate(id
| |
| 695 SetTemplateURLRefsPrepopulated(true); | |
| 696 else | |
| 697 SetTemplateURLRefsPrepopulated(false); | |
| 698 } | |
| 699 | |
| 688 void TemplateURL::InvalidateCachedValues() const { | 700 void TemplateURL::InvalidateCachedValues() const { |
| 689 url_.InvalidateCachedValues(); | 701 url_.InvalidateCachedValues(); |
| 690 suggestions_url_.InvalidateCachedValues(); | 702 suggestions_url_.InvalidateCachedValues(); |
| 691 if (autogenerate_keyword_) { | 703 if (autogenerate_keyword_) { |
| 692 keyword_.clear(); | 704 keyword_.clear(); |
| 693 keyword_generated_ = false; | 705 keyword_generated_ = false; |
| 694 } | 706 } |
| 695 } | 707 } |
| 696 | 708 |
| 709 void TemplateURL::SetTemplateURLRefsPrepopulated(bool prepopulated) { | |
| 710 suggestions_url_.set_prepopulated(prepopulated); | |
| 711 url_.set_prepopulated(prepopulated); | |
| 712 instant_url_.set_prepopulated(prepopulated); | |
| 713 } | |
| 714 | |
| 697 std::string TemplateURL::GetExtensionId() const { | 715 std::string TemplateURL::GetExtensionId() const { |
| 698 DCHECK(IsExtensionKeyword()); | 716 DCHECK(IsExtensionKeyword()); |
| 699 return GURL(url_.url()).host(); | 717 return GURL(url_.url()).host(); |
| 700 } | 718 } |
| 701 | 719 |
| 702 bool TemplateURL::IsExtensionKeyword() const { | 720 bool TemplateURL::IsExtensionKeyword() const { |
| 703 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme); | 721 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme); |
| 704 } | 722 } |
| OLD | NEW |