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 10class BrowserContextDependencyManager; 11 12namespace content { 13class BrowserContext; 14} 15 16namespace extensions { 17class 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. 23class 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