// 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_client.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" ChromeAutocompleteProviderClient::ChromeAutocompleteProviderClient( Profile* profile) : profile_(profile), scheme_classifier_(profile) { } ChromeAutocompleteProviderClient::~ChromeAutocompleteProviderClient() { } net::URLRequestContextGetter* ChromeAutocompleteProviderClient::RequestContext() { return profile_->GetRequestContext(); } bool ChromeAutocompleteProviderClient::IsOffTheRecord() { return profile_->IsOffTheRecord(); } std::string ChromeAutocompleteProviderClient::AcceptLanguages() { return profile_->GetPrefs()->GetString(prefs::kAcceptLanguages); } bool ChromeAutocompleteProviderClient::SearchSuggestEnabled() { return profile_->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled); } bool ChromeAutocompleteProviderClient::ShowBookmarkBar() { return profile_->GetPrefs()->GetBoolean(bookmarks::prefs::kShowBookmarkBar); } const AutocompleteSchemeClassifier& ChromeAutocompleteProviderClient::SchemeClassifier() { return scheme_classifier_; } void ChromeAutocompleteProviderClient::Classify( const base::string16& text, bool prefer_keyword, bool allow_exact_keyword_match, metrics::OmniboxEventProto::PageClassification page_classification, AutocompleteMatch* match, GURL* alternate_nav_url) { AutocompleteClassifier* classifier = AutocompleteClassifierFactory::GetForProfile(profile_); DCHECK(classifier); classifier->Classify(text, prefer_keyword, allow_exact_keyword_match, page_classification, match, alternate_nav_url); } history::URLDatabase* ChromeAutocompleteProviderClient::InMemoryDatabase() { HistoryService* history_service = HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); return history_service ? history_service->InMemoryDatabase() : NULL; } void ChromeAutocompleteProviderClient::DeleteMatchingURLsForKeywordFromHistory( history::KeywordID keyword_id, const base::string16& term) { HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS) ->DeleteMatchingURLsForKeyword(keyword_id, term); } bool ChromeAutocompleteProviderClient::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 ChromeAutocompleteProviderClient::PrefetchImage(const GURL& url) { BitmapFetcherService* image_service = BitmapFetcherServiceFactory::GetForBrowserContext(profile_); DCHECK(image_service); image_service->Prefetch(url); }