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 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_FACTORY_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_FACTORY_H_ 7 8 #include "base/memory/singleton.h" 9 #include "chrome/browser/extensions/extension_system.h" 10 #include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h" 11 12 class BrowserContextKeyedService; 13 class Profile; 14 15 namespace extensions { 16 class ExtensionSystem; 17 18 // BrowserContextKeyedServiceFactory for ExtensionSystemImpl::Shared. 19 // Should not be used except by ExtensionSystem(Factory). 20 class ExtensionSystemSharedFactory : public BrowserContextKeyedServiceFactory { 21 public: 22 static ExtensionSystemImpl::Shared* GetForProfile( 23 Profile* profile); 24 25 static ExtensionSystemSharedFactory* GetInstance(); 26 27 private: 28 friend struct DefaultSingletonTraits<ExtensionSystemSharedFactory>; 29 30 ExtensionSystemSharedFactory(); 31 virtual ~ExtensionSystemSharedFactory(); 32 33 virtual BrowserContextKeyedService* BuildServiceInstanceFor( 34 content::BrowserContext* profile) const OVERRIDE; 35 virtual content::BrowserContext* GetBrowserContextToUse( 36 content::BrowserContext* context) const OVERRIDE; 37 }; 38 39 // BrowserContextKeyedServiceFactory for ExtensionSystem. 40 class ExtensionSystemFactory : public BrowserContextKeyedServiceFactory { 41 public: 42 // BrowserContextKeyedServiceFactory implementation: 43 static ExtensionSystem* GetForProfile(Profile* profile); 44 45 static ExtensionSystemFactory* GetInstance(); 46 47 private: 48 friend struct DefaultSingletonTraits<ExtensionSystemFactory>; 49 50 ExtensionSystemFactory(); 51 virtual ~ExtensionSystemFactory(); 52 53 virtual BrowserContextKeyedService* BuildServiceInstanceFor( 54 content::BrowserContext* profile) const OVERRIDE; 55 virtual content::BrowserContext* GetBrowserContextToUse( 56 content::BrowserContext* context) const OVERRIDE; 57 virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE; 58 }; 59 60 } // namespace extensions 61 62 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_FACTORY_H_ 63