OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/frame_host/render_frame_host_impl.h" | 5 #include "content/browser/frame_host/render_frame_host_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 #include "content/common/render_message_filter.mojom.h" | 66 #include "content/common/render_message_filter.mojom.h" |
67 #include "content/common/renderer.mojom.h" | 67 #include "content/common/renderer.mojom.h" |
68 #include "content/common/site_isolation_policy.h" | 68 #include "content/common/site_isolation_policy.h" |
69 #include "content/common/swapped_out_messages.h" | 69 #include "content/common/swapped_out_messages.h" |
70 #include "content/public/browser/ax_event_notification_details.h" | 70 #include "content/public/browser/ax_event_notification_details.h" |
71 #include "content/public/browser/browser_accessibility_state.h" | 71 #include "content/public/browser/browser_accessibility_state.h" |
72 #include "content/public/browser/browser_context.h" | 72 #include "content/public/browser/browser_context.h" |
73 #include "content/public/browser/browser_plugin_guest_manager.h" | 73 #include "content/public/browser/browser_plugin_guest_manager.h" |
74 #include "content/public/browser/browser_thread.h" | 74 #include "content/public/browser/browser_thread.h" |
75 #include "content/public/browser/content_browser_client.h" | 75 #include "content/public/browser/content_browser_client.h" |
| 76 #include "content/public/browser/notification_service.h" |
| 77 #include "content/public/browser/notification_types.h" |
76 #include "content/public/browser/permission_manager.h" | 78 #include "content/public/browser/permission_manager.h" |
77 #include "content/public/browser/permission_type.h" | 79 #include "content/public/browser/permission_type.h" |
78 #include "content/public/browser/render_process_host.h" | 80 #include "content/public/browser/render_process_host.h" |
79 #include "content/public/browser/render_widget_host_view.h" | 81 #include "content/public/browser/render_widget_host_view.h" |
80 #include "content/public/browser/resource_context.h" | 82 #include "content/public/browser/resource_context.h" |
81 #include "content/public/browser/storage_partition.h" | 83 #include "content/public/browser/storage_partition.h" |
82 #include "content/public/browser/stream_handle.h" | 84 #include "content/public/browser/stream_handle.h" |
83 #include "content/public/browser/user_metrics.h" | 85 #include "content/public/browser/user_metrics.h" |
84 #include "content/public/common/bindings_policy.h" | 86 #include "content/public/common/bindings_policy.h" |
85 #include "content/public/common/browser_side_navigation_policy.h" | 87 #include "content/public/common/browser_side_navigation_policy.h" |
(...skipping 3368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3454 // There is no pending NavigationEntry in these cases, so pass 0 as the | 3456 // There is no pending NavigationEntry in these cases, so pass 0 as the |
3455 // pending_nav_entry_id. If the previous handle was a prematurely aborted | 3457 // pending_nav_entry_id. If the previous handle was a prematurely aborted |
3456 // navigation loaded via LoadDataWithBaseURL, propagate the entry id. | 3458 // navigation loaded via LoadDataWithBaseURL, propagate the entry id. |
3457 return NavigationHandleImpl::Create( | 3459 return NavigationHandleImpl::Create( |
3458 params.url, params.redirects, frame_tree_node_, is_renderer_initiated, | 3460 params.url, params.redirects, frame_tree_node_, is_renderer_initiated, |
3459 params.was_within_same_page, base::TimeTicks::Now(), | 3461 params.was_within_same_page, base::TimeTicks::Now(), |
3460 entry_id_for_data_nav, false); // started_from_context_menu | 3462 entry_id_for_data_nav, false); // started_from_context_menu |
3461 } | 3463 } |
3462 | 3464 |
3463 void RenderFrameHostImpl::BeforeUnloadTimeout() { | 3465 void RenderFrameHostImpl::BeforeUnloadTimeout() { |
| 3466 // Temporarily fire "hung" events to keep the renderer_hang_count from |
| 3467 // Stability.Counts stable. |
| 3468 NotificationService::current()->Notify(NOTIFICATION_RENDER_WIDGET_HOST_HANG, |
| 3469 Source<RenderWidgetHost>(nullptr), |
| 3470 NotificationService::NoDetails()); |
| 3471 |
3464 if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer()) | 3472 if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer()) |
3465 return; | 3473 return; |
3466 | 3474 |
3467 UMA_HISTOGRAM_ENUMERATION( | 3475 UMA_HISTOGRAM_ENUMERATION( |
3468 "ChildProcess.HangRendererType", beforeunload_timeout_type_, | 3476 "ChildProcess.HangRendererType", beforeunload_timeout_type_, |
3469 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_MAX); | 3477 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_MAX); |
3470 | 3478 |
3471 SimulateBeforeUnloadAck(); | 3479 SimulateBeforeUnloadAck(); |
3472 } | 3480 } |
3473 | 3481 |
3474 } // namespace content | 3482 } // namespace content |
OLD | NEW |