blob: 444ba62d99427c42b249a925df54a9a0e70bdb21 [file] [log] [blame]
[email protected]31d8f5f22012-04-02 15:22:081// 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/extensions/extension_system_factory.h"
6
[email protected]836e2982013-05-16 08:07:427#include "chrome/browser/extensions/extension_prefs_factory.h"
[email protected]31d8f5f22012-04-02 15:22:088#include "chrome/browser/extensions/extension_system.h"
[email protected]d81bb3e2013-05-02 18:17:039#include "chrome/browser/policy/profile_policy_connector_factory.h"
[email protected]018bf652013-05-03 23:18:3410#include "chrome/browser/profiles/incognito_helpers.h"
[email protected]31d8f5f22012-04-02 15:22:0811#include "chrome/browser/profiles/profile.h"
12#include "chrome/browser/profiles/profile_dependency_manager.h"
[email protected]31d8f5f22012-04-02 15:22:0813#include "chrome/browser/themes/theme_service_factory.h"
[email protected]1ba55cf2012-06-29 19:11:3914#include "chrome/browser/ui/global_error/global_error_service_factory.h"
[email protected]31d8f5f22012-04-02 15:22:0815
[email protected]bd306722012-07-11 20:43:5916namespace extensions {
17
[email protected]31d8f5f22012-04-02 15:22:0818// ExtensionSystemSharedFactory
19
20// static
[email protected]bd306722012-07-11 20:43:5921ExtensionSystemImpl::Shared*
22ExtensionSystemSharedFactory::GetForProfile(Profile* profile) {
[email protected]31d8f5f22012-04-02 15:22:0823 return static_cast<ExtensionSystemImpl::Shared*>(
24 GetInstance()->GetServiceForProfile(profile, true));
25}
26
27// static
28ExtensionSystemSharedFactory* ExtensionSystemSharedFactory::GetInstance() {
29 return Singleton<ExtensionSystemSharedFactory>::get();
30}
31
32ExtensionSystemSharedFactory::ExtensionSystemSharedFactory()
33 : ProfileKeyedServiceFactory(
34 "ExtensionSystemShared",
35 ProfileDependencyManager::GetInstance()) {
[email protected]836e2982013-05-16 08:07:4236 DependsOn(ExtensionPrefsFactory::GetInstance());
[email protected]31d8f5f22012-04-02 15:22:0837 DependsOn(GlobalErrorServiceFactory::GetInstance());
[email protected]f766a9d2012-07-11 01:57:4438#if defined(ENABLE_THEMES)
[email protected]31d8f5f22012-04-02 15:22:0839 DependsOn(ThemeServiceFactory::GetInstance());
[email protected]f766a9d2012-07-11 01:57:4440#endif
[email protected]d81bb3e2013-05-02 18:17:0341 DependsOn(policy::ProfilePolicyConnectorFactory::GetInstance());
[email protected]31d8f5f22012-04-02 15:22:0842}
43
44ExtensionSystemSharedFactory::~ExtensionSystemSharedFactory() {
45}
46
47ProfileKeyedService* ExtensionSystemSharedFactory::BuildServiceInstanceFor(
[email protected]c7fa4362013-04-26 18:09:0248 content::BrowserContext* profile) const {
49 return new ExtensionSystemImpl::Shared(static_cast<Profile*>(profile));
[email protected]31d8f5f22012-04-02 15:22:0850}
51
[email protected]018bf652013-05-03 23:18:3452content::BrowserContext* ExtensionSystemSharedFactory::GetBrowserContextToUse(
53 content::BrowserContext* context) const {
54 return chrome::GetBrowserContextRedirectedInIncognito(context);
[email protected]31d8f5f22012-04-02 15:22:0855}
56
57// ExtensionSystemFactory
58
59// static
[email protected]749d59a2012-04-05 00:23:2460ExtensionSystem* ExtensionSystemFactory::GetForProfile(Profile* profile) {
[email protected]31d8f5f22012-04-02 15:22:0861 return static_cast<ExtensionSystem*>(
62 GetInstance()->GetServiceForProfile(profile, true));
63}
64
65// static
66ExtensionSystemFactory* ExtensionSystemFactory::GetInstance() {
67 return Singleton<ExtensionSystemFactory>::get();
68}
69
70ExtensionSystemFactory::ExtensionSystemFactory()
71 : ProfileKeyedServiceFactory(
72 "ExtensionSystem",
73 ProfileDependencyManager::GetInstance()) {
74 DependsOn(ExtensionSystemSharedFactory::GetInstance());
75}
76
77ExtensionSystemFactory::~ExtensionSystemFactory() {
78}
79
80ProfileKeyedService* ExtensionSystemFactory::BuildServiceInstanceFor(
[email protected]c7fa4362013-04-26 18:09:0281 content::BrowserContext* profile) const {
82 return new ExtensionSystemImpl(static_cast<Profile*>(profile));
[email protected]31d8f5f22012-04-02 15:22:0883}
84
[email protected]018bf652013-05-03 23:18:3485content::BrowserContext* ExtensionSystemFactory::GetBrowserContextToUse(
86 content::BrowserContext* context) const {
87 return chrome::GetBrowserContextOwnInstanceInIncognito(context);
[email protected]31d8f5f22012-04-02 15:22:0888}
89
[email protected]bb05cae12012-09-06 00:37:5290bool ExtensionSystemFactory::ServiceIsCreatedWithProfile() const {
[email protected]31d8f5f22012-04-02 15:22:0891 return true;
92}
[email protected]bd306722012-07-11 20:43:5993
94} // namespace extensions