11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/strings/string16.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/history/core/browser/keyword_id.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/metrics/proto/omnibox_event.pb.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistruct AutocompleteMatch; 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass AutocompleteSchemeClassifier; 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass GURL; 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace history { 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass URLDatabase; 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace net { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass URLRequestContextGetter; 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass AutocompleteProviderClient { 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~AutocompleteProviderClient() {} 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the request context. 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual net::URLRequestContextGetter* RequestContext() = 0; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns whether the provider should work in incognito mode. 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool IsOffTheRecord() = 0; 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // The value to use for Accept-Languages HTTP header when making an HTTP 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // request. 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual std::string AcceptLanguages() = 0; 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns true when suggest support is enabled. 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool SearchSuggestEnabled() = 0; 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns whether the bookmark bar is visible on all tabs. 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool ShowBookmarkBar() = 0; 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the scheme classifier. 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual const AutocompleteSchemeClassifier& SchemeClassifier() = 0; 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Given some string |text| that the user wants to use for navigation, 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // determines how it should be interpreted. 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void Classify( 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::string16& text, 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool prefer_keyword, 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool allow_exact_keyword_match, 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci metrics::OmniboxEventProto::PageClassification page_classification, 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci AutocompleteMatch* match, 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci GURL* alternate_nav_url) = 0; 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the in-memory URL database. 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual history::URLDatabase* InMemoryDatabase() = 0; 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Deletes all URL and search term entries matching the given |term| and 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // |keyword_id| from history. 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void DeleteMatchingURLsForKeywordFromHistory( 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci history::KeywordID keyword_id, 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::string16& term) = 0; 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns whether the user has tab sync enabled and tab sync is unencrypted. 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool TabSyncEnabledAndUnencrypted() = 0; 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Starts prefetching the image at the given |url|. 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void PrefetchImage(const GURL& url) = 0; 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_ 74