| 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 f4948b60df0def7b27cfd9309fe802bd4de9b0bf..4352db34655fe3334edba3f1d4b12b7ea1556606 100644
|
| --- a/content/shell/renderer/test_runner/event_sender.cc
|
| +++ b/content/shell/renderer/test_runner/event_sender.cc
|
| @@ -347,6 +347,9 @@ bool IsSystemKeyEvent(const WebKeyboardEvent& event) {
|
| #endif
|
| }
|
|
|
| +const char* kSourceDeviceStringTouchpad = "touchpad";
|
| +const char* kSourceDeviceStringTouchscreen = "touchscreen";
|
| +
|
| } // namespace
|
|
|
| class EventSenderBindings : public gin::Wrappable<EventSenderBindings> {
|
| @@ -384,7 +387,11 @@ class EventSenderBindings : public gin::Wrappable<EventSenderBindings> {
|
| void SetTouchCancelable(bool cancelable);
|
| void DumpFilenameBeingDragged();
|
| void GestureFlingCancel();
|
| - void GestureFlingStart(float x, float y, float velocity_x, float velocity_y);
|
| + void GestureFlingStart(float x,
|
| + float y,
|
| + float velocity_x,
|
| + float velocity_y,
|
| + gin::Arguments* args);
|
| void GestureScrollFirstPoint(int x, int y);
|
| void TouchStart();
|
| void TouchMove();
|
| @@ -722,9 +729,10 @@ void EventSenderBindings::GestureFlingCancel() {
|
| void EventSenderBindings::GestureFlingStart(float x,
|
| float y,
|
| float velocity_x,
|
| - float velocity_y) {
|
| + float velocity_y,
|
| + gin::Arguments* args) {
|
| if (sender_)
|
| - sender_->GestureFlingStart(x, y, velocity_x, velocity_y);
|
| + sender_->GestureFlingStart(x, y, velocity_x, velocity_y, args);
|
| }
|
|
|
| void EventSenderBindings::GestureScrollFirstPoint(int x, int y) {
|
| @@ -1646,12 +1654,33 @@ void EventSender::GestureFlingCancel() {
|
| }
|
|
|
| void EventSender::GestureFlingStart(float x,
|
| - float y,
|
| - float velocity_x,
|
| - float velocity_y) {
|
| + float y,
|
| + float velocity_x,
|
| + float velocity_y,
|
| + gin::Arguments* args) {
|
| WebGestureEvent event;
|
| event.type = WebInputEvent::GestureFlingStart;
|
|
|
| + // TODO(tdresser): Once we've migrated all calls to GestureFlingStart
|
| + // to pass the device string, throw an error if args is empty. See
|
| + // crbug.com/456136 for details.
|
| + std::string device_string = kSourceDeviceStringTouchpad;
|
| + if (!args->PeekNext().IsEmpty() && args->PeekNext()->IsString()) {
|
| + if (!args->GetNext(&device_string)) {
|
| + args->ThrowError();
|
| + return;
|
| + }
|
| + }
|
| +
|
| + if (device_string == kSourceDeviceStringTouchpad) {
|
| + event.sourceDevice = blink::WebGestureDeviceTouchpad;
|
| + } else if (device_string == kSourceDeviceStringTouchscreen) {
|
| + event.sourceDevice = blink::WebGestureDeviceTouchscreen;
|
| + } else {
|
| + args->ThrowError();
|
| + return;
|
| + }
|
| +
|
| event.x = x;
|
| event.y = y;
|
| event.globalX = event.x;
|
| @@ -2037,9 +2066,9 @@ void EventSender::GestureEvent(WebInputEvent::Type type,
|
| args->ThrowError();
|
| return;
|
| }
|
| - if (device_string == "touchpad") {
|
| + if (device_string == kSourceDeviceStringTouchpad) {
|
| event.sourceDevice = blink::WebGestureDeviceTouchpad;
|
| - } else if (device_string == "touchscreen") {
|
| + } else if (device_string == kSourceDeviceStringTouchscreen) {
|
| event.sourceDevice = blink::WebGestureDeviceTouchscreen;
|
| } else {
|
| args->ThrowError();
|
|
|