Title: [264896] trunk
Revision
264896
Author
[email protected]
Date
2020-07-26 01:17:31 -0700 (Sun, 26 Jul 2020)

Log Message

Unreviewed, add even more logging to try and diagnose a flaky test
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Source/WebCore/PAL:

Add more GraphicsServices SPI declarations.


* pal/spi/ios/GraphicsServicesSPI.h:

Source/WebKit:

Add another IPI declaration on UIApplication.


* Platform/spi/ios/UIKitSPI.h:

Tools:

Evidence so far suggests that this test fails when the process of dispatching a keydown event for a modifier
(in this case, the shift key) causes the UIApplication's hardware keyboard (`GSKeyboardRef`) to be regenerated.
This may happen in one of two ways: either a rebuild is forced by logic in `-[UIApplication handleKeyHIDEvent:]`,
or `forceRebuild` is `NO`, but the keyboard is rebuilt anyways due to a mismatched layout and/or keyboard type.


* WebKitTestRunner/ios/mainIOS.mm:
(-[WebKitTestRunnerApp GSKeyboardForHWLayout:forceRebuild:createIfNeeded:]):
(-[WebKitTestRunnerApp handleKeyHIDEvent:]):

WebKitLibraries:

Add symbol stubs for non-internal builds.


* WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
* WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
* WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
* WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
* WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
* WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:

Modified Paths

Diff

Modified: trunk/Source/WebCore/PAL/ChangeLog (264895 => 264896)


--- trunk/Source/WebCore/PAL/ChangeLog	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/Source/WebCore/PAL/ChangeLog	2020-07-26 08:17:31 UTC (rev 264896)
@@ -1,3 +1,13 @@
+2020-07-26  Wenson Hsieh  <[email protected]>
+
+        Unreviewed, add even more logging to try and diagnose a flaky test
+        https://bugs.webkit.org/show_bug.cgi?id=214688
+        <rdar://problem/65993683>
+
+        Add more GraphicsServices SPI declarations.
+
+        * pal/spi/ios/GraphicsServicesSPI.h:
+
 2020-07-25  Wenson Hsieh  <[email protected]>
 
         REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure

Modified: trunk/Source/WebCore/PAL/pal/spi/ios/GraphicsServicesSPI.h (264895 => 264896)


--- trunk/Source/WebCore/PAL/pal/spi/ios/GraphicsServicesSPI.h	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/Source/WebCore/PAL/pal/spi/ios/GraphicsServicesSPI.h	2020-07-26 08:17:31 UTC (rev 264896)
@@ -48,6 +48,8 @@
 uint32_t GSKeyboardGetLiveModifierState(GSKeyboardRef);
 Boolean GSEventIsHardwareKeyboardAttached();
 void GSEventSetHardwareKeyboardAttached(Boolean attached, uint8_t country);
+CFStringRef GSKeyboardGetLayout(GSKeyboardRef);
+uint32_t GSKeyboardGetHWKeyboardType(GSKeyboardRef);
 
 extern const char *kGSEventHardwareKeyboardAvailabilityChangedNotification;
 

Modified: trunk/Source/WebKit/ChangeLog (264895 => 264896)


--- trunk/Source/WebKit/ChangeLog	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/Source/WebKit/ChangeLog	2020-07-26 08:17:31 UTC (rev 264896)
@@ -1,3 +1,13 @@
+2020-07-26  Wenson Hsieh  <[email protected]>
+
+        Unreviewed, add even more logging to try and diagnose a flaky test
+        https://bugs.webkit.org/show_bug.cgi?id=214688
+        <rdar://problem/65993683>
+
+        Add another IPI declaration on UIApplication.
+
+        * Platform/spi/ios/UIKitSPI.h:
+
 2020-07-25  Wenson Hsieh  <[email protected]>
 
         REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure

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


--- trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h	2020-07-26 08:17:31 UTC (rev 264896)
@@ -1379,6 +1379,7 @@
 
 @interface UIApplication (IPI)
 - (GSKeyboardRef)_hardwareKeyboard:(BOOL)createIfNeeded;
+- (GSKeyboardRef)GSKeyboardForHWLayout:(NSString *)layout forceRebuild:(BOOL)forceRebuild createIfNeeded:(BOOL)createIfNeeded;
 @end
 
 WTF_EXTERN_C_BEGIN

Modified: trunk/Tools/ChangeLog (264895 => 264896)


--- trunk/Tools/ChangeLog	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/Tools/ChangeLog	2020-07-26 08:17:31 UTC (rev 264896)
@@ -1,3 +1,18 @@
+2020-07-26  Wenson Hsieh  <[email protected]>
+
+        Unreviewed, add even more logging to try and diagnose a flaky test
+        https://bugs.webkit.org/show_bug.cgi?id=214688
+        <rdar://problem/65993683>
+
+        Evidence so far suggests that this test fails when the process of dispatching a keydown event for a modifier
+        (in this case, the shift key) causes the UIApplication's hardware keyboard (`GSKeyboardRef`) to be regenerated.
+        This may happen in one of two ways: either a rebuild is forced by logic in `-[UIApplication handleKeyHIDEvent:]`,
+        or `forceRebuild` is `NO`, but the keyboard is rebuilt anyways due to a mismatched layout and/or keyboard type.
+
+        * WebKitTestRunner/ios/mainIOS.mm:
+        (-[WebKitTestRunnerApp GSKeyboardForHWLayout:forceRebuild:createIfNeeded:]):
+        (-[WebKitTestRunnerApp handleKeyHIDEvent:]):
+
 2020-07-25  Wenson Hsieh  <[email protected]>
 
         [iOS] Crash under ValidationBubble::setAnchorRect when showing form validation UI in unparented view

