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 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1309 } | 1309 } |
1310 input_router_->SendKeyboardEvent(key_event_with_latency); | 1310 input_router_->SendKeyboardEvent(key_event_with_latency); |
1311 } | 1311 } |
1312 | 1312 |
1313 void RenderWidgetHostImpl::QueueSyntheticGesture( | 1313 void RenderWidgetHostImpl::QueueSyntheticGesture( |
1314 std::unique_ptr<SyntheticGesture> synthetic_gesture, | 1314 std::unique_ptr<SyntheticGesture> synthetic_gesture, |
1315 const base::Callback<void(SyntheticGesture::Result)>& on_complete) { | 1315 const base::Callback<void(SyntheticGesture::Result)>& on_complete) { |
1316 if (!synthetic_gesture_controller_ && view_) { | 1316 if (!synthetic_gesture_controller_ && view_) { |
1317 synthetic_gesture_controller_ = | 1317 synthetic_gesture_controller_ = |
1318 base::MakeUnique<SyntheticGestureController>( | 1318 base::MakeUnique<SyntheticGestureController>( |
1319 view_->CreateSyntheticGestureTarget(), | 1319 this, view_->CreateSyntheticGestureTarget()); |
1320 base::Bind( | |
1321 &RenderWidgetHostImpl::RequestBeginFrameForSynthesizedInput, | |
1322 base::Unretained(this))); | |
1323 } | 1320 } |
1324 if (synthetic_gesture_controller_) { | 1321 if (synthetic_gesture_controller_) { |
1325 synthetic_gesture_controller_->QueueSyntheticGesture( | 1322 synthetic_gesture_controller_->QueueSyntheticGesture( |
1326 std::move(synthetic_gesture), on_complete); | 1323 std::move(synthetic_gesture), on_complete); |
1327 } | 1324 } |
1328 } | 1325 } |
1329 | 1326 |
1330 void RenderWidgetHostImpl::SetCursor(const WebCursor& cursor) { | 1327 void RenderWidgetHostImpl::SetCursor(const WebCursor& cursor) { |
1331 if (!view_) | 1328 if (!view_) |
1332 return; | 1329 return; |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1857 weak_factory_.GetWeakPtr(), sequence_number), | 1854 weak_factory_.GetWeakPtr(), sequence_number), |
1858 base::TimeDelta::FromSecondsD(1. / 6)); | 1855 base::TimeDelta::FromSecondsD(1. / 6)); |
1859 #else | 1856 #else |
1860 WindowSnapshotReachedScreen(sequence_number); | 1857 WindowSnapshotReachedScreen(sequence_number); |
1861 #endif | 1858 #endif |
1862 } | 1859 } |
1863 | 1860 |
1864 latency_tracker_.OnGpuSwapBuffersCompleted(latency_info); | 1861 latency_tracker_.OnGpuSwapBuffersCompleted(latency_info); |
1865 } | 1862 } |
1866 | 1863 |
1867 void RenderWidgetHostImpl::RequestBeginFrameForSynthesizedInput( | |
1868 base::OnceClosure begin_frame_callback) { | |
1869 DCHECK(view_); | |
1870 begin_frame_callback_ = std::move(begin_frame_callback); | |
1871 view_->OnSetNeedsFlushInput(); | |
1872 } | |
1873 | |
1874 void RenderWidgetHostImpl::OnRenderProcessGone(int status, int exit_code) { | 1864 void RenderWidgetHostImpl::OnRenderProcessGone(int status, int exit_code) { |
1875 // RenderFrameHost owns a RenderWidgetHost when it needs one, in which case | 1865 // RenderFrameHost owns a RenderWidgetHost when it needs one, in which case |
1876 // it handles destruction. | 1866 // it handles destruction. |
1877 if (!owned_by_render_frame_host_) { | 1867 if (!owned_by_render_frame_host_) { |
1878 // TODO(evanm): This synchronously ends up calling "delete this". | 1868 // TODO(evanm): This synchronously ends up calling "delete this". |
1879 // Is that really what we want in response to this message? I'm matching | 1869 // Is that really what we want in response to this message? I'm matching |
1880 // previous behavior of the code here. | 1870 // previous behavior of the code here. |
1881 Destroy(true); | 1871 Destroy(true); |
1882 } else { | 1872 } else { |
1883 RendererExited(static_cast<base::TerminationStatus>(status), exit_code); | 1873 RendererExited(static_cast<base::TerminationStatus>(status), exit_code); |
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2550 else | 2540 else |
2551 compositor_frame_sink_binding_.Bind(std::move(request)); | 2541 compositor_frame_sink_binding_.Bind(std::move(request)); |
2552 #else | 2542 #else |
2553 compositor_frame_sink_binding_.Bind(std::move(request)); | 2543 compositor_frame_sink_binding_.Bind(std::move(request)); |
2554 #endif | 2544 #endif |
2555 if (view_) | 2545 if (view_) |
2556 view_->DidCreateNewRendererCompositorFrameSink(client.get()); | 2546 view_->DidCreateNewRendererCompositorFrameSink(client.get()); |
2557 renderer_compositor_frame_sink_ = std::move(client); | 2547 renderer_compositor_frame_sink_ = std::move(client); |
2558 } | 2548 } |
2559 | 2549 |
| 2550 void RenderWidgetHostImpl::RequestBeginFrameForSynthesizedInput( |
| 2551 base::OnceClosure begin_frame_callback) { |
| 2552 DCHECK(view_); |
| 2553 begin_frame_callback_ = std::move(begin_frame_callback); |
| 2554 view_->OnSetNeedsFlushInput(); |
| 2555 } |
| 2556 |
| 2557 bool RenderWidgetHostImpl::HasGestureStopped() { |
| 2558 return !input_router_->HasPendingEvents(); |
| 2559 } |
| 2560 |
2560 void RenderWidgetHostImpl::SetNeedsBeginFrame(bool needs_begin_frame) { | 2561 void RenderWidgetHostImpl::SetNeedsBeginFrame(bool needs_begin_frame) { |
2561 OnSetNeedsBeginFrames(needs_begin_frame); | 2562 OnSetNeedsBeginFrames(needs_begin_frame); |
2562 } | 2563 } |
2563 | 2564 |
2564 void RenderWidgetHostImpl::SubmitCompositorFrame( | 2565 void RenderWidgetHostImpl::SubmitCompositorFrame( |
2565 const cc::LocalSurfaceId& local_surface_id, | 2566 const cc::LocalSurfaceId& local_surface_id, |
2566 cc::CompositorFrame frame) { | 2567 cc::CompositorFrame frame) { |
2567 auto new_surface_properties = | 2568 auto new_surface_properties = |
2568 RenderWidgetSurfaceProperties::FromCompositorFrame(frame); | 2569 RenderWidgetSurfaceProperties::FromCompositorFrame(frame); |
2569 | 2570 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2643 RenderProcessHost* rph = GetProcess(); | 2644 RenderProcessHost* rph = GetProcess(); |
2644 for (std::vector<IPC::Message>::const_iterator i = messages.begin(); | 2645 for (std::vector<IPC::Message>::const_iterator i = messages.begin(); |
2645 i != messages.end(); ++i) { | 2646 i != messages.end(); ++i) { |
2646 rph->OnMessageReceived(*i); | 2647 rph->OnMessageReceived(*i); |
2647 if (i->dispatch_error()) | 2648 if (i->dispatch_error()) |
2648 rph->OnBadMessageReceived(*i); | 2649 rph->OnBadMessageReceived(*i); |
2649 } | 2650 } |
2650 } | 2651 } |
2651 | 2652 |
2652 } // namespace content | 2653 } // namespace content |
OLD | NEW |