Title: [255507] trunk
Revision
255507
Author
ddkil...@apple.com
Date
2020-01-31 10:33:13 -0800 (Fri, 31 Jan 2020)

Log Message

REGRESSION: [ iPadOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html always fails
<https://webkit.org/b/206759>
<rdar://problem/58872607>

Reviewed by Brent Fulgham.

Source/WebKit:

Test: imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html

* Platform/spi/ios/UIKitSPI.h:
(-[UIViewController isPerformingModalTransition]): Add SPI
declaration.

Tools:

* WebKitTestRunner/ios/UIScriptControllerIOS.h:
(WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
- Add declaration.
* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
- Implement by waiting for
  -[UIViewController isPerformingModalTransition] to return NO
  while spinning the runloop.
(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
- Call waitForModalTransitionToFinish() to fix the test.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (255506 => 255507)


--- trunk/Source/WebKit/ChangeLog	2020-01-31 18:05:08 UTC (rev 255506)
+++ trunk/Source/WebKit/ChangeLog	2020-01-31 18:33:13 UTC (rev 255507)
@@ -1,3 +1,17 @@
+2020-01-31  David Kilzer  <ddkil...@apple.com>
+
+        REGRESSION: [ iPadOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html always fails
+        <https://webkit.org/b/206759>
+        <rdar://problem/58872607>
+
+        Reviewed by Brent Fulgham.
+
+        Test: imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html
+
+        * Platform/spi/ios/UIKitSPI.h:
+        (-[UIViewController isPerformingModalTransition]): Add SPI
+        declaration.
+
 2020-01-31  Brent Fulgham  <bfulg...@apple.com>
 
         REGRESSION (r251511): [iOS] HDR Playback broken

Modified: trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h (255506 => 255507)


--- trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h	2020-01-31 18:05:08 UTC (rev 255506)
+++ trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h	2020-01-31 18:33:13 UTC (rev 255507)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -467,6 +467,7 @@
 @interface UIViewController ()
 + (UIViewController *)_viewControllerForFullScreenPresentationFromView:(UIView *)view;
 + (UIViewController *)viewControllerForView:(UIView *)view;
+- (BOOL)isPerformingModalTransition;
 @end
 
 @interface UIViewController (ViewService)

Modified: trunk/Tools/ChangeLog (255506 => 255507)


--- trunk/Tools/ChangeLog	2020-01-31 18:05:08 UTC (rev 255506)
+++ trunk/Tools/ChangeLog	2020-01-31 18:33:13 UTC (rev 255507)
@@ -1,3 +1,22 @@
+2020-01-31  David Kilzer  <ddkil...@apple.com>
+
+        REGRESSION: [ iPadOS ] imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html always fails
+        <https://webkit.org/b/206759>
+        <rdar://problem/58872607>
+
+        Reviewed by Brent Fulgham.
+
+        * WebKitTestRunner/ios/UIScriptControllerIOS.h:
+        (WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
+        - Add declaration.
+        * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
+        (WTR::UIScriptControllerIOS::waitForModalTransitionToFinish const):
+        - Implement by waiting for
+          -[UIViewController isPerformingModalTransition] to return NO
+          while spinning the runloop.
+        (WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
+        - Call waitForModalTransitionToFinish() to fix the test.
+
 2020-01-31  Aakash Jain  <aakash_j...@apple.com>
 
         [ews] add build step to set custom build summary

Modified: trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h (255506 => 255507)


--- trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h	2020-01-31 18:05:08 UTC (rev 255506)
+++ trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h	2020-01-31 18:33:13 UTC (rev 255507)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Apple Inc. All rights reserved.
+ * Copyright (C) 2019-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -155,6 +155,7 @@
     void clearAllCallbacks() override;
 
 private:
+    void waitForModalTransitionToFinish() const;
     void waitForSingleTapToReset() const;
     WebCore::FloatRect rectForMenuAction(CFStringRef) const;
     void singleTapAtPointWithModifiers(WebCore::FloatPoint location, Vector<String>&& modifierFlags, BlockPtr<void()>&&);

Modified: trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm (255506 => 255507)


--- trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm	2020-01-31 18:05:08 UTC (rev 255506)
+++ trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm	2020-01-31 18:33:13 UTC (rev 255507)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2019 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2020 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -253,6 +253,12 @@
     singleTapAtPoint(x, y, callback);
 }
 
+void UIScriptControllerIOS::waitForModalTransitionToFinish() const
+{
+    while ([webView().window.rootViewController isPerformingModalTransition])
+        [NSRunLoop.currentRunLoop runMode:NSDefaultRunLoopMode beforeDate:NSDate.distantFuture];
+}
+
 void UIScriptControllerIOS::waitForSingleTapToReset() const
 {
     bool doneWaitingForSingleTapToReset = false;
@@ -289,6 +295,9 @@
     // Animations on the scroll view could be in progress to reveal a form control which may interfere with hit testing (see wkb.ug/205458).
     [webView().scrollView _removeAllAnimations:NO];
 
+    // Necessary for popovers on iPad (used for elements such as <select>) to finish dismissing (see wkb.ug/206759).
+    waitForModalTransitionToFinish();
+
     waitForSingleTapToReset();
 
     for (auto& modifierFlag : modifierFlags)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to