summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--third_party/WebKit/LayoutTests/ChangeLog10
-rw-r--r--third_party/WebKit/LayoutTests/platform/chromium/TestExpectations3
-rw-r--r--third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch-expected.txt3
-rw-r--r--third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch.html66
-rw-r--r--third_party/WebKit/Source/WebCore/ChangeLog15
-rw-r--r--third_party/WebKit/Source/WebCore/page/EventHandler.cpp4
6 files changed, 99 insertions, 2 deletions
diff --git a/third_party/WebKit/LayoutTests/ChangeLog b/third_party/WebKit/LayoutTests/ChangeLog
index 861f48a..6794dac 100644
--- a/third_party/WebKit/LayoutTests/ChangeLog
+++ b/third_party/WebKit/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2012-08-28 Hugo Parente Lima <hugo.lima@openbossa.org>
+
+ [WK2] Send click events to WebCore when the user clicked on a non-special node with TOUCH_ADJUSTMENT enabled.
+ https://bugs.webkit.org/show_bug.cgi?id=91012
+
+ Reviewed by Antonio Gomes.
+
+ * touchadjustment/focusout-on-touch-expected.txt: Added.
+ * touchadjustment/focusout-on-touch.html: Added.
+
2012-08-28 Thiago Marcos P. Santos <thiago.santos@intel.com>
Datalist RTL test fails on ports that have progress indicator on the range groove
diff --git a/third_party/WebKit/LayoutTests/platform/chromium/TestExpectations b/third_party/WebKit/LayoutTests/platform/chromium/TestExpectations
index be80823a..975ae97 100644
--- a/third_party/WebKit/LayoutTests/platform/chromium/TestExpectations
+++ b/third_party/WebKit/LayoutTests/platform/chromium/TestExpectations
@@ -2755,6 +2755,9 @@ BUGWK94130 : fast/html/marquee-alternate.html = PASS TEXT
BUGWK77314 WIN MAC : fast/events/touch/send-oncancel-event.html = PASS TEXT
+// Skipped until setTouchPointRadius get implemented
+BUGWK91012 SKIP : touchadjustment/focusout-on-touch.html = PASS TEXT
+
// CRASH comes from BUGCR121442
BUGWK77397 LINUX : plugins/crash-restoring-plugin-page-from-page-cache.html = TIMEOUT CRASH
BUGWK77397 WIN MAC : plugins/crash-restoring-plugin-page-from-page-cache.html = TIMEOUT
diff --git a/third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch-expected.txt b/third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch-expected.txt
new file mode 100644
index 0000000..a1d9026
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch-expected.txt
@@ -0,0 +1,3 @@
+ALERT: PASS!
+You should see "ALERT: PASS!"
+
diff --git a/third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch.html b/third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch.html
new file mode 100644
index 0000000..b2c4c40
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/touchadjustment/focusout-on-touch.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>Touch Adjustment : Fake mouse events not delivered when touching on a non-interactable node - bug 91012</title>
+<style type="text/css">
+div {
+ width: 400px;
+ height: 400px;
+}
+</style>
+<script type="text/javascript">
+function runTest()
+{
+/*
+ WebKit generates fake mouse events on each touch event, here we test if
+ the touch adjustment doesn't caused an early return not firing the fake
+ mouse events used here to unfocus a simple text input.
+*/
+ if (!window.eventSender || !window.testRunner)
+ return;
+
+ testRunner.dumpAsText();
+
+ // Focus the text field
+ var textInput = document.getElementById("textInput");
+ if (document.activeElement === textInput)
+ alert("FAILED!");
+ textInput.focus();
+ if (document.activeElement != textInput)
+ alert("FAILED!");
+
+ // Try to loose the focus touching on a non-editable element.
+ var theDiv = document.getElementById("theDiv");
+ var w = theDiv.clientWidth;
+ var h = theDiv.clientHeight;
+ var x = theDiv.offsetLeft + w/2;
+ var y = theDiv.offsetTop + h/2;
+
+ eventSender.clearTouchPoints();
+ eventSender.setTouchPointRadius(10, 10);
+ eventSender.addTouchPoint(x, y);
+ eventSender.touchStart();
+ eventSender.releaseTouchPoint(0);
+ eventSender.touchEnd();
+
+ // Need to wait a bit so the gesture recognizer will be sure this isn't a double tap.
+ setTimeout(function() {
+ if (document.activeElement == document.body)
+ alert("PASS!")
+ else
+ alert("FAILED, " + document.activeElement.id + " is focused.");
+ testRunner.notifyDone();
+ }, 800);
+
+ // Wait and see...
+ testRunner.waitUntilDone();
+
+}
+
+</script>
+</head>
+<body onload="runTest()">
+<div id="theDiv">You should see "ALERT: PASS!"</div>
+<input id="textInput" type="text" value="Touch me please!" />
+</body>
+</html> \ No newline at end of file
diff --git a/third_party/WebKit/Source/WebCore/ChangeLog b/third_party/WebKit/Source/WebCore/ChangeLog
index 9ae2188..b4e984e 100644
--- a/third_party/WebKit/Source/WebCore/ChangeLog
+++ b/third_party/WebKit/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2012-08-28 Hugo Parente Lima <hugo.lima@openbossa.org>
+
+ [WK2] Send click events to WebCore when the user clicked on a non-special node with TOUCH_ADJUSTMENT enabled.
+ https://bugs.webkit.org/show_bug.cgi?id=91012
+
+ Reviewed by Antonio Gomes.
+
+ Don't abort the gesture tap handling when the tap hits a non user
+ interactable node like a text node.
+
+ Test: touchadjustment/focusout-on-touch.html
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleGestureTap):
+
2012-08-28 Andreas Kling <kling@webkit.org>
Simplify cloning of inline style (below Node.cloneNode)
diff --git a/third_party/WebKit/Source/WebCore/page/EventHandler.cpp b/third_party/WebKit/Source/WebCore/page/EventHandler.cpp
index 957ada3..dc6cfa8 100644
--- a/third_party/WebKit/Source/WebCore/page/EventHandler.cpp
+++ b/third_party/WebKit/Source/WebCore/page/EventHandler.cpp
@@ -2451,8 +2451,8 @@ bool EventHandler::handleGestureTap(const PlatformGestureEvent& gestureEvent)
// FIXME: Refactor this code to not hit test multiple times. We use the adjusted position to ensure that the correct node is targeted by the later redundant hit tests.
IntPoint adjustedPoint = gestureEvent.position();
#if ENABLE(TOUCH_ADJUSTMENT)
- if (!gestureEvent.area().isEmpty() && !adjustGesturePosition(gestureEvent, adjustedPoint))
- return false;
+ if (!gestureEvent.area().isEmpty())
+ adjustGesturePosition(gestureEvent, adjustedPoint);
#endif
PlatformMouseEvent fakeMouseMove(adjustedPoint, gestureEvent.globalPosition(),