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