1 // Copyright (c) 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 #ifndef CONTENT_RENDERER_GPU_INPUT_HANDLER_WRAPPER_H_
6 #define CONTENT_RENDERER_GPU_INPUT_HANDLER_WRAPPER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/weak_ptr.h"
10 #include "content/renderer/gpu/input_handler_manager.h"
11 #include "content/renderer/gpu/input_handler_proxy.h"
12 #include "content/renderer/gpu/input_handler_proxy_client.h"
16 // This class lives on the compositor thread.
17 class InputHandlerWrapper
18 : public InputHandlerProxyClient
,
19 public base::RefCountedThreadSafe
<InputHandlerWrapper
> {
21 InputHandlerWrapper(InputHandlerManager
* input_handler_manager
,
23 const scoped_refptr
<base::MessageLoopProxy
>& main_loop
,
24 const base::WeakPtr
<cc::InputHandler
>& input_handler
,
25 const base::WeakPtr
<RenderViewImpl
>& render_view_impl
);
27 int routing_id() const { return routing_id_
; }
28 InputHandlerProxy
* input_handler_proxy() { return &input_handler_proxy_
; }
30 // InputHandlerProxyClient implementation.
31 virtual void WillShutdown() OVERRIDE
;
32 virtual void TransferActiveWheelFlingAnimation(
33 const WebKit::WebActiveWheelFlingParameters
& params
) OVERRIDE
;
34 virtual WebKit::WebGestureCurve
* CreateFlingAnimationCurve(
36 const WebKit::WebFloatPoint
& velocity
,
37 const WebKit::WebSize
& cumulativeScroll
) OVERRIDE
;
38 virtual void DidOverscroll(const cc::DidOverscrollParams
& params
) OVERRIDE
;
41 friend class base::RefCountedThreadSafe
<InputHandlerWrapper
>;
43 virtual ~InputHandlerWrapper();
45 InputHandlerManager
* input_handler_manager_
;
47 InputHandlerProxy input_handler_proxy_
;
48 scoped_refptr
<base::MessageLoopProxy
> main_loop_
;
50 // Can only be accessed on the main thread.
51 base::WeakPtr
<RenderViewImpl
> render_view_impl_
;
53 DISALLOW_COPY_AND_ASSIGN(InputHandlerWrapper
);
56 } // namespace content
58 #endif // CONTENT_RENDERER_GPU_INPUT_HANDLER_WRAPPER_H_