OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/template_url.h" | 5 #include "chrome/browser/template_url.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
10 #include "chrome/browser/rlz/rlz.h" | 10 #include "chrome/browser/rlz/rlz.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 std::wstring parameter(url->substr(start + 1, length)); | 95 std::wstring parameter(url->substr(start + 1, length)); |
96 // Remove the parameter from the string. | 96 // Remove the parameter from the string. |
97 url->erase(start, end - start + 1); | 97 url->erase(start, end - start + 1); |
98 if (parameter == kSearchTermsParameter) { | 98 if (parameter == kSearchTermsParameter) { |
99 replacements->push_back(Replacement(SEARCH_TERMS, static_cast<int>(start))); | 99 replacements->push_back(Replacement(SEARCH_TERMS, static_cast<int>(start))); |
100 } else if (parameter == kCountParameter) { | 100 } else if (parameter == kCountParameter) { |
101 if (!optional) | 101 if (!optional) |
102 url->insert(start, kDefaultCount); | 102 url->insert(start, kDefaultCount); |
103 } else if (parameter == kStartIndexParameter) { | 103 } else if (parameter == kStartIndexParameter) { |
104 if (!optional) { | 104 if (!optional) { |
105 wchar_t start_string[12]; | 105 url->insert(start, IntToWString(index_offset_)); |
106 if (swprintf_s(start_string, L"%d", index_offset_) <= 0) | |
107 return false; | |
108 url->insert(start, start_string); | |
109 } | 106 } |
110 } else if (parameter == kStartPageParameter) { | 107 } else if (parameter == kStartPageParameter) { |
111 if (!optional) { | 108 if (!optional) { |
112 wchar_t start_string[12]; | 109 url->insert(start, IntToWString(page_offset_)); |
113 if (swprintf_s(start_string, L"%d", page_offset_) <= 0) | |
114 return false; | |
115 url->insert(start, start_string); | |
116 } | 110 } |
117 } else if (parameter == kLanguageParameter) { | 111 } else if (parameter == kLanguageParameter) { |
118 replacements->push_back(Replacement(LANGUAGE, static_cast<int>(start))); | 112 replacements->push_back(Replacement(LANGUAGE, static_cast<int>(start))); |
119 } else if (parameter == kInputEncodingParameter) { | 113 } else if (parameter == kInputEncodingParameter) { |
120 replacements->push_back(Replacement(ENCODING, static_cast<int>(start))); | 114 replacements->push_back(Replacement(ENCODING, static_cast<int>(start))); |
121 } else if (parameter == kOutputEncodingParameter) { | 115 } else if (parameter == kOutputEncodingParameter) { |
122 if (!optional) | 116 if (!optional) |
123 url->insert(start, kOutputEncodingType); | 117 url->insert(start, kOutputEncodingType); |
124 } else if (parameter == kGoogleAcceptedSuggestionParameter) { | 118 } else if (parameter == kGoogleAcceptedSuggestionParameter) { |
125 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, | 119 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 } | 194 } |
201 | 195 |
202 void TemplateURLRef::ParseHostAndSearchTermKey() const { | 196 void TemplateURLRef::ParseHostAndSearchTermKey() const { |
203 std::wstring url_string = url_; | 197 std::wstring url_string = url_; |
204 ReplaceSubstringsAfterOffset(&url_string, 0, kGoogleBaseURLParameterFull, | 198 ReplaceSubstringsAfterOffset(&url_string, 0, kGoogleBaseURLParameterFull, |
205 GoogleBaseURLValue()); | 199 GoogleBaseURLValue()); |
206 ReplaceSubstringsAfterOffset(&url_string, 0, | 200 ReplaceSubstringsAfterOffset(&url_string, 0, |
207 kGoogleBaseSuggestURLParameterFull, | 201 kGoogleBaseSuggestURLParameterFull, |
208 GoogleBaseSuggestURLValue()); | 202 GoogleBaseSuggestURLValue()); |
209 | 203 |
210 GURL url(url_string); | 204 GURL url(WideToUTF8(url_string)); |
211 if (!url.is_valid()) | 205 if (!url.is_valid()) |
212 return; | 206 return; |
213 | 207 |
214 std::string query_string = url.query(); | 208 std::string query_string = url.query(); |
215 if (query_string.empty()) | 209 if (query_string.empty()) |
216 return; | 210 return; |
217 | 211 |
218 url_parse::Component query, key, value; | 212 url_parse::Component query, key, value; |
219 query.len = static_cast<int>(query_string.size()); | 213 query.len = static_cast<int>(query_string.size()); |
220 while (url_parse::ExtractQueryKeyValue(query_string.c_str(), &query, &key, | 214 while (url_parse::ExtractQueryKeyValue(query_string.c_str(), &query, &key, |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 | 440 |
447 // Returns the value to use for replacements of type GOOGLE_BASE_SUGGEST_URL. | 441 // Returns the value to use for replacements of type GOOGLE_BASE_SUGGEST_URL. |
448 // static | 442 // static |
449 std::wstring TemplateURLRef::GoogleBaseSuggestURLValue() { | 443 std::wstring TemplateURLRef::GoogleBaseSuggestURLValue() { |
450 // The suggest base URL we want at the end is something like | 444 // The suggest base URL we want at the end is something like |
451 // "http://clients1.google.TLD/complete/". The key bit we want from the | 445 // "http://clients1.google.TLD/complete/". The key bit we want from the |
452 // original Google base URL is the TLD. | 446 // original Google base URL is the TLD. |
453 | 447 |
454 // Start with the Google base URL. | 448 // Start with the Google base URL. |
455 const GURL base_url(google_base_url_ ? | 449 const GURL base_url(google_base_url_ ? |
456 GURL(*google_base_url_) : GoogleURLTracker::GoogleURL()); | 450 GURL(WideToUTF8(*google_base_url_)) : GoogleURLTracker::GoogleURL()); |
457 DCHECK(base_url.is_valid()); | 451 DCHECK(base_url.is_valid()); |
458 | 452 |
459 // Change "www." to "clients1." in the hostname. If no "www." was found, just | 453 // Change "www." to "clients1." in the hostname. If no "www." was found, just |
460 // prepend "clients1.". | 454 // prepend "clients1.". |
461 const std::string base_host(base_url.host()); | 455 const std::string base_host(base_url.host()); |
462 GURL::Replacements repl; | 456 GURL::Replacements repl; |
463 const std::string suggest_host("clients1." + | 457 const std::string suggest_host("clients1." + |
464 (base_host.compare(0, 4, "www.") ? base_host : base_host.substr(4))); | 458 (base_host.compare(0, 4, "www.") ? base_host : base_host.substr(4))); |
465 repl.SetHostStr(suggest_host); | 459 repl.SetHostStr(suggest_host); |
466 | 460 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 return GURL(); | 549 return GURL(); |
556 } | 550 } |
557 | 551 |
558 void TemplateURL::InvalidateCachedValues() const { | 552 void TemplateURL::InvalidateCachedValues() const { |
559 url_.InvalidateCachedValues(); | 553 url_.InvalidateCachedValues(); |
560 suggestions_url_.InvalidateCachedValues(); | 554 suggestions_url_.InvalidateCachedValues(); |
561 if (autogenerate_keyword_) | 555 if (autogenerate_keyword_) |
562 keyword_.clear(); | 556 keyword_.clear(); |
563 } | 557 } |
564 | 558 |
OLD | NEW |