| Index: chrome/browser/extensions/external_install_ui.cc
|
| diff --git a/chrome/browser/extensions/external_install_ui.cc b/chrome/browser/extensions/external_install_ui.cc
|
| index 18321849b877eba83b28b2e7855622112b2822da..dc0abc4c292baa052c213a15bf6a57052c555db0 100644
|
| --- a/chrome/browser/extensions/external_install_ui.cc
|
| +++ b/chrome/browser/extensions/external_install_ui.cc
|
| @@ -340,7 +340,13 @@ void ExternalInstallDialogDelegate::InstallUIProceed() {
|
|
|
| void ExternalInstallDialogDelegate::InstallUIAbort(bool user_initiated) {
|
| const Extension* extension = NULL;
|
| - if (service_weak_.get() &&
|
| +
|
| + // Uninstall the extension if the abort was user initiated (and not, e.g., the
|
| + // result of the window closing).
|
| + // Otherwise, the extension will remain installed, but unacknowledged, so it
|
| + // will be prompted again.
|
| + if (user_initiated &&
|
| + service_weak_.get() &&
|
| (extension = service_weak_->GetInstalledExtension(extension_id_))) {
|
| service_weak_->UninstallExtension(extension_id_, false, NULL);
|
| }
|
|
|