summaryrefslogtreecommitdiffstats
path: root/chrome/browser/js_modal_dialog.cc
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-23 01:17:35 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-23 01:17:35 +0000
commit66711f6f7abbf3ed9f0d39e4f497620ab39e79f0 (patch)
treee341e531b756e3dc290fd04d94c30a4da59b25b1 /chrome/browser/js_modal_dialog.cc
parent8516471942ded5ca17efd0681f1ae12ac86f3617 (diff)
downloadchromium_src-66711f6f7abbf3ed9f0d39e4f497620ab39e79f0.zip
chromium_src-66711f6f7abbf3ed9f0d39e4f497620ab39e79f0.tar.gz
chromium_src-66711f6f7abbf3ed9f0d39e4f497620ab39e79f0.tar.bz2
Fix a crash when we try to close a js dialog that wasn't shown.
The dialog has been queued, but it hasn't been shown because a different dialog is already showing. We try to close the dialog because a page navigation has occurred. BUG=47056 TEST=None Review URL: http://codereview.chromium.org/2803017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50561 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/js_modal_dialog.cc')
-rw-r--r--chrome/browser/js_modal_dialog.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/chrome/browser/js_modal_dialog.cc b/chrome/browser/js_modal_dialog.cc
index 37253b9..111aa01 100644
--- a/chrome/browser/js_modal_dialog.cc
+++ b/chrome/browser/js_modal_dialog.cc
@@ -29,6 +29,9 @@ JavaScriptAppModalDialog::JavaScriptAppModalDialog(
bool is_before_unload_dialog,
IPC::Message* reply_msg)
: AppModalDialog(client->AsTabContents(), title),
+#if defined(OS_MACOSX)
+ dialog_(NULL),
+#endif
client_(client),
extension_host_(client->AsExtensionHost()),
dialog_flags_(dialog_flags),
@@ -64,7 +67,8 @@ void JavaScriptAppModalDialog::Observe(NotificationType type,
// Also clear the client, since it's now invalid.
skip_this_dialog_ = true;
client_ = NULL;
- CloseModalDialog();
+ if (dialog_)
+ CloseModalDialog();
}
void JavaScriptAppModalDialog::InitNotifications() {
@@ -136,4 +140,3 @@ void JavaScriptAppModalDialog::Cleanup() {
}
AppModalDialog::Cleanup();
}
-