test(asr): [PKG-ASR-05] cover CORS and independent audio combinations

This commit is contained in:
Harvey Zhao committed 2026-09-13 16:07:01 +08:00
1 parent 2cede66933
commit 5ab7da6e1f
12 files changed
+6360 -4

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,41 @@
# PKG-ASR-05 检查点:CORS 与 audio-track 组合
此项仍为 doing 检查点。新增真实原生浏览器用例,补充跨源与独立音轨的明确边界;
没有改变生产源码、默认音频路由、公开类型或版本。
## CORS
浏览器测试服务器增加专用允许跨源音频入口和同源跳转到跨源的入口;其余媒体
路由保持原响应头。实际响应 URL、状态和允许头随每个用例记录,不使用 request
拦截伪造 PCM 或 CORS 权限。
真实 2.1.0 与候选在 5.4.0/current 核心分别观察:anonymous 属性与允许头同时存在
时得到非零 PCM 和原生输出;未设置跨源属性、以及同源 URL 跳转到无授权资源时
输出为零,但媒体时间仍前进。Chromium 收到零样本,Firefox 没有分块回调。候选
随后切到同源资源,在原有一个 AudioContext 中恢复非零 PCM 与播放输出。
首次测试错误地期待 Firefox 也返回零样本分块,8 项失败;保留 probe 报告后按
原生行为明确区分引擎,不把它改成任意零值或空列表都通过的宽松断言。
这符合 [Web Audio 跨源规则](https://www.w3.org/TR/webaudio-1.0/#MediaElementAudioSourceNode-security)。
默认绑定会让本来可播放的未授权跨源音频变静音,登记 ASR-CORS-01;不能把安全
规则观察通过写成该播放问题已修复。后续显式捕获模式可隔离播放归属,但不能
绕过 CORS,也不能仅凭 URL 推测重定向、MSE、blob 或凭据的实际授权结果。
## 独立 audio-track
子代理新增专用用例,主代理审查并运行。两个包均从真实源码/指定正式产物加载,
本地音频由原生 media 与 Worklet 处理。检查两个插件的独立元素归属、暂停恢复、
音轨 update 不改主视频、ASR stop 保留播放、再次播放重采集、destroy 与晚到调用。
另一顺序用例由测试自有 AudioContext 测量独立音轨:主视频静音而独立音轨有信号
时,ASR PCM 确实为零;unmute 后恢复。两个插件均不擅自关闭外部 probe Context。
这纠正了“audio-track 会自动 mute 主视频”的未证实推测:源码和真实初始状态均
显示两个元素不自动静音。默认 ASR 采主视频,没有混入独立 Audio 的承诺;README
和架构文档已说明配置与边界。
## 验证与未完成项
当前证据和正式产物摘要见 [验证记录](../baselines/asr-combinations-validation.json)。
Windows WebKit 缺少 WebAudio 的用例明确跳过,不等同 Safari 或物理音频输出。
外部 owner 的显式集成、其他不支持的媒体与设备仍在 ASR-05;ASR-06 发行工作、
识别服务 SDK-11 和整仓发布验收尚未完成。没有推送或 npm 发布。
+1 -1
View File
@@ -532,7 +532,7 @@
- PKG-ASR-02: [记录](changes/2026-09-13-PKG-ASR-02-audio-baseline.md) [记录](baselines/asr-audio-validation.json)
- PKG-ASR-03: [记录](changes/2026-09-13-PKG-ASR-03-audio-ownership.md) [记录](baselines/asr-ownership-validation.json)
- PKG-ASR-04: [记录](changes/2026-09-13-PKG-ASR-04-public-types.md) [记录](baselines/asr-types-validation.json) [记录](baselines/asr-type-diagnostics.json)
- PKG-ASR-05: [记录](baselines/asr-volume-validation.json) [记录](baselines/asr-fallback-validation.json) [记录](baselines/asr-core.json) [记录](baselines/asr-local-core-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-local-core-checkpoint.md)
- PKG-ASR-05: [记录](baselines/asr-volume-validation.json) [记录](baselines/asr-fallback-validation.json) [记录](baselines/asr-core.json) [记录](baselines/asr-local-core-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-local-core-checkpoint.md) [记录](baselines/asr-combinations-validation.json) [记录](changes/2026-09-13-PKG-ASR-05-cors-combinations.md)
- PKG-ADS-01: [记录](baselines/ads-release.json) [记录](baselines/ads-contract.md) [记录](baselines/ads-contract-validation.json) [记录](changes/2026-09-12-PKG-ADS-01-contract.md) [记录](scripts/ads-contract.test.mjs)
- PKG-ADS-02: [记录](changes/2026-09-12-PKG-ADS-02-tests.md) [记录](ads-validation.md) [记录](baselines/ads-validation.json)
- PKG-ADS-03: [记录](changes/2026-09-12-PKG-ADS-03-lifecycle.md) [记录](ads-validation.md) [记录](baselines/ads-lifecycle-validation.json)
+11
View File
@@ -1,5 +1,16 @@
# 进度与证据
## PKG-ASR-05 CORS 与独立音轨检查点
新增跨源允许/不允许/重定向及同源恢复、audio-track组合生命周期与独立音频归属
验证;source/main/legacy共72过、36项Windows WebKit能力跳过,无失败或重试。
初次Firefox无回调与Chromium零样本差异已单独记录。默认无CORS媒体会被绑定后
静音,ASR-CORS-01保持open;不能把边界观察当作修复。见[变更](changes/2026-09-13-PKG-ASR-05-cors-combinations.md)
与[证据](baselines/asr-combinations-validation.json)。README和架构已说明配置。
227项:129 done、17 doing、81 todo;209风险。ASR-05继续,显式外部归属、设备
和完整发行仍待完成。生产代码和产物未改变;没有推送或发布。
## PKG-ASR-05 本地编辑器与相邻核心检查点
真实 npm 5.3.0 核心扩大对照:main 14过/7能力跳过,legacy 6过/3能力跳过。
+1
View File
@@ -212,3 +212,4 @@
| ASR-VOLUME-01 | resolved / 已复现 | ASR applies media volume twice and squares playback amplitude | PKG-ASR-07 |
| ASR-FALLBACK-01 | resolved / 已复现 | Captured fallback produces a second audible route even when the video is muted | PKG-ASR-08 |
| ASR-FOREIGN-01 | open / 已复现 | Firefox permits parallel native media-element owners instead of selecting capture fallback | PKG-ASR-05 |
| ASR-CORS-01 | open / 已复现 | Default WebAudio binding silences CORS-cross-origin media that otherwise advances normally | PKG-ASR-05 |
+15
View File
@@ -4672,6 +4672,21 @@
],
"compatibleResolution": "Establish an explicit compatible ownership contract for external audio graphs without silently changing default direct-path PCM/mute semantics.",
"closureCriteria": "Natural Firefox external-owner integration has no duplicate output or has a documented, validated explicit ownership mode; controlled binding rejection alone cannot close this finding."
},
{
"id": "ASR-CORS-01",
"title": "Default WebAudio binding silences CORS-cross-origin media that otherwise advances normally",
"confirmation": "reproduced",
"status": "open",
"owners": [
"PKG-ASR-05"
],
"evidence": [
"test/browser/asr-cors.spec.js",
"refactor/baselines/asr-combinations-validation.json"
],
"compatibleResolution": "Document required CORS setup and provide an explicitly chosen capture path that never takes over media playback; do not bypass browser security or silently change default PCM semantics.",
"closureCriteria": "Authorized capture and same-origin recovery remain valid; an explicit integration avoids direct ownership for restricted input, fails or stays silent without rerouting playback, and is documented with native evidence."
}
]
}
+3 -1
View File
@@ -2714,7 +2714,9 @@
"baselines/asr-fallback-validation.json",
"baselines/asr-core.json",
"baselines/asr-local-core-validation.json",
"changes/2026-09-13-PKG-ASR-05-local-core-checkpoint.md"
"changes/2026-09-13-PKG-ASR-05-local-core-checkpoint.md",
"baselines/asr-combinations-validation.json",
"changes/2026-09-13-PKG-ASR-05-cors-combinations.md"
]
},
{