Commit 9f7248b6 authored by creis's avatar creis Committed by Commit bot

Diagnose RenderFrameImpl::didCommitProvisionalLoad crash.

The previous theories haven't held up, so these crash keys will help
reveal how the proxy is being created.  They cover all the ways of
reaching the RenderFrameProxy constructor (i.e., RVI::Initialize,
RFI::OnSwapOut, and RTI::OnCreateNewFrameProxy).

BUG=575245
TEST=New crash keys present in crash reports.

Review URL: https://codereview.chromium.org/1643673002

Cr-Commit-Position: refs/heads/master@{#371857}
parent cd293227
...@@ -162,6 +162,13 @@ size_t RegisterChromeCrashKeys() { ...@@ -162,6 +162,13 @@ size_t RegisterChromeCrashKeys() {
{ "commit_proxy_id", kSmallSize }, { "commit_proxy_id", kSmallSize },
{ "commit_view_id", kSmallSize }, { "commit_view_id", kSmallSize },
{ "commit_main_render_frame_id", kSmallSize }, { "commit_main_render_frame_id", kSmallSize },
{ "newproxy_proxy_id", kSmallSize },
{ "newproxy_view_id", kSmallSize },
{ "newproxy_opener_id", kSmallSize },
{ "newproxy_parent_id", kSmallSize },
{ "rvinit_view_id", kSmallSize },
{ "rvinit_proxy_id", kSmallSize },
{ "rvinit_main_frame_id", kSmallSize },
}; };
// This dynamic set of keys is used for sets of key value pairs when gathering // This dynamic set of keys is used for sets of key value pairs when gathering
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/allocator/allocator_extension.h" #include "base/allocator/allocator_extension.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/debug/crash_logging.h"
#include "base/lazy_instance.h" #include "base/lazy_instance.h"
#include "base/location.h" #include "base/location.h"
#include "base/logging.h" #include "base/logging.h"
...@@ -1764,6 +1765,15 @@ void RenderThreadImpl::OnCreateNewFrameProxy( ...@@ -1764,6 +1765,15 @@ void RenderThreadImpl::OnCreateNewFrameProxy(
int opener_routing_id, int opener_routing_id,
int parent_routing_id, int parent_routing_id,
const FrameReplicationState& replicated_state) { const FrameReplicationState& replicated_state) {
// Debug cases of https://crbug.com/575245.
base::debug::SetCrashKeyValue("newproxy_proxy_id",
base::IntToString(routing_id));
base::debug::SetCrashKeyValue("newproxy_view_id",
base::IntToString(render_view_routing_id));
base::debug::SetCrashKeyValue("newproxy_opener_id",
base::IntToString(opener_routing_id));
base::debug::SetCrashKeyValue("newproxy_parent_id",
base::IntToString(parent_routing_id));
RenderFrameProxy::CreateFrameProxy(routing_id, render_view_routing_id, RenderFrameProxy::CreateFrameProxy(routing_id, render_view_routing_id,
opener_routing_id, parent_routing_id, opener_routing_id, parent_routing_id,
replicated_state); replicated_state);
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/debug/alias.h" #include "base/debug/alias.h"
#include "base/debug/crash_logging.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/i18n/rtl.h" #include "base/i18n/rtl.h"
#include "base/json/json_writer.h" #include "base/json/json_writer.h"
...@@ -671,6 +672,14 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params, ...@@ -671,6 +672,14 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
if (command_line.HasSwitch(switches::kStatsCollectionController)) if (command_line.HasSwitch(switches::kStatsCollectionController))
stats_collection_observer_.reset(new StatsCollectionObserver(this)); stats_collection_observer_.reset(new StatsCollectionObserver(this));
// Debug cases of https://crbug.com/575245.
base::debug::SetCrashKeyValue("rvinit_view_id",
base::IntToString(routing_id()));
base::debug::SetCrashKeyValue("rvinit_proxy_id",
base::IntToString(params.proxy_routing_id));
base::debug::SetCrashKeyValue(
"rvinit_main_frame_id", base::IntToString(params.main_frame_routing_id));
if (params.main_frame_routing_id != MSG_ROUTING_NONE) { if (params.main_frame_routing_id != MSG_ROUTING_NONE) {
main_render_frame_ = RenderFrameImpl::CreateMainFrame( main_render_frame_ = RenderFrameImpl::CreateMainFrame(
this, params.main_frame_routing_id, params.main_frame_widget_routing_id, this, params.main_frame_routing_id, params.main_frame_widget_routing_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment