Index: extensions/browser/api/management/management_api.h |
diff --git a/chrome/browser/extensions/api/management/management_api.h b/extensions/browser/api/management/management_api.h |
similarity index 77% |
rename from chrome/browser/extensions/api/management/management_api.h |
rename to extensions/browser/api/management/management_api.h |
index 93133f9e52a97fd82df823dc1deab16f42a8ebcf..d12903b60007bacfafd68214a9fa7ad7bc8f5817 100644 |
--- a/chrome/browser/extensions/api/management/management_api.h |
+++ b/extensions/browser/api/management/management_api.h |
@@ -2,41 +2,33 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CHROME_BROWSER_EXTENSIONS_API_MANAGEMENT_MANAGEMENT_API_H_ |
-#define CHROME_BROWSER_EXTENSIONS_API_MANAGEMENT_MANAGEMENT_API_H_ |
+#ifndef EXTENSIONS_BROWSER_API_MANAGEMENT_MANAGEMENT_API_H_ |
+#define EXTENSIONS_BROWSER_API_MANAGEMENT_MANAGEMENT_API_H_ |
#include "base/compiler_specific.h" |
#include "base/scoped_observer.h" |
-#include "base/task/cancelable_task_tracker.h" |
-#include "chrome/browser/extensions/bookmark_app_helper.h" |
-#include "chrome/browser/extensions/chrome_extension_function.h" |
-#include "chrome/browser/extensions/extension_install_prompt.h" |
-#include "chrome/browser/extensions/extension_uninstall_dialog.h" |
-#include "chrome/common/web_application_info.h" |
-#include "components/favicon_base/favicon_types.h" |
#include "components/keyed_service/core/keyed_service.h" |
+#include "extensions/browser/api/management/management_api_delegate.h" |
#include "extensions/browser/browser_context_keyed_api_factory.h" |
#include "extensions/browser/event_router.h" |
+#include "extensions/browser/extension_function.h" |
#include "extensions/browser/extension_registry_observer.h" |
-class ExtensionService; |
+class ExtensionRegistry; |
class ExtensionUninstallDialog; |
+struct WebApplicationInfo; |
namespace extensions { |
class ExtensionRegistry; |
-class ManagementFunction : public ChromeSyncExtensionFunction { |
+class ManagementFunction : public SyncExtensionFunction { |
protected: |
~ManagementFunction() override {} |
- |
- ExtensionService* service(); |
}; |
-class AsyncManagementFunction : public ChromeAsyncExtensionFunction { |
+class AsyncManagementFunction : public AsyncExtensionFunction { |
protected: |
~AsyncManagementFunction() override {} |
- |
- ExtensionService* service(); |
}; |
class ManagementGetAllFunction : public ManagementFunction { |
@@ -85,11 +77,10 @@ class ManagementGetPermissionWarningsByIdFunction : public ManagementFunction { |
}; |
class ManagementGetPermissionWarningsByManifestFunction |
- : public ChromeAsyncExtensionFunction { |
+ : public AsyncExtensionFunction { |
public: |
- DECLARE_EXTENSION_FUNCTION( |
- "management.getPermissionWarningsByManifest", |
- MANAGEMENT_GETPERMISSIONWARNINGSBYMANIFEST); |
+ DECLARE_EXTENSION_FUNCTION("management.getPermissionWarningsByManifest", |
+ MANAGEMENT_GETPERMISSIONWARNINGSBYMANIFEST); |
// Called when utility process finishes. |
void OnParseSuccess(scoped_ptr<base::DictionaryValue> parsed_manifest); |
@@ -113,54 +104,50 @@ class ManagementLaunchAppFunction : public ManagementFunction { |
bool RunSync() override; |
}; |
-class ManagementSetEnabledFunction : public AsyncManagementFunction, |
- public ExtensionInstallPrompt::Delegate { |
+class ManagementSetEnabledFunction : public AsyncManagementFunction { |
public: |
DECLARE_EXTENSION_FUNCTION("management.setEnabled", MANAGEMENT_SETENABLED) |
ManagementSetEnabledFunction(); |
+ void InstallUIProceed(); |
+ void InstallUIAbort(bool user_initiated); |
+ |
protected: |
~ManagementSetEnabledFunction() override; |
// ExtensionFunction: |
bool RunAsync() override; |
- // ExtensionInstallPrompt::Delegate. |
- void InstallUIProceed() override; |
- void InstallUIAbort(bool user_initiated) override; |
- |
private: |
std::string extension_id_; |
- // Used for prompting to re-enable items with permissions escalation updates. |
- scoped_ptr<ExtensionInstallPrompt> install_prompt_; |
+ scoped_ptr<InstallPromptDelegate> install_prompt_; |
}; |
-class ManagementUninstallFunctionBase : public AsyncManagementFunction, |
- public ExtensionUninstallDialog::Delegate { |
+class ManagementUninstallFunctionBase : public AsyncManagementFunction { |
public: |
ManagementUninstallFunctionBase(); |
static void SetAutoConfirmForTest(bool should_proceed); |
- // ExtensionUninstallDialog::Delegate implementation. |
- void ExtensionUninstallAccepted() override; |
- void ExtensionUninstallCanceled() override; |
+ void ExtensionUninstallAccepted(); |
+ void ExtensionUninstallCanceled(); |
protected: |
~ManagementUninstallFunctionBase() override; |
bool Uninstall(const std::string& extension_id, bool show_confirm_dialog); |
- private: |
+ private: |
// If should_uninstall is true, this method does the actual uninstall. |
// If |show_uninstall_dialog|, then this function will be called by one of the |
// Accepted/Canceled callbacks. Otherwise, it's called directly from RunAsync. |
void Finish(bool should_uninstall); |
std::string extension_id_; |
- scoped_ptr<ExtensionUninstallDialog> extension_uninstall_dialog_; |
+ |
+ scoped_ptr<UninstallDialogDelegate> uninstall_dialog_; |
}; |
class ManagementUninstallFunction : public ManagementUninstallFunctionBase { |
@@ -178,7 +165,7 @@ class ManagementUninstallFunction : public ManagementUninstallFunctionBase { |
class ManagementUninstallSelfFunction : public ManagementUninstallFunctionBase { |
public: |
DECLARE_EXTENSION_FUNCTION("management.uninstallSelf", |
- MANAGEMENT_UNINSTALLSELF); |
+ MANAGEMENT_UNINSTALLSELF); |
ManagementUninstallSelfFunction(); |
@@ -191,7 +178,7 @@ class ManagementUninstallSelfFunction : public ManagementUninstallFunctionBase { |
class ManagementCreateAppShortcutFunction : public AsyncManagementFunction { |
public: |
DECLARE_EXTENSION_FUNCTION("management.createAppShortcut", |
- MANAGEMENT_CREATEAPPSHORTCUT); |
+ MANAGEMENT_CREATEAPPSHORTCUT); |
ManagementCreateAppShortcutFunction(); |
@@ -208,7 +195,7 @@ class ManagementCreateAppShortcutFunction : public AsyncManagementFunction { |
class ManagementSetLaunchTypeFunction : public ManagementFunction { |
public: |
DECLARE_EXTENSION_FUNCTION("management.setLaunchType", |
- MANAGEMENT_SETLAUNCHTYPE); |
+ MANAGEMENT_SETLAUNCHTYPE); |
protected: |
~ManagementSetLaunchTypeFunction() override {} |
@@ -219,27 +206,20 @@ class ManagementSetLaunchTypeFunction : public ManagementFunction { |
class ManagementGenerateAppForLinkFunction : public AsyncManagementFunction { |
public: |
DECLARE_EXTENSION_FUNCTION("management.generateAppForLink", |
- MANAGEMENT_GENERATEAPPFORLINK); |
+ MANAGEMENT_GENERATEAPPFORLINK); |
ManagementGenerateAppForLinkFunction(); |
+ void FinishCreateBookmarkApp(const Extension* extension, |
+ const WebApplicationInfo& web_app_info); |
+ |
protected: |
~ManagementGenerateAppForLinkFunction() override; |
bool RunAsync() override; |
private: |
- void OnFaviconForApp(const favicon_base::FaviconImageResult& image_result); |
- void FinishCreateBookmarkApp(const Extension* extension, |
- const WebApplicationInfo& web_app_info); |
- |
- std::string title_; |
- GURL launch_url_; |
- |
- scoped_ptr<BookmarkAppHelper> bookmark_app_helper_; |
- |
- // Used for favicon loading tasks. |
- base::CancelableTaskTracker cancelable_task_tracker_; |
+ scoped_ptr<AppForLinkDelegate> app_for_link_delegate_; |
}; |
class ManagementEventRouter : public ExtensionRegistryObserver { |
@@ -287,23 +267,26 @@ class ManagementAPI : public BrowserContextKeyedAPI, |
// EventRouter::Observer implementation. |
void OnListenerAdded(const EventListenerInfo& details) override; |
+ // Returns the ManagementAPI delegate. |
+ const ManagementAPIDelegate* GetDelegate() const { return delegate_.get(); } |
+ |
private: |
friend class BrowserContextKeyedAPIFactory<ManagementAPI>; |
content::BrowserContext* browser_context_; |
// BrowserContextKeyedAPI implementation. |
- static const char* service_name() { |
- return "ManagementAPI"; |
- } |
+ static const char* service_name() { return "ManagementAPI"; } |
static const bool kServiceIsNULLWhileTesting = true; |
// Created lazily upon OnListenerAdded. |
scoped_ptr<ManagementEventRouter> management_event_router_; |
+ scoped_ptr<ManagementAPIDelegate> delegate_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ManagementAPI); |
}; |
} // namespace extensions |
-#endif // CHROME_BROWSER_EXTENSIONS_API_MANAGEMENT_MANAGEMENT_API_H_ |
+#endif // EXTENSIONS_BROWSER_API_MANAGEMENT_MANAGEMENT_API_H_ |