Index: content/shell/renderer/test_runner/event_sender.cc |
diff --git a/content/shell/renderer/test_runner/event_sender.cc b/content/shell/renderer/test_runner/event_sender.cc |
index e02fe0cef1c2ca25679949bc5cd748cdb726e9ee..17b9f36ad2e71b1bf0d43de78a828f00493c0efd 100644 |
--- a/content/shell/renderer/test_runner/event_sender.cc |
+++ b/content/shell/renderer/test_runner/event_sender.cc |
@@ -376,7 +376,7 @@ class EventSenderBindings : public gin::Wrappable<EventSenderBindings> { |
void SetPageScaleFactorLimits(gin::Arguments* args); |
void ClearTouchPoints(); |
void ReleaseTouchPoint(unsigned index); |
- void UpdateTouchPoint(unsigned index, double x, double y); |
+ void UpdateTouchPoint(gin::Arguments* args); |
void CancelTouchPoint(unsigned index); |
void SetTouchModifier(const std::string& key_name, bool set_mask); |
void SetTouchCancelable(bool cancelable); |
@@ -686,9 +686,9 @@ void EventSenderBindings::ReleaseTouchPoint(unsigned index) { |
sender_->ReleaseTouchPoint(index); |
} |
-void EventSenderBindings::UpdateTouchPoint(unsigned index, double x, double y) { |
+void EventSenderBindings::UpdateTouchPoint(gin::Arguments* args) { |
if (sender_) |
- sender_->UpdateTouchPoint(index, static_cast<float>(x), static_cast<float>(y)); |
+ sender_->UpdateTouchPoint(args); |
} |
void EventSenderBindings::CancelTouchPoint(unsigned index) { |
@@ -1535,7 +1535,16 @@ void EventSender::ReleaseTouchPoint(unsigned index) { |
touch_point->state = WebTouchPoint::StateReleased; |
} |
-void EventSender::UpdateTouchPoint(unsigned index, float x, float y) { |
+void EventSender::UpdateTouchPoint(gin::Arguments* args) { |
+ unsigned index; |
+ float x; |
+ float y; |
+ |
+ if (!args->GetNext(&index) || !args->GetNext(&x) || !args->GetNext(&y)) { |
+ args->ThrowError(); |
+ return; |
+ } |
+ |
if (index >= touch_points_.size()) { |
ThrowTouchPointError(); |
return; |
@@ -1545,6 +1554,20 @@ void EventSender::UpdateTouchPoint(unsigned index, float x, float y) { |
touch_point->state = WebTouchPoint::StateMoved; |
touch_point->position = WebFloatPoint(x, y); |
touch_point->screenPosition = touch_point->position; |
+ |
+ if (!args->PeekNext().IsEmpty()) { |
+ if (!args->GetNext(&touch_point->tilt)) { |
+ args->ThrowError(); |
+ return; |
+ } |
+ } |
+ |
+ if (!args->PeekNext().IsEmpty()) { |
+ if (!args->GetNext(&touch_point->tiltDirection)) { |
+ args->ThrowError(); |
+ return; |
+ } |
+ } |
} |
void EventSender::CancelTouchPoint(unsigned index) { |
@@ -1721,6 +1744,20 @@ void EventSender::AddTouchPoint(gin::Arguments* args) { |
touch_point.radiusY = static_cast<float>(radius_y); |
} |
+ if (!args->PeekNext().IsEmpty()) { |
+ if (!args->GetNext(&touch_point.tilt)) { |
+ args->ThrowError(); |
+ return; |
+ } |
+ } |
+ |
+ if (!args->PeekNext().IsEmpty()) { |
+ if (!args->GetNext(&touch_point.tiltDirection)) { |
+ args->ThrowError(); |
+ return; |
+ } |
+ } |
+ |
int lowest_id = 0; |
for (size_t i = 0; i < touch_points_.size(); i++) { |
if (touch_points_[i].id == lowest_id) |