[webkit-changes] [WebKit/WebKit] 161dbc: [UIAsyncTextInput] Release assertion after selecti...

Wenson Hsieh noreply at github.com
Sat Dec 9 16:27:25 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 161dbc0f0eb5324c45e62eeee11d67c4cbd163c9
      https://github.com/WebKit/WebKit/commit/161dbc0f0eb5324c45e62eeee11d67c4cbd163c9
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-12-09 (Sat, 09 Dec 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

  Log Message:
  -----------
  [UIAsyncTextInput] Release assertion after selecting "Translate" when async text input is enabled
https://bugs.webkit.org/show_bug.cgi?id=266157
rdar://119434259

Reviewed by Megan Gardner.

After the UIKit changes in rdar://119283621, the default commands corresponding to these 3 actions:

```
_define:     define:
_translate:  translate:
_lookup:     lookup:
```

...now follow an inverted model for dispatching fallback actions, where the primary action selector
is the legacy private action, and the fallback selector is the new selector on `UIAsyncTextInput`.
This means that UIKit ends up calling into private selectors on the content view instead of their
non-underscore-prefixed counterparts even when `UIKit/async_text_input` is enabled, causing us to
hit release assertions under these three methods.

To avoid this, we adjust the default behavior of `-targetForActionForWebView:withSender:` to always
return `nil` for these three private selectors, in order to force UIKit to fall back to calling into
the new action selectors.

Changes covered by the layout test `editing/selection/ios/look-up-selected-text.html`, when async
text input is enabled.

* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView targetForActionForWebView:withSender:]):

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




More information about the webkit-changes mailing list