diff options
-rw-r--r-- | DEPS | 2 | ||||
-rw-r--r-- | chrome/browser/render_view_host.cc | 4 |
2 files changed, 4 insertions, 2 deletions
@@ -12,7 +12,7 @@ deps = { "http://googletest.googlecode.com/svn/trunk@63", "src/third_party/WebKit": - "/trunk/deps/third_party/WebKit@4220", + "/trunk/deps/third_party/WebKit@4225", "src/third_party/icu38": "/trunk/deps/third_party/icu38@4040", diff --git a/chrome/browser/render_view_host.cc b/chrome/browser/render_view_host.cc index 389b6f3..db87871 100644 --- a/chrome/browser/render_view_host.cc +++ b/chrome/browser/render_view_host.cc @@ -1206,7 +1206,9 @@ void RenderViewHost::OnUnloadListenerChanged(bool has_listener) { } void RenderViewHost::NotifyRendererUnresponsive() { - if (is_waiting_for_unload_ack_) { + if (is_waiting_for_unload_ack_ && + !Singleton<CrossSiteRequestManager>()->HasPendingCrossSiteRequest( + process()->host_id(), routing_id_)) { // If the tab hangs in the beforeunload/unload handler there's really // nothing we can do to recover. Pretend the unload listeners have // all fired and close the tab. If the hang is in the beforeunload handler |