Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Side by Side Diff: chrome/browser/search_engines/template_url.h

Issue 12250033: Consolidate search terms extraction and Instant process determination. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Style nit Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #ifndef CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_ 5 #ifndef CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_
6 #define CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_ 6 #define CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 114
115 // Returns a string representation of this TemplateURLRef suitable for 115 // Returns a string representation of this TemplateURLRef suitable for
116 // display. The display format is the same as the format used by Firefox. 116 // display. The display format is the same as the format used by Firefox.
117 string16 DisplayURL() const; 117 string16 DisplayURL() const;
118 118
119 // Converts a string as returned by DisplayURL back into a string as 119 // Converts a string as returned by DisplayURL back into a string as
120 // understood by TemplateURLRef. 120 // understood by TemplateURLRef.
121 static std::string DisplayURLToURLRef(const string16& display_url); 121 static std::string DisplayURLToURLRef(const string16& display_url);
122 122
123 // If this TemplateURLRef is valid and contains one search term, this returns 123 // If this TemplateURLRef is valid and contains one search term, this returns
124 // the scheme/host/path of the URL, otherwise this returns an empty string. 124 // the host/path of the URL, otherwise this returns an empty string.
125 const std::string& GetScheme() const;
126 const std::string& GetHost() const; 125 const std::string& GetHost() const;
127 const std::string& GetPath() const; 126 const std::string& GetPath() const;
128 127
129 // If this TemplateURLRef is valid and contains one search term, this returns 128 // If this TemplateURLRef is valid and contains one search term, this returns
130 // the key of the search term, otherwise this returns an empty string. 129 // the key of the search term, otherwise this returns an empty string.
131 const std::string& GetSearchTermKey() const; 130 const std::string& GetSearchTermKey() const;
132 131
133 // Converts the specified term in our owner's encoding to a string16. 132 // Converts the specified term in our owner's encoding to a string16.
134 string16 SearchTermToString16(const std::string& term) const; 133 string16 SearchTermToString16(const std::string& term) const;
135 134
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 // replacements_ giving the index of the terms to replace. 244 // replacements_ giving the index of the terms to replace.
246 mutable std::string parsed_url_; 245 mutable std::string parsed_url_;
247 246
248 // Do we support replacement? 247 // Do we support replacement?
249 mutable bool supports_replacements_; 248 mutable bool supports_replacements_;
250 249
251 // The replaceable parts of url (parsed_url_). These are ordered by index 250 // The replaceable parts of url (parsed_url_). These are ordered by index
252 // into the string, and may be empty. 251 // into the string, and may be empty.
253 mutable Replacements replacements_; 252 mutable Replacements replacements_;
254 253
255 // Scheme, host, path, key and location of the search term. These are only set 254 // Host, path, key and location of the search term. These are only set if the
256 // if the url contains one search term. 255 // url contains one search term.
257 mutable std::string scheme_;
258 mutable std::string host_; 256 mutable std::string host_;
259 mutable std::string path_; 257 mutable std::string path_;
260 mutable std::string search_term_key_; 258 mutable std::string search_term_key_;
261 mutable url_parse::Parsed::ComponentType search_term_key_location_; 259 mutable url_parse::Parsed::ComponentType search_term_key_location_;
262 260
263 // Whether the contained URL is a pre-populated URL. 261 // Whether the contained URL is a pre-populated URL.
264 bool prepopulated_; 262 bool prepopulated_;
265 263
266 DISALLOW_COPY_AND_ASSIGN(TemplateURLRef); 264 DISALLOW_COPY_AND_ASSIGN(TemplateURLRef);
267 }; 265 };
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 bool ExtractSearchTermsFromURL(const GURL& url, string16* search_terms); 484 bool ExtractSearchTermsFromURL(const GURL& url, string16* search_terms);
487 485
488 // Returns true if the specified |url| contains the search terms replacement 486 // Returns true if the specified |url| contains the search terms replacement
489 // key in either the query or the ref. This method does not verify anything 487 // key in either the query or the ref. This method does not verify anything
490 // else about the URL. In particular, it does not check that the domain 488 // else about the URL. In particular, it does not check that the domain
491 // matches that of this TemplateURL. 489 // matches that of this TemplateURL.
492 // TODO(beaudoin): Rename this to reflect that it really checks for an 490 // TODO(beaudoin): Rename this to reflect that it really checks for an
493 // InstantExtended capable URL. 491 // InstantExtended capable URL.
494 bool HasSearchTermsReplacementKey(const GURL& url) const; 492 bool HasSearchTermsReplacementKey(const GURL& url) const;
495 493
496 // Returns true if the specified |url| matches the search, alternates, or
497 // instant url in scheme, domain, and path. In addition, the search term
498 // replacement key must be present in the |url|.
499 // This predicate is used for site isolation purposes, so has security
500 // implications. Seek security review if changing it.
501 bool IsInstantURL(const GURL& url);
502
503 private: 494 private:
504 friend class TemplateURLService; 495 friend class TemplateURLService;
505 496
506 void CopyFrom(const TemplateURL& other); 497 void CopyFrom(const TemplateURL& other);
507 498
508 void SetURL(const std::string& url); 499 void SetURL(const std::string& url);
509 void SetPrepopulateId(int id); 500 void SetPrepopulateId(int id);
510 501
511 // Resets the keyword if IsGoogleSearchURLWithReplaceableKeyword() or |force|. 502 // Resets the keyword if IsGoogleSearchURLWithReplaceableKeyword() or |force|.
512 // The |force| parameter is useful when the existing keyword is known to be 503 // The |force| parameter is useful when the existing keyword is known to be
513 // a placeholder. The resulting keyword is generated using 504 // a placeholder. The resulting keyword is generated using
514 // TemplateURLService::GenerateSearchURL() and 505 // TemplateURLService::GenerateSearchURL() and
515 // TemplateURLService::GenerateKeyword(). 506 // TemplateURLService::GenerateKeyword().
516 void ResetKeywordIfNecessary(bool force); 507 void ResetKeywordIfNecessary(bool force);
517 508
518 Profile* profile_; 509 Profile* profile_;
519 TemplateURLData data_; 510 TemplateURLData data_;
520 TemplateURLRef url_ref_; 511 TemplateURLRef url_ref_;
521 TemplateURLRef suggestions_url_ref_; 512 TemplateURLRef suggestions_url_ref_;
522 TemplateURLRef instant_url_ref_; 513 TemplateURLRef instant_url_ref_;
523 514
524 // TODO(sky): Add date last parsed OSD file. 515 // TODO(sky): Add date last parsed OSD file.
525 516
526 DISALLOW_COPY_AND_ASSIGN(TemplateURL); 517 DISALLOW_COPY_AND_ASSIGN(TemplateURL);
527 }; 518 };
528 519
529 #endif // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_ 520 #endif // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_
OLDNEW
« no previous file with comments | « chrome/browser/policy/policy_browsertest.cc ('k') | chrome/browser/search_engines/template_url.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698