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