Check USB device path access when prompting users to select a device.
[chromium-blink-merge.git] / chrome / browser / autocomplete / chrome_autocomplete_provider_client.cc
blob2bd10f638947b81dc45402731494aee1aa567350
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.
5 #include "chrome/browser/autocomplete/chrome_autocomplete_provider_client.h"
7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/autocomplete/autocomplete_classifier.h"
9 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
10 #include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h"
11 #include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service_factory.h"
12 #include "chrome/browser/history/history_service_factory.h"
13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/sync/profile_sync_service.h"
15 #include "chrome/browser/sync/profile_sync_service_factory.h"
16 #include "chrome/common/pref_names.h"
17 #include "components/history/core/browser/history_service.h"
19 ChromeAutocompleteProviderClient::ChromeAutocompleteProviderClient(
20 Profile* profile)
21 : profile_(profile),
22 scheme_classifier_(profile) {
25 ChromeAutocompleteProviderClient::~ChromeAutocompleteProviderClient() {
28 net::URLRequestContextGetter*
29 ChromeAutocompleteProviderClient::RequestContext() {
30 return profile_->GetRequestContext();
33 bool ChromeAutocompleteProviderClient::IsOffTheRecord() {
34 return profile_->IsOffTheRecord();
37 std::string ChromeAutocompleteProviderClient::AcceptLanguages() {
38 return profile_->GetPrefs()->GetString(prefs::kAcceptLanguages);
41 bool ChromeAutocompleteProviderClient::SearchSuggestEnabled() {
42 return profile_->GetPrefs()->GetBoolean(prefs::kSearchSuggestEnabled);
45 bool ChromeAutocompleteProviderClient::ShowBookmarkBar() {
46 return profile_->GetPrefs()->GetBoolean(bookmarks::prefs::kShowBookmarkBar);
49 const AutocompleteSchemeClassifier&
50 ChromeAutocompleteProviderClient::SchemeClassifier() {
51 return scheme_classifier_;
54 void ChromeAutocompleteProviderClient::Classify(
55 const base::string16& text,
56 bool prefer_keyword,
57 bool allow_exact_keyword_match,
58 metrics::OmniboxEventProto::PageClassification page_classification,
59 AutocompleteMatch* match,
60 GURL* alternate_nav_url) {
61 AutocompleteClassifier* classifier =
62 AutocompleteClassifierFactory::GetForProfile(profile_);
63 DCHECK(classifier);
64 classifier->Classify(text, prefer_keyword, allow_exact_keyword_match,
65 page_classification, match, alternate_nav_url);
68 history::URLDatabase* ChromeAutocompleteProviderClient::InMemoryDatabase() {
69 history::HistoryService* history_service =
70 HistoryServiceFactory::GetForProfile(profile_,
71 ServiceAccessType::EXPLICIT_ACCESS);
72 return history_service ? history_service->InMemoryDatabase() : NULL;
75 void ChromeAutocompleteProviderClient::DeleteMatchingURLsForKeywordFromHistory(
76 history::KeywordID keyword_id,
77 const base::string16& term) {
78 HistoryServiceFactory::GetForProfile(profile_,
79 ServiceAccessType::EXPLICIT_ACCESS)
80 ->DeleteMatchingURLsForKeyword(keyword_id, term);
83 bool ChromeAutocompleteProviderClient::TabSyncEnabledAndUnencrypted() {
84 // Check field trials and settings allow sending the URL on suggest requests.
85 ProfileSyncService* service =
86 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_);
87 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs());
88 return service &&
89 service->IsSyncEnabledAndLoggedIn() &&
90 sync_prefs.GetPreferredDataTypes(syncer::UserTypes()).Has(
91 syncer::PROXY_TABS) &&
92 !service->GetEncryptedDataTypes().Has(syncer::SESSIONS);
95 void ChromeAutocompleteProviderClient::PrefetchImage(const GURL& url) {
96 BitmapFetcherService* image_service =
97 BitmapFetcherServiceFactory::GetForBrowserContext(profile_);
98 DCHECK(image_service);
99 image_service->Prefetch(url);