OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/search_engines/template_url.h" | 5 #include "components/search_engines/template_url.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 bool TemplateURLRef::IsValid(const SearchTermsData& search_terms_data) const { | 345 bool TemplateURLRef::IsValid(const SearchTermsData& search_terms_data) const { |
346 ParseIfNecessary(search_terms_data); | 346 ParseIfNecessary(search_terms_data); |
347 return valid_; | 347 return valid_; |
348 } | 348 } |
349 | 349 |
350 base::string16 TemplateURLRef::DisplayURL( | 350 base::string16 TemplateURLRef::DisplayURL( |
351 const SearchTermsData& search_terms_data) const { | 351 const SearchTermsData& search_terms_data) const { |
352 ParseIfNecessary(search_terms_data); | 352 ParseIfNecessary(search_terms_data); |
353 std::string result(GetURL()); | 353 std::string result(GetURL()); |
354 if (valid_ && !replacements_.empty()) { | 354 if (valid_ && !replacements_.empty()) { |
355 ReplaceSubstringsAfterOffset(&result, 0, | 355 base::ReplaceSubstringsAfterOffset(&result, 0, |
356 kSearchTermsParameterFull, | 356 kSearchTermsParameterFull, |
357 kDisplaySearchTerms); | 357 kDisplaySearchTerms); |
358 ReplaceSubstringsAfterOffset(&result, 0, | 358 base::ReplaceSubstringsAfterOffset(&result, 0, |
359 kGoogleUnescapedSearchTermsParameterFull, | 359 kGoogleUnescapedSearchTermsParameterFull, |
360 kDisplayUnescapedSearchTerms); | 360 kDisplayUnescapedSearchTerms); |
361 } | 361 } |
362 return base::UTF8ToUTF16(result); | 362 return base::UTF8ToUTF16(result); |
363 } | 363 } |
364 | 364 |
365 // static | 365 // static |
366 std::string TemplateURLRef::DisplayURLToURLRef( | 366 std::string TemplateURLRef::DisplayURLToURLRef( |
367 const base::string16& display_url) { | 367 const base::string16& display_url) { |
368 std::string result = base::UTF16ToUTF8(display_url); | 368 std::string result = base::UTF16ToUTF8(display_url); |
369 ReplaceSubstringsAfterOffset(&result, 0, | 369 base::ReplaceSubstringsAfterOffset(&result, 0, |
370 kDisplaySearchTerms, | 370 kDisplaySearchTerms, |
371 kSearchTermsParameterFull); | 371 kSearchTermsParameterFull); |
372 ReplaceSubstringsAfterOffset(&result, 0, | 372 base::ReplaceSubstringsAfterOffset(&result, 0, |
373 kDisplayUnescapedSearchTerms, | 373 kDisplayUnescapedSearchTerms, |
374 kGoogleUnescapedSearchTermsParameterFull); | 374 kGoogleUnescapedSearchTermsParameterFull); |
375 return result; | 375 return result; |
376 } | 376 } |
377 | 377 |
378 const std::string& TemplateURLRef::GetHost( | 378 const std::string& TemplateURLRef::GetHost( |
379 const SearchTermsData& search_terms_data) const { | 379 const SearchTermsData& search_terms_data) const { |
380 ParseIfNecessary(search_terms_data); | 380 ParseIfNecessary(search_terms_data); |
381 return host_; | 381 return host_; |
382 } | 382 } |
383 | 383 |
384 const std::string& TemplateURLRef::GetPath( | 384 const std::string& TemplateURLRef::GetPath( |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 // could be more than one term, but it's uncommon; so we punt. | 770 // could be more than one term, but it's uncommon; so we punt. |
771 if (has_only_one_search_term) | 771 if (has_only_one_search_term) |
772 ParseHostAndSearchTermKey(search_terms_data); | 772 ParseHostAndSearchTermKey(search_terms_data); |
773 } | 773 } |
774 } | 774 } |
775 } | 775 } |
776 | 776 |
777 void TemplateURLRef::ParseHostAndSearchTermKey( | 777 void TemplateURLRef::ParseHostAndSearchTermKey( |
778 const SearchTermsData& search_terms_data) const { | 778 const SearchTermsData& search_terms_data) const { |
779 std::string url_string(GetURL()); | 779 std::string url_string(GetURL()); |
780 ReplaceSubstringsAfterOffset(&url_string, 0, "{google:baseURL}", | 780 base::ReplaceSubstringsAfterOffset( |
781 search_terms_data.GoogleBaseURLValue()); | 781 &url_string, 0, "{google:baseURL}", |
782 ReplaceSubstringsAfterOffset(&url_string, 0, "{google:baseSuggestURL}", | 782 search_terms_data.GoogleBaseURLValue()); |
783 search_terms_data.GoogleBaseSuggestURLValue()); | 783 base::ReplaceSubstringsAfterOffset( |
| 784 &url_string, 0, "{google:baseSuggestURL}", |
| 785 search_terms_data.GoogleBaseSuggestURLValue()); |
784 | 786 |
785 search_term_key_.clear(); | 787 search_term_key_.clear(); |
786 search_term_position_in_path_ = std::string::npos; | 788 search_term_position_in_path_ = std::string::npos; |
787 host_.clear(); | 789 host_.clear(); |
788 path_.clear(); | 790 path_.clear(); |
789 search_term_key_location_ = url::Parsed::QUERY; | 791 search_term_key_location_ = url::Parsed::QUERY; |
790 | 792 |
791 GURL url(url_string); | 793 GURL url(url_string); |
792 if (!url.is_valid()) | 794 if (!url.is_valid()) |
793 return; | 795 return; |
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1508 // patterns. This means that given patterns | 1510 // patterns. This means that given patterns |
1509 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], | 1511 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], |
1510 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would | 1512 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would |
1511 // return false. This is important for at least Google, where such URLs | 1513 // return false. This is important for at least Google, where such URLs |
1512 // are invalid. | 1514 // are invalid. |
1513 return !search_terms->empty(); | 1515 return !search_terms->empty(); |
1514 } | 1516 } |
1515 } | 1517 } |
1516 return false; | 1518 return false; |
1517 } | 1519 } |
OLD | NEW |