| 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 #ifndef COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_H_ | 5 #ifndef COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_H_ |
| 6 #define COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_H_ | 6 #define COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 base::string16* search_terms, | 278 base::string16* search_terms, |
| 279 const SearchTermsData& search_terms_data, | 279 const SearchTermsData& search_terms_data, |
| 280 url::Parsed::ComponentType* search_term_component, | 280 url::Parsed::ComponentType* search_term_component, |
| 281 url::Component* search_terms_position) const; | 281 url::Component* search_terms_position) const; |
| 282 | 282 |
| 283 // Whether the URL uses POST (as opposed to GET). | 283 // Whether the URL uses POST (as opposed to GET). |
| 284 bool UsesPOSTMethod(const SearchTermsData& search_terms_data) const; | 284 bool UsesPOSTMethod(const SearchTermsData& search_terms_data) const; |
| 285 | 285 |
| 286 private: | 286 private: |
| 287 friend class TemplateURL; | 287 friend class TemplateURL; |
| 288 friend class TemplateURLTest; |
| 288 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, SetPrepopulatedAndParse); | 289 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, SetPrepopulatedAndParse); |
| 289 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseParameterKnown); | 290 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseParameterKnown); |
| 290 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseParameterUnknown); | 291 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseParameterUnknown); |
| 291 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLEmpty); | 292 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLEmpty); |
| 292 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLNoTemplateEnd); | 293 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLNoTemplateEnd); |
| 293 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLNoKnownParameters); | 294 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLNoKnownParameters); |
| 294 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLTwoParameters); | 295 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLTwoParameters); |
| 295 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLNestedParameter); | 296 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ParseURLNestedParameter); |
| 296 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, URLRefTestImageURLWithPOST); | 297 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, URLRefTestImageURLWithPOST); |
| 297 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ReflectsBookmarkBarPinned); | 298 FRIEND_TEST_ALL_PREFIXES(TemplateURLTest, ReflectsBookmarkBarPinned); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 Replacement(ReplacementType type, size_t index) | 338 Replacement(ReplacementType type, size_t index) |
| 338 : type(type), index(index), is_post_param(false) {} | 339 : type(type), index(index), is_post_param(false) {} |
| 339 ReplacementType type; | 340 ReplacementType type; |
| 340 size_t index; | 341 size_t index; |
| 341 // Indicates the location in where the replacement is replaced. If | 342 // Indicates the location in where the replacement is replaced. If |
| 342 // |is_post_param| is false, |index| indicates the byte position in | 343 // |is_post_param| is false, |index| indicates the byte position in |
| 343 // |parsed_url_|. Otherwise, |index| is the index of |post_params_|. | 344 // |parsed_url_|. Otherwise, |index| is the index of |post_params_|. |
| 344 bool is_post_param; | 345 bool is_post_param; |
| 345 }; | 346 }; |
| 346 | 347 |
| 348 // Stores a single parameter for a POST. |
| 349 struct PostParam { |
| 350 std::string name; |
| 351 std::string value; |
| 352 std::string content_type; |
| 353 }; |
| 354 |
| 347 // The list of elements to replace. | 355 // The list of elements to replace. |
| 348 typedef std::vector<struct Replacement> Replacements; | 356 typedef std::vector<struct Replacement> Replacements; |
| 349 // Type to store <key, value> pairs for POST URLs. | |
| 350 typedef std::pair<std::string, std::string> PostParam; | |
| 351 typedef std::vector<PostParam> PostParams; | 357 typedef std::vector<PostParam> PostParams; |
| 352 | 358 |
| 353 // TemplateURLRef internally caches values to make replacement quick. This | 359 // TemplateURLRef internally caches values to make replacement quick. This |
| 354 // method invalidates any cached values. | 360 // method invalidates any cached values. |
| 355 void InvalidateCachedValues() const; | 361 void InvalidateCachedValues() const; |
| 356 | 362 |
| 357 // Parses the parameter in url at the specified offset. start/end specify the | 363 // Parses the parameter in url at the specified offset. start/end specify the |
| 358 // range of the parameter in the url, including the braces. If the parameter | 364 // range of the parameter in the url, including the braces. If the parameter |
| 359 // is valid, url is updated to reflect the appropriate parameter. If | 365 // is valid, url is updated to reflect the appropriate parameter. If |
| 360 // the parameter is one of the known parameters an element is added to | 366 // the parameter is one of the known parameters an element is added to |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 TemplateURLRef new_tab_url_ref_; | 725 TemplateURLRef new_tab_url_ref_; |
| 720 TemplateURLRef contextual_search_url_ref_; | 726 TemplateURLRef contextual_search_url_ref_; |
| 721 scoped_ptr<AssociatedExtensionInfo> extension_info_; | 727 scoped_ptr<AssociatedExtensionInfo> extension_info_; |
| 722 | 728 |
| 723 // TODO(sky): Add date last parsed OSD file. | 729 // TODO(sky): Add date last parsed OSD file. |
| 724 | 730 |
| 725 DISALLOW_COPY_AND_ASSIGN(TemplateURL); | 731 DISALLOW_COPY_AND_ASSIGN(TemplateURL); |
| 726 }; | 732 }; |
| 727 | 733 |
| 728 #endif // COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_H_ | 734 #endif // COMPONENTS_SEARCH_ENGINES_TEMPLATE_URL_H_ |
| OLD | NEW |