shell_extension_system_factory.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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_SHELL_BROWSER_SHELL_EXTENSION_SYSTEM_FACTORY_H_
6#define EXTENSIONS_SHELL_BROWSER_SHELL_EXTENSION_SYSTEM_FACTORY_H_
7
8#include "base/memory/singleton.h"
9#include "extensions/browser/extension_system_provider.h"
10
11namespace extensions {
12
13// A factory that provides ShellExtensionSystem for app_shell.
14class ShellExtensionSystemFactory : public ExtensionSystemProvider {
15 public:
16  // ExtensionSystemProvider implementation:
17  virtual ExtensionSystem* GetForBrowserContext(
18      content::BrowserContext* context) OVERRIDE;
19
20  static ShellExtensionSystemFactory* GetInstance();
21
22 private:
23  friend struct DefaultSingletonTraits<ShellExtensionSystemFactory>;
24
25  ShellExtensionSystemFactory();
26  virtual ~ShellExtensionSystemFactory();
27
28  // BrowserContextKeyedServiceFactory implementation:
29  virtual KeyedService* BuildServiceInstanceFor(
30      content::BrowserContext* context) const OVERRIDE;
31  virtual content::BrowserContext* GetBrowserContextToUse(
32      content::BrowserContext* context) const OVERRIDE;
33  virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE;
34
35  DISALLOW_COPY_AND_ASSIGN(ShellExtensionSystemFactory);
36};
37
38}  // namespace extensions
39
40#endif  // EXTENSIONS_SHELL_BROWSER_SHELL_EXTENSION_SYSTEM_FACTORY_H_
41