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.
5 #include "content/renderer/input/input_handler_wrapper.h"
7 #include "base/location.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"
14 InputHandlerWrapper::InputHandlerWrapper(
15 InputHandlerManager
* input_handler_manager
,
17 const scoped_refptr
<base::SingleThreadTaskRunner
>& main_task_runner
,
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_task_runner_(main_task_runner
),
24 render_view_impl_(render_view_impl
) {
25 DCHECK(input_handler
);
28 InputHandlerWrapper::~InputHandlerWrapper() {
31 void InputHandlerWrapper::TransferActiveWheelFlingAnimation(
32 const blink::WebActiveWheelFlingParameters
& params
) {
33 main_task_runner_
->PostTask(
34 FROM_HERE
, base::Bind(&RenderViewImpl::TransferActiveWheelFlingAnimation
,
35 render_view_impl_
, params
));
38 void InputHandlerWrapper::WillShutdown() {
39 input_handler_manager_
->RemoveInputHandler(routing_id_
);
42 blink::WebGestureCurve
* InputHandlerWrapper::CreateFlingAnimationCurve(
43 blink::WebGestureDevice deviceSource
,
44 const blink::WebFloatPoint
& velocity
,
45 const blink::WebSize
& cumulative_scroll
) {
46 return blink::Platform::current()->createFlingAnimationCurve(
47 deviceSource
, velocity
, cumulative_scroll
);
50 void InputHandlerWrapper::DidOverscroll(const DidOverscrollParams
& params
) {
51 input_handler_manager_
->DidOverscroll(routing_id_
, params
);
54 void InputHandlerWrapper::DidStopFlinging() {
55 input_handler_manager_
->DidStopFlinging(routing_id_
);
58 void InputHandlerWrapper::DidAnimateForInput() {
59 input_handler_manager_
->DidAnimateForInput();
62 } // namespace content