cc: Make picture pile base thread safe.
[chromium-blink-merge.git] / content / renderer / input / input_handler_wrapper.h
blobfd997ce2803b1d7a809b87e752783efb34c88ce7
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 #ifndef CONTENT_RENDERER_INPUT_INPUT_HANDLER_WRAPPER_H_
6 #define CONTENT_RENDERER_INPUT_INPUT_HANDLER_WRAPPER_H_
8 #include "base/memory/weak_ptr.h"
9 #include "content/renderer/input/input_handler_manager.h"
10 #include "content/renderer/input/input_handler_proxy.h"
11 #include "content/renderer/input/input_handler_proxy_client.h"
13 namespace content {
15 // This class lives on the compositor thread.
16 class InputHandlerWrapper : public InputHandlerProxyClient {
17 public:
18 InputHandlerWrapper(InputHandlerManager* input_handler_manager,
19 int routing_id,
20 const scoped_refptr<base::MessageLoopProxy>& main_loop,
21 const base::WeakPtr<cc::InputHandler>& input_handler,
22 const base::WeakPtr<RenderViewImpl>& render_view_impl);
23 ~InputHandlerWrapper() override;
25 int routing_id() const { return routing_id_; }
26 InputHandlerProxy* input_handler_proxy() { return &input_handler_proxy_; }
28 // InputHandlerProxyClient implementation.
29 void WillShutdown() override;
30 void TransferActiveWheelFlingAnimation(
31 const blink::WebActiveWheelFlingParameters& params) override;
32 blink::WebGestureCurve* CreateFlingAnimationCurve(
33 blink::WebGestureDevice deviceSource,
34 const blink::WebFloatPoint& velocity,
35 const blink::WebSize& cumulativeScroll) override;
36 void DidOverscroll(const DidOverscrollParams& params) override;
37 void DidStopFlinging() override;
38 void DidReceiveInputEvent() override;
40 private:
41 InputHandlerManager* input_handler_manager_;
42 int routing_id_;
43 InputHandlerProxy input_handler_proxy_;
44 scoped_refptr<base::MessageLoopProxy> main_loop_;
46 // Can only be accessed on the main thread.
47 base::WeakPtr<RenderViewImpl> render_view_impl_;
49 DISALLOW_COPY_AND_ASSIGN(InputHandlerWrapper);
52 } // namespace content
54 #endif // CONTENT_RENDERER_INPUT_INPUT_HANDLER_WRAPPER_H_