summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DEPS2
-rw-r--r--chrome/browser/render_view_host.cc4
2 files changed, 4 insertions, 2 deletions
diff --git a/DEPS b/DEPS
index 2f6a533..f3f6a91 100644
--- a/DEPS
+++ b/DEPS
@@ -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