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/renderer_host/render_widget_host_impl.h" | 5 #include "content/browser/renderer_host/render_widget_host_impl.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 owned_by_render_frame_host_(false), | 287 owned_by_render_frame_host_(false), |
288 is_focused_(false), | 288 is_focused_(false), |
289 hung_renderer_delay_( | 289 hung_renderer_delay_( |
290 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)), | 290 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)), |
291 hang_monitor_reason_( | 291 hang_monitor_reason_( |
292 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_UNKNOWN), | 292 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_UNKNOWN), |
293 hang_monitor_event_type_(blink::WebInputEvent::Undefined), | 293 hang_monitor_event_type_(blink::WebInputEvent::Undefined), |
294 last_event_type_(blink::WebInputEvent::Undefined), | 294 last_event_type_(blink::WebInputEvent::Undefined), |
295 new_content_rendering_delay_( | 295 new_content_rendering_delay_( |
296 base::TimeDelta::FromMilliseconds(kNewContentRenderingDelayMs)), | 296 base::TimeDelta::FromMilliseconds(kNewContentRenderingDelayMs)), |
297 current_content_source_id_(0), | |
298 weak_factory_(this) { | 297 weak_factory_(this) { |
299 CHECK(delegate_); | 298 CHECK(delegate_); |
300 CHECK_NE(MSG_ROUTING_NONE, routing_id_); | 299 CHECK_NE(MSG_ROUTING_NONE, routing_id_); |
301 latency_tracker_.SetDelegate(delegate_); | 300 latency_tracker_.SetDelegate(delegate_); |
302 | 301 |
303 #if defined(OS_WIN) | 302 #if defined(OS_WIN) |
304 // Update the display color profile cache so that it is likely to be up to | 303 // Update the display color profile cache so that it is likely to be up to |
305 // date when the renderer process requests the color profile. | 304 // date when the renderer process requests the color profile. |
306 if (gfx::ICCProfile::CachedProfilesNeedUpdate()) { | 305 if (gfx::ICCProfile::CachedProfilesNeedUpdate()) { |
307 base::PostTaskWithTraits( | 306 base::PostTaskWithTraits( |
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
979 | 978 |
980 void RenderWidgetHostImpl::StopHangMonitorTimeout() { | 979 void RenderWidgetHostImpl::StopHangMonitorTimeout() { |
981 if (hang_monitor_timeout_) { | 980 if (hang_monitor_timeout_) { |
982 hang_monitor_timeout_->Stop(); | 981 hang_monitor_timeout_->Stop(); |
983 hang_monitor_reason_ = | 982 hang_monitor_reason_ = |
984 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_UNKNOWN; | 983 RendererUnresponsiveType::RENDERER_UNRESPONSIVE_UNKNOWN; |
985 } | 984 } |
986 RendererIsResponsive(); | 985 RendererIsResponsive(); |
987 } | 986 } |
988 | 987 |
989 void RenderWidgetHostImpl::StartNewContentRenderingTimeout( | 988 void RenderWidgetHostImpl::StartNewContentRenderingTimeout() { |
990 uint32_t next_source_id) { | |
991 current_content_source_id_ = next_source_id; | |
992 // It is possible for a compositor frame to arrive before the browser is | 989 // It is possible for a compositor frame to arrive before the browser is |
993 // notified about the page being committed, in which case no timer is | 990 // notified about the page being committed, in which case no timer is |
994 // necessary. | 991 // necessary. |
995 if (received_paint_after_load_) { | 992 if (received_paint_after_load_) { |
996 received_paint_after_load_ = false; | 993 received_paint_after_load_ = false; |
997 return; | 994 return; |
998 } | 995 } |
999 | 996 |
1000 new_content_rendering_timeout_->Start(new_content_rendering_delay_); | 997 new_content_rendering_timeout_->Start(new_content_rendering_delay_); |
1001 } | 998 } |
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1825 std::vector<ui::LatencyInfo>().swap(frame.metadata.latency_info); | 1822 std::vector<ui::LatencyInfo>().swap(frame.metadata.latency_info); |
1826 } | 1823 } |
1827 | 1824 |
1828 latency_tracker_.OnSwapCompositorFrame(&frame.metadata.latency_info); | 1825 latency_tracker_.OnSwapCompositorFrame(&frame.metadata.latency_info); |
1829 | 1826 |
1830 bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata); | 1827 bool is_mobile_optimized = IsMobileOptimizedFrame(frame.metadata); |
1831 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); | 1828 input_router_->NotifySiteIsMobileOptimized(is_mobile_optimized); |
1832 if (touch_emulator_) | 1829 if (touch_emulator_) |
1833 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); | 1830 touch_emulator_->SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
1834 | 1831 |
1835 // Ignore this frame if its content has already been unloaded. Source ID | 1832 if (view_) { |
1836 // is always zero for an OOPIF because we are only concerned with displaying | |
1837 // stale graphics on top-level frames. We accept frames that have a source ID | |
1838 // greater than |current_content_source_id_| because in some cases the first | |
1839 // compositor frame can arrive before the navigation commit message that | |
1840 // updates that value. | |
1841 if (view_ && frame.metadata.content_source_id >= current_content_source_id_) { | |
1842 view_->OnSwapCompositorFrame(compositor_frame_sink_id, std::move(frame)); | 1833 view_->OnSwapCompositorFrame(compositor_frame_sink_id, std::move(frame)); |
1843 view_->DidReceiveRendererFrame(); | 1834 view_->DidReceiveRendererFrame(); |
1844 } else { | 1835 } else { |
1845 cc::ReturnedResourceArray resources; | 1836 cc::ReturnedResourceArray resources; |
1846 cc::TransferableResource::ReturnResources(frame.resource_list, &resources); | 1837 cc::TransferableResource::ReturnResources(frame.resource_list, &resources); |
1847 SendReclaimCompositorResources(routing_id_, compositor_frame_sink_id, | 1838 SendReclaimCompositorResources(routing_id_, compositor_frame_sink_id, |
1848 process_->GetID(), true /* is_swap_ack */, | 1839 process_->GetID(), true /* is_swap_ack */, |
1849 resources); | 1840 resources); |
1850 } | 1841 } |
1851 | 1842 |
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2514 // different from the receiver's. | 2505 // different from the receiver's. |
2515 file_system_file.url = | 2506 file_system_file.url = |
2516 GURL(storage::GetIsolatedFileSystemRootURIString( | 2507 GURL(storage::GetIsolatedFileSystemRootURIString( |
2517 file_system_url.origin(), filesystem_id, std::string()) | 2508 file_system_url.origin(), filesystem_id, std::string()) |
2518 .append(register_name)); | 2509 .append(register_name)); |
2519 file_system_file.filesystem_id = filesystem_id; | 2510 file_system_file.filesystem_id = filesystem_id; |
2520 } | 2511 } |
2521 } | 2512 } |
2522 | 2513 |
2523 } // namespace content | 2514 } // namespace content |
OLD | NEW |