blob: 763afce1081fb931101478d4d5c3c9ea29777825 [file] [log] [blame]
[email protected]70489302014-02-13 15:15:481// 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
[email protected]b33f0b112014-03-13 17:05:308#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
[email protected]70489302014-02-13 15:15:489
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);
dcheng9168b2f2014-10-21 12:38:2427 ~ExtensionSystemProvider() override;
[email protected]70489302014-02-13 15:15:4828
29 virtual ExtensionSystem* GetForBrowserContext(
30 content::BrowserContext* context) = 0;
31};
32
33} // namespace extensions
34
35#endif // EXTENSIONS_BROWSER_EXTENSION_SYSTEM_PROVIDER_H_