diff options
author | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-23 01:17:35 +0000 |
---|---|---|
committer | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-23 01:17:35 +0000 |
commit | 66711f6f7abbf3ed9f0d39e4f497620ab39e79f0 (patch) | |
tree | e341e531b756e3dc290fd04d94c30a4da59b25b1 /chrome/browser/js_modal_dialog.cc | |
parent | 8516471942ded5ca17efd0681f1ae12ac86f3617 (diff) | |
download | chromium_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.cc | 7 |
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(); } - |