Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6043)

Unified Diff: chrome/browser/ui/extensions/extension_enable_flow.cc

Issue 1534123002: [Extensions] Migrate ExtensionInstallPrompt::Delegate to be a callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/extensions/extension_enable_flow.cc
diff --git a/chrome/browser/ui/extensions/extension_enable_flow.cc b/chrome/browser/ui/extensions/extension_enable_flow.cc
index 6cc42919d200fc91f12231cd57b91965a8940b4b..2862ac38c512f67548c147c2e7b3f6ea4623e166 100644
--- a/chrome/browser/ui/extensions/extension_enable_flow.cc
+++ b/chrome/browser/ui/extensions/extension_enable_flow.cc
@@ -27,8 +27,8 @@ ExtensionEnableFlow::ExtensionEnableFlow(Profile* profile,
delegate_(delegate),
parent_contents_(NULL),
parent_window_(NULL),
- extension_registry_observer_(this) {
-}
+ extension_registry_observer_(this),
+ weak_ptr_factory_(this) {}
ExtensionEnableFlow::~ExtensionEnableFlow() {
}
@@ -117,7 +117,9 @@ void ExtensionEnableFlow::CheckPermissionAndMaybePromptUser() {
ExtensionInstallPrompt::PromptType type =
ExtensionInstallPrompt::GetReEnablePromptTypeForExtension(profile_,
extension);
- prompt_->ShowDialog(this, extension, nullptr,
+ prompt_->ShowDialog(base::Bind(&ExtensionEnableFlow::InstallPromptDone,
+ weak_ptr_factory_.GetWeakPtr()),
+ extension, nullptr,
make_scoped_ptr(new ExtensionInstallPrompt::Prompt(type)),
ExtensionInstallPrompt::GetDefaultShowDialogCallback());
}
@@ -170,23 +172,25 @@ void ExtensionEnableFlow::OnExtensionUninstalled(
}
}
-void ExtensionEnableFlow::InstallUIProceed() {
- ExtensionService* service =
- extensions::ExtensionSystem::Get(profile_)->extension_service();
-
- // The extension can be uninstalled in another window while the UI was
- // showing. Treat it as a cancellation and notify |delegate_|.
- const Extension* extension = service->GetExtensionById(extension_id_, true);
- if (!extension) {
- delegate_->ExtensionEnableFlowAborted(true);
- return;
- }
+void ExtensionEnableFlow::InstallPromptDone(
+ ExtensionInstallPrompt::Result result) {
+ if (result == ExtensionInstallPrompt::Result::ACCEPTED) {
+ ExtensionService* service =
+ extensions::ExtensionSystem::Get(profile_)->extension_service();
- service->GrantPermissionsAndEnableExtension(extension);
- delegate_->ExtensionEnableFlowFinished(); // |delegate_| may delete us.
-}
+ // The extension can be uninstalled in another window while the UI was
+ // showing. Treat it as a cancellation and notify |delegate_|.
+ const Extension* extension = service->GetExtensionById(extension_id_, true);
+ if (!extension) {
+ delegate_->ExtensionEnableFlowAborted(true);
+ return;
+ }
-void ExtensionEnableFlow::InstallUIAbort(bool user_initiated) {
- delegate_->ExtensionEnableFlowAborted(user_initiated);
- // |delegate_| may delete us.
+ service->GrantPermissionsAndEnableExtension(extension);
+ delegate_->ExtensionEnableFlowFinished(); // |delegate_| may delete us.
+ } else {
+ delegate_->ExtensionEnableFlowAborted(
+ result == ExtensionInstallPrompt::Result::USER_CANCELED);
+ // |delegate_| may delete us.
+ }
}

Powered by Google App Engine
This is Rietveld 408576698