Index: chrome/browser/search_engines/template_url.h |
diff --git a/chrome/browser/search_engines/template_url.h b/chrome/browser/search_engines/template_url.h |
index a8f41125e06bc3da19853be2bef68f3f5e40f961..e2a1a597e6085e830501bbfa41a3e92da018e07a 100644 |
--- a/chrome/browser/search_engines/template_url.h |
+++ b/chrome/browser/search_engines/template_url.h |
@@ -142,12 +142,18 @@ class TemplateURLRef { |
// Use the pattern referred to by this TemplateURLRef to match the provided |
// |url| and extract |search_terms| from it. Returns true if the pattern |
- // matches, even if |search_terms| is empty. Returns false and an empty |
- // |search_terms| if the pattern does not match. |
+ // matches, even if |search_terms| is empty. In this case |
+ // |search_term_location|, if not NULL, indicates whether the search terms |
+ // were found in the query or the ref parameters; and |search_terms_position|, |
+ // if not NULL, contains the position of the search terms in the query or the |
+ // ref parameters. Returns false and an empty |search_terms| if the pattern |
+ // does not match. |
bool ExtractSearchTermsFromURL( |
const GURL& url, |
string16* search_terms, |
- const SearchTermsData& search_terms_data) const; |
+ const SearchTermsData& search_terms_data, |
+ url_parse::Parsed::ComponentType* search_term_location, |
Peter Kasting
2013/03/22 20:20:06
Nit: I suggest |search_term_component| here and in
beaudoin
2013/03/22 23:10:43
Done.
beaudoin
2013/03/22 23:10:43
Done.
|
+ url_parse::Component* search_terms_position) const; |
private: |
friend class TemplateURL; |
@@ -514,6 +520,27 @@ class TemplateURL { |
// InstantExtended capable URL. |
bool HasSearchTermsReplacementKey(const GURL& url) const; |
+ // Given a |url| corresponding to this TemplateURL, identifies the search |
+ // terms and replace them with the ones in |search_terms_args|, leaving the |
Peter Kasting
2013/03/22 20:20:06
Nit: replace -> replaces
beaudoin
2013/03/22 23:10:43
Done.
|
+ // other parameters untouched. If the replacement fails, returns false and |
+ // leaves |result| untouched. |
+ bool ReplaceSearchTermsInURL( |
Peter Kasting
2013/03/22 20:20:06
As with autocomplete_input.h, I'd specifically not
beaudoin
2013/03/22 23:10:43
I hope to upstream the call to this too, and make
|
+ const GURL& url, |
+ const TemplateURLRef::SearchTermsArgs& search_terms_args, |
+ GURL* result); |
+ |
+ // Encode the search terms from |search_terms_args| so that we know the |
Peter Kasting
2013/03/22 20:20:06
Nit: Encode -> Encodes
beaudoin
2013/03/22 23:10:43
Done.
|
+ // |input_encoding|. Returns the |encoded_terms| and the |
+ // |encoded_original_query|. |encoded_terms| may be escaped as path or query |
+ // depending on |is_in_query|; |encoded_original_query| is always escaped as |
+ // query. |
+ void EncodeSearchTerms( |
+ const TemplateURLRef::SearchTermsArgs& search_terms_args, |
+ bool is_in_query, |
+ std::string* input_encoding, |
+ string16* encoded_terms, |
+ string16* encoded_original_query) const; |
+ |
private: |
friend class TemplateURLService; |
@@ -529,6 +556,17 @@ class TemplateURL { |
// TemplateURLService::GenerateKeyword(). |
void ResetKeywordIfNecessary(bool force); |
+ // Use the alternate URLs and the search URL to match the provided |url| |
Peter Kasting
2013/03/22 20:20:06
Nit: Use -> Uses
beaudoin
2013/03/22 23:10:43
Done.
|
+ // and extract |search_terms| from it as well as the |search_terms_location| |
+ // (either REF or QUERY) and |search_terms_location| at which the |
+ // |search_terms| are found in |url|. See also ExtractSearchTermsFromURL(). |
+ bool FindSearchTermsInURL( |
+ const GURL& url, |
+ const SearchTermsData& search_terms_data, |
+ string16* search_terms, |
+ url_parse::Parsed::ComponentType* search_terms_location, |
+ url_parse::Component* search_terms_position); |
+ |
Profile* profile_; |
TemplateURLData data_; |
TemplateURLRef url_ref_; |