| // Copyright 2015 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 IOS_CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_PROVIDER_CLIENT_IMPL_H_ | 
 | #define IOS_CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_PROVIDER_CLIENT_IMPL_H_ | 
 |  | 
 | #include "base/macros.h" | 
 | #include "components/omnibox/browser/autocomplete_provider_client.h" | 
 | #include "ios/chrome/browser/autocomplete/autocomplete_scheme_classifier_impl.h" | 
 | #include "ios/chrome/browser/search_engines/ui_thread_search_terms_data.h" | 
 |  | 
 | namespace ios { | 
 | class ChromeBrowserState; | 
 | } | 
 |  | 
 | // AutocompleteProviderClientImpl provides iOS-specific implementation of | 
 | // AutocompleteProviderClient interface. | 
 | class AutocompleteProviderClientImpl : public AutocompleteProviderClient { | 
 |  public: | 
 |   explicit AutocompleteProviderClientImpl( | 
 |       ios::ChromeBrowserState* browser_state); | 
 |   ~AutocompleteProviderClientImpl() override; | 
 |  | 
 |   // AutocompleteProviderClient implementation. | 
 |   net::URLRequestContextGetter* GetRequestContext() override; | 
 |   PrefService* GetPrefs() override; | 
 |   const AutocompleteSchemeClassifier& GetSchemeClassifier() const override; | 
 |   AutocompleteClassifier* GetAutocompleteClassifier() override; | 
 |   history::HistoryService* GetHistoryService() override; | 
 |   scoped_refptr<history::TopSites> GetTopSites() override; | 
 |   bookmarks::BookmarkModel* GetBookmarkModel() override; | 
 |   history::URLDatabase* GetInMemoryDatabase() override; | 
 |   InMemoryURLIndex* GetInMemoryURLIndex() override; | 
 |   TemplateURLService* GetTemplateURLService() override; | 
 |   const TemplateURLService* GetTemplateURLService() const override; | 
 |   const SearchTermsData& GetSearchTermsData() const override; | 
 |   scoped_refptr<ShortcutsBackend> GetShortcutsBackend() override; | 
 |   scoped_refptr<ShortcutsBackend> GetShortcutsBackendIfExists() override; | 
 |   scoped_ptr<KeywordExtensionsDelegate> GetKeywordExtensionsDelegate( | 
 |       KeywordProvider* keyword_provider) override; | 
 |   std::string GetAcceptLanguages() const override; | 
 |   std::string GetEmbedderRepresentationOfAboutScheme() override; | 
 |   std::vector<base::string16> GetBuiltinURLs() override; | 
 |   std::vector<base::string16> GetBuiltinsToProvideAsUserTypes() override; | 
 |   bool IsOffTheRecord() const override; | 
 |   bool SearchSuggestEnabled() const override; | 
 |   bool TabSyncEnabledAndUnencrypted() const override; | 
 |   void Classify( | 
 |       const base::string16& text, | 
 |       bool prefer_keyword, | 
 |       bool allow_exact_keyword_match, | 
 |       metrics::OmniboxEventProto::PageClassification page_classification, | 
 |       AutocompleteMatch* match, | 
 |       GURL* alternate_nav_url) override; | 
 |   void DeleteMatchingURLsForKeywordFromHistory( | 
 |       history::KeywordID keyword_id, | 
 |       const base::string16& term) override; | 
 |   void PrefetchImage(const GURL& url) override; | 
 |   void OnAutocompleteControllerResultReady( | 
 |       AutocompleteController* controller) override; | 
 |  | 
 |  private: | 
 |   ios::ChromeBrowserState* browser_state_; | 
 |   AutocompleteSchemeClassifierImpl scheme_classifier_; | 
 |   ios::UIThreadSearchTermsData search_terms_data_; | 
 |  | 
 |   DISALLOW_COPY_AND_ASSIGN(AutocompleteProviderClientImpl); | 
 | }; | 
 |  | 
 | #endif  // IOS_CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_PROVIDER_CLIENT_IMPL_H_ |