blob: 49f5370aa786eea504027ed78ae4026e653c0526 [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]31d8f5f22012-04-02 15:22:087#include "chrome/browser/extensions/extension_prefs.h"
8#include "chrome/browser/extensions/extension_service.h"
9#include "chrome/browser/extensions/extension_system.h"
[email protected]d81bb3e2013-05-02 18:17:0310#include "chrome/browser/policy/profile_policy_connector_factory.h"
[email protected]018bf652013-05-03 23:18:3411#include "chrome/browser/profiles/incognito_helpers.h"
[email protected]31d8f5f22012-04-02 15:22:0812#include "chrome/browser/profiles/profile.h"
13#include "chrome/browser/profiles/profile_dependency_manager.h"
[email protected]31d8f5f22012-04-02 15:22:0814#include "chrome/browser/themes/theme_service_factory.h"
[email protected]1ba55cf2012-06-29 19:11:3915#include "chrome/browser/ui/global_error/global_error_service_factory.h"
[email protected]31d8f5f22012-04-02 15:22:0816
[email protected]bd306722012-07-11 20:43:5917namespace extensions {
18
[email protected]31d8f5f22012-04-02 15:22:0819// ExtensionSystemSharedFactory
20
21// static
[email protected]bd306722012-07-11 20:43:5922ExtensionSystemImpl::Shared*
23ExtensionSystemSharedFactory::GetForProfile(Profile* profile) {
[email protected]31d8f5f22012-04-02 15:22:0824 return static_cast<ExtensionSystemImpl::Shared*>(
25 GetInstance()->GetServiceForProfile(profile, true));
26}
27
28// static
29ExtensionSystemSharedFactory* ExtensionSystemSharedFactory::GetInstance() {
30 return Singleton<ExtensionSystemSharedFactory>::get();
31}
32
33ExtensionSystemSharedFactory::ExtensionSystemSharedFactory()
34 : ProfileKeyedServiceFactory(
35 "ExtensionSystemShared",
36 ProfileDependencyManager::GetInstance()) {
37 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