Index: components/test_runner/event_sender.cc |
diff --git a/components/test_runner/event_sender.cc b/components/test_runner/event_sender.cc |
index 7501c3fd3836aebfab8d9945aada772fb24678ef..d6fe794a86e469564c3a052c652655dc038224f6 100644 |
--- a/components/test_runner/event_sender.cc |
+++ b/components/test_runner/event_sender.cc |
@@ -1882,37 +1882,48 @@ void EventSender::GestureScrollFirstPoint(int x, int y) { |
} |
bool EventSender::GetMovedBeyondSlopRegionArg(gin::Arguments* args) { |
- std::string arg; |
if (args->PeekNext().IsEmpty()) |
return false; |
+ std::string arg; |
if(args->PeekNext()->IsString() && args->GetNext(&arg)) { |
if (arg == "movedBeyondSlopRegion") |
return true; |
} |
- args->ThrowError(); |
return false; |
} |
+uint32_t EventSender::GetUniqueTouchEventId(gin::Arguments* args) { |
+ uint32_t unique_touch_event_id; |
+ if(!args->PeekNext().IsEmpty() && args->GetNext(&unique_touch_event_id)) |
+ return unique_touch_event_id; |
+ |
+ return 0; |
+} |
+ |
void EventSender::TouchStart(gin::Arguments* args) { |
SendCurrentTouchEvent(WebInputEvent::TouchStart, |
- GetMovedBeyondSlopRegionArg(args)); |
+ GetMovedBeyondSlopRegionArg(args), |
+ GetUniqueTouchEventId(args)); |
} |
void EventSender::TouchMove(gin::Arguments* args) { |
SendCurrentTouchEvent(WebInputEvent::TouchMove, |
- GetMovedBeyondSlopRegionArg(args)); |
+ GetMovedBeyondSlopRegionArg(args), |
+ GetUniqueTouchEventId(args)); |
} |
void EventSender::TouchCancel(gin::Arguments* args) { |
SendCurrentTouchEvent(WebInputEvent::TouchCancel, |
- GetMovedBeyondSlopRegionArg(args)); |
+ GetMovedBeyondSlopRegionArg(args), |
+ GetUniqueTouchEventId(args)); |
} |
void EventSender::TouchEnd(gin::Arguments* args) { |
SendCurrentTouchEvent(WebInputEvent::TouchEnd, |
- GetMovedBeyondSlopRegionArg(args)); |
+ GetMovedBeyondSlopRegionArg(args), |
+ GetUniqueTouchEventId(args)); |
} |
void EventSender::NotifyStartOfTouchScroll() { |
@@ -2168,7 +2179,8 @@ void EventSender::DoLeapForward(int milliseconds) { |
} |
void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type, |
- bool movedBeyondSlopRegion) { |
+ bool movedBeyondSlopRegion, |
+ uint32_t uniqueTouchEventId) { |
DCHECK_GT(static_cast<unsigned>(WebTouchEvent::touchesLengthCap), |
touch_points_.size()); |
if (force_layout_on_events_) |
@@ -2182,6 +2194,7 @@ void EventSender::SendCurrentTouchEvent(WebInputEvent::Type type, |
: WebInputEvent::EventNonBlocking; |
touch_event.timeStampSeconds = GetCurrentEventTimeSec(); |
touch_event.movedBeyondSlopRegion = movedBeyondSlopRegion; |
+ touch_event.uniqueTouchEventId = uniqueTouchEventId; |
touch_event.touchesLength = touch_points_.size(); |
for (size_t i = 0; i < touch_points_.size(); ++i) |
touch_event.touches[i] = touch_points_[i]; |
@@ -2379,25 +2392,6 @@ void EventSender::GestureEvent(WebInputEvent::Type type, |
event.y = y; |
break; |
case WebInputEvent::GestureLongPress: |
- event.x = x; |
- event.y = y; |
- if (!args->PeekNext().IsEmpty()) { |
- float width; |
- if (!args->GetNext(&width)) { |
- args->ThrowError(); |
- return; |
- } |
- event.data.longPress.width = width; |
- if (!args->PeekNext().IsEmpty()) { |
- float height; |
- if (!args->GetNext(&height)) { |
- args->ThrowError(); |
- return; |
- } |
- event.data.longPress.height = height; |
- } |
- } |
- break; |
case WebInputEvent::GestureLongTap: |
event.x = x; |
event.y = y; |
@@ -2442,6 +2436,15 @@ void EventSender::GestureEvent(WebInputEvent::Type type, |
NOTREACHED(); |
} |
+ if (!args->PeekNext().IsEmpty()) { |
+ float unique_touch_event_id; |
+ if (!args->GetNext(&unique_touch_event_id)) { |
+ args->ThrowError(); |
+ return; |
+ } |
+ event.uniqueTouchEventId = unique_touch_event_id; |
+ } |
+ |
event.globalX = event.x; |
event.globalY = event.y; |
event.timeStampSeconds = GetCurrentEventTimeSec(); |