OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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_AUTOCOMPLETE_HISTORY_URL_PROVIDER_H_ | 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_HISTORY_URL_PROVIDER_H_ |
6 #define CHROME_BROWSER_AUTOCOMPLETE_HISTORY_URL_PROVIDER_H_ | 6 #define CHROME_BROWSER_AUTOCOMPLETE_HISTORY_URL_PROVIDER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 #include <deque> | 9 #include <deque> |
10 | 10 |
11 #include "chrome/browser/autocomplete/autocomplete.h" | 11 #include "chrome/browser/autocomplete/autocomplete.h" |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 // requests on the database (which hold a reference to us). Normally, these | 128 // requests on the database (which hold a reference to us). Normally, these |
129 // messages get flushed for each thread. We do a round trip from main, to | 129 // messages get flushed for each thread. We do a round trip from main, to |
130 // history, back to main while holding a reference. If the main thread | 130 // history, back to main while holding a reference. If the main thread |
131 // completes before the history thread, the message to delegate back to the | 131 // completes before the history thread, the message to delegate back to the |
132 // main thread will not run and the reference will leak. Therefore, don't do | 132 // main thread will not run and the reference will leak. Therefore, don't do |
133 // anything on destruction. | 133 // anything on destruction. |
134 class HistoryURLProvider : public AutocompleteProvider { | 134 class HistoryURLProvider : public AutocompleteProvider { |
135 public: | 135 public: |
136 HistoryURLProvider(ACProviderListener* listener, Profile* profile) | 136 HistoryURLProvider(ACProviderListener* listener, Profile* profile) |
137 : AutocompleteProvider(listener, profile, "HistoryURL"), | 137 : AutocompleteProvider(listener, profile, "HistoryURL"), |
138 history_service_(NULL), | |
139 prefixes_(GetPrefixes()), | 138 prefixes_(GetPrefixes()), |
140 params_(NULL) { | 139 params_(NULL) { |
141 } | 140 } |
142 | 141 |
143 #ifdef UNIT_TEST | 142 #ifdef UNIT_TEST |
144 HistoryURLProvider(ACProviderListener* listener, | 143 HistoryURLProvider(ACProviderListener* listener, |
145 HistoryService* history_service) | 144 Profile* profile, |
146 : AutocompleteProvider(listener, NULL, "History"), | 145 const std::wstring& languages) |
147 history_service_(history_service), | 146 : AutocompleteProvider(listener, profile, "History"), |
148 prefixes_(GetPrefixes()), | 147 prefixes_(GetPrefixes()), |
149 params_(NULL) { | 148 params_(NULL), |
| 149 languages_(languages) { |
150 } | 150 } |
151 #endif | 151 #endif |
152 // no destructor (see note above) | 152 // no destructor (see note above) |
153 | 153 |
154 // AutocompleteProvider | 154 // AutocompleteProvider |
155 virtual void Start(const AutocompleteInput& input, | 155 virtual void Start(const AutocompleteInput& input, |
156 bool minimal_changes); | 156 bool minimal_changes); |
157 virtual void Stop(); | 157 virtual void Stop(); |
158 virtual void DeleteMatch(const AutocompleteMatch& match); | 158 virtual void DeleteMatch(const AutocompleteMatch& match); |
159 | 159 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 HistoryMatches* matches, | 372 HistoryMatches* matches, |
373 size_t source_index, | 373 size_t source_index, |
374 const std::vector<GURL>& remove) const; | 374 const std::vector<GURL>& remove) const; |
375 | 375 |
376 // Converts a line from the database into an autocomplete match for display. | 376 // Converts a line from the database into an autocomplete match for display. |
377 AutocompleteMatch HistoryMatchToACMatch(HistoryURLProviderParams* params, | 377 AutocompleteMatch HistoryMatchToACMatch(HistoryURLProviderParams* params, |
378 const HistoryMatch& history_match, | 378 const HistoryMatch& history_match, |
379 MatchType match_type, | 379 MatchType match_type, |
380 size_t match_number); | 380 size_t match_number); |
381 | 381 |
382 // This is only non-null for testing, otherwise the HistoryService from the | |
383 // Profile is used. | |
384 HistoryService* history_service_; | |
385 | |
386 // Prefixes to try appending to user input when looking for a match. | 382 // Prefixes to try appending to user input when looking for a match. |
387 const Prefixes prefixes_; | 383 const Prefixes prefixes_; |
388 | 384 |
389 // Params for the current query. The provider should not free this directly; | 385 // Params for the current query. The provider should not free this directly; |
390 // instead, it is passed as a parameter through the history backend, and the | 386 // instead, it is passed as a parameter through the history backend, and the |
391 // parameter itself is freed once it's no longer needed. The only reason we | 387 // parameter itself is freed once it's no longer needed. The only reason we |
392 // keep this member is so we can set the cancel bit on it. | 388 // keep this member is so we can set the cancel bit on it. |
393 HistoryURLProviderParams* params_; | 389 HistoryURLProviderParams* params_; |
| 390 |
| 391 // Only used by unittests; if non-empty, overrides accept-languages in the |
| 392 // profile's pref system. |
| 393 std::wstring languages_; |
394 }; | 394 }; |
395 | 395 |
396 #endif // CHROME_BROWSER_AUTOCOMPLETE_HISTORY_URL_PROVIDER_H_ | 396 #endif // CHROME_BROWSER_AUTOCOMPLETE_HISTORY_URL_PROVIDER_H_ |
OLD | NEW |