| Index: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
|
| diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
|
| index 674b3ae0842679d6de9e3d726ba6d85bc8a4d5f0..4ceb8cccee3ea4ba6cf95b4f4e5ebb5b178f12aa 100644
|
| --- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
|
| +++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
|
| @@ -195,7 +195,8 @@ ExtensionInstallDialogView::ExtensionInstallDialogView(
|
| scrollable_header_only_(NULL),
|
| show_details_link_(NULL),
|
| checkbox_info_label_(NULL),
|
| - unchecked_boxes_(0) {
|
| + unchecked_boxes_(0),
|
| + handled_result_(false) {
|
| // Possible grid layouts without ExtensionPermissionDialog experiment:
|
| // Inline install
|
| // w/ permissions no permissions
|
| @@ -588,7 +589,10 @@ ExtensionInstallDialogView::ExtensionInstallDialogView(
|
| sampling_event_ = ExperienceSamplingEvent::Create(event_name);
|
| }
|
|
|
| -ExtensionInstallDialogView::~ExtensionInstallDialogView() {}
|
| +ExtensionInstallDialogView::~ExtensionInstallDialogView() {
|
| + if (!handled_result_)
|
| + delegate_->InstallUIAbort(true);
|
| +}
|
|
|
| views::GridLayout* ExtensionInstallDialogView::CreateLayout(
|
| views::View* parent,
|
| @@ -714,16 +718,23 @@ int ExtensionInstallDialogView::GetDefaultDialogButton() const {
|
| }
|
|
|
| bool ExtensionInstallDialogView::Cancel() {
|
| + if (handled_result_)
|
| + return true;
|
| +
|
| + handled_result_ = true;
|
| UpdateInstallResultHistogram(false);
|
| - if (sampling_event_.get())
|
| + if (sampling_event_)
|
| sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kDeny);
|
| delegate_->InstallUIAbort(true);
|
| return true;
|
| }
|
|
|
| bool ExtensionInstallDialogView::Accept() {
|
| + DCHECK(!handled_result_);
|
| +
|
| + handled_result_ = true;
|
| UpdateInstallResultHistogram(true);
|
| - if (sampling_event_.get())
|
| + if (sampling_event_)
|
| sampling_event_->CreateUserDecisionEvent(ExperienceSamplingEvent::kProceed);
|
| delegate_->InstallUIProceed();
|
| return true;
|
|
|