Skip to content

fix(cooperation): tolerate media progress while preserving action guards - #501

Merged
iuyo5678 merged 3 commits into
mainfrom
fix/video-cooperation-guard
Oct 27, 2026
Merged

iuyo5678 merged 3 commits into
mainfrom
fix/video-cooperation-guard

Conversation

@iuyo5678

@iuyo5678 iuyo5678 commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

循环视频的进度更新会让同步和暂停操作反复被拒绝。本改动允许明确识别的播放进度继续变化,同时保留 PR #497 的业务状态保护:暂停按钮可正常使用,业务字段变化仍会在发送输入前被拦截。

  • 无目标按键支持独立的 --depends-on,并保护浏览器实际焦点所在区域;焦点不明确时继续严格检查整个页面。
  • 暂停按钮和进度条位于同一区域时可以正常暂停。业务字段、表单值,以及显式依赖的进度条、播放器或容器仍保持精确校验。
  • 表单归属在语义裁剪前保存:原生控件读取浏览器的 .form,自定义进度控件保留原始 DOM 的表单包含关系。因此 role="none"、role="presentation"、display:contents 和外部 form 关联都不会使业务字段被当成播放进度。归属未知时保持严格校验,归属变化本身也会使旧观察失效。
  • 开放及封闭 Shadow DOM 中的原生 range 使用精确节点身份补读归属;补读每个采集目标最多 64 个、并发最多 4 个,超限或读取失败保持未知,终止时等待在途读取结束再释放对象。
  • 独立校验媒体身份、<source>、currentSrc、srcObject 和流轨道。焦点或媒体状态变化后刷新增量同步证据,拒绝操作后使旧上下文失效,并保留已完成导航的正常回执。

验证:

  • 实际 CLI、daemon、扩展及 Chromium:53 个场景通过,其中 17 个成功暂停、36 个在发送按键前被拦截,模拟购买次数为 0。
  • 表单回归覆盖被裁剪的表单、外部关联、开放及封闭 Shadow DOM、自定义进度条,以及无表单的正向对照。测试在变更前校验真实表单归属和控件名称,避免因丢失标签而错误通过。
  • PR fix(cooperation): stop live page text from refusing every action #497 的真实浏览器回归:9 个通过。
  • 扩展全量测试:3120 个通过、274 个跳过;TypeScript 检查和扩展构建通过。
  • VOM 测试 116 个通过,技能包检查 6 个通过;修改文件的格式检查及 git diff --check 通过。
  • 新增归属采集、语义投影、未知归属、跨目标身份隔离、读取上限和终止清理回归;本次复现用例已验证修复前失败、修复后通过。

真实浏览器回归位于 evals/browser/cases/regression/cooperation-video/,包含可重复运行的脚本、本地测试页面、合成 WebM 和运行说明。运行脚本检查实际解码帧增长、收到的按键和最终暂停状态;媒体换源后重新建立解码计数基线。未知媒体控件和不明确焦点继续采用保守校验。

@iuyo5678
iuyo5678 force-pushed the fix/video-cooperation-guard branch from b10a11a to d3b260d Compare October 27, 2026 07:49
@iuyo5678
iuyo5678 merged commit c881288 into main Oct 27, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant