Home | History | Annotate | Download | only in input
      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 
     12 namespace content {
     13 
     14 InputHandlerWrapper::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 
     29 InputHandlerWrapper::~InputHandlerWrapper() {
     30 }
     31 
     32 void 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 
     41 void InputHandlerWrapper::WillShutdown() {
     42   input_handler_manager_->RemoveInputHandler(routing_id_);
     43 }
     44 
     45 blink::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 
     53 void InputHandlerWrapper::DidOverscroll(const DidOverscrollParams& params) {
     54   input_handler_manager_->DidOverscroll(routing_id_, params);
     55 }
     56 
     57 void InputHandlerWrapper::DidStopFlinging() {
     58   input_handler_manager_->DidStopFlinging(routing_id_);
     59 }
     60 
     61 void InputHandlerWrapper::DidReceiveInputEvent() {
     62   web_scheduler_proxy_.didReceiveInputEvent();
     63 }
     64 
     65 }  // namespace content
     66