mirror of
https://github.com/qingjian-team/qingjian.git
synced 2026-11-06 16:13:55 +00:00
查微软文档 / SampleIME / Chromium 源码后定:密码框的机制不是 IS_PASSWORD(文档明说它只是标注、密码框应禁用文本服务), 而是上下文 compartment GUID_COMPARTMENT_KEYBOARD_DISABLED;Chromium 给密码框设的正是它,输入范围报 IS_PRIVATE(含义「别学」)。 - DLL:com/context.rs 查 KEYBOARD_DISABLED / EMPTYCONTEXT,OnTestKeyDown / OnKeyDown / 保留键没在组句时先查,非零整键放行不组句 (与 macOS Secure Input 同义);起组句那次编辑会话里 input_context 判私密(IS_PRIVATE / 密码 / PIN)再读前文, 私密不读前文并随 ClientMessage::Privacy 报给 Server(客户端只在变化时发);协议版本 4 - Server:SessionInfo.private,焦点切换时重设,Router::is_private - Core:Engine::set_private——学习器与输入日志各套一层 Muted 包装(写吞掉、读照常,排序不变), 联想 / 翻译 / 释义兜底在私密时不发;tests/privacy.rs 两个用例,engine_loop 加 privacy_follows_the_focused_session - box 实测:Edge 密码框放行不组句;Edge InPrivate 网页文本框报 IS_SEARCH 不报 IS_PRIVATE,私密路径只靠单测,用户文档措辞按此收窄