Index: chrome/browser/autocomplete/zero_suggest_provider.h |
diff --git a/chrome/browser/autocomplete/zero_suggest_provider.h b/chrome/browser/autocomplete/zero_suggest_provider.h |
index 23dc2fe1e6d8217ed75dc94f74098062df029a57..5c7b9f7287cea6d4d3c9a526ea3dea91a910d6ba 100644 |
--- a/chrome/browser/autocomplete/zero_suggest_provider.h |
+++ b/chrome/browser/autocomplete/zero_suggest_provider.h |
@@ -21,7 +21,9 @@ |
#include "chrome/browser/autocomplete/search_provider.h" |
#include "chrome/browser/history/history_types.h" |
#include "components/metrics/proto/omnibox_event.pb.h" |
+#include "net/url_request/url_fetcher_delegate.h" |
+class AutocompleteProviderListener; |
class TemplateURLService; |
namespace base { |
@@ -47,7 +49,8 @@ class PrefRegistrySyncable; |
// TODO(jered): Consider deleting this class and building this functionality |
// into SearchProvider after dogfood and after we break the association between |
// omnibox text and suggestions. |
-class ZeroSuggestProvider : public BaseSearchProvider { |
+class ZeroSuggestProvider : public BaseSearchProvider, |
+ public net::URLFetcherDelegate { |
public: |
// Creates and returns an instance of this provider. |
static ZeroSuggestProvider* Create(AutocompleteProviderListener* listener, |
@@ -78,21 +81,22 @@ class ZeroSuggestProvider : public BaseSearchProvider { |
virtual ~ZeroSuggestProvider(); |
// BaseSearchProvider: |
- virtual bool StoreSuggestionResponse(const std::string& json_data, |
- const base::Value& parsed_data) OVERRIDE; |
virtual const TemplateURL* GetTemplateURL(bool is_keyword) const OVERRIDE; |
virtual const AutocompleteInput GetInput(bool is_keyword) const OVERRIDE; |
- virtual SearchSuggestionParser::Results* GetResultsToFill( |
- bool is_keyword) OVERRIDE; |
virtual bool ShouldAppendExtraParams( |
const SearchSuggestionParser::SuggestResult& result) const OVERRIDE; |
virtual void StopSuggest() OVERRIDE; |
virtual void ClearAllResults() OVERRIDE; |
- virtual int GetDefaultResultRelevance() const OVERRIDE; |
virtual void RecordDeletionResult(bool success) OVERRIDE; |
- virtual void LogFetchComplete(bool success, bool is_keyword) OVERRIDE; |
- virtual bool IsKeywordFetcher(const net::URLFetcher* fetcher) const OVERRIDE; |
- virtual void UpdateMatches() OVERRIDE; |
+ |
+ // net::URLFetcherDelegate: |
+ virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; |
+ |
+ // Optionally, cache the received |json_data| and return true if we want |
+ // to stop processing results at this point. The |parsed_data| is the parsed |
+ // version of |json_data| used to determine if we received an empty result. |
+ bool StoreSuggestionResponse(const std::string& json_data, |
+ const base::Value& parsed_data); |
// Adds AutocompleteMatches for each of the suggestions in |results| to |
// |map|. |
@@ -134,6 +138,8 @@ class ZeroSuggestProvider : public BaseSearchProvider { |
// populates |matches_| with cached results. |
void MaybeUseCachedSuggestions(); |
+ AutocompleteProviderListener* listener_; |
+ |
// The URL for which a suggestion fetch is pending. |
std::string current_query_; |