fix: crash on reconversion with google IME and editcontext on macOS (#46700)
* fix: crash on reconversion with google IME and editcontext on macOS Co-authored-by: deepak1556 <hop2deep@gmail.com> * chore: update .patches * Trigger CI * chore: fix patch indices --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
parent
ee54727582
commit
0f73bba452
2 changed files with 44 additions and 0 deletions
|
@ -146,3 +146,4 @@ fix_drag_and_drop_icons_on_windows.patch
|
|||
chore_remove_conflicting_allow_unsafe_libc_calls.patch
|
||||
fix_take_snapped_status_into_account_when_showing_a_window.patch
|
||||
chore_modify_chromium_handling_of_mouse_events.patch
|
||||
mac_fix_check_on_ime_reconversion_due_to_invalid_replacement_range.patch
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Keren Zhu <kerenzhu@chromium.org>
|
||||
Date: Fri, 18 Apr 2025 11:02:46 -0700
|
||||
Subject: mac: fix CHECK on IME reconversion due to invalid replacement range
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It appears that Google Japanese IME can call -setMarkedText: with an
|
||||
invalid replacement range when doing text reconversion (変換, i.e.,
|
||||
conversion between different text with same pronunciation). This range
|
||||
is a NSRange and NSRange.location is supposed to be NSNotFound (2^31-1)
|
||||
for invalid range, but the IME can pass in 2^32. Subsequently causing
|
||||
CHECK error.
|
||||
|
||||
This CL fixes the issue by converting such invalid NSRange to
|
||||
gfx::InvalidRange using FromPossiblyInvalidNSRange(range).
|
||||
|
||||
Fixed: 409864204
|
||||
Change-Id: I08ff426a933ef76aa81e33af59aa32e2ac0b674d
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6470915
|
||||
Commit-Queue: Keren Zhu <kerenzhu@chromium.org>
|
||||
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1448935}
|
||||
|
||||
diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
|
||||
index cb65efb56849d57e2e656f90d5b1d737ba2d952d..baad4cf7479646a25967892ef267bcea90c01ad0 100644
|
||||
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
|
||||
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
|
||||
@@ -2430,9 +2430,10 @@ - (void)setMarkedText:(id)string
|
||||
if ([self isHandlingKeyDown] && !_isReconversionTriggered) {
|
||||
_setMarkedTextReplacementRange = gfx::Range(replacementRange);
|
||||
} else {
|
||||
- _host->ImeSetComposition(_markedText, _imeTextSpans,
|
||||
- gfx::Range(replacementRange), newSelRange.location,
|
||||
- NSMaxRange(newSelRange));
|
||||
+ _host->ImeSetComposition(
|
||||
+ _markedText, _imeTextSpans,
|
||||
+ gfx::Range::FromPossiblyInvalidNSRange(replacementRange),
|
||||
+ newSelRange.location, NSMaxRange(newSelRange));
|
||||
}
|
||||
|
||||
[[self inputContext] invalidateCharacterCoordinates];
|
Loading…
Add table
Add a link
Reference in a new issue