1// Copyright 2014 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. 4 5#ifndef COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_ 6#define COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_ 7 8#include "base/strings/string16.h" 9#include "components/history/core/browser/keyword_id.h" 10#include "components/metrics/proto/omnibox_event.pb.h" 11 12struct AutocompleteMatch; 13class AutocompleteSchemeClassifier; 14class GURL; 15 16namespace history { 17class URLDatabase; 18} 19 20namespace net { 21class URLRequestContextGetter; 22} 23 24class AutocompleteProviderClient { 25 public: 26 virtual ~AutocompleteProviderClient() {} 27 28 // Returns the request context. 29 virtual net::URLRequestContextGetter* RequestContext() = 0; 30 31 // Returns whether the provider should work in incognito mode. 32 virtual bool IsOffTheRecord() = 0; 33 34 // The value to use for Accept-Languages HTTP header when making an HTTP 35 // request. 36 virtual std::string AcceptLanguages() = 0; 37 38 // Returns true when suggest support is enabled. 39 virtual bool SearchSuggestEnabled() = 0; 40 41 // Returns whether the bookmark bar is visible on all tabs. 42 virtual bool ShowBookmarkBar() = 0; 43 44 // Returns the scheme classifier. 45 virtual const AutocompleteSchemeClassifier& SchemeClassifier() = 0; 46 47 // Given some string |text| that the user wants to use for navigation, 48 // determines how it should be interpreted. 49 virtual void Classify( 50 const base::string16& text, 51 bool prefer_keyword, 52 bool allow_exact_keyword_match, 53 metrics::OmniboxEventProto::PageClassification page_classification, 54 AutocompleteMatch* match, 55 GURL* alternate_nav_url) = 0; 56 57 // Returns the in-memory URL database. 58 virtual history::URLDatabase* InMemoryDatabase() = 0; 59 60 // Deletes all URL and search term entries matching the given |term| and 61 // |keyword_id| from history. 62 virtual void DeleteMatchingURLsForKeywordFromHistory( 63 history::KeywordID keyword_id, 64 const base::string16& term) = 0; 65 66 // Returns whether the user has tab sync enabled and tab sync is unencrypted. 67 virtual bool TabSyncEnabledAndUnencrypted() = 0; 68 69 // Starts prefetching the image at the given |url|. 70 virtual void PrefetchImage(const GURL& url) = 0; 71}; 72 73#endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_ 74