Title: [192036] trunk
Revision
192036
Author
wenson_hs...@apple.com
Date
2015-11-04 14:21:25 -0800 (Wed, 04 Nov 2015)

Log Message

Fix crashing fast-clicking WK2 tests on iOS
https://bugs.webkit.org/show_bug.cgi?id=150896
<rdar://problem/23344491>

Reviewed by Simon Fraser.

Source/WebKit2:

In order for the modified fast-clicking tests to pass, we can't allow hit-testing to
find the tap highlight view. See the Radar for more UIKit-specific descriptions.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showTapHighlight]):

LayoutTests:

Fix the fast-clicking tests by making them fire an exact number of times rather than
sending continuously until a minimum number of clicks are fired. This causes us to
avoid crashing during the following test when the marker events corresponding to single
taps fired after the test has completed have been handled.

* css3/touch-action/touch-action-manipulation-fast-clicks.html:
* fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (192035 => 192036)


--- trunk/LayoutTests/ChangeLog	2015-11-04 22:15:00 UTC (rev 192035)
+++ trunk/LayoutTests/ChangeLog	2015-11-04 22:21:25 UTC (rev 192036)
@@ -1,3 +1,19 @@
+2015-11-04  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Fix crashing fast-clicking WK2 tests on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=150896
+        <rdar://problem/23344491>
+
+        Reviewed by Simon Fraser.
+
+        Fix the fast-clicking tests by making them fire an exact number of times rather than
+        sending continuously until a minimum number of clicks are fired. This causes us to
+        avoid crashing during the following test when the marker events corresponding to single
+        taps fired after the test has completed have been handled.
+
+        * css3/touch-action/touch-action-manipulation-fast-clicks.html:
+        * fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks.html:
+
 2015-10-30  Keith Miller  <keith_mil...@apple.com>
 
         Fix endless OSR exits when creating a rope that contains an object that ToPrimitive's to a number.

Modified: trunk/LayoutTests/css3/touch-action/touch-action-manipulation-fast-clicks.html (192035 => 192036)


--- trunk/LayoutTests/css3/touch-action/touch-action-manipulation-fast-clicks.html	2015-11-04 22:15:00 UTC (rev 192035)
+++ trunk/LayoutTests/css3/touch-action/touch-action-manipulation-fast-clicks.html	2015-11-04 22:21:25 UTC (rev 192036)
@@ -7,14 +7,21 @@
     <script src=""
     <script id="ui-script" type="text/plain">
         (function() {
-            function performTap() {
-                uiController.singleTapAtPoint(200, 200, performTap);
+            var count = 0;
+            function fireSuccessiveTaps() {
+                if (count < 3)
+                    uiController.singleTapAtPoint(200, 200, fireSuccessiveTaps);
+                else
+                    uiController.uiScriptComplete("");
+
+                count++;
             }
-            performTap();
+            fireSuccessiveTaps();
         })();
     </script>
 
     <script>
+    var scriptCompleted = false;
     var clickCount = 0;
     if (window.testRunner)
         testRunner.waitUntilDone();
@@ -25,13 +32,17 @@
 
     function runTest() {
         if (testRunner.runUIScript)
-            testRunner.runUIScript(getUIScript(), function(result) { });
+            testRunner.runUIScript(getUIScript(), function(result) {
+                scriptCompleted = true;
+                if (clickCount == 3)
+                    testRunner.notifyDone();
+            });
     }
     function handleClicked() {
         clickCount++;
         document.body.appendChild(document.createTextNode("Click!"));
         document.body.appendChild(document.createElement("br"));
-        if (clickCount == 3)
+        if (clickCount == 3 && scriptCompleted)
             testRunner.notifyDone();
     }
     </script>

Modified: trunk/LayoutTests/fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks.html (192035 => 192036)


--- trunk/LayoutTests/fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks.html	2015-11-04 22:15:00 UTC (rev 192035)
+++ trunk/LayoutTests/fast/events/ios/viewport-device-width-at-initial-scale-fast-clicks.html	2015-11-04 22:21:25 UTC (rev 192036)
@@ -7,18 +7,21 @@
     <script src=""
     <script id="ui-script" type="text/plain">
         (function() {
-            uiController.didEndZoomingCallback = function() {
-                uiController.uiScriptComplete("FAIL: Zoomed to scale " + uiController.zoomScale + " when we should only be firing fast clicks.");
-            };
+            var count = 0;
+            function fireSuccessiveTaps() {
+                if (count < 3)
+                    uiController.singleTapAtPoint(200, 200, fireSuccessiveTaps);
+                else
+                    uiController.uiScriptComplete("");
 
-            function fireSuccessiveSingleTaps() {
-                uiController.singleTapAtPoint(200, 200, fireSuccessiveSingleTaps);
+                count++;
             }
-            fireSuccessiveSingleTaps();
+            fireSuccessiveTaps();
         })();
     </script>
 
     <script>
+    var scriptCompleted = false;
     var clickCount = 0;
     if (window.testRunner)
         testRunner.waitUntilDone();
@@ -29,13 +32,17 @@
 
     function runTest() {
         if (testRunner.runUIScript)
-            testRunner.runUIScript(getUIScript(), function(result) { });
+            testRunner.runUIScript(getUIScript(), function(result) {
+                scriptCompleted = true;
+                if (clickCount == 3)
+                    testRunner.notifyDone();
+            });
     }
     function handleClicked() {
         clickCount++;
         document.body.appendChild(document.createTextNode("Click!"));
         document.body.appendChild(document.createElement("br"));
-        if (clickCount == 3)
+        if (clickCount == 3 && scriptCompleted)
             testRunner.notifyDone();
     }
     </script>

Modified: trunk/Source/WebKit2/ChangeLog (192035 => 192036)


--- trunk/Source/WebKit2/ChangeLog	2015-11-04 22:15:00 UTC (rev 192035)
+++ trunk/Source/WebKit2/ChangeLog	2015-11-04 22:21:25 UTC (rev 192036)
@@ -1,3 +1,17 @@
+2015-11-04  Wenson Hsieh  <wenson_hs...@apple.com>
+
+        Fix crashing fast-clicking WK2 tests on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=150896
+        <rdar://problem/23344491>
+
+        Reviewed by Simon Fraser.
+
+        In order for the modified fast-clicking tests to pass, we can't allow hit-testing to
+        find the tap highlight view. See the Radar for more UIKit-specific descriptions.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _showTapHighlight]):
+
 2015-11-03  Anders Carlsson  <ander...@apple.com>
 
         PageLoadState::will/didChangeProcessIsResponsive should call observers

Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (192035 => 192036)


--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm	2015-11-04 22:15:00 UTC (rev 192035)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm	2015-11-04 22:21:25 UTC (rev 192036)
@@ -845,6 +845,7 @@
 
     if (!_highlightView) {
         _highlightView = adoptNS([[_UIHighlightView alloc] initWithFrame:CGRectZero]);
+        [_highlightView setUserInteractionEnabled:NO];
         [_highlightView setOpaque:NO];
         [_highlightView setCornerRadius:minimumTapHighlightRadius];
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to