autocomplete_classifier_factory.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 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.
4
5#include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
6
7#include "chrome/browser/autocomplete/autocomplete_classifier.h"
8#include "chrome/browser/extensions/extension_system_factory.h"
9#include "chrome/browser/history/shortcuts_backend_factory.h"
10#include "chrome/browser/profiles/profile_dependency_manager.h"
11#include "chrome/browser/search_engines/template_url_service_factory.h"
12
13
14// static
15AutocompleteClassifier* AutocompleteClassifierFactory::GetForProfile(
16    Profile* profile) {
17  return static_cast<AutocompleteClassifier*>(
18      GetInstance()->GetServiceForProfile(profile, true));
19}
20
21// static
22AutocompleteClassifierFactory* AutocompleteClassifierFactory::GetInstance() {
23  return Singleton<AutocompleteClassifierFactory>::get();
24}
25
26// static
27ProfileKeyedService* AutocompleteClassifierFactory::BuildInstanceFor(
28    Profile* profile) {
29  return new AutocompleteClassifier(profile);
30}
31
32AutocompleteClassifierFactory::AutocompleteClassifierFactory()
33    : ProfileKeyedServiceFactory("AutocompleteClassifier",
34                                 ProfileDependencyManager::GetInstance()) {
35  DependsOn(extensions::ExtensionSystemFactory::GetInstance());
36  DependsOn(TemplateURLServiceFactory::GetInstance());
37  // TODO(pkasting): Uncomment these once they exist.
38  //   DependsOn(PrefServiceFactory::GetInstance());
39  DependsOn(ShortcutsBackendFactory::GetInstance());
40}
41
42AutocompleteClassifierFactory::~AutocompleteClassifierFactory() {
43}
44
45bool AutocompleteClassifierFactory::ServiceRedirectedInIncognito() const {
46  return true;
47}
48
49bool AutocompleteClassifierFactory::ServiceIsNULLWhileTesting() const {
50  return true;
51}
52
53ProfileKeyedService* AutocompleteClassifierFactory::BuildServiceInstanceFor(
54    Profile* profile) const {
55  return BuildInstanceFor(profile);
56}
57