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 #ifndef EXTENSIONS_BROWSER_EXTENSION_SYSTEM_PROVIDER_H_ 6 #define EXTENSIONS_BROWSER_EXTENSION_SYSTEM_PROVIDER_H_ 7 8 #include "components/keyed_service/content/browser_context_keyed_service_factory.h" 9 10 class BrowserContextDependencyManager; 11 12 namespace content { 13 class BrowserContext; 14 } 15 16 namespace extensions { 17 class ExtensionSystem; 18 19 // An ExtensionSystemProvider maps a BrowserContext to its ExtensionSystem. 20 // Different applications may use this to provide differing implementations 21 // of ExtensionSystem. 22 // TODO(yoz): Rename to ExtensionSystemFactory. 23 class ExtensionSystemProvider : public BrowserContextKeyedServiceFactory { 24 public: 25 ExtensionSystemProvider(const char* name, 26 BrowserContextDependencyManager* manager); 27 virtual ~ExtensionSystemProvider(); 28 29 virtual ExtensionSystem* GetForBrowserContext( 30 content::BrowserContext* context) = 0; 31 }; 32 33 } // namespace extensions 34 35 #endif // EXTENSIONS_BROWSER_EXTENSION_SYSTEM_PROVIDER_H_ 36