diff options
-rw-r--r-- | chrome/common/crash_keys.cc | 4 | ||||
-rw-r--r-- | content/browser/frame_host/render_frame_host_manager.cc | 18 |
2 files changed, 22 insertions, 0 deletions
diff --git a/chrome/common/crash_keys.cc b/chrome/common/crash_keys.cc index 75fcfda..f627dc9 100644 --- a/chrome/common/crash_keys.cc +++ b/chrome/common/crash_keys.cc @@ -174,6 +174,10 @@ size_t RegisterChromeCrashKeys() { { "initrf_view_id", kSmallSize }, { "initrf_main_frame_id", kSmallSize }, { "initrf_view_is_live", kSmallSize }, + + // Temporary for https://crbug.com/591478. + { "initrf_parent_proxy_exists", kSmallSize }, + { "initrf_render_view_is_live", kSmallSize }, }; // This dynamic set of keys is used for sets of key value pairs when gathering diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index 23f86ab..01547b0 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc @@ -1849,6 +1849,24 @@ bool RenderFrameHostManager::InitRenderFrame( } } + // TODO(alexmos): These CHECKs are temporary to track down + // https://crbug.com/591478. Verify that the parent routing ID + // points to a live RenderFrameProxy when this is not a remote-to-local + // navigation (i.e., when there's no |existing_proxy|). + if (!existing_proxy && frame_tree_node_->parent()) { + RenderFrameProxyHost* parent_proxy = RenderFrameProxyHost::FromID( + render_frame_host->GetProcess()->GetID(), parent_routing_id); + if (!parent_proxy || !parent_proxy->is_render_frame_proxy_live()) { + base::debug::SetCrashKeyValue("initrf_parent_proxy_exists", + parent_proxy ? "yes" : "no"); + base::debug::SetCrashKeyValue( + "initrf_render_view_is_live", + render_frame_host->render_view_host()->IsRenderViewLive() ? "yes" + : "no"); + base::debug::DumpWithoutCrashing(); + } + } + return delegate_->CreateRenderFrameForRenderManager( render_frame_host, proxy_routing_id, opener_routing_id, parent_routing_id, previous_sibling_routing_id); |