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

Unified Diff: chrome/browser/extensions/api/permissions/permissions_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: chrome/browser/extensions/api/permissions/permissions_api.cc
diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc
index 82f7aac33bb2bc31b9a1a81195632cdb78f24c13..464b0f6e46962db4c52e6558b9e2716d1fb7c2a8 100644
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc
@@ -141,22 +141,6 @@ void PermissionsRequestFunction::SetIgnoreUserGestureForTests(
PermissionsRequestFunction::PermissionsRequestFunction() {}
-void PermissionsRequestFunction::InstallUIProceed() {
- PermissionsUpdater perms_updater(GetProfile());
- perms_updater.AddPermissions(extension(), *requested_permissions_);
-
- results_ = Request::Results::Create(true);
- SendResponse(true);
-
- Release(); // Balanced in RunAsync().
-}
-
-void PermissionsRequestFunction::InstallUIAbort(bool user_initiated) {
- SendResponse(true);
-
- Release(); // Balanced in RunAsync().
-}
-
PermissionsRequestFunction::~PermissionsRequestFunction() {}
bool PermissionsRequestFunction::RunAsync() {
@@ -227,7 +211,7 @@ bool PermissionsRequestFunction::RunAsync() {
*requested_permissions_,
extension()->permissions_data()->active_permissions());
- AddRef(); // Balanced in InstallUIProceed() / InstallUIAbort().
+ AddRef(); // Balanced in OnInstallPromptDone().
// We don't need to show the prompt if there are no new warnings, or if
// we're skipping the confirmation UI. All extension types but INTERNAL
@@ -241,15 +225,16 @@ bool PermissionsRequestFunction::RunAsync() {
.empty();
if (auto_confirm_for_tests == PROCEED || has_no_warnings ||
extension_->location() == Manifest::COMPONENT) {
- InstallUIProceed();
+ OnInstallPromptDone(ExtensionInstallPrompt::Result::ACCEPTED);
} else if (auto_confirm_for_tests == ABORT) {
// Pretend the user clicked cancel.
- InstallUIAbort(true);
+ OnInstallPromptDone(ExtensionInstallPrompt::Result::USER_CANCELED);
} else {
CHECK_EQ(DO_NOT_SKIP, auto_confirm_for_tests);
install_ui_.reset(new ExtensionInstallPrompt(GetAssociatedWebContents()));
install_ui_->ShowDialog(
- this, extension(), nullptr,
+ base::Bind(&PermissionsRequestFunction::OnInstallPromptDone, this),
+ extension(), nullptr,
make_scoped_ptr(new ExtensionInstallPrompt::Prompt(
ExtensionInstallPrompt::PERMISSIONS_PROMPT)),
requested_permissions_->Clone(),
@@ -259,4 +244,17 @@ bool PermissionsRequestFunction::RunAsync() {
return true;
}
+void PermissionsRequestFunction::OnInstallPromptDone(
+ ExtensionInstallPrompt::Result result) {
+ if (result == ExtensionInstallPrompt::Result::ACCEPTED) {
+ PermissionsUpdater perms_updater(GetProfile());
+ perms_updater.AddPermissions(extension(), *requested_permissions_);
+
+ results_ = Request::Results::Create(true);
+ }
+
+ SendResponse(true);
+ Release(); // Balanced in RunAsync().
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698