Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0817760f7266b906787bf6779391ff6a2fcc882c
      
https://github.com/WebKit/WebKit/commit/0817760f7266b906787bf6779391ff6a2fcc882c
  Author: Wenson Hsieh <[email protected]>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M 
LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-container.html
    M 
LayoutTests/editing/selection/ios/do-not-show-selection-in-empty-borderless-subframe.html
    M 
LayoutTests/editing/selection/ios/do-not-zoom-to-focused-hidden-contenteditable.html
    M 
LayoutTests/editing/selection/ios/hide-selection-in-hidden-contenteditable.html
    M 
LayoutTests/editing/selection/ios/hide-selection-in-tiny-contenteditable.html
    M 
LayoutTests/editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html
    M Source/WebKit/Platform/spi/ios/UIKitSPI.h
    M Tools/WebKitTestRunner/ios/TestControllerIOS.mm

  Log Message:
  -----------
  [iOS] Various tests in editing/selection/ios fail with out-of-process 
keyboard enabled
https://bugs.webkit.org/show_bug.cgi?id=253800
rdar://106007933

Reviewed by Ryosuke Niwa.

Apply several mitigations to keep these iOS-specific tests passing, when OOP 
keyboard is enabled.
See below for more details.

* 
LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-container.html:
* 
LayoutTests/editing/selection/ios/do-not-show-selection-in-empty-borderless-subframe.html:
* 
LayoutTests/editing/selection/ios/do-not-zoom-to-focused-hidden-contenteditable.html:

Adjust various tests to wait for the keyboard to hide before either ending, or 
attempting to show
the keyboard again by focusing another element. While this is generally good 
test hygiene, when OOPK
is enabled, failure to ensure this causes the keyboard hiding/showing 
notifications to be batched
together when the keyboard is shown before it even starts to dismiss; this 
breaks any subsequent
attempt to wait for the keyboard to appear when focusing, which waits for the 
notification to be
posted.

* 
LayoutTests/editing/selection/ios/hide-selection-in-hidden-contenteditable.html:
* LayoutTests/editing/selection/ios/hide-selection-in-tiny-contenteditable.html:
* 
LayoutTests/editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html:
* Source/WebKit/Platform/spi/ios/UIKitSPI.h:
* Tools/WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::handleKeyboardWillHideNotification):
(WTR::TestController::platformResetStateToConsistentValues):

Additionally fix logic that dismisses the keyboard (and waits for it to finish 
disappearing) between
tests to work with OOPK. With OOPK enabled, this will fail because we currently 
expect the
notification for `WillHide` to be dispatched during the call to 
`-resignFirstResponder`, such that
we only wait for the `DidHide` notification afterwards. However, since 
`WillHide` itself is delayed,
we end up skipping waiting altogether.

To fix this, we add another phase to wait for `WillHide` before waiting for 
`DidHide`. Note that
this is still compatible with OOPK disabled, since the flag will already be 
unset underneath the
call to `-resignFirstResponder`, causing us to effectively skip waiting.

Canonical link: https://commits.webkit.org/261588@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to