Changeset 264907 in webkit
- Timestamp:
- Jul 26, 2020, 12:25:28 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r264905 r264907 1 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=214688 5 <rdar://problem/65993683> 6 7 Reviewed by Darin Adler. 8 9 Remove the failing test expectation. 10 11 * platform/ios-simulator-wk2/TestExpectations: 12 1 13 2020-07-23 Darin Adler <darin@apple.com> 2 14 -
trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations
r264851 r264907 93 93 webkit.org/b/214422 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct.html [ Pass Failure ] 94 94 95 webkit.org/b/214688 editing/selection/shift-click-includes-existing-selection.html [ Pass Failure ]96 97 95 webkit.org/b/214730 [ Debug ] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-constructor.html [ Skip ] 98 96 webkit.org/b/214730 [ Debug ] webrtc/simulcast-h264.html [ Skip ] -
trunk/Source/WebCore/PAL/ChangeLog
r264896 r264907 1 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=214688 5 <rdar://problem/65993683> 6 7 Reviewed by Darin Adler. 8 9 Remove logging added in r264882, r264890, r264892, and r264896. 10 11 * pal/spi/ios/GraphicsServicesSPI.h: 12 1 13 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 14 -
trunk/Source/WebCore/PAL/pal/spi/ios/GraphicsServicesSPI.h
r264896 r264907 46 46 typedef struct __GSKeyboard* GSKeyboardRef; 47 47 uint32_t GSKeyboardGetModifierState(GSKeyboardRef); 48 uint32_t GSKeyboardGetLiveModifierState(GSKeyboardRef);49 48 Boolean GSEventIsHardwareKeyboardAttached(); 50 49 void GSEventSetHardwareKeyboardAttached(Boolean attached, uint8_t country); 51 CFStringRef GSKeyboardGetLayout(GSKeyboardRef);52 uint32_t GSKeyboardGetHWKeyboardType(GSKeyboardRef);53 50 54 51 extern const char *kGSEventHardwareKeyboardAvailabilityChangedNotification; -
trunk/Source/WebKit/ChangeLog
r264905 r264907 1 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=214688 5 <rdar://problem/65993683> 6 7 Reviewed by Darin Adler. 8 9 Remove logging added in r264882, r264890, r264892, and r264896. 10 11 * Platform/spi/ios/UIKitSPI.h: 12 * UIProcess/ios/WKContentViewInteraction.mm: 13 (-[WKContentView _singleTapIdentified:]): 14 (-[WKContentView _singleTapRecognized:]): 15 * UIProcess/ios/WebPageProxyIOS.mm: 16 (WebKit::WebPageProxy::commitPotentialTap): 17 * WebProcess/WebPage/ios/WebPageIOS.mm: 18 (WebKit::WebPage::handleSyntheticClick): 19 1 20 2020-07-22 Darin Adler <darin@apple.com> 2 21 -
trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h
r264899 r264907 195 195 - (void)_enqueueHIDEvent:(IOHIDEventRef)event; 196 196 - (void)_handleHIDEvent:(IOHIDEventRef)event; 197 - (void)handleKeyHIDEvent:(IOHIDEventRef)event;198 197 - (void)handleKeyUIEvent:(UIEvent *)event; 199 198 - (BOOL)_appAdoptsUISceneLifecycle; … … 1378 1377 @end 1379 1378 1380 @interface UIApplication (IPI)1381 - (GSKeyboardRef)_hardwareKeyboard:(BOOL)createIfNeeded;1382 @end1383 1384 1379 WTF_EXTERN_C_BEGIN 1385 1380 -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
r264882 r264907 2737 2737 RELEASE_LOG(ViewGestures, "Single tap identified. Request details on potential zoom. (%p)", self); 2738 2738 2739 WTFLogAlways("%s - modifier flags: 0x%02x", __PRETTY_FUNCTION__, WebEvent.modifierFlags);2740 2739 _page->potentialTapAtPosition(gestureRecognizer.location, shouldRequestMagnificationInformation, ++_latestTapID); 2741 2740 _potentialTapInProgress = YES; … … 2830 2829 m_commitPotentialTapPointerId = pointerId; 2831 2830 } 2832 WTFLogAlways("%s - modifier flags: 0x%02x", __PRETTY_FUNCTION__, WebEvent.modifierFlags);2833 2831 _page->commitPotentialTap(WebKit::webEventModifierFlags(gestureRecognizerModifierFlags(gestureRecognizer)), _layerTreeTransactionIdAtLastInteractionStart, pointerId); 2834 2832 -
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r264882 r264907 896 896 void WebPageProxy::commitPotentialTap(OptionSet<WebEvent::Modifier> modifiers, TransactionID layerTreeTransactionIdAtLastTouchStart, WebCore::PointerID pointerId) 897 897 { 898 WTFLogAlways("Committing potential tap with modifiers: 0x%02x", modifiers.toRaw());899 898 send(Messages::WebPage::CommitPotentialTap(modifiers, layerTreeTransactionIdAtLastTouchStart, pointerId)); 900 899 } -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r264882 r264907 719 719 void WebPage::handleSyntheticClick(Node& nodeRespondingToClick, const WebCore::FloatPoint& location, OptionSet<WebEvent::Modifier> modifiers, WebCore::PointerID pointerId) 720 720 { 721 WTFLogAlways("Handling synthetic click at (%.0f, %.0f) with modifiers: 0x%02x", location.x(), location.y(), modifiers.toRaw());722 721 auto& respondingDocument = nodeRespondingToClick.document(); 723 722 auto isFirstSyntheticClickOnPage = !m_hasHandledSyntheticClick; -
trunk/Tools/ChangeLog
r264903 r264907 1 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=214688 5 <rdar://problem/65993683> 6 7 Reviewed by Darin Adler. 8 9 Attempt another speculative fix for this flaky test, motivated by logging introduced in r264896. This recently 10 introduced telemetry would suggest that this test fails when the act of handling a synthetic modifier keydown 11 fails to update `GSKeyboardRef`'s live modifier flags if the keyboard layout changes mid-event, forcing the 12 existing `GSKeyboardRef` to be destroyed and rebuilt. 13 14 In this case, the keyboard layout changes from "Hebrew" to "US" when this test fails. There is only one (sane) 15 explanation for this, which is that one of the `editing/input/ios/rtl-keyboard-input-*.html` tests switch to an 16 RTL keyboard ("he_IL" in both cases) by swizzling out `-currentInputMode` and `-currentInputModeInPreference` on 17 `UIKeyboardInputModeController`. While the swizzling is torn down in between test runs via logic in 18 `TestController::platformResetStateToConsistentValues`, it's possible that this change hasn't propagated to 19 the UIKit or GraphicsServices layers -- in other words, `UIApplication`'s `GSKeyboardRef` remains stuck in the 20 Hebrew layout until the next time `-GSKeyboardForHWLayout:forceRebuild:createIfNeeded:` forces the keyboard to 21 be rebuilt, which (in this case) seems to happen while running `shift-click-includes-existing-selection.html`. 22 23 For reasons that are still unclear, this lazy regeneration of the `GSKeyboardRef` causes GraphicsServices' live 24 modifier state to not update when handling a shift key down HID event. However, we might be able to fix this by 25 forcing UIKit to sync the default (unswizzled) keyboard layout back to its `GSKeyboardRef` immediately when we 26 stop swizzling `UIKeyboardInputModeController` after running a test that attempts to simulate changing keyboard 27 input modes. 28 29 * WebKitTestRunner/ios/TestControllerIOS.mm: 30 (WTR::TestController::platformResetStateToConsistentValues): 31 32 Call `-prepareKeyboardInputModeFromPreferences:` to force the UIApp to update its hardware keyboard state (i.e. 33 `GSKeyboardRef`). 34 35 * WebKitTestRunner/ios/UIScriptControllerIOS.mm: 36 (WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers): 37 38 Also, restore this method to how it was prior to r264890, as it doesn't seem like waiting for the HID marker 39 event after synthesizing a keydown had any effect. 40 41 * WebKitTestRunner/ios/mainIOS.mm: 42 (-[WebKitTestRunnerApp handleKeyHIDEvent:]): Deleted. 43 1 44 2020-07-26 Diego Pino Garcia <dpino@igalia.com> 2 45 -
trunk/Tools/WebKitTestRunner/ios/TestControllerIOS.mm
r264834 r264907 183 183 #endif 184 184 185 m_inputModeSwizzlers.clear(); 186 m_overriddenKeyboardInputMode = nil; 185 if (m_overriddenKeyboardInputMode) { 186 m_overriddenKeyboardInputMode = nil; 187 m_inputModeSwizzlers.clear(); 188 [UIKeyboardImpl.sharedInstance prepareKeyboardInputModeFromPreferences:nil]; 189 } 187 190 188 191 m_presentPopoverSwizzlers.clear(); -
trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm
r264890 r264907 301 301 waitForSingleTapToReset(); 302 302 303 if (!modifierFlags.isEmpty())304 WTFLogAlways("Synthesizing modifier keydown events.");305 306 303 for (auto& modifierFlag : modifierFlags) 307 304 [[HIDEventGenerator sharedHIDEventGenerator] keyDown:modifierFlag]; 308 305 309 auto dispatchTap = [this, protectedThis = makeRef(*this), modifierFlags = WTFMove(modifierFlags), block = WTFMove(block), location]() mutable { 310 if (!modifierFlags.isEmpty()) 311 WTFLogAlways("Synthesizing tap."); 312 313 [[HIDEventGenerator sharedHIDEventGenerator] tap:globalToContentCoordinates(webView(), location.x(), location.y()) completionBlock:[protectedThis, modifierFlags = WTFMove(modifierFlags), block = WTFMove(block)] () mutable { 314 if (!protectedThis->m_context) 315 return; 316 317 if (!modifierFlags.isEmpty()) 318 WTFLogAlways("Synthesizing modifier keyup events."); 319 320 for (size_t i = modifierFlags.size(); i; ) { 321 --i; 322 [[HIDEventGenerator sharedHIDEventGenerator] keyUp:modifierFlags[i]]; 323 } 324 [[HIDEventGenerator sharedHIDEventGenerator] sendMarkerHIDEventWithCompletionBlock:block.get()]; 325 }]; 326 }; 327 328 if (modifierFlags.isEmpty()) 329 dispatchTap(); 330 else 331 [[HIDEventGenerator sharedHIDEventGenerator] sendMarkerHIDEventWithCompletionBlock:dispatchTap]; 306 [[HIDEventGenerator sharedHIDEventGenerator] tap:globalToContentCoordinates(webView(), location.x(), location.y()) completionBlock:[this, protectedThis = makeRef(*this), modifierFlags = WTFMove(modifierFlags), block = WTFMove(block)] () mutable { 307 if (!m_context) 308 return; 309 310 for (size_t i = modifierFlags.size(); i; ) { 311 --i; 312 [[HIDEventGenerator sharedHIDEventGenerator] keyUp:modifierFlags[i]]; 313 } 314 [[HIDEventGenerator sharedHIDEventGenerator] sendMarkerHIDEventWithCompletionBlock:block.get()]; 315 }]; 332 316 } 333 317 -
trunk/Tools/WebKitTestRunner/ios/mainIOS.mm
r264899 r264907 29 29 #import "TestController.h" 30 30 #import "UIKitSPI.h" 31 #import <pal/spi/ios/GraphicsServicesSPI.h>32 31 33 32 static int _argc; … … 56 55 } 57 56 58 - (void)handleKeyHIDEvent:(IOHIDEventRef)event59 {60 {61 auto keyboard = [self _hardwareKeyboard:NO];62 WTFLogAlways("(Before): keyboard %p has modifier state: 0x%02x; layout:%@; type: %d", keyboard, GSKeyboardGetLiveModifierState(keyboard), (__bridge NSString *)GSKeyboardGetLayout(keyboard), GSKeyboardGetHWKeyboardType(keyboard));63 }64 [super handleKeyHIDEvent:event];65 {66 auto keyboard = [self _hardwareKeyboard:NO];67 WTFLogAlways("(After): keyboard %p has modifier state: 0x%02x; layout:%@; type: %d", keyboard, GSKeyboardGetLiveModifierState(keyboard), (__bridge NSString *)GSKeyboardGetLayout(keyboard), GSKeyboardGetHWKeyboardType(keyboard));68 }69 }70 71 57 - (void)_handleHIDEvent:(IOHIDEventRef)event 72 58 { -
trunk/WebKitLibraries/ChangeLog
r264896 r264907 1 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure 4 https://bugs.webkit.org/show_bug.cgi?id=214688 5 <rdar://problem/65993683> 6 7 Reviewed by Darin Adler. 8 9 Remove logging added in r264882, r264890, r264892, and r264896. 10 11 * WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd: 12 * WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd: 13 * WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd: 14 * WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd: 15 * WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd: 16 * WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd: 17 1 18 2020-07-26 Wenson Hsieh <wenson_hsieh@apple.com> 2 19 -
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd
r264896 r264907 9 9 symbols: [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached, 10 10 _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState, 11 _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification, 12 _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ] 11 _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification] 13 12 ... -
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd
r264896 r264907 9 9 symbols: [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached, 10 10 _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState, 11 _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification, 12 _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ] 11 _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification] 13 12 ... -
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd
r264896 r264907 9 9 symbols: [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached, 10 10 _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState, 11 _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification, 12 _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ] 11 _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification] 13 12 ... -
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd
r264896 r264907 9 9 symbols: [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached, 10 10 _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState, 11 _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification, 12 _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ] 11 _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification] 13 12 ... -
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd
r264896 r264907 9 9 symbols: [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached, 10 10 _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState, 11 _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification, 12 _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ] 11 _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification] 13 12 ... -
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd
r264896 r264907 9 9 symbols: [ _GSCurrentEventTimestamp, _GSEventIsHardwareKeyboardAttached, _GSEventSetHardwareKeyboardAttached, 10 10 _GSFontInitialize, _GSFontPurgeFontCache, _GSInitialize, _GSKeyboardGetModifierState, 11 _GSKeyboardGetLiveModifierState, _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification, 12 _GSKeyboardGetLayout, _GSKeyboardGetHWKeyboardType ] 11 _GSSystemRootDirectory, _kGSEventHardwareKeyboardAvailabilityChangedNotification] 13 12 ...
Note:
See TracChangeset
for help on using the changeset viewer.