Files
workinf_Blender_Wasm/docs/tasks/M14-04F.md
mes123456 10640aeb3c
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Govern task context and advance execution pointer
2026-08-20 06:02:43 -04:00

57 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M14-04FChromium touch modal cancel / two-finger navigation / pen commit
- `task`: `M14-04F`
- `parent`: `M14-04E`
- `status`: `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`
## 细分门
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 和回滚路径齐全。
协议状态已接入主线程 WebGL 和 OffscreenCanvas Worker 两条生产 viewport 路径Chromium checker
读取两个 canvas 的真实 `data-input-modal-*` 状态,重复 `pointerup`/`pointercancel` 不增加提交计数。
## 验收
```text
npm --prefix web run test:chromium-input-modal
```
必要的补充门:
```text
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`,不能从长期计划手工推导