Chromium Code Reviews| Index: blimp/client/core/render_widget/blimp_document.h |
| diff --git a/blimp/client/core/render_widget/blimp_document.h b/blimp/client/core/render_widget/blimp_document.h |
| index d03b7d172f465306efc419cea45658890903ab8b..02af53cbc59b5d004e925ec52ef3b6d09a58aded 100644 |
| --- a/blimp/client/core/render_widget/blimp_document.h |
| +++ b/blimp/client/core/render_widget/blimp_document.h |
| @@ -10,6 +10,7 @@ |
| #include "base/macros.h" |
| #include "base/memory/ptr_util.h" |
| #include "blimp/client/core/compositor/blimp_compositor.h" |
| +#include "blimp/client/core/input/blimp_input_manager.h" |
| namespace blimp { |
| namespace client { |
| @@ -20,7 +21,9 @@ class BlimpDocumentManager; |
| // BlimpDocument maps to an engine side render widget. |
| // 1. Is created on receiving an RenderWidgetMessage from the engine. |
| // 2. Owns the BlimpCompositor instance. |
| -class BlimpDocument : public BlimpCompositorClient { |
| +// 3. Handles touch events and forward them to the engine. |
| +class BlimpDocument : public BlimpCompositorClient, |
| + public BlimpInputManagerClient { |
| public: |
| BlimpDocument(int document_id, |
| BlimpCompositorDependencies* compositor_dependencies, |
| @@ -32,16 +35,23 @@ class BlimpDocument : public BlimpCompositorClient { |
| // Returns the compositor instance. |
| BlimpCompositor* GetCompositor(); |
| + // Forwards the touch event to the |input_manager_|. |
| + // virtual for testing. |
| + virtual bool OnTouchEvent(const ui::MotionEvent& motion_event); |
| + |
| protected: |
|
Khushal
2016/10/07 03:40:15
How about adding a protected ctor for tests here,
xingliu
2016/10/10 19:00:17
Good idea.
|
| - void SetCompositorForTest(std::unique_ptr<BlimpCompositor> compositor); |
| + void SetCompositorForTest(std::unique_ptr<BlimpCompositor> compositor, |
| + BlimpCompositorDependencies* compositor_deps); |
| private: |
| // BlimpCompositorClient implementation. |
| - void SendWebGestureEvent( |
| - const blink::WebGestureEvent& gesture_event) override; |
| void SendCompositorMessage( |
| const cc::proto::CompositorMessage& message) override; |
| + // BlimpInputManagerClient implementation. |
| + void SendWebGestureEvent( |
| + const blink::WebGestureEvent& gesture_event) override; |
| + |
| // The unique identifier for this document instance. |
| const int document_id_; |
| @@ -51,6 +61,14 @@ class BlimpDocument : public BlimpCompositorClient { |
| // Used to send messages to the corresponding render widget on the engine. |
| BlimpDocumentManager* manager_; |
| + // Handles input events for the current document. The lifetime of the |
| + // input manager is tied to the lifetime of the layer tree host of its |
| + // compositor which owns the cc::InputHandler. |
| + // The input events are forwarded to this input handler by |
| + // the manager to be handled by the client compositor for the current |
| + // document. |
| + std::unique_ptr<BlimpInputManager> input_manager_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(BlimpDocument); |
| }; |