Title: [92997] trunk
Revision
92997
Author
[email protected]
Date
2011-08-12 14:28:37 -0700 (Fri, 12 Aug 2011)

Log Message

Source/WebKit/chromium: Wire gesture tap events, add support for gesture events in the DRT and add a layout test for it.
https://bugs.webkit.org/show_bug.cgi?id=66105

Patch by Sadrul Habib Chowdhury <[email protected]> on 2011-08-12
Reviewed by Darin Fisher.

* public/WebInputEvent.h:
* src/WebInputEventConversion.cpp:
(WebKit::PlatformGestureEventBuilder::PlatformGestureEventBuilder):
* src/WebPopupMenuImpl.cpp:
(WebKit::WebPopupMenuImpl::handleInputEvent):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleInputEvent):

Tools: DRT: Add support for gesture events.
https://bugs.webkit.org/show_bug.cgi?id=66105

Patch by Sadrul Habib Chowdhury <[email protected]> on 2011-08-12
Reviewed by Darin Fisher.

* DumpRenderTree/chromium/EventSender.cpp:
(EventSender::EventSender):
(EventSender::gestureScrollBegin):
(EventSender::gestureScrollEnd):
(EventSender::gestureTap):
(EventSender::gestureEvent):
* DumpRenderTree/chromium/EventSender.h:

LayoutTests: DRT: Add support for gesture events.
https://bugs.webkit.org/show_bug.cgi?id=66105

Patch by Sadrul Habib Chowdhury <[email protected]> on 2011-08-12
Reviewed by Darin Fisher.

* fast/events/touch/gesture/gesture-click-expected.txt: Added.
* fast/events/touch/gesture/gesture-click.html: Added.
* platform/chromium/fast/events/touch/gesture/gesture-click-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (92996 => 92997)


--- trunk/LayoutTests/ChangeLog	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/LayoutTests/ChangeLog	2011-08-12 21:28:37 UTC (rev 92997)
@@ -1,3 +1,14 @@
+2011-08-12  Sadrul Habib Chowdhury  <[email protected]>
+
+        DRT: Add support for gesture events.
+        https://bugs.webkit.org/show_bug.cgi?id=66105
+
+        Reviewed by Darin Fisher.
+
+        * fast/events/touch/gesture/gesture-click-expected.txt: Added.
+        * fast/events/touch/gesture/gesture-click.html: Added.
+        * platform/chromium/fast/events/touch/gesture/gesture-click-expected.txt: Added.
+
 2011-08-12  David Hyatt  <[email protected]>
 
         https://bugs.webkit.org/show_bug.cgi?id=66133

Added: trunk/LayoutTests/fast/events/touch/gesture/gesture-click-expected.txt (0 => 92997)


--- trunk/LayoutTests/fast/events/touch/gesture/gesture-click-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/events/touch/gesture/gesture-click-expected.txt	2011-08-12 21:28:37 UTC (rev 92997)
@@ -0,0 +1,10 @@
+This tests basic gesture callbacks.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Gesture manager not implemented on this platform.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/events/touch/gesture/gesture-click.html (0 => 92997)


--- trunk/LayoutTests/fast/events/touch/gesture/gesture-click.html	                        (rev 0)
+++ trunk/LayoutTests/fast/events/touch/gesture/gesture-click.html	2011-08-12 21:28:37 UTC (rev 92997)
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href=""
+<script src=""
+<script src=""
+</head>
+<body _onload_="runTest();">
+<div id="gesture">
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+var expectedMouseEvents = 4;
+var mouseEventsReceived = 0;
+var eventTypes = [ 'mousemove', 'mousedown', 'mouseup', 'click' ];
+
+function gestureEventCallback(event)
+{
+    if (window.eventSender) {
+        shouldBeEqualToString('event.type', eventTypes[mouseEventsReceived]);
+        shouldBe('event.clientX', '10');
+        shouldBe('event.clientY', '12');
+        mouseEventsReceived++;
+    } else {
+        debug(event.type);
+        debug(event.clientX);
+        debug(event.clientY);
+    }
+}
+
+// Because we may not have a gesture recognizer, we send a key press
+// event to end the test without temporal flakiness.
+function quitKeyToEndTest(event) {
+    endTest();
+}
+
+function endTest()
+{
+    if (mouseEventsReceived < expectedMouseEvents) {
+        debug('Gesture manager not implemented on this platform.');
+    }
+    // Bail.
+    successfullyParsed = true;
+    isSuccessfullyParsed();
+    layoutTestController.notifyDone();
+}
+
+function runTest() {
+    var div = document.getElementById('gesture');
+    div.addEventListener("mousedown", gestureEventCallback, false);
+    div.addEventListener("click", gestureEventCallback, false);
+    div.addEventListener("mouseup", gestureEventCallback, false);
+    div.addEventListener("mousemove", gestureEventCallback, false);
+    document.addEventListener("keydown", quitKeyToEndTest, false);
+
+    if (window.layoutTestController) {
+        layoutTestController.dumpAsText();
+        layoutTestController.waitUntilDone();
+    }
+
+    if (window.eventSender) {
+        description("This tests basic gesture callbacks.");
+        // A 'tap' gesture event should generate a sequence of mouse events.
+        eventSender.gestureTap(10, 12);
+        eventSender.leapForward(10);
+        eventSender.keyDown(' ');
+    } else {
+        debug("This test requires DumpRenderTree.  Tap on the blue rect to log.")
+    }
+}
+</script>
+</body>
+</html>

