[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 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" | ||||
[email protected] | a817ed39 | 2014-06-27 05:03:00 | [diff] [blame] | 8 | #include "chrome/browser/autocomplete/autocomplete_controller.h" |
9 | #include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h" | ||||
sdefresne | a5ad6c7 | 2015-03-12 10:06:57 | [diff] [blame] | 10 | #include "chrome/browser/autocomplete/in_memory_url_index_factory.h" |
[email protected] | f9dac2c7 | 2014-03-19 00:13:43 | [diff] [blame] | 11 | #include "chrome/browser/autocomplete/shortcuts_backend_factory.h" |
[email protected] | 018bf65 | 2013-05-03 23:18:34 | [diff] [blame] | 12 | #include "chrome/browser/profiles/incognito_helpers.h" |
[email protected] | c7fa436 | 2013-04-26 18:09:02 | [diff] [blame] | 13 | #include "chrome/browser/profiles/profile.h" |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 14 | #include "chrome/browser/search_engines/template_url_service_factory.h" |
[email protected] | 95003d52 | 2014-03-13 20:22:31 | [diff] [blame] | 15 | #include "components/keyed_service/content/browser_context_dependency_manager.h" |
[email protected] | ddef62e | 2014-07-12 06:18:57 | [diff] [blame] | 16 | |
17 | #if defined(ENABLE_EXTENSIONS) | ||||
[email protected] | d46c050 | 2014-02-14 13:33:36 | [diff] [blame] | 18 | #include "extensions/browser/extension_system_provider.h" |
19 | #include "extensions/browser/extensions_browser_client.h" | ||||
[email protected] | ddef62e | 2014-07-12 06:18:57 | [diff] [blame] | 20 | #endif |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 21 | |
22 | // static | ||||
23 | AutocompleteClassifier* AutocompleteClassifierFactory::GetForProfile( | ||||
24 | Profile* profile) { | ||||
25 | return static_cast<AutocompleteClassifier*>( | ||||
[email protected] | f1484c5 | 2013-05-22 23:25:44 | [diff] [blame] | 26 | GetInstance()->GetServiceForBrowserContext(profile, true)); |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 27 | } |
28 | |||||
29 | // static | ||||
30 | AutocompleteClassifierFactory* AutocompleteClassifierFactory::GetInstance() { | ||||
31 | return Singleton<AutocompleteClassifierFactory>::get(); | ||||
32 | } | ||||
33 | |||||
34 | // static | ||||
isherman | 30fa851a | 2015-06-09 23:32:10 | [diff] [blame^] | 35 | scoped_ptr<KeyedService> AutocompleteClassifierFactory::BuildInstanceFor( |
[email protected] | a817ed39 | 2014-06-27 05:03:00 | [diff] [blame] | 36 | content::BrowserContext* context) { |
37 | Profile* profile = static_cast<Profile*>(context); | ||||
isherman | 30fa851a | 2015-06-09 23:32:10 | [diff] [blame^] | 38 | return make_scoped_ptr(new AutocompleteClassifier( |
[email protected] | a817ed39 | 2014-06-27 05:03:00 | [diff] [blame] | 39 | make_scoped_ptr(new AutocompleteController( |
[email protected] | cbb7dbd | 2014-07-02 22:52:57 | [diff] [blame] | 40 | profile, TemplateURLServiceFactory::GetForProfile(profile), NULL, |
41 | AutocompleteClassifier::kDefaultOmniboxProviders)), | ||||
[email protected] | a817ed39 | 2014-06-27 05:03:00 | [diff] [blame] | 42 | scoped_ptr<AutocompleteSchemeClassifier>( |
isherman | 30fa851a | 2015-06-09 23:32:10 | [diff] [blame^] | 43 | new ChromeAutocompleteSchemeClassifier(profile)))); |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 44 | } |
45 | |||||
46 | AutocompleteClassifierFactory::AutocompleteClassifierFactory() | ||||
[email protected] | f1484c5 | 2013-05-22 23:25:44 | [diff] [blame] | 47 | : BrowserContextKeyedServiceFactory( |
48 | "AutocompleteClassifier", | ||||
49 | BrowserContextDependencyManager::GetInstance()) { | ||||
[email protected] | ddef62e | 2014-07-12 06:18:57 | [diff] [blame] | 50 | #if defined(ENABLE_EXTENSIONS) |
[email protected] | d46c050 | 2014-02-14 13:33:36 | [diff] [blame] | 51 | DependsOn( |
52 | extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); | ||||
[email protected] | ddef62e | 2014-07-12 06:18:57 | [diff] [blame] | 53 | #endif |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 54 | DependsOn(TemplateURLServiceFactory::GetInstance()); |
55 | // TODO(pkasting): Uncomment these once they exist. | ||||
56 | // DependsOn(PrefServiceFactory::GetInstance()); | ||||
[email protected] | 1467cfe | 2012-07-04 01:19:15 | [diff] [blame] | 57 | DependsOn(ShortcutsBackendFactory::GetInstance()); |
sdefresne | a5ad6c7 | 2015-03-12 10:06:57 | [diff] [blame] | 58 | DependsOn(InMemoryURLIndexFactory::GetInstance()); |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 59 | } |
60 | |||||
61 | AutocompleteClassifierFactory::~AutocompleteClassifierFactory() { | ||||
62 | } | ||||
63 | |||||
[email protected] | 018bf65 | 2013-05-03 23:18:34 | [diff] [blame] | 64 | content::BrowserContext* AutocompleteClassifierFactory::GetBrowserContextToUse( |
65 | content::BrowserContext* context) const { | ||||
66 | return chrome::GetBrowserContextRedirectedInIncognito(context); | ||||
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 67 | } |
68 | |||||
[email protected] | bb05cae1 | 2012-09-06 00:37:52 | [diff] [blame] | 69 | bool AutocompleteClassifierFactory::ServiceIsNULLWhileTesting() const { |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 70 | return true; |
71 | } | ||||
72 | |||||
[email protected] | 95003d52 | 2014-03-13 20:22:31 | [diff] [blame] | 73 | KeyedService* AutocompleteClassifierFactory::BuildServiceInstanceFor( |
[email protected] | c7fa436 | 2013-04-26 18:09:02 | [diff] [blame] | 74 | content::BrowserContext* profile) const { |
isherman | 30fa851a | 2015-06-09 23:32:10 | [diff] [blame^] | 75 | return BuildInstanceFor(static_cast<Profile*>(profile)).release(); |
[email protected] | 810ffba | 2012-06-12 01:07:48 | [diff] [blame] | 76 | } |