// 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 COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_
#define COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_
#include "base/strings/string16.h"
#include "components/history/core/browser/keyword_id.h"
#include "components/metrics/proto/omnibox_event.pb.h"
struct AutocompleteMatch;
class AutocompleteSchemeClassifier;
class GURL;
namespace history {
class URLDatabase;
}
namespace net {
class URLRequestContextGetter;
}
class AutocompleteProviderClient {
public:
virtual ~AutocompleteProviderClient() {}
// Returns the request context.
virtual net::URLRequestContextGetter* RequestContext() = 0;
// Returns whether the provider should work in incognito mode.
virtual bool IsOffTheRecord() = 0;
// The value to use for Accept-Languages HTTP header when making an HTTP
// request.
virtual std::string AcceptLanguages() = 0;
// Returns true when suggest support is enabled.
virtual bool SearchSuggestEnabled() = 0;
// Returns whether the bookmark bar is visible on all tabs.
virtual bool ShowBookmarkBar() = 0;
// Returns the scheme classifier.
virtual const AutocompleteSchemeClassifier& SchemeClassifier() = 0;
// Given some string |text| that the user wants to use for navigation,
// determines how it should be interpreted.
virtual 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) = 0;
// Returns the in-memory URL database.
virtual history::URLDatabase* InMemoryDatabase() = 0;
// Deletes all URL and search term entries matching the given |term| and
// |keyword_id| from history.
virtual void DeleteMatchingURLsForKeywordFromHistory(
history::KeywordID keyword_id,
const base::string16& term) = 0;
// Returns whether the user has tab sync enabled and tab sync is unencrypted.
virtual bool TabSyncEnabledAndUnencrypted() = 0;
// Starts prefetching the image at the given |url|.
virtual void PrefetchImage(const GURL& url) = 0;
};
#endif // COMPONENTS_OMNIBOX_AUTOCOMPLETE_PROVIDER_CLIENT_H_