OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/gtest_prod_util.h" | 12 #include "base/gtest_prod_util.h" |
13 #include "base/time.h" | 13 #include "base/time.h" |
14 #include "chrome/browser/search_engines/search_engine_type.h" | 14 #include "chrome/browser/search_engines/search_engine_type.h" |
15 #include "chrome/browser/search_engines/template_url_id.h" | 15 #include "chrome/browser/search_engines/template_url_id.h" |
16 #include "googleurl/src/gurl.h" | 16 #include "googleurl/src/gurl.h" |
17 | 17 |
18 class PrefService; | 18 class PrefService; |
19 class Profile; | |
19 class SearchTermsData; | 20 class SearchTermsData; |
20 class TemplateURL; | 21 class TemplateURL; |
21 class WebDataService; | 22 class WebDataService; |
22 struct WDKeywordsResult; | 23 struct WDKeywordsResult; |
23 | 24 |
24 // TemplateURL represents the relevant portions of the Open Search Description | 25 // TemplateURL represents the relevant portions of the Open Search Description |
25 // Document (http://www.opensearch.org/Specifications/OpenSearch). | 26 // Document (http://www.opensearch.org/Specifications/OpenSearch). |
26 // The main use case for TemplateURL is to use the TemplateURLRef returned by | 27 // The main use case for TemplateURL is to use the TemplateURLRef returned by |
27 // suggestions_url or url for keyword/suggestion expansion: | 28 // suggestions_url or url for keyword/suggestion expansion: |
28 // . suggestions_url describes a URL that is ideal for as you type suggestions. | 29 // . suggestions_url describes a URL that is ideal for as you type suggestions. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
64 const SearchTermsData& search_terms_data) const; | 65 const SearchTermsData& search_terms_data) const; |
65 | 66 |
66 // Returns a string that is the result of replacing the search terms in | 67 // Returns a string that is the result of replacing the search terms in |
67 // the url with the specified value. | 68 // the url with the specified value. |
68 // | 69 // |
69 // If this TemplateURLRef does not support replacement (SupportsReplacement | 70 // If this TemplateURLRef does not support replacement (SupportsReplacement |
70 // returns false), an empty string is returned. | 71 // returns false), an empty string is returned. |
71 // | 72 // |
72 // The TemplateURL is used to determine the input encoding for the term. | 73 // The TemplateURL is used to determine the input encoding for the term. |
73 std::string ReplaceSearchTerms( | 74 std::string ReplaceSearchTerms( |
75 Profile* profile, | |
74 const TemplateURL& host, | 76 const TemplateURL& host, |
75 const string16& terms, | 77 const string16& terms, |
76 int accepted_suggestion, | 78 int accepted_suggestion, |
77 const string16& original_query_for_suggestion) const; | 79 const string16& original_query_for_suggestion) const; |
78 | 80 |
79 // Just like ReplaceSearchTerms except that it takes SearchTermsData to supply | 81 // Just like ReplaceSearchTerms except that it takes SearchTermsData to supply |
80 // the data for some search terms. Most of the time ReplaceSearchTerms should | 82 // the data for some search terms. Most of the time ReplaceSearchTerms should |
81 // be called. | 83 // be called. |
82 std::string ReplaceSearchTermsUsingTermsData( | 84 std::string ReplaceSearchTermsUsingTermsData( |
85 Profile* profile, | |
sky
2011/08/08 23:37:23
This too may be invoked from any thread, which imp
sreeram
2011/08/09 16:24:01
I am not sure how to interpret this.
Is the conce
| |
83 const TemplateURL& host, | 86 const TemplateURL& host, |
84 const string16& terms, | 87 const string16& terms, |
85 int accepted_suggestion, | 88 int accepted_suggestion, |
86 const string16& original_query_for_suggestion, | 89 const string16& original_query_for_suggestion, |
87 const SearchTermsData& search_terms_data) const; | 90 const SearchTermsData& search_terms_data) const; |
88 | 91 |
89 // Returns the raw URL. None of the parameters will have been replaced. | 92 // Returns the raw URL. None of the parameters will have been replaced. |
90 const std::string& url() const { return url_; } | 93 const std::string& url() const { return url_; } |
91 | 94 |
92 // Returns the index number of the first search result. | 95 // Returns the index number of the first search result. |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
155 // Enumeration of the known types. | 158 // Enumeration of the known types. |
156 enum ReplacementType { | 159 enum ReplacementType { |
157 ENCODING, | 160 ENCODING, |
158 GOOGLE_ACCEPTED_SUGGESTION, | 161 GOOGLE_ACCEPTED_SUGGESTION, |
159 GOOGLE_BASE_URL, | 162 GOOGLE_BASE_URL, |
160 GOOGLE_BASE_SUGGEST_URL, | 163 GOOGLE_BASE_SUGGEST_URL, |
161 GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 164 GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, |
162 GOOGLE_RLZ, | 165 GOOGLE_RLZ, |
163 GOOGLE_SEARCH_FIELDTRIAL_GROUP, | 166 GOOGLE_SEARCH_FIELDTRIAL_GROUP, |
164 GOOGLE_UNESCAPED_SEARCH_TERMS, | 167 GOOGLE_UNESCAPED_SEARCH_TERMS, |
168 INSTANT_FIELD_TRIAL_GROUP, | |
165 LANGUAGE, | 169 LANGUAGE, |
166 SEARCH_TERMS, | 170 SEARCH_TERMS, |
167 }; | 171 }; |
168 | 172 |
169 // Used to identify an element of the raw url that can be replaced. | 173 // Used to identify an element of the raw url that can be replaced. |
170 struct Replacement { | 174 struct Replacement { |
171 Replacement(ReplacementType type, size_t index) | 175 Replacement(ReplacementType type, size_t index) |
172 : type(type), index(index) {} | 176 : type(type), index(index) {} |
173 ReplacementType type; | 177 ReplacementType type; |
174 size_t index; | 178 size_t index; |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
539 int logo_id_; | 543 int logo_id_; |
540 int prepopulate_id_; | 544 int prepopulate_id_; |
541 // The primary unique identifier for Sync. This is only set on TemplateURLs | 545 // The primary unique identifier for Sync. This is only set on TemplateURLs |
542 // that have been associated with Sync. | 546 // that have been associated with Sync. |
543 std::string sync_guid_; | 547 std::string sync_guid_; |
544 | 548 |
545 // TODO(sky): Add date last parsed OSD file. | 549 // TODO(sky): Add date last parsed OSD file. |
546 }; | 550 }; |
547 | 551 |
548 #endif // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_ | 552 #endif // CHROME_BROWSER_SEARCH_ENGINES_TEMPLATE_URL_H_ |
OLD | NEW |