1 // Copyright 2014 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 "extensions/shell/browser/shell_extension_system_factory.h" 6 7 #include "components/keyed_service/content/browser_context_dependency_manager.h" 8 #include "extensions/browser/extension_prefs_factory.h" 9 #include "extensions/browser/extension_registry_factory.h" 10 #include "extensions/shell/browser/shell_extension_system.h" 11 12 using content::BrowserContext; 13 14 namespace extensions { 15 16 ExtensionSystem* ShellExtensionSystemFactory::GetForBrowserContext( 17 BrowserContext* context) { 18 return static_cast<ShellExtensionSystem*>( 19 GetInstance()->GetServiceForBrowserContext(context, true)); 20 } 21 22 // static 23 ShellExtensionSystemFactory* ShellExtensionSystemFactory::GetInstance() { 24 return Singleton<ShellExtensionSystemFactory>::get(); 25 } 26 27 ShellExtensionSystemFactory::ShellExtensionSystemFactory() 28 : ExtensionSystemProvider("ShellExtensionSystem", 29 BrowserContextDependencyManager::GetInstance()) { 30 DependsOn(ExtensionPrefsFactory::GetInstance()); 31 DependsOn(ExtensionRegistryFactory::GetInstance()); 32 } 33 34 ShellExtensionSystemFactory::~ShellExtensionSystemFactory() { 35 } 36 37 KeyedService* ShellExtensionSystemFactory::BuildServiceInstanceFor( 38 BrowserContext* context) const { 39 return new ShellExtensionSystem(context); 40 } 41 42 BrowserContext* ShellExtensionSystemFactory::GetBrowserContextToUse( 43 BrowserContext* context) const { 44 // Use a separate instance for incognito. 45 return context; 46 } 47 48 bool ShellExtensionSystemFactory::ServiceIsCreatedWithBrowserContext() const { 49 return true; 50 } 51 52 } // namespace extensions 53