diff options
author | creis@google.com <creis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-30 22:05:29 +0000 |
---|---|---|
committer | creis@google.com <creis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-30 22:05:29 +0000 |
commit | 802dc1e3cde70a4db050fe49b63dedb80874bc1f (patch) | |
tree | a6459b9429d7e5efae54b3e71ebaf965067d0cee /chrome/browser/renderer_host/render_view_host.cc | |
parent | 98ce1ee2b9754b6b89f5fad0c939712c19d76aef (diff) | |
download | chromium_src-802dc1e3cde70a4db050fe49b63dedb80874bc1f.zip chromium_src-802dc1e3cde70a4db050fe49b63dedb80874bc1f.tar.gz chromium_src-802dc1e3cde70a4db050fe49b63dedb80874bc1f.tar.bz2 |
Stops the throbber from spinning if the user cancels a beforeunload dialog,
if the dialog is triggered by a reload or location bar entry.
BUG=22004
TEST=BrowserTest.ReloadThenCancelBeforeUnload
Review URL: http://codereview.chromium.org/256015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27663 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/render_view_host.cc')
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 4184d43..46d4cdf 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -110,6 +110,7 @@ RenderViewHost::RenderViewHost(SiteInstance* instance, navigations_suspended_(false), suspended_nav_message_(NULL), run_modal_reply_msg_(NULL), + is_showing_before_unload_dialog_(false), is_waiting_for_unload_ack_(false), unload_ack_is_for_cross_site_transition_(false), are_javascript_messages_suppressed_(false), @@ -578,6 +579,13 @@ void RenderViewHost::JavaScriptMessageBoxClosed(IPC::Message* reply_msg, StartHangMonitorTimeout(TimeDelta::FromMilliseconds(kUnloadTimeoutMS)); } + if (is_showing_before_unload_dialog_ && !success) { + // If a beforeunload dialog is canceled, we need to stop the throbber from + // spinning, since we forced it to start spinning in Navigate. + delegate_->DidStopLoading(this); + } + is_showing_before_unload_dialog_ = false; + ViewHostMsg_RunJavaScriptMessage::WriteReplyParams(reply_msg, success, prompt); Send(reply_msg); @@ -1301,6 +1309,7 @@ void RenderViewHost::OnMsgRunBeforeUnloadConfirm(const GURL& frame_url, // shouldn't process input events. process()->set_ignore_input_events(true); StopHangMonitorTimeout(); + is_showing_before_unload_dialog_ = true; delegate_->RunBeforeUnloadConfirm(message, reply_msg); } |