| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index ff49586a1752433c88bbbb7a6049b30d5b6f1f9c..cb2507459f36479b6d2862b0c4da2fceedbae2bf 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -53,6 +53,7 @@
|
| #include "content/renderer/gpu/render_widget_compositor.h"
|
| #include "content/renderer/ime_event_guard.h"
|
| #include "content/renderer/input/input_handler_manager.h"
|
| +#include "content/renderer/input/main_thread_event_queue.h"
|
| #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
|
| #include "content/renderer/render_frame_impl.h"
|
| #include "content/renderer/render_frame_proxy.h"
|
| @@ -817,6 +818,14 @@ void RenderWidget::OnHandleInputEvent(
|
| latency_info, dispatch_type);
|
| }
|
|
|
| +InputEventAckState RenderWidget::HandleInputEvent(
|
| + const blink::WebCoalescedInputEvent& input_event,
|
| + const ui::LatencyInfo& latency_info,
|
| + InputEventDispatchType dispatch_type) {
|
| + return input_handler_->HandleInputEvent(input_event, latency_info,
|
| + dispatch_type);
|
| +}
|
| +
|
| void RenderWidget::OnCursorVisibilityChange(bool is_visible) {
|
| if (GetWebWidget())
|
| GetWebWidget()->SetCursorVisibilityState(is_visible);
|
| @@ -871,13 +880,10 @@ void RenderWidget::RecordWheelAndTouchScrollingCount(
|
| }
|
|
|
| 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_, ui::EventTimeStampFromSeconds(frame_time_sec));
|
| + if (input_event_queue_) {
|
| + input_event_queue_->DispatchRafAlignedInput(
|
| + ui::EventTimeStampFromSeconds(frame_time_sec));
|
| + }
|
|
|
| GetWebWidget()->BeginFrame(frame_time_sec);
|
| }
|
| @@ -1037,19 +1043,6 @@ void RenderWidget::OnInputEventAck(
|
| new InputHostMsg_HandleInputEvent_ACK(routing_id_, *input_event_ack));
|
| }
|
|
|
| -void RenderWidget::NotifyInputEventHandled(
|
| - blink::WebInputEvent::Type handled_type,
|
| - blink::WebInputEventResult result,
|
| - InputEventAckState ack_result) {
|
| - RenderThreadImpl* render_thread = RenderThreadImpl::current();
|
| - InputHandlerManager* input_handler_manager =
|
| - render_thread ? render_thread->input_handler_manager() : NULL;
|
| - if (input_handler_manager) {
|
| - input_handler_manager->NotifyInputEventHandledOnMainThread(
|
| - routing_id_, handled_type, result, ack_result);
|
| - }
|
| -}
|
| -
|
| void RenderWidget::SetInputHandler(RenderWidgetInputHandler* input_handler) {
|
| // Nothing to do here. RenderWidget created the |input_handler| and will take
|
| // ownership of it. We just verify here that we don't already have an input
|
| @@ -1312,8 +1305,10 @@ blink::WebLayerTreeView* RenderWidget::InitializeLayerTreeView() {
|
| InputHandlerManager* input_handler_manager =
|
| render_thread ? render_thread->input_handler_manager() : NULL;
|
| if (input_handler_manager) {
|
| + input_event_queue_ = new MainThreadEventQueueWithRenderWidget(
|
| + weak_ptr_factory_.GetWeakPtr(), render_thread->GetRendererScheduler());
|
| input_handler_manager->AddInputHandler(
|
| - routing_id_, compositor()->GetInputHandler(),
|
| + routing_id_, compositor()->GetInputHandler(), input_event_queue_,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| compositor_deps_->IsScrollAnimatorEnabled());
|
| has_added_input_handler_ = true;
|
|
|