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

Unified Diff: extensions/browser/api/management/management_api.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: extensions/browser/api/management/management_api.cc
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
index 81fe0129e89dd40c7940dde467e8b0768c00769f..2511aee576e26dc135670b76ebf5271660f7503d 100644
--- a/extensions/browser/api/management/management_api.cc
+++ b/extensions/browser/api/management/management_api.cc
@@ -451,8 +451,10 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
if (!user_gesture())
return RespondNow(Error(keys::kGestureNeededForEscalationError));
- AddRef(); // Matched in InstallUIProceed/InstallUIAbort
- install_prompt_ = delegate->SetEnabledFunctionDelegate(this, extension);
+ AddRef(); // Matched in OnInstallPromptDone().
+ install_prompt_ = delegate->SetEnabledFunctionDelegate(
+ GetSenderWebContents(), browser_context(), extension,
+ base::Bind(&ManagementSetEnabledFunction::OnInstallPromptDone, this));
return RespondLater();
}
if (prefs->GetDisableReasons(extension_id_) &
@@ -474,18 +476,18 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
return RespondNow(NoArguments());
}
-void ManagementSetEnabledFunction::InstallUIProceed() {
- ManagementAPI::GetFactoryInstance()
- ->Get(browser_context())
- ->GetDelegate()
- ->EnableExtension(browser_context(), extension_id_);
- Respond(OneArgument(new base::FundamentalValue(true)));
- Release();
-}
+void ManagementSetEnabledFunction::OnInstallPromptDone(bool did_accept) {
+ if (did_accept) {
+ ManagementAPI::GetFactoryInstance()
+ ->Get(browser_context())
+ ->GetDelegate()
+ ->EnableExtension(browser_context(), extension_id_);
+ Respond(OneArgument(new base::FundamentalValue(true)));
+ } else {
+ Respond(Error(keys::kUserDidNotReEnableError));
+ }
-void ManagementSetEnabledFunction::InstallUIAbort(bool user_initiated) {
- Respond(Error(keys::kUserDidNotReEnableError));
- Release();
+ Release(); // Balanced in Run().
}
void ManagementSetEnabledFunction::OnRequirementsChecked(
« no previous file with comments | « extensions/browser/api/management/management_api.h ('k') | extensions/browser/api/management/management_api_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698