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