Index: chrome/browser/extensions/api/management/management_api.cc |
diff --git a/chrome/browser/extensions/api/management/management_api.cc b/chrome/browser/extensions/api/management/management_api.cc |
index 7431cdb2e3e0eb21bb69d6acf01615692753f350..2872ef31b68b953949f219956a5a116e0060079f 100644 |
--- a/chrome/browser/extensions/api/management/management_api.cc |
+++ b/chrome/browser/extensions/api/management/management_api.cc |
@@ -507,23 +507,16 @@ void ManagementSetEnabledFunction::InstallUIAbort(bool user_initiated) { |
Release(); |
} |
-ManagementUninstallFunction::ManagementUninstallFunction() { |
+ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() { |
} |
-ManagementUninstallFunction::~ManagementUninstallFunction() { |
+ManagementUninstallFunctionBase::~ManagementUninstallFunctionBase() { |
} |
-bool ManagementUninstallFunction::RunImpl() { |
- scoped_ptr<management::Uninstall::Params> params( |
- management::Uninstall::Params::Create(*args_)); |
- EXTENSION_FUNCTION_VALIDATE(params.get()); |
- |
- extension_id_ = params->id; |
- |
- bool show_confirm_dialog = false; |
- if (params->options.get() && params->options->show_confirm_dialog.get()) |
- show_confirm_dialog = *params->options->show_confirm_dialog; |
- |
+bool ManagementUninstallFunctionBase::Uninstall( |
+ const std::string& extension_id, |
+ bool show_confirm_dialog) { |
+ extension_id_ = extension_id; |
const Extension* extension = service()->GetExtensionById(extension_id_, true); |
if (!extension) { |
error_ = ErrorUtils::FormatErrorMessage( |
@@ -555,11 +548,12 @@ bool ManagementUninstallFunction::RunImpl() { |
} |
// static |
-void ManagementUninstallFunction::SetAutoConfirmForTest(bool should_proceed) { |
+void ManagementUninstallFunctionBase::SetAutoConfirmForTest( |
+ bool should_proceed) { |
auto_confirm_for_test = should_proceed ? PROCEED : ABORT; |
} |
-void ManagementUninstallFunction::Finish(bool should_uninstall) { |
+void ManagementUninstallFunctionBase::Finish(bool should_uninstall) { |
if (should_uninstall) { |
bool success = service()->UninstallExtension( |
extension_id_, |
@@ -576,16 +570,51 @@ void ManagementUninstallFunction::Finish(bool should_uninstall) { |
} |
-void ManagementUninstallFunction::ExtensionUninstallAccepted() { |
+void ManagementUninstallFunctionBase::ExtensionUninstallAccepted() { |
Finish(true); |
Release(); |
} |
-void ManagementUninstallFunction::ExtensionUninstallCanceled() { |
+void ManagementUninstallFunctionBase::ExtensionUninstallCanceled() { |
Finish(false); |
Release(); |
} |
+ManagementUninstallFunction::ManagementUninstallFunction() { |
+} |
+ |
+ManagementUninstallFunction::~ManagementUninstallFunction() { |
+} |
+ |
+bool ManagementUninstallFunction::RunImpl() { |
+ scoped_ptr<management::Uninstall::Params> params( |
+ management::Uninstall::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ bool show_confirm_dialog = false; |
+ if (params->options.get() && params->options->show_confirm_dialog.get()) |
+ show_confirm_dialog = *params->options->show_confirm_dialog; |
+ |
+ return Uninstall(params->id, show_confirm_dialog); |
+} |
+ |
+ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() { |
+} |
+ |
+ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() { |
+} |
+ |
+bool ManagementUninstallSelfFunction::RunImpl() { |
+ scoped_ptr<management::UninstallSelf::Params> params( |
+ management::UninstallSelf::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ bool show_confirm_dialog = false; |
+ if (params->options.get() && params->options->show_confirm_dialog.get()) |
+ show_confirm_dialog = *params->options->show_confirm_dialog; |
+ return Uninstall(extension_->id(), show_confirm_dialog); |
+} |
+ |
ManagementEventRouter::ManagementEventRouter(Profile* profile) |
: profile_(profile) { |
int types[] = { |