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 23a03d9b75fac5e2fd7bb91fa7001bfe8296fbcc..829dadecdc1e08a3dfe7cc3c79b802fde77d3531 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -4624,7 +4624,8 @@ void WebContentsImpl::OnIgnoredUIEvent() { |
} |
void WebContentsImpl::RendererUnresponsive( |
- RenderWidgetHostImpl* render_widget_host) { |
+ RenderWidgetHostImpl* render_widget_host, |
+ RenderWidgetHostDelegate::RendererUnresponsiveType type) { |
FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
OnRendererUnresponsive(render_widget_host)); |
@@ -4641,6 +4642,11 @@ void WebContentsImpl::RendererUnresponsive( |
if (DevToolsAgentHost::IsDebuggerAttached(this)) |
return; |
+ // Record histograms about the type of renderer hang. |
+ UMA_HISTOGRAM_ENUMERATION( |
+ "ChildProcess.HangRendererType", type, |
+ RenderWidgetHostDelegate::RENDERER_UNRESPONSIVE_MAX); |
+ |
// We might have been waiting for both beforeunload and unload ACK. |
// Check if tab is to be unloaded first. |
if (rfhi->IsWaitingForUnloadACK()) { |