1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/renderer/input/input_handler_wrapper.h" 6 7#include "base/message_loop/message_loop_proxy.h" 8#include "content/renderer/input/input_event_filter.h" 9#include "content/renderer/input/input_handler_manager.h" 10#include "third_party/WebKit/public/platform/Platform.h" 11 12namespace content { 13 14InputHandlerWrapper::InputHandlerWrapper( 15 InputHandlerManager* input_handler_manager, 16 int routing_id, 17 const scoped_refptr<base::MessageLoopProxy>& main_loop, 18 const base::WeakPtr<cc::InputHandler>& input_handler, 19 const base::WeakPtr<RenderViewImpl>& render_view_impl) 20 : input_handler_manager_(input_handler_manager), 21 routing_id_(routing_id), 22 input_handler_proxy_(input_handler.get(), this), 23 main_loop_(main_loop), 24 web_scheduler_proxy_(blink::WebSchedulerProxy::create()), 25 render_view_impl_(render_view_impl) { 26 DCHECK(input_handler); 27} 28 29InputHandlerWrapper::~InputHandlerWrapper() { 30} 31 32void InputHandlerWrapper::TransferActiveWheelFlingAnimation( 33 const blink::WebActiveWheelFlingParameters& params) { 34 main_loop_->PostTask( 35 FROM_HERE, 36 base::Bind(&RenderViewImpl::TransferActiveWheelFlingAnimation, 37 render_view_impl_, 38 params)); 39} 40 41void InputHandlerWrapper::WillShutdown() { 42 input_handler_manager_->RemoveInputHandler(routing_id_); 43} 44 45blink::WebGestureCurve* InputHandlerWrapper::CreateFlingAnimationCurve( 46 blink::WebGestureDevice deviceSource, 47 const blink::WebFloatPoint& velocity, 48 const blink::WebSize& cumulative_scroll) { 49 return blink::Platform::current()->createFlingAnimationCurve( 50 deviceSource, velocity, cumulative_scroll); 51} 52 53void InputHandlerWrapper::DidOverscroll(const DidOverscrollParams& params) { 54 input_handler_manager_->DidOverscroll(routing_id_, params); 55} 56 57void InputHandlerWrapper::DidStopFlinging() { 58 input_handler_manager_->DidStopFlinging(routing_id_); 59} 60 61void InputHandlerWrapper::DidReceiveInputEvent() { 62 web_scheduler_proxy_.didReceiveInputEvent(); 63} 64 65} // namespace content 66