| Index: chrome/browser/autocomplete/chrome_autocomplete_provider_delegate.cc
|
| diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_delegate.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_delegate.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..87f2465e62646717344fd0305f7888af7727ef99
|
| --- /dev/null
|
| +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_delegate.cc
|
| @@ -0,0 +1,97 @@
|
| +// 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.
|
| +
|
| +#include "chrome/browser/autocomplete/chrome_autocomplete_provider_delegate.h"
|
| +
|
| +#include "base/prefs/pref_service.h"
|
| +#include "chrome/browser/autocomplete/autocomplete_classifier.h"
|
| +#include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
|
| +#include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h"
|
| +#include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service_factory.h"
|
| +#include "chrome/browser/history/history_service.h"
|
| +#include "chrome/browser/history/history_service_factory.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/sync/profile_sync_service.h"
|
| +#include "chrome/browser/sync/profile_sync_service_factory.h"
|
| +#include "chrome/common/pref_names.h"
|
| +
|
| +ChromeAutocompleteProviderDelegate::ChromeAutocompleteProviderDelegate(
|
| + Profile* profile)
|
| + : profile_(profile),
|
| + scheme_classifier_(profile) {
|
| +}
|
| +
|
| +ChromeAutocompleteProviderDelegate::~ChromeAutocompleteProviderDelegate() {
|
| +}
|
| +
|
| +net::URLRequestContextGetter*
|
| +ChromeAutocompleteProviderDelegate::RequestContext() {
|
| + return profile_->GetRequestContext();
|
| +}
|
| +
|
| +bool ChromeAutocompleteProviderDelegate::IsOffTheRecord() {
|
| + return profile_->IsOffTheRecord();
|
| +}
|
| +
|
| +std::string ChromeAutocompleteProviderDelegate::AcceptLanguages() {
|
| + return profile_->GetPrefs()->GetString(prefs::kAcceptLanguages);
|
| +}
|
| +
|
| +bool ChromeAutocompleteProviderDelegate::SearchSuggestEnabled() {
|
| + return profile_->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled);
|
| +}
|
| +
|
| +bool ChromeAutocompleteProviderDelegate::ShowBookmarkBar() {
|
| + return profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar);
|
| +}
|
| +
|
| +const AutocompleteSchemeClassifier&
|
| +ChromeAutocompleteProviderDelegate::SchemeClassifier() {
|
| + return scheme_classifier_;
|
| +}
|
| +
|
| +void ChromeAutocompleteProviderDelegate::Classify(
|
| + const base::string16& text,
|
| + bool prefer_keyword,
|
| + bool allow_exact_keyword_match,
|
| + metrics::OmniboxEventProto::PageClassification page_classification,
|
| + AutocompleteMatch* match,
|
| + GURL* alternate_nav_url) {
|
| + AutocompleteClassifierFactory::GetForProfile(profile_)->Classify(
|
| + text, prefer_keyword, allow_exact_keyword_match, page_classification,
|
| + match, alternate_nav_url);
|
| +}
|
| +
|
| +history::URLDatabase* ChromeAutocompleteProviderDelegate::InMemoryDatabase() {
|
| + HistoryService* history_service =
|
| + HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS);
|
| + return history_service ? history_service->InMemoryDatabase() : NULL;
|
| +}
|
| +
|
| +void
|
| +ChromeAutocompleteProviderDelegate::DeleteMatchingURLsForKeywordFromHistory(
|
| + history::KeywordID keyword_id,
|
| + const base::string16& term) {
|
| + HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS)
|
| + ->DeleteMatchingURLsForKeyword(keyword_id, term);
|
| +}
|
| +
|
| +bool ChromeAutocompleteProviderDelegate::TabSyncEnabledAndUnencrypted() {
|
| + // Check field trials and settings allow sending the URL on suggest requests.
|
| + ProfileSyncService* service =
|
| + ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_);
|
| + sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs());
|
| + return service &&
|
| + service->IsSyncEnabledAndLoggedIn() &&
|
| + sync_prefs.GetPreferredDataTypes(syncer::UserTypes()).Has(
|
| + syncer::PROXY_TABS) &&
|
| + !service->GetEncryptedDataTypes().Has(syncer::SESSIONS);
|
| +}
|
| +
|
| +void ChromeAutocompleteProviderDelegate::PrefetchImage(const GURL& url) {
|
| + BitmapFetcherService* image_service =
|
| + BitmapFetcherServiceFactory::GetForBrowserContext(profile_);
|
| + DCHECK(image_service);
|
| + image_service->Prefetch(url);
|
| +}
|
|
|