summaryrefslogtreecommitdiffstats
path: root/chrome/browser/render_view_host.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/render_view_host.cc')
-rw-r--r--chrome/browser/render_view_host.cc4
1 files changed, 3 insertions, 1 deletions
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