Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_impl.cc |
| diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
| index 089bd20f4e4c705bccc4fd996784c4f2707ed96c..00d60cc846e73a0b055efbf1e527ab96bfa2d3a9 100644 |
| --- a/content/browser/frame_host/render_frame_host_impl.cc |
| +++ b/content/browser/frame_host/render_frame_host_impl.cc |
| @@ -1777,6 +1777,13 @@ void RenderFrameHostImpl::OnBeginNavigation( |
| void RenderFrameHostImpl::OnDispatchLoad() { |
| CHECK(SiteIsolationPolicy::AreCrossProcessFramesPossible()); |
| + |
| + // Don't forward the load event if this RFH is pending deletion. This can |
| + // happen in a race where this RenderFrameHost finishes loading just after |
| + // the frame navigates away. See https://crbug.com/626802. |
| + if (this != frame_tree_node()->render_manager()->current_frame_host()) |
|
Charlie Reis
2016/08/25 21:54:01
I think !is_active() might be a clearer way to che
alexmos
2016/08/25 22:03:46
Indeed, done. There are a couple more instances o
|
| + return; |
| + |
| // Only frames with an out-of-process parent frame should be sending this |
| // message. |
| RenderFrameProxyHost* proxy = |