1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef IOS_CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_PROVIDER_CLIENT_IMPL_H_
6 #define IOS_CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_PROVIDER_CLIENT_IMPL_H_
8 #include "base/macros.h"
9 #include "components/omnibox/browser/autocomplete_provider_client.h"
10 #include "ios/chrome/browser/autocomplete/autocomplete_scheme_classifier_impl.h"
11 #include "ios/chrome/browser/search_engines/ui_thread_search_terms_data.h"
14 class ChromeBrowserState
;
17 // AutocompleteProviderClientImpl provides iOS-specific implementation of
18 // AutocompleteProviderClient interface.
19 class AutocompleteProviderClientImpl
: public AutocompleteProviderClient
{
21 explicit AutocompleteProviderClientImpl(
22 ios::ChromeBrowserState
* browser_state
);
23 ~AutocompleteProviderClientImpl() override
;
25 // AutocompleteProviderClient implementation.
26 net::URLRequestContextGetter
* GetRequestContext() override
;
27 PrefService
* GetPrefs() override
;
28 const AutocompleteSchemeClassifier
& GetSchemeClassifier() const override
;
29 AutocompleteClassifier
* GetAutocompleteClassifier() override
;
30 history::HistoryService
* GetHistoryService() override
;
31 scoped_refptr
<history::TopSites
> GetTopSites() override
;
32 bookmarks::BookmarkModel
* GetBookmarkModel() override
;
33 history::URLDatabase
* GetInMemoryDatabase() override
;
34 InMemoryURLIndex
* GetInMemoryURLIndex() override
;
35 TemplateURLService
* GetTemplateURLService() override
;
36 const TemplateURLService
* GetTemplateURLService() const override
;
37 const SearchTermsData
& GetSearchTermsData() const override
;
38 scoped_refptr
<ShortcutsBackend
> GetShortcutsBackend() override
;
39 scoped_refptr
<ShortcutsBackend
> GetShortcutsBackendIfExists() override
;
40 scoped_ptr
<KeywordExtensionsDelegate
> GetKeywordExtensionsDelegate(
41 KeywordProvider
* keyword_provider
) override
;
42 std::string
GetAcceptLanguages() const override
;
43 std::string
GetEmbedderRepresentationOfAboutScheme() override
;
44 std::vector
<base::string16
> GetBuiltinURLs() override
;
45 std::vector
<base::string16
> GetBuiltinsToProvideAsUserTypes() override
;
46 bool IsOffTheRecord() const override
;
47 bool SearchSuggestEnabled() const override
;
48 bool BookmarkBarIsVisible() const override
;
49 bool TabSyncEnabledAndUnencrypted() const override
;
51 const base::string16
& text
,
53 bool allow_exact_keyword_match
,
54 metrics::OmniboxEventProto::PageClassification page_classification
,
55 AutocompleteMatch
* match
,
56 GURL
* alternate_nav_url
) override
;
57 void DeleteMatchingURLsForKeywordFromHistory(
58 history::KeywordID keyword_id
,
59 const base::string16
& term
) override
;
60 void PrefetchImage(const GURL
& url
) override
;
61 void OnAutocompleteControllerResultReady(
62 AutocompleteController
* controller
) override
;
65 ios::ChromeBrowserState
* browser_state_
;
66 AutocompleteSchemeClassifierImpl scheme_classifier_
;
67 ios::UIThreadSearchTermsData search_terms_data_
;
69 DISALLOW_COPY_AND_ASSIGN(AutocompleteProviderClientImpl
);
72 #endif // IOS_CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_PROVIDER_CLIENT_IMPL_H_