| Index: chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc
|
| diff --git a/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc b/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc
|
| index c65a732ceba0cf96993196f6b6f54fb912404664..758d79e1b5cb678f8f8b0b50c6c08e30c9fcf727 100644
|
| --- a/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc
|
| +++ b/chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.cc
|
| @@ -108,7 +108,10 @@ void JavaScriptAppModalDialog::Invalidate() {
|
| return;
|
|
|
| AppModalDialog::Invalidate();
|
| - callback_.Reset();
|
| + if (!callback_.is_null()) {
|
| + callback_.Run(false, string16());
|
| + callback_.Reset();
|
| + }
|
| if (native_dialog())
|
| CloseModalDialog();
|
| }
|
| @@ -161,7 +164,10 @@ void JavaScriptAppModalDialog::NotifyDelegate(bool success,
|
| if (!IsValid())
|
| return;
|
|
|
| - callback_.Run(success, user_input);
|
| + if (!callback_.is_null()) {
|
| + callback_.Run(success, user_input);
|
| + callback_.Reset();
|
| + }
|
|
|
| // The callback_ above may delete web_contents_, thus removing the extra
|
| // data from the map owned by ChromeJavaScriptDialogManager. Make sure
|
|
|