Modified: trunk/Tools/WebKitTestRunner/ios/mainIOS.mm (264895 => 264896)


--- trunk/Tools/WebKitTestRunner/ios/mainIOS.mm	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/Tools/WebKitTestRunner/ios/mainIOS.mm	2020-07-26 08:17:31 UTC (rev 264896)
@@ -55,16 +55,23 @@
     RELEASE_ASSERT_NOT_REACHED();
 }
 
+- (GSKeyboardRef)GSKeyboardForHWLayout:(NSString *)layout forceRebuild:(BOOL)forceRebuild createIfNeeded:(BOOL)createIfNeeded
+{
+    auto keyboard = [super GSKeyboardForHWLayout:layout forceRebuild:forceRebuild createIfNeeded:createIfNeeded];
+    WTFLogAlways("-[%@ GSKeyboardForHWLayout:%@ forceRebuild:%@ createIfNeeded:%@] => %p", self.class, layout, forceRebuild ? @"YES" : @"NO", createIfNeeded ? @"YES" : @"NO", keyboard);
+    return keyboard;
+}
+
 - (void)handleKeyHIDEvent:(IOHIDEventRef)event
 {
     {
         auto keyboard = [self _hardwareKeyboard:NO];
-        WTFLogAlways("(Before): keyboard %p has modifier state: 0x%02x", keyboard, GSKeyboardGetLiveModifierState(keyboard));
+        WTFLogAlways("(Before): keyboard %p has modifier state: 0x%02x; layout:%@; type: %d", keyboard, GSKeyboardGetLiveModifierState(keyboard), (__bridge NSString *)GSKeyboardGetLayout(keyboard), GSKeyboardGetHWKeyboardType(keyboard));
     }
     [super handleKeyHIDEvent:event];
     {
         auto keyboard = [self _hardwareKeyboard:NO];
-        WTFLogAlways("(After): keyboard %p has modifier state: 0x%02x", keyboard, GSKeyboardGetLiveModifierState(keyboard));
+        WTFLogAlways("(After): keyboard %p has modifier state: 0x%02x; layout:%@; type: %d", keyboard, GSKeyboardGetLiveModifierState(keyboard), (__bridge NSString *)GSKeyboardGetLayout(keyboard), GSKeyboardGetHWKeyboardType(keyboard));
     }
 }
 

Modified: trunk/WebKitLibraries/ChangeLog (264895 => 264896)


--- trunk/WebKitLibraries/ChangeLog	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/ChangeLog	2020-07-26 08:17:31 UTC (rev 264896)
@@ -1,3 +1,18 @@
+2020-07-26  Wenson Hsieh  <[email protected]>
+
+        Unreviewed, add even more logging to try and diagnose a flaky test
+        https://bugs.webkit.org/show_bug.cgi?id=214688
+        <rdar://problem/65993683>
+
+        Add symbol stubs for non-internal builds.
+
+        * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
+        * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
+        * WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
+        * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
+        * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
+        * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:
+
 2020-07-25  Wenson Hsieh  <[email protected]>
 
         REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure

Modified: trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd (264895 => 264896)


--- trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 08:17:31 UTC (rev 264896)
@@ -8,5 +8,6 @@
     archs:           [ x86_64, arm64 ]
     symbols:         [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached,
                        _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState,
-                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification ]
+                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification,
+                       _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ]
 ...

Modified: trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd (264895 => 264896)


--- trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 08:17:31 UTC (rev 264896)
@@ -8,5 +8,6 @@
     archs:           [ x86_64, arm64 ]
     symbols:         [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached,
                        _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState,
-                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification ]
+                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification,
+                       _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ]
 ...

Modified: trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd (264895 => 264896)


--- trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 08:17:31 UTC (rev 264896)
@@ -8,5 +8,6 @@
     archs:           [ x86_64, arm64, arm64e ]
     symbols:         [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached,
                        _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState,
-                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification ]
+                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification,
+                       _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ]
 ...

Modified: trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd (264895 => 264896)


--- trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 08:17:31 UTC (rev 264896)
@@ -8,5 +8,6 @@
     archs:           [ x86_64, arm64, arm64e ]
     symbols:         [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached,
                        _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState,
-                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification ]
+                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification,
+                       _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ]
 ...

Modified: trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd (264895 => 264896)


--- trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 08:17:31 UTC (rev 264896)
@@ -8,5 +8,6 @@
     archs:           [ i386, x86_64, arm64, arm64e, arm64_32, armv7k ]
     symbols:         [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached,
                        _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState,
-                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification ]
+                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification,
+                       _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ]
 ...

Modified: trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd (264895 => 264896)


--- trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 05:11:06 UTC (rev 264895)
+++ trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd	2020-07-26 08:17:31 UTC (rev 264896)
@@ -8,5 +8,6 @@
     archs:           [ i386, x86_64, arm64, arm64e, arm64_32, armv7k ]
     symbols:         [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached,
                        _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState,
-                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification ]
+                       _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification,
+                       _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ]
 ...
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to