Index: chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc |
diff --git a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc |
index dd6732f3565c1aba96b54c68ec901aee7f2e9ddd..e5b7c767360175a42f887c8b97edb2b4167a3787 100644 |
--- a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc |
+++ b/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc |
@@ -18,10 +18,12 @@ AppModalDialog::AppModalDialog(WebContents* web_contents, const string16& title) |
: valid_(true), |
native_dialog_(NULL), |
title_(title), |
- web_contents_(web_contents) { |
+ web_contents_(web_contents), |
+ completed_(false) { |
} |
AppModalDialog::~AppModalDialog() { |
+ CompleteDialog(); |
} |
void AppModalDialog::ShowModalDialog() { |
@@ -62,5 +64,8 @@ void AppModalDialog::CloseModalDialog() { |
} |
void AppModalDialog::CompleteDialog() { |
- AppModalDialogQueue::GetInstance()->ShowNextDialog(); |
+ if (!completed_) { |
+ completed_ = true; |
+ AppModalDialogQueue::GetInstance()->ShowNextDialog(); |
+ } |
} |