2.4 KiB
2.4 KiB
M14-04F:Chromium touch modal cancel / two-finger navigation / pen commit
task:M14-04Fparent:M14-04Estatus:done
目标
在 Chromium 输入状态层固定三条边界:触控 modal 取消不提交 Main;双指手势只产生一次 navigation session;笔 stroke 的 pointerup 只允许一个 Main commit,重复 up/cancel 不重复提交。 Firefox/WebKit 不在本项目范围内。
输入
- 上一个 manifest:
tests/golden/M14-04E/manifest.json - 协议入口:
web/protocol/input-modal.ts - 单测入口:
web/tests/unit/input-modal.test.mjs - Chromium 检查器:
tools/web/check-chromium-input-modal.mjs - 当前报告:
tests/golden/M14-04F/chromium-input-modal-report.json
细分门
- 协议门:固定
InputModalState、pointer ID 校验、touch/pen 状态转移和稳定计数。 - 触控门:
pointercancel清理活动 pointer,不产生 Main commit。 - 双指门:从一个 pointer 进入两个 pointer 时只增加一次 navigation session;重复 down、 pointer 顺序和单指结束不得重复创建 session。
- 笔门:同一笔 stroke 的第一个合法
pointerup最多产生一次 Main commit;late up/cancel 不得重复提交或改变 revision。 - 生产接线门:主线程与 Offscreen 生产输入路径必须真正消费协议;不能只在测试中调用纯函数。
- 浏览器证据门:Chromium checker 必须读取真实 modal 状态、Main revision/commit counter 或
等价生产诊断,而不是仅记录派发了几个
PointerEvent。 - 交接门:focused 命令、必要的 typecheck/build、report、manifest、status 和回滚路径齐全。
协议状态已接入主线程 WebGL 和 OffscreenCanvas Worker 两条生产 viewport 路径;Chromium checker
读取两个 canvas 的真实 data-input-modal-* 状态,重复 pointerup/pointercancel 不增加提交计数。
验收
npm --prefix web run test:chromium-input-modal
必要的补充门:
npm --prefix web run typecheck
npm --prefix web run build
git diff --check
产物和交接
- 报告:
tests/golden/M14-04F/chromium-input-modal-report.json - manifest:
tests/golden/M14-04F/manifest.json - 状态页:完成或阻断后新增
docs/status/M14-04F.md - 下一任务:只读取 manifest 的
nextTask,不能从长期计划手工推导