Checkpoint web parity through Chromium input tasks
This commit is contained in:
56
docs/tasks/M14-04F.md
Normal file
56
docs/tasks/M14-04F.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# M14-04F:Chromium 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 不在本项目范围内。
|
||||
|
||||
## 输入
|
||||
|
||||
- 上一个 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 commit;late up/cancel
|
||||
不得重复提交或改变 revision。
|
||||
5. **生产接线门**:主线程与 Offscreen 生产输入路径必须真正消费协议;不能只在测试中调用纯函数。
|
||||
6. **浏览器证据门**:Chromium checker 必须读取真实 modal 状态、Main revision/commit counter 或
|
||||
等价生产诊断,而不是仅记录派发了几个 `PointerEvent`。
|
||||
7. **交接门**:focused 命令、必要的 typecheck/build、report、manifest、status 和回滚路径齐全。
|
||||
|
||||
协议单测和事件派发通过,只能关闭前四个门的一部分;在生产接线和真实状态断言完成前,任务保持
|
||||
`in_progress`,不得根据报告中的固定保证字段直接改为 `done`。
|
||||
|
||||
## 验收
|
||||
|
||||
```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`,不能从长期计划手工推导
|
||||
Reference in New Issue
Block a user