Index: content/browser/renderer_host/render_widget_host_impl.cc |
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
index c0369142836fa3dc09a86ca9fdd1f2e2bfdc35a6..d35ded620b35e961a6a1fc3b735e69ba50610335 100644 |
--- a/content/browser/renderer_host/render_widget_host_impl.cc |
+++ b/content/browser/renderer_host/render_widget_host_impl.cc |
@@ -489,15 +489,9 @@ void RenderWidgetHostImpl::SendScreenRects() { |
waiting_for_screen_rects_ack_ = true; |
} |
-void RenderWidgetHostImpl::FlushInput() { |
- input_router_->RequestNotificationWhenFlushed(); |
- if (synthetic_gesture_controller_) |
- synthetic_gesture_controller_->Flush(base::TimeTicks::Now()); |
-} |
- |
-void RenderWidgetHostImpl::SetNeedsFlush() { |
- if (view_) |
- view_->OnSetNeedsFlushInput(); |
+void RenderWidgetHostImpl::OnBeginFrame() { |
+ if (begin_frame_callback_) |
+ std::move(begin_frame_callback_).Run(); |
} |
void RenderWidgetHostImpl::Init() { |
@@ -1316,8 +1310,12 @@ void RenderWidgetHostImpl::QueueSyntheticGesture( |
std::unique_ptr<SyntheticGesture> synthetic_gesture, |
const base::Callback<void(SyntheticGesture::Result)>& on_complete) { |
if (!synthetic_gesture_controller_ && view_) { |
- synthetic_gesture_controller_.reset( |
- new SyntheticGestureController(view_->CreateSyntheticGestureTarget())); |
+ synthetic_gesture_controller_ = |
+ base::MakeUnique<SyntheticGestureController>( |
+ view_->CreateSyntheticGestureTarget(), |
+ base::Bind( |
+ &RenderWidgetHostImpl::RequestBeginFrameForSynthesizedInput, |
+ base::Unretained(this))); |
} |
if (synthetic_gesture_controller_) { |
synthetic_gesture_controller_->QueueSyntheticGesture( |
@@ -1862,6 +1860,13 @@ void RenderWidgetHostImpl::OnGpuSwapBuffersCompletedInternal( |
latency_tracker_.OnGpuSwapBuffersCompleted(latency_info); |
} |
+void RenderWidgetHostImpl::RequestBeginFrameForSynthesizedInput( |
+ base::OnceClosure begin_frame_callback) { |
+ DCHECK(view_); |
+ begin_frame_callback_ = std::move(begin_frame_callback); |
+ view_->OnSetNeedsFlushInput(); |
+} |
+ |
void RenderWidgetHostImpl::OnRenderProcessGone(int status, int exit_code) { |
// RenderFrameHost owns a RenderWidgetHost when it needs one, in which case |
// it handles destruction. |
@@ -2215,8 +2220,6 @@ void RenderWidgetHostImpl::OnHasTouchEventHandlers(bool has_handlers) { |
} |
void RenderWidgetHostImpl::DidFlush() { |
- if (synthetic_gesture_controller_) |
- synthetic_gesture_controller_->OnDidFlushInput(); |
} |
void RenderWidgetHostImpl::DidOverscroll( |