Index: content/browser/renderer_host/input/synthetic_pointer_action.h |
diff --git a/content/browser/renderer_host/input/synthetic_pointer_action.h b/content/browser/renderer_host/input/synthetic_pointer_action.h |
index 23b23fa421be29b1254cd491eebcbaff13adbb06..683d1b71581143bd93360317de16ab671a82942c 100644 |
--- a/content/browser/renderer_host/input/synthetic_pointer_action.h |
+++ b/content/browser/renderer_host/input/synthetic_pointer_action.h |
@@ -5,6 +5,7 @@ |
#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_POINTER_ACTION_H_ |
#define CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_POINTER_ACTION_H_ |
+#include <array> |
#include "base/macros.h" |
#include "content/browser/renderer_host/input/synthetic_gesture.h" |
#include "content/browser/renderer_host/input/synthetic_gesture_target.h" |
@@ -12,25 +13,51 @@ |
#include "content/common/content_export.h" |
#include "content/common/input/synthetic_pointer_action_params.h" |
+using blink::WebTouchEvent; |
+ |
namespace content { |
class CONTENT_EXPORT SyntheticPointerAction : public SyntheticGesture { |
public: |
- explicit SyntheticPointerAction(const SyntheticPointerActionParams& params); |
- SyntheticPointerAction(const SyntheticPointerActionParams& params, |
- SyntheticPointer* synthetic_pointer); |
+ using IndexMap = std::array<int, WebTouchEvent::touchesLengthCap>; |
+ |
+ SyntheticPointerAction( |
+ std::unique_ptr<std::vector<SyntheticPointerActionParams>> param_list, |
+ SyntheticPointer* synthetic_pointer, |
+ IndexMap* index_map); |
~SyntheticPointerAction() override; |
SyntheticGesture::Result ForwardInputEvents( |
const base::TimeTicks& timestamp, |
SyntheticGestureTarget* target) override; |
- void ForwardTouchOrMouseInputEvents(const base::TimeTicks& timestamp, |
- SyntheticGestureTarget* target); |
- |
private: |
- SyntheticPointerActionParams params_; |
+ explicit SyntheticPointerAction(const SyntheticPointerActionParams& params); |
+ SyntheticGesture::Result ForwardTouchOrMouseInputEvents( |
+ const base::TimeTicks& timestamp, |
+ SyntheticGestureTarget* target); |
+ int GetPointIndex(int index) const { return (*index_map_)[index]; } |
+ void SetPointIndex(int index, int point_index) { |
+ (*index_map_)[index] = point_index; |
+ } |
+ |
+ // Check if the user inputs in the SyntheticPointerActionParams can generate |
+ // a valid sequence of pointer actions. |
+ bool UserInputCheck(const SyntheticPointerActionParams& params); |
+ |
+ // SyntheticGestureController is responsible to create the |
+ // SyntheticPointerActions and control when to forward them. |
+ // This will be passed from SyntheticGestureController, which will reset its |
+ // value to push a new batch of action parameters. |
+ // This contains a list of pointer actions which will be dispatched together. |
+ const std::unique_ptr<std::vector<SyntheticPointerActionParams>> param_list_; |
+ // These two objects will be owned by SyntheticGestureController, which |
+ // will manage their lifetime by initiating them when it starts processing a |
+ // pointer action sequence and resetting them when it finishes. |
SyntheticPointer* synthetic_pointer_; |
+ IndexMap* index_map_; |
+ |
+ SyntheticPointerActionParams params_; |
DISALLOW_COPY_AND_ASSIGN(SyntheticPointerAction); |
}; |