Index: components/test_runner/event_sender.h |
diff --git a/components/test_runner/event_sender.h b/components/test_runner/event_sender.h |
index be4bd7866259e29c860b71fbd6562e1f46bc3fcc..ac6aa8a52d22ba767d65f7cbdec94bd1706a5f9e 100644 |
--- a/components/test_runner/event_sender.h |
+++ b/components/test_runner/event_sender.h |
@@ -9,6 +9,7 @@ |
#include <queue> |
#include <string> |
+#include <unordered_map> |
#include <vector> |
#include "base/macros.h" |
@@ -61,8 +62,14 @@ class EventSender : public base::SupportsWeakPtr<EventSender> { |
void DoDragDrop(const blink::WebDragData&, blink::WebDragOperationsMask); |
- void MouseDown(int button_number, int modifiers); |
- void MouseUp(int button_number, int modifiers); |
+ void MouseDown(int button_number, int modifiers, |
+ blink::WebPointerProperties::PointerType = |
+ blink::WebPointerProperties::PointerType::Mouse, |
+ int pointerId = 0); |
+ void MouseUp(int button_number, int modifiers, |
+ blink::WebPointerProperties::PointerType = |
+ blink::WebPointerProperties::PointerType::Mouse, |
+ int pointerId = 0); |
void SetMouseButtonState(int button_number, int modifiers); |
void KeyDown(const std::string& code_str, |
@@ -267,14 +274,29 @@ class EventSender : public base::SupportsWeakPtr<EventSender> { |
// Location of the touch point that initiated a gesture. |
blink::WebPoint current_gesture_location_; |
- // Last pressed mouse button (Left/Right/Middle or None). |
- static blink::WebMouseEvent::Button pressed_button_; |
- // A bitwise OR of the WebMouseEvent::*ButtonDown values corresponding to |
- // currently pressed buttons of mouse. |
- static int current_buttons_; |
+ // Mouse-like pointer properties. |
+ struct PointerState { |
+ // Last pressed button (Left/Right/Middle or None). |
+ blink::WebMouseEvent::Button pressed_button_; |
- static int modifiers_; |
+ // A bitwise OR of the WebMouseEvent::*ButtonDown values corresponding to |
+ // currently pressed buttons of the pointer (e.g. pen or mouse). |
+ int current_buttons_; |
+ |
+ // Location of last mouseMoveTo event of this pointer. |
+ blink::WebPoint last_pos_; |
+ |
+ int modifiers_; |
+ |
+ PointerState() |
+ : pressed_button_(blink::WebMouseEvent::ButtonNone) |
+ , current_buttons_(0) |
+ , last_pos_(blink::WebPoint(0, 0)) |
+ , modifiers_(0) { } |
+ }; |
+ typedef std::unordered_map<int, PointerState> PointerStateMap; |
+ PointerStateMap current_pointer_state_; |
bool replaying_saved_events_; |
@@ -282,9 +304,6 @@ class EventSender : public base::SupportsWeakPtr<EventSender> { |
blink::WebDragOperationsMask current_drag_effects_allowed_; |
- // Location of last mouseMoveTo event. |
- static blink::WebPoint last_mouse_pos_; |
- |
// Time and place of the last mouse up event. |
double last_click_time_sec_; |
blink::WebPoint last_click_pos_; |