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 a9bb2ae9a77e2693e017881f3a95994fabf76048..56c808e0a32c8c448c6feaceba2f2bfc6378cd35 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -4633,7 +4633,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)); |
@@ -4650,6 +4651,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()) { |