[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