blob: d6458e9b766b792f4489ecb51220848a247eccef [file] [log] [blame]
[email protected]810ffba2012-06-12 01:07:481// 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"
[email protected]a817ed392014-06-27 05:03:008#include "chrome/browser/autocomplete/autocomplete_controller.h"
9#include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h"
sdefresnea5ad6c72015-03-12 10:06:5710#include "chrome/browser/autocomplete/in_memory_url_index_factory.h"
[email protected]f9dac2c72014-03-19 00:13:4311#include "chrome/browser/autocomplete/shortcuts_backend_factory.h"
[email protected]018bf652013-05-03 23:18:3412#include "chrome/browser/profiles/incognito_helpers.h"
[email protected]c7fa4362013-04-26 18:09:0213#include "chrome/browser/profiles/profile.h"
[email protected]810ffba2012-06-12 01:07:4814#include "chrome/browser/search_engines/template_url_service_factory.h"
[email protected]95003d522014-03-13 20:22:3115#include "components/keyed_service/content/browser_context_dependency_manager.h"
[email protected]ddef62e2014-07-12 06:18:5716
17#if defined(ENABLE_EXTENSIONS)
[email protected]d46c0502014-02-14 13:33:3618#include "extensions/browser/extension_system_provider.h"
19#include "extensions/browser/extensions_browser_client.h"
[email protected]ddef62e2014-07-12 06:18:5720#endif
[email protected]810ffba2012-06-12 01:07:4821
22// static
23AutocompleteClassifier* AutocompleteClassifierFactory::GetForProfile(
24 Profile* profile) {
25 return static_cast<AutocompleteClassifier*>(
[email protected]f1484c52013-05-22 23:25:4426 GetInstance()->GetServiceForBrowserContext(profile, true));
[email protected]810ffba2012-06-12 01:07:4827}
28
29// static
30AutocompleteClassifierFactory* AutocompleteClassifierFactory::GetInstance() {
31 return Singleton<AutocompleteClassifierFactory>::get();
32}
33
34// static
isherman30fa851a2015-06-09 23:32:1035scoped_ptr<KeyedService> AutocompleteClassifierFactory::BuildInstanceFor(
[email protected]a817ed392014-06-27 05:03:0036 content::BrowserContext* context) {
37 Profile* profile = static_cast<Profile*>(context);
isherman30fa851a2015-06-09 23:32:1038 return make_scoped_ptr(new AutocompleteClassifier(
[email protected]a817ed392014-06-27 05:03:0039 make_scoped_ptr(new AutocompleteController(
[email protected]cbb7dbd2014-07-02 22:52:5740 profile, TemplateURLServiceFactory::GetForProfile(profile), NULL,
41 AutocompleteClassifier::kDefaultOmniboxProviders)),
[email protected]a817ed392014-06-27 05:03:0042 scoped_ptr<AutocompleteSchemeClassifier>(
isherman30fa851a2015-06-09 23:32:1043 new ChromeAutocompleteSchemeClassifier(profile))));
[email protected]810ffba2012-06-12 01:07:4844}
45
46AutocompleteClassifierFactory::AutocompleteClassifierFactory()
[email protected]f1484c52013-05-22 23:25:4447 : BrowserContextKeyedServiceFactory(
48 "AutocompleteClassifier",
49 BrowserContextDependencyManager::GetInstance()) {
[email protected]ddef62e2014-07-12 06:18:5750#if defined(ENABLE_EXTENSIONS)
[email protected]d46c0502014-02-14 13:33:3651 DependsOn(
52 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
[email protected]ddef62e2014-07-12 06:18:5753#endif
[email protected]810ffba2012-06-12 01:07:4854 DependsOn(TemplateURLServiceFactory::GetInstance());
55 // TODO(pkasting): Uncomment these once they exist.
56 // DependsOn(PrefServiceFactory::GetInstance());
[email protected]1467cfe2012-07-04 01:19:1557 DependsOn(ShortcutsBackendFactory::GetInstance());
sdefresnea5ad6c72015-03-12 10:06:5758 DependsOn(InMemoryURLIndexFactory::GetInstance());
[email protected]810ffba2012-06-12 01:07:4859}
60
61AutocompleteClassifierFactory::~AutocompleteClassifierFactory() {
62}
63
[email protected]018bf652013-05-03 23:18:3464content::BrowserContext* AutocompleteClassifierFactory::GetBrowserContextToUse(
65 content::BrowserContext* context) const {
66 return chrome::GetBrowserContextRedirectedInIncognito(context);
[email protected]810ffba2012-06-12 01:07:4867}
68
[email protected]bb05cae12012-09-06 00:37:5269bool AutocompleteClassifierFactory::ServiceIsNULLWhileTesting() const {
[email protected]810ffba2012-06-12 01:07:4870 return true;
71}
72
[email protected]95003d522014-03-13 20:22:3173KeyedService* AutocompleteClassifierFactory::BuildServiceInstanceFor(
[email protected]c7fa4362013-04-26 18:09:0274 content::BrowserContext* profile) const {
isherman30fa851a2015-06-09 23:32:1075 return BuildInstanceFor(static_cast<Profile*>(profile)).release();
[email protected]810ffba2012-06-12 01:07:4876}