Introduce the concept of RAF aligned input events to the MainThreadEventQueue.
Currently behind a feature flag and is disabled.
Short Design Doc:
https://docs.google.com/document/d/1aM9AqyYuceRHOmsJZXFKcgi_D4jvFAymYvI36OEwIpI/edit?usp=sharing
BUG=625693
Review-Url: https://codereview.chromium.org/2166703003
Cr-Commit-Position: refs/heads/master@{#415099}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index cb2afbc..da72e2c 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -695,6 +695,13 @@
RenderWidgetSetFocus(enable));
}
+void RenderWidget::SetNeedsMainFrame() {
+ RenderWidgetCompositor* rwc = compositor();
+ if (!rwc)
+ return;
+ rwc->setNeedsBeginFrame();
+}
+
///////////////////////////////////////////////////////////////////////////////
// RenderWidgetCompositorDelegate
@@ -710,6 +717,13 @@
}
void RenderWidget::BeginMainFrame(double frame_time_sec) {
+ RenderThreadImpl* render_thread = RenderThreadImpl::current();
+ // render_thread may be NULL in tests.
+ InputHandlerManager* input_handler_manager =
+ render_thread ? render_thread->input_handler_manager() : NULL;
+ if (input_handler_manager)
+ input_handler_manager->ProcessRafAlignedInputOnMainThread(routing_id_);
+
webwidget_->beginFrame(frame_time_sec);
}