Files
workinf_Blender_Wasm/docs/tasks/M14-04F.md
mes123456 380cbed4ff
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

2.3 KiB
Raw Blame History

M14-04FChromium touch modal cancel / two-finger navigation / pen commit

  • task: M14-04F
  • parent: M14-04E
  • status: in_progress

目标

在 Chromium 输入状态层固定三条边界:触控 modal 取消不提交 Main双指手势只产生一次 navigation session笔 stroke 的 pointerup 只允许一个 Main commit重复 up/cancel 不重复提交。 Firefox/WebKit 不在本项目范围内。

输入

  • 上一个 manifesttests/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

细分门

  1. 协议门:固定 InputModalState、pointer ID 校验、touch/pen 状态转移和稳定计数。
  2. 触控门pointercancel 清理活动 pointer不产生 Main commit。
  3. 双指门:从一个 pointer 进入两个 pointer 时只增加一次 navigation session重复 down、 pointer 顺序和单指结束不得重复创建 session。
  4. 笔门:同一笔 stroke 的第一个合法 pointerup 最多产生一次 Main commitlate up/cancel 不得重复提交或改变 revision。
  5. 生产接线门:主线程与 Offscreen 生产输入路径必须真正消费协议;不能只在测试中调用纯函数。
  6. 浏览器证据门Chromium checker 必须读取真实 modal 状态、Main revision/commit counter 或 等价生产诊断,而不是仅记录派发了几个 PointerEvent
  7. 交接门focused 命令、必要的 typecheck/build、report、manifest、status 和回滚路径齐全。

协议单测和事件派发通过,只能关闭前四个门的一部分;在生产接线和真实状态断言完成前,任务保持 in_progress,不得根据报告中的固定保证字段直接改为 done

验收

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
  • manifesttests/golden/M14-04F/manifest.json
  • 状态页:完成或阻断后新增 docs/status/M14-04F.md
  • 下一任务:只读取 manifest 的 nextTask,不能从长期计划手工推导