Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1b25554251447179a862eb544b6323a473b9afc6
https://github.com/WebKit/WebKit/commit/1b25554251447179a862eb544b6323a473b9afc6
Author: Aditya Keerthi <[email protected]>
Date: 2024-07-29 (Mon, 29 Jul 2024)
Changed paths:
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
M Tools/TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm
Log Message:
-----------
REGRESSION (281060@main): [iOS] Crash when entering Japanese text into a text
box
https://bugs.webkit.org/show_bug.cgi?id=277251
rdar://132702363
Reviewed by Wenson Hsieh.
281060@main introduced an unconditional call to
`-[NSAttributedString attributesAtIndex:effectiveRange:]` in the marked text
codepath, which is used for both IME and inline text predictions.
This is unsafe, as an empty string is inserted when accepting an IME
composition.
Fix by eliding the call to `-[NSAttributedString
attributesAtIndex:effectiveRange:]`
when the text is empty.
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setAttributedMarkedText:selectedRange:]):
* Tools/TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::TEST(KeyboardInputTests, NoCrashWithEmptyAttributedMarkedText)):
Reproducing the issue in a test requires the use of `NSMutableAttributedString`.
Specifically, the crash is in the run-length encoded array used to keep track
of attributes. The issue only reproduces when that array is modified. Simply
creating an empty attributed string is insufficient to reproduce the crash.
Canonical link: https://commits.webkit.org/281501@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes