| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index 8c44414cbda911773b920c08a7dd79d3a988a60a..6749aafe832138b29352a637eb1107f508b56817 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -4858,6 +4858,16 @@
|
| "ChildProcess.HangRendererType", type,
|
| RendererUnresponsiveType::RENDERER_UNRESPONSIVE_MAX);
|
|
|
| + RenderFrameHostImpl* rfhi =
|
| + static_cast<RenderFrameHostImpl*>(GetRenderViewHost()->GetMainFrame());
|
| + if (rfhi->is_waiting_for_beforeunload_ack()) {
|
| + // If the hang is in the beforeunload handler, pretend the beforeunload
|
| + // listeners have all fired and allow the delegate to continue closing;
|
| + // the user will not have the option of cancelling the close.
|
| + rfhi->SimulateBeforeUnloadAck();
|
| + return;
|
| + }
|
| +
|
| if (!GetRenderViewHost() || !GetRenderViewHost()->IsRenderViewLive())
|
| return;
|
|
|
|
|