summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/common/crash_keys.cc4
-rw-r--r--content/browser/frame_host/render_frame_host_manager.cc18
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);