OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/input/input_handler_wrapper.h" | 5 #include "content/renderer/input/input_handler_wrapper.h" |
6 | 6 |
| 7 #include "base/command_line.h" |
7 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "content/common/input/did_overscroll_params.h" |
| 10 #include "content/public/common/content_switches.h" |
8 #include "content/renderer/input/input_event_filter.h" | 11 #include "content/renderer/input/input_event_filter.h" |
9 #include "content/renderer/input/input_handler_manager.h" | 12 #include "content/renderer/input/input_handler_manager.h" |
10 #include "third_party/WebKit/public/platform/Platform.h" | 13 #include "third_party/WebKit/public/platform/Platform.h" |
11 | 14 |
12 namespace content { | 15 namespace content { |
13 | 16 |
14 InputHandlerWrapper::InputHandlerWrapper( | 17 InputHandlerWrapper::InputHandlerWrapper( |
15 InputHandlerManager* input_handler_manager, | 18 InputHandlerManager* input_handler_manager, |
16 int routing_id, | 19 int routing_id, |
17 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, | 20 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, |
18 const base::WeakPtr<cc::InputHandler>& input_handler, | 21 const base::WeakPtr<cc::InputHandler>& input_handler, |
19 const base::WeakPtr<RenderViewImpl>& render_view_impl) | 22 const base::WeakPtr<RenderViewImpl>& render_view_impl) |
20 : input_handler_manager_(input_handler_manager), | 23 : input_handler_manager_(input_handler_manager), |
21 routing_id_(routing_id), | 24 routing_id_(routing_id), |
22 input_handler_proxy_(input_handler.get(), this), | 25 input_handler_proxy_(input_handler.get(), this), |
23 main_task_runner_(main_task_runner), | 26 main_task_runner_(main_task_runner), |
24 render_view_impl_(render_view_impl) { | 27 render_view_impl_(render_view_impl) { |
25 DCHECK(input_handler); | 28 DCHECK(input_handler); |
| 29 input_handler_proxy_.set_smooth_scroll_enabled( |
| 30 base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 31 switches::kEnableSmoothScrolling)); |
26 } | 32 } |
27 | 33 |
28 InputHandlerWrapper::~InputHandlerWrapper() { | 34 InputHandlerWrapper::~InputHandlerWrapper() { |
29 } | 35 } |
30 | 36 |
31 void InputHandlerWrapper::TransferActiveWheelFlingAnimation( | 37 void InputHandlerWrapper::TransferActiveWheelFlingAnimation( |
32 const blink::WebActiveWheelFlingParameters& params) { | 38 const blink::WebActiveWheelFlingParameters& params) { |
33 main_task_runner_->PostTask( | 39 main_task_runner_->PostTask( |
34 FROM_HERE, base::Bind(&RenderViewImpl::TransferActiveWheelFlingAnimation, | 40 FROM_HERE, base::Bind(&RenderViewImpl::TransferActiveWheelFlingAnimation, |
35 render_view_impl_, params)); | 41 render_view_impl_, params)); |
36 } | 42 } |
37 | 43 |
38 void InputHandlerWrapper::WillShutdown() { | 44 void InputHandlerWrapper::WillShutdown() { |
39 input_handler_manager_->RemoveInputHandler(routing_id_); | 45 input_handler_manager_->RemoveInputHandler(routing_id_); |
40 } | 46 } |
41 | 47 |
42 blink::WebGestureCurve* InputHandlerWrapper::CreateFlingAnimationCurve( | 48 blink::WebGestureCurve* InputHandlerWrapper::CreateFlingAnimationCurve( |
43 blink::WebGestureDevice deviceSource, | 49 blink::WebGestureDevice deviceSource, |
44 const blink::WebFloatPoint& velocity, | 50 const blink::WebFloatPoint& velocity, |
45 const blink::WebSize& cumulative_scroll) { | 51 const blink::WebSize& cumulative_scroll) { |
46 return blink::Platform::current()->createFlingAnimationCurve( | 52 return blink::Platform::current()->createFlingAnimationCurve( |
47 deviceSource, velocity, cumulative_scroll); | 53 deviceSource, velocity, cumulative_scroll); |
48 } | 54 } |
49 | 55 |
50 void InputHandlerWrapper::DidOverscroll(const DidOverscrollParams& params) { | 56 void InputHandlerWrapper::DidOverscroll( |
| 57 const gfx::Vector2dF& accumulated_overscroll, |
| 58 const gfx::Vector2dF& latest_overscroll_delta, |
| 59 const gfx::Vector2dF& current_fling_velocity, |
| 60 const gfx::PointF& causal_event_viewport_point) { |
| 61 DidOverscrollParams params; |
| 62 params.accumulated_overscroll = accumulated_overscroll; |
| 63 params.latest_overscroll_delta = latest_overscroll_delta; |
| 64 params.current_fling_velocity = current_fling_velocity; |
| 65 params.causal_event_viewport_point = causal_event_viewport_point; |
51 input_handler_manager_->DidOverscroll(routing_id_, params); | 66 input_handler_manager_->DidOverscroll(routing_id_, params); |
52 } | 67 } |
53 | 68 |
54 void InputHandlerWrapper::DidStopFlinging() { | 69 void InputHandlerWrapper::DidStopFlinging() { |
55 input_handler_manager_->DidStopFlinging(routing_id_); | 70 input_handler_manager_->DidStopFlinging(routing_id_); |
56 } | 71 } |
57 | 72 |
58 void InputHandlerWrapper::DidAnimateForInput() { | 73 void InputHandlerWrapper::DidAnimateForInput() { |
59 input_handler_manager_->DidAnimateForInput(); | 74 input_handler_manager_->DidAnimateForInput(); |
60 } | 75 } |
61 | 76 |
62 } // namespace content | 77 } // namespace content |
OLD | NEW |