Added: trunk/LayoutTests/platform/chromium/fast/events/touch/gesture/gesture-click-expected.txt (0 => 92997)


--- trunk/LayoutTests/platform/chromium/fast/events/touch/gesture/gesture-click-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/fast/events/touch/gesture/gesture-click-expected.txt	2011-08-12 21:28:37 UTC (rev 92997)
@@ -0,0 +1,21 @@
+This tests basic gesture callbacks.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS event.type is "mousemove"
+PASS event.clientX is 10
+PASS event.clientY is 12
+PASS event.type is "mousedown"
+PASS event.clientX is 10
+PASS event.clientY is 12
+PASS event.type is "mouseup"
+PASS event.clientX is 10
+PASS event.clientY is 12
+PASS event.type is "click"
+PASS event.clientX is 10
+PASS event.clientY is 12
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Modified: trunk/Source/WebKit/chromium/ChangeLog (92996 => 92997)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-08-12 21:28:37 UTC (rev 92997)
@@ -1,3 +1,18 @@
+2011-08-12  Sadrul Habib Chowdhury  <[email protected]>
+
+        Wire gesture tap events, add support for gesture events in the DRT and add a layout test for it.
+        https://bugs.webkit.org/show_bug.cgi?id=66105
+
+        Reviewed by Darin Fisher.
+
+        * public/WebInputEvent.h:
+        * src/WebInputEventConversion.cpp:
+        (WebKit::PlatformGestureEventBuilder::PlatformGestureEventBuilder):
+        * src/WebPopupMenuImpl.cpp:
+        (WebKit::WebPopupMenuImpl::handleInputEvent):
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::handleInputEvent):
+
 2011-08-12  Tommy Widenflycht  <[email protected]>
 
         [Chromium] Implement the embedders for the HTML5 Track List objects

Modified: trunk/Source/WebKit/chromium/public/WebInputEvent.h (92996 => 92997)


--- trunk/Source/WebKit/chromium/public/WebInputEvent.h	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Source/WebKit/chromium/public/WebInputEvent.h	2011-08-12 21:28:37 UTC (rev 92997)
@@ -103,6 +103,7 @@
         // WebGestureEvent
         GestureScrollBegin,
         GestureScrollEnd,
+        GestureTap,
 
         // WebTouchEvent
         TouchStart,

Modified: trunk/Source/WebKit/chromium/src/WebInputEventConversion.cpp (92996 => 92997)


--- trunk/Source/WebKit/chromium/src/WebInputEventConversion.cpp	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Source/WebKit/chromium/src/WebInputEventConversion.cpp	2011-08-12 21:28:37 UTC (rev 92997)
@@ -120,6 +120,9 @@
     case WebInputEvent::GestureScrollEnd:
         m_type = PlatformGestureEvent::ScrollEndType;
         break;
+    case WebInputEvent::GestureTap:
+        m_type = PlatformGestureEvent::TapType;
+        break;
     default:
         ASSERT_NOT_REACHED();
     }

Modified: trunk/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp (92996 => 92997)


--- trunk/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp	2011-08-12 21:28:37 UTC (rev 92997)
@@ -273,6 +273,7 @@
 
     case WebInputEvent::GestureScrollBegin:
     case WebInputEvent::GestureScrollEnd:
+    case WebInputEvent::GestureTap:
         return GestureEvent(*static_cast<const WebGestureEvent*>(&inputEvent));
 
     case WebInputEvent::Undefined:

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (92996 => 92997)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2011-08-12 21:28:37 UTC (rev 92997)
@@ -1272,6 +1272,7 @@
 #if ENABLE(GESTURE_EVENTS)
     case WebInputEvent::GestureScrollBegin:
     case WebInputEvent::GestureScrollEnd:
+    case WebInputEvent::GestureTap:
         handled = gestureEvent(*static_cast<const WebGestureEvent*>(&inputEvent));
         break;
 #endif

Modified: trunk/Tools/ChangeLog (92996 => 92997)


--- trunk/Tools/ChangeLog	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Tools/ChangeLog	2011-08-12 21:28:37 UTC (rev 92997)
@@ -1,3 +1,18 @@
+2011-08-12  Sadrul Habib Chowdhury  <[email protected]>
+
+        DRT: Add support for gesture events.
+        https://bugs.webkit.org/show_bug.cgi?id=66105
+
+        Reviewed by Darin Fisher.
+
+        * DumpRenderTree/chromium/EventSender.cpp:
+        (EventSender::EventSender):
+        (EventSender::gestureScrollBegin):
+        (EventSender::gestureScrollEnd):
+        (EventSender::gestureTap):
+        (EventSender::gestureEvent):
+        * DumpRenderTree/chromium/EventSender.h:
+
 2011-08-12  Andy Estes  <[email protected]>
 
         allowRoundingHacksCallback uses the wrong argument for 'thisObject'.

Modified: trunk/Tools/DumpRenderTree/chromium/EventSender.cpp (92996 => 92997)


--- trunk/Tools/DumpRenderTree/chromium/EventSender.cpp	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Tools/DumpRenderTree/chromium/EventSender.cpp	2011-08-12 21:28:37 UTC (rev 92997)
@@ -278,6 +278,9 @@
     bindMethod("touchMove", &EventSender::touchMove);
     bindMethod("touchStart", &EventSender::touchStart);
     bindMethod("updateTouchPoint", &EventSender::updateTouchPoint);
+    bindMethod("gestureScrollBegin", &EventSender::gestureScrollBegin);
+    bindMethod("gestureScrollEnd", &EventSender::gestureScrollEnd);
+    bindMethod("gestureTap", &EventSender::gestureTap);
     bindMethod("zoomPageIn", &EventSender::zoomPageIn);
     bindMethod("zoomPageOut", &EventSender::zoomPageOut);
     bindMethod("scalePageBy", &EventSender::scalePageBy);
@@ -1018,6 +1021,41 @@
     sendCurrentTouchEvent(WebInputEvent::TouchCancel);
 }
 
+void EventSender::gestureScrollBegin(const CppArgumentList& arguments, CppVariant* result)
+{
+    result->setNull();
+    gestureEvent(WebInputEvent::GestureScrollBegin, arguments);
+}
+
+void EventSender::gestureScrollEnd(const CppArgumentList& arguments, CppVariant* result)
+{
+    result->setNull();
+    gestureEvent(WebInputEvent::GestureScrollEnd, arguments);
+}
+
+void EventSender::gestureTap(const CppArgumentList& arguments, CppVariant* result)
+{
+    result->setNull();
+    gestureEvent(WebInputEvent::GestureTap, arguments);
+}
+
+void EventSender::gestureEvent(WebInputEvent::Type type, const CppArgumentList& arguments)
+{
+    if (arguments.size() < 2 || !arguments[0].isNumber() || !arguments[1].isNumber())
+        return;
+
+    WebPoint point(arguments[0].toInt32(), arguments[1].toInt32());
+
+    WebGestureEvent event;
+    event.type = type;
+    event.x = point.x;
+    event.y = point.y;
+    event.globalX = point.x;
+    event.globalY = point.y;
+    event.timeStampSeconds = getCurrentEventTimeSec();
+    webview()->handleInputEvent(event);
+}
+
 //
 // Unimplemented stubs
 //

Modified: trunk/Tools/DumpRenderTree/chromium/EventSender.h (92996 => 92997)


--- trunk/Tools/DumpRenderTree/chromium/EventSender.h	2011-08-12 21:10:22 UTC (rev 92996)
+++ trunk/Tools/DumpRenderTree/chromium/EventSender.h	2011-08-12 21:28:37 UTC (rev 92997)
@@ -94,6 +94,11 @@
     void touchStart(const CppArgumentList&, CppVariant*);
     void updateTouchPoint(const CppArgumentList&, CppVariant*);
 
+    void gestureScrollBegin(const CppArgumentList&, CppVariant*);
+    void gestureScrollEnd(const CppArgumentList&, CppVariant*);
+    void gestureTap(const CppArgumentList&, CppVariant*);
+    void gestureEvent(WebKit::WebInputEvent::Type, const CppArgumentList&);
+
     // Unimplemented stubs
     void contextClick(const CppArgumentList&, CppVariant*);
     void enableDOMUIEventLogging(const CppArgumentList&, CppVariant*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to