| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__ |
| #define CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__ |
| #pragma once |
| |
| #include "base/memory/singleton.h" |
| #include "chrome/browser/extensions/extension_function.h" |
| #include "content/common/notification_observer.h" |
| #include "content/common/notification_registrar.h" |
| |
| class ExtensionService; |
| |
| class ExtensionManagementFunction : public SyncExtensionFunction { |
| protected: |
| ExtensionService* service(); |
| }; |
| |
| class GetAllExtensionsFunction : public ExtensionManagementFunction { |
| ~GetAllExtensionsFunction() {} |
| virtual bool RunImpl(); |
| DECLARE_EXTENSION_FUNCTION_NAME("management.getAll"); |
| }; |
| |
| class GetExtensionByIdFunction : public ExtensionManagementFunction { |
| ~GetExtensionByIdFunction() {} |
| virtual bool RunImpl(); |
| DECLARE_EXTENSION_FUNCTION_NAME("management.get"); |
| }; |
| |
| class LaunchAppFunction : public ExtensionManagementFunction { |
| ~LaunchAppFunction() {} |
| virtual bool RunImpl(); |
| DECLARE_EXTENSION_FUNCTION_NAME("management.launchApp"); |
| }; |
| |
| class SetEnabledFunction : public ExtensionManagementFunction { |
| ~SetEnabledFunction() {} |
| virtual bool RunImpl(); |
| DECLARE_EXTENSION_FUNCTION_NAME("management.setEnabled"); |
| }; |
| |
| class UninstallFunction : public ExtensionManagementFunction { |
| ~UninstallFunction() {} |
| virtual bool RunImpl(); |
| DECLARE_EXTENSION_FUNCTION_NAME("management.uninstall"); |
| }; |
| |
| class ExtensionManagementEventRouter : public NotificationObserver { |
| public: |
| // Get the singleton instance of the event router. |
| static ExtensionManagementEventRouter* GetInstance(); |
| |
| // Performs one-time initialization of our singleton. |
| void Init(); |
| |
| private: |
| friend struct DefaultSingletonTraits<ExtensionManagementEventRouter>; |
| |
| ExtensionManagementEventRouter(); |
| virtual ~ExtensionManagementEventRouter(); |
| |
| // NotificationObserver implementation. |
| virtual void Observe(NotificationType type, |
| const NotificationSource& source, |
| const NotificationDetails& details); |
| |
| NotificationRegistrar registrar_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ExtensionManagementEventRouter); |
| }; |
| |
| #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_API_H__ |