HarmonyOS 输入法通过 OS_IPC_* 线程回调 InsertTextV2() 和 DeleteBackwardV2() 时,直接判断 Chromium WeakPtr 是否有效。
OS_IPC_*
InsertTextV2()
DeleteBackwardV2()
WeakPtr
该操作会在 IPC 线程访问绑定到 UI 序列的 WeakPtr,触发 SequenceChecker DCHECK,最终导致进程收到 SIGABRT 并崩溃。
WeakPtr 的有效性检查需要遵守其绑定序列约束。原实现错误地在 HarmonyOS IPC 回调线程执行了完整有效性判断。
MaybeValid()
仅修改:
ui/base/ime/ohos/input_method_ohos.cc
仅影响 HarmonyOS 输入法文本插入和退格删除流程,不影响其他平台。
问题背景
HarmonyOS 输入法通过
OS_IPC_*线程回调InsertTextV2()和DeleteBackwardV2()时,直接判断 ChromiumWeakPtr是否有效。该操作会在 IPC 线程访问绑定到 UI 序列的
WeakPtr,触发SequenceChecker DCHECK,最终导致进程收到 SIGABRT 并崩溃。
根本原因
WeakPtr的有效性检查需要遵守其绑定序列约束。原实现错误地在HarmonyOS IPC 回调线程执行了完整有效性判断。
修改方案
MaybeValid()进行预检查。WeakPtr移交给 UI 线程任务。WeakPtr。影响范围
仅修改:
ui/base/ime/ohos/input_method_ohos.cc仅影响 HarmonyOS 输入法文本插入和退格删除流程,不影响其他平台。
验证结果