[iOS] fast/events/touch/ios/hover-when-style-change-is-async.html times out
authorwenson_hsieh@apple.com <wenson_hsieh@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Jan 2019 20:09:54 +0000 (20:09 +0000)
committerwenson_hsieh@apple.com <wenson_hsieh@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 Jan 2019 20:09:54 +0000 (20:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=193182
<rdar://problem/47452154>

Reviewed by Tim Horton.

Source/WebKit:

Fix an existing bug where blurring an element doesn't always un-suppress text interactions.

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

Tools:

This test was timing out because one of its preceding tests (drag-to-autoscroll-in-single-line-editable.html)
long presses and drags to select text, but does not end the touch by lifting up; subsequently, the tap gesture
recognizer isn't fired when simulating a tap in hover-when-style-change-is-async.html.

To fix this, tweak the test runner to make it safe for tests to end while touching the web view without
preventing later tests from recognizing gestures.

* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):

Cancel all touches in the UIApplication when resetting to a consistent state between tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240352 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
Tools/ChangeLog
Tools/WebKitTestRunner/ios/TestControllerIOS.mm

index a5e2060..e2f429f 100644 (file)
@@ -1,3 +1,16 @@
+2019-01-23  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] fast/events/touch/ios/hover-when-style-change-is-async.html times out
+        https://bugs.webkit.org/show_bug.cgi?id=193182
+        <rdar://problem/47452154>
+
+        Reviewed by Tim Horton.
+
+        Fix an existing bug where blurring an element doesn't always un-suppress text interactions.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _elementDidBlur]):
+
 2019-01-23  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         Minor improvements to NetworkProcess
index 19b0902..bd1c6ba 100644 (file)
@@ -4660,6 +4660,7 @@ static const double minimumFocusedElementAreaForSuppressingSelectionAssistant =
 
     if (!_isChangingFocus) {
         [self _stopSuppressingSelectionAssistantForReason:WebKit::FocusedElementIsTransparentOrFullyClipped];
+        [self _stopSuppressingSelectionAssistantForReason:WebKit::FocusedElementIsTooSmall];
         _didAccessoryTabInitiateFocus = NO;
     }
 }
index a0c6b0d..21d72e3 100644 (file)
@@ -1,3 +1,23 @@
+2019-01-23  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] fast/events/touch/ios/hover-when-style-change-is-async.html times out
+        https://bugs.webkit.org/show_bug.cgi?id=193182
+        <rdar://problem/47452154>
+
+        Reviewed by Tim Horton.
+
+        This test was timing out because one of its preceding tests (drag-to-autoscroll-in-single-line-editable.html)
+        long presses and drags to select text, but does not end the touch by lifting up; subsequently, the tap gesture
+        recognizer isn't fired when simulating a tap in hover-when-style-change-is-async.html.
+
+        To fix this, tweak the test runner to make it safe for tests to end while touching the web view without
+        preventing later tests from recognizing gestures.
+
+        * WebKitTestRunner/ios/TestControllerIOS.mm:
+        (WTR::TestController::platformResetStateToConsistentValues):
+
+        Cancel all touches in the UIApplication when resetting to a consistent state between tests.
+
 2019-01-23  Jonathan Bedard  <jbedard@apple.com>
 
         webkitpy: Use correct config for --iphone-simulator and --ipad-simulator
index 855d2d5..04011a6 100644 (file)
@@ -115,6 +115,7 @@ void TestController::platformResetStateToConsistentValues(const TestOptions& opt
 {
     cocoaResetStateToConsistentValues(options);
 
+    [[UIApplication sharedApplication] _cancelAllTouches];
     [[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait animated:NO];
 
     m_inputModeSwizzlers.clear();