extension_system_factory.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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/extensions/extension_system_factory.h" 6 7#include "chrome/browser/extensions/extension_prefs_factory.h" 8#include "chrome/browser/extensions/extension_system.h" 9#include "chrome/browser/policy/profile_policy_connector_factory.h" 10#include "chrome/browser/profiles/incognito_helpers.h" 11#include "chrome/browser/profiles/profile.h" 12#include "chrome/browser/themes/theme_service_factory.h" 13#include "chrome/browser/ui/global_error/global_error_service_factory.h" 14#include "components/browser_context_keyed_service/browser_context_dependency_manager.h" 15 16namespace extensions { 17 18// ExtensionSystemSharedFactory 19 20// static 21ExtensionSystemImpl::Shared* 22ExtensionSystemSharedFactory::GetForProfile(Profile* profile) { 23 return static_cast<ExtensionSystemImpl::Shared*>( 24 GetInstance()->GetServiceForBrowserContext(profile, true)); 25} 26 27// static 28ExtensionSystemSharedFactory* ExtensionSystemSharedFactory::GetInstance() { 29 return Singleton<ExtensionSystemSharedFactory>::get(); 30} 31 32ExtensionSystemSharedFactory::ExtensionSystemSharedFactory() 33 : BrowserContextKeyedServiceFactory( 34 "ExtensionSystemShared", 35 BrowserContextDependencyManager::GetInstance()) { 36 DependsOn(ExtensionPrefsFactory::GetInstance()); 37 DependsOn(GlobalErrorServiceFactory::GetInstance()); 38#if defined(ENABLE_THEMES) 39 DependsOn(ThemeServiceFactory::GetInstance()); 40#endif 41 DependsOn(policy::ProfilePolicyConnectorFactory::GetInstance()); 42} 43 44ExtensionSystemSharedFactory::~ExtensionSystemSharedFactory() { 45} 46 47BrowserContextKeyedService* 48ExtensionSystemSharedFactory::BuildServiceInstanceFor( 49 content::BrowserContext* profile) const { 50 return new ExtensionSystemImpl::Shared(static_cast<Profile*>(profile)); 51} 52 53content::BrowserContext* ExtensionSystemSharedFactory::GetBrowserContextToUse( 54 content::BrowserContext* context) const { 55 return chrome::GetBrowserContextRedirectedInIncognito(context); 56} 57 58// ExtensionSystemFactory 59 60// static 61ExtensionSystem* ExtensionSystemFactory::GetForProfile(Profile* profile) { 62 return static_cast<ExtensionSystem*>( 63 GetInstance()->GetServiceForBrowserContext(profile, true)); 64} 65 66// static 67ExtensionSystemFactory* ExtensionSystemFactory::GetInstance() { 68 return Singleton<ExtensionSystemFactory>::get(); 69} 70 71ExtensionSystemFactory::ExtensionSystemFactory() 72 : BrowserContextKeyedServiceFactory( 73 "ExtensionSystem", 74 BrowserContextDependencyManager::GetInstance()) { 75 DependsOn(ExtensionSystemSharedFactory::GetInstance()); 76} 77 78ExtensionSystemFactory::~ExtensionSystemFactory() { 79} 80 81BrowserContextKeyedService* ExtensionSystemFactory::BuildServiceInstanceFor( 82 content::BrowserContext* profile) const { 83 return new ExtensionSystemImpl(static_cast<Profile*>(profile)); 84} 85 86content::BrowserContext* ExtensionSystemFactory::GetBrowserContextToUse( 87 content::BrowserContext* context) const { 88 return chrome::GetBrowserContextOwnInstanceInIncognito(context); 89} 90 91bool ExtensionSystemFactory::ServiceIsCreatedWithBrowserContext() const { 92 return true; 93} 94 95} // namespace extensions 96