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 ef8bc66db18dc954d3adf5d748c0be37bf4023e8..ed4281631ae4539e348e05b2d6f7d17025c9ef2f 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -4610,7 +4610,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)); |
@@ -4627,6 +4628,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()) { |