Title: [136876] trunk/Source/WebKit/chromium
Revision
136876
Author
commit-qu...@webkit.org
Date
2012-12-06 13:13:24 -0800 (Thu, 06 Dec 2012)

Log Message

[chromium] Add some null-checks for the touch-lists in TouchEvent
https://bugs.webkit.org/show_bug.cgi?id=104098

Patch by Sadrul Habib Chowdhury <sad...@chromium.org> on 2012-12-06
Reviewed by Adam Barth.

It is possible for the touch-lists to be NULL in a TouchEvent. V8TouchEvent checks for NULL
touches(), targetTouches() and changedTouches(). So do the same for WebMouseEventBuilder.

* src/WebInputEventConversion.cpp:
(WebKit::WebMouseEventBuilder::WebMouseEventBuilder):
* tests/WebInputEventConversionTest.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (136875 => 136876)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-12-06 21:09:58 UTC (rev 136875)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-12-06 21:13:24 UTC (rev 136876)
@@ -1,3 +1,17 @@
+2012-12-06  Sadrul Habib Chowdhury  <sad...@chromium.org>
+
+        [chromium] Add some null-checks for the touch-lists in TouchEvent
+        https://bugs.webkit.org/show_bug.cgi?id=104098
+
+        Reviewed by Adam Barth.
+
+        It is possible for the touch-lists to be NULL in a TouchEvent. V8TouchEvent checks for NULL
+        touches(), targetTouches() and changedTouches(). So do the same for WebMouseEventBuilder.
+
+        * src/WebInputEventConversion.cpp:
+        (WebKit::WebMouseEventBuilder::WebMouseEventBuilder):
+        * tests/WebInputEventConversionTest.cpp:
+
 2012-12-06  Xianzhu Wang  <wangxian...@chromium.org>
 
         [Chromium] Expose acceleratedCompositingForScrollableFramesEnabled in WebKit API

Modified: trunk/Source/WebKit/chromium/src/WebInputEventConversion.cpp (136875 => 136876)


--- trunk/Source/WebKit/chromium/src/WebInputEventConversion.cpp	2012-12-06 21:09:58 UTC (rev 136875)
+++ trunk/Source/WebKit/chromium/src/WebInputEventConversion.cpp	2012-12-06 21:13:24 UTC (rev 136876)
@@ -475,8 +475,10 @@
 
 WebMouseEventBuilder::WebMouseEventBuilder(const Widget* widget, const WebCore::RenderObject* renderObject, const TouchEvent& event)
 {
+    if (!event.touches())
+        return;
     if (event.touches()->length() != 1) {
-        if (event.touches()->length() || event.type() != eventNames().touchendEvent || event.changedTouches()->length() != 1)
+        if (event.touches()->length() || event.type() != eventNames().touchendEvent || !event.changedTouches() || event.changedTouches()->length() != 1)
             return;
     }
 

Modified: trunk/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp (136875 => 136876)


--- trunk/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp	2012-12-06 21:09:58 UTC (rev 136875)
+++ trunk/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp	2012-12-06 21:13:24 UTC (rev 136876)
@@ -33,11 +33,13 @@
 #include "WebInputEventConversion.h"
 
 #include "KeyboardEvent.h"
+#include "TouchEvent.h"
 #include <gtest/gtest.h>
 
 using WebKit::WebInputEvent;
 using WebKit::WebKeyboardEvent;
 using WebKit::WebKeyboardEventBuilder;
+using WebKit::WebMouseEventBuilder;
 
 namespace {
 
@@ -72,4 +74,11 @@
     EXPECT_FALSE(modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent::IsRight);
 }
 
+TEST(WebInputEventConversionTest, WebTouchEventBuilder)
+{
+    RefPtr<WebCore::TouchEvent> event = WebCore::TouchEvent::create();
+    WebMouseEventBuilder mouse(0, 0, *event);
+    EXPECT_EQ(WebInputEvent::Undefined, mouse.type);
+}
+
 } // anonymous namespace
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to