OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/web_contents/web_contents_impl.h" | 5 #include "content/browser/web_contents/web_contents_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 #include <utility> | 10 #include <utility> |
(...skipping 4818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4829 } | 4829 } |
4830 } | 4830 } |
4831 | 4831 |
4832 void WebContentsImpl::OnIgnoredUIEvent() { | 4832 void WebContentsImpl::OnIgnoredUIEvent() { |
4833 // Notify observers. | 4833 // Notify observers. |
4834 for (auto& observer : observers_) | 4834 for (auto& observer : observers_) |
4835 observer.DidGetIgnoredUIEvent(); | 4835 observer.DidGetIgnoredUIEvent(); |
4836 } | 4836 } |
4837 | 4837 |
4838 void WebContentsImpl::RendererUnresponsive( | 4838 void WebContentsImpl::RendererUnresponsive( |
4839 RenderWidgetHostImpl* render_widget_host, | 4839 RenderWidgetHostImpl* render_widget_host) { |
4840 RendererUnresponsiveType type) { | |
4841 for (auto& observer : observers_) | 4840 for (auto& observer : observers_) |
4842 observer.OnRendererUnresponsive(render_widget_host); | 4841 observer.OnRendererUnresponsive(render_widget_host); |
4843 | 4842 |
4844 // Don't show hung renderer dialog for a swapped out RVH. | 4843 // Don't show hung renderer dialog for a swapped out RVH. |
4845 if (render_widget_host != GetRenderViewHost()->GetWidget()) | 4844 if (render_widget_host != GetRenderViewHost()->GetWidget()) |
4846 return; | 4845 return; |
4847 | 4846 |
4848 if (ShouldIgnoreUnresponsiveRenderer()) | 4847 if (ShouldIgnoreUnresponsiveRenderer()) |
4849 return; | 4848 return; |
4850 | 4849 |
4851 // Record histograms about the type of renderer hang. | |
4852 UMA_HISTOGRAM_ENUMERATION( | |
4853 "ChildProcess.HangRendererType", type, | |
4854 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_MAX); | |
4855 | |
4856 if (!GetRenderViewHost() || !GetRenderViewHost()->IsRenderViewLive()) | 4850 if (!GetRenderViewHost() || !GetRenderViewHost()->IsRenderViewLive()) |
4857 return; | 4851 return; |
4858 | 4852 |
4859 if (delegate_) { | 4853 if (delegate_) { |
4860 WebContentsUnresponsiveState unresponsive_state; | 4854 WebContentsUnresponsiveState unresponsive_state; |
4861 unresponsive_state.reason = type; | |
4862 unresponsive_state.outstanding_ack_count = | 4855 unresponsive_state.outstanding_ack_count = |
4863 render_widget_host->in_flight_event_count(); | 4856 render_widget_host->in_flight_event_count(); |
4864 unresponsive_state.outstanding_event_type = | 4857 unresponsive_state.outstanding_event_type = |
4865 render_widget_host->hang_monitor_event_type(); | 4858 render_widget_host->hang_monitor_event_type(); |
4866 unresponsive_state.last_event_type = render_widget_host->last_event_type(); | 4859 unresponsive_state.last_event_type = render_widget_host->last_event_type(); |
4867 delegate_->RendererUnresponsive(this, unresponsive_state); | 4860 delegate_->RendererUnresponsive(this, unresponsive_state); |
4868 } | 4861 } |
4869 } | 4862 } |
4870 | 4863 |
4871 void WebContentsImpl::RendererResponsive( | 4864 void WebContentsImpl::RendererResponsive( |
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5399 RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host); | 5392 RenderViewHost* render_view_host = RenderViewHost::From(render_widget_host); |
5400 if (!render_view_host) | 5393 if (!render_view_host) |
5401 continue; | 5394 continue; |
5402 render_view_host_set.insert(render_view_host); | 5395 render_view_host_set.insert(render_view_host); |
5403 } | 5396 } |
5404 for (RenderViewHost* render_view_host : render_view_host_set) | 5397 for (RenderViewHost* render_view_host : render_view_host_set) |
5405 render_view_host->OnWebkitPreferencesChanged(); | 5398 render_view_host->OnWebkitPreferencesChanged(); |
5406 } | 5399 } |
5407 | 5400 |
5408 } // namespace content | 5401 } // namespace content |
OLD | NEW |