Home | History | Annotate | Download | only in browser
      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 APPS_SHELL_BROWSER_SHELL_EXTENSION_SYSTEM_FACTORY_H_
      6 #define APPS_SHELL_BROWSER_SHELL_EXTENSION_SYSTEM_FACTORY_H_
      7 
      8 #include "base/memory/singleton.h"
      9 #include "extensions/browser/extension_system_provider.h"
     10 
     11 namespace extensions {
     12 
     13 // A factory that provides ShellExtensionSystem for app_shell.
     14 class 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  // APPS_SHELL_BROWSER_SHELL_EXTENSION_SYSTEM_FACTORY_H_
     41