Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 33ccda6e9a0510fd5d89c720c09f48dcb183af74
      
https://github.com/WebKit/WebKit/commit/33ccda6e9a0510fd5d89c720c09f48dcb183af74
  Author: Wenson Hsieh <[email protected]>
  Date:   2024-02-19 (Mon, 19 Feb 2024)

  Changed paths:
    A 
LayoutTests/editing/selection/ios/select-backwards-with-inline-predictions-expected.txt
    A 
LayoutTests/editing/selection/ios/select-backwards-with-inline-predictions.html
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  [iOS] Extending selection with arrow keys before an inline prediction causes 
a MESSAGE_CHECK
https://bugs.webkit.org/show_bug.cgi?id=269750
rdar://123018695

Reviewed by Ryosuke Niwa.

When computing `selectedRangeInMarkedText`, we use `distanceBetweenPositions` 
to compute the
location of the range, based on the number of characters from the start of the 
composition range to
the start of the selection. When an inline prediction is active, however, it's 
possible to extend
the selection backwards, before the start of the marked text representing the 
inline prediction. In
this case, `distanceBetweenPositions` returns -1; this value is then 
interpreted as the `uint64_t`
numeric max limit and sent over IPC in `DocumentEditingContext::Range`, where 
it fails to decode due
to overflowing the max value which (subsequently) causes the web process to 
terminate.

To avoid this, we clamp the `selectedRangeInMarkedText` to the marked text 
range, such that the
endpoints of this range are both clamped to `[0, markedTextLength]`.

* 
LayoutTests/editing/selection/ios/select-backwards-with-inline-predictions-expected.txt:
 Added.
* 
LayoutTests/editing/selection/ios/select-backwards-with-inline-predictions.html:
 Added.
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDocumentEditingContext):

Canonical link: https://commits.webkit.org/275017@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

Reply via email to