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