// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ATHENA_MAIN_URL_SEARCH_PROVIDER_H_ #define ATHENA_MAIN_URL_SEARCH_PROVIDER_H_ #include "base/memory/scoped_ptr.h" #include "components/omnibox/autocomplete_input.h" #include "net/url_request/url_fetcher_delegate.h" #include "ui/app_list/search_provider.h" class TemplateURLService; namespace content { class BrowserContext; } namespace athena { // A sample search provider. class UrlSearchProvider : public app_list::SearchProvider, public net::URLFetcherDelegate { public: UrlSearchProvider(content::BrowserContext* browser_context); virtual ~UrlSearchProvider(); // Overridden from app_list::SearchProvider virtual void Start(const base::string16& query) OVERRIDE; virtual void Stop() OVERRIDE; // Overridden from net::URLFetcherDelegate. virtual void OnURLFetchComplete(const net::URLFetcher* source) OVERRIDE; private: void StartFetchingSuggestions(); content::BrowserContext* browser_context_; // TODO(mukai): This should be provided through BrowserContextKeyedService. scoped_ptr template_url_service_; AutocompleteInput input_; scoped_ptr suggestion_fetcher_; bool should_fetch_suggestions_again_; DISALLOW_COPY_AND_ASSIGN(UrlSearchProvider); }; } // namespace athena #endif // ATHENA_MAIN_URL_SEARCH_PROVIDER_H_