mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 10:56:15 -08:00
2.3 KiB
2.3 KiB
PKG-VTT-THUMB-03 资源所有权检查点
将注册、请求、纯解析、预览/计时器和生命周期拆开;保留旧 getVttArray 源路径的包装函数。 这是 03 的源码检查点,任务继续 doing:解析错误/输入规则及更多资源边界尚需完成, 严格 TS/公开声明归 04,完整核心设备/安装/demo/编辑器验收归 05/06。
已实现修复
- 请求前订阅 destroy;原生 AbortController 可用时取消 fetch/body。即使 fetch 忽略 signal 或环境没有 AbortController,销毁也结算注册 Promise,迟到返回不安装控件,迟到拒绝被观察。
- setBar、移动隐藏计时器和控件均有独立清理。计时器 ID 0 有效,旧定时回调有代次检查, 在 setTimeout 返回之前重入销毁时仍清掉迟到的 handle。
- 每次样式写入检查关闭状态;销毁中重入不会再排计时器或后续写入。
- 安装失败保留原错误并回滚已安装监听器/控件。清理失败只记录警告,继续其它清理。 控件只在实时 alias 仍为本次 mounted 元素时移除,不误删别人替换的控件。
- HTTP 失败现在明确拒绝,不再解析错误响应体。这是单独复现的缺陷修正。
保持的边界
工厂/结果名、异步注册、URL/style 读取顺序、style 原对象、控件名/CSS/index、向下取整
时间区间及首个命中、xywh/URL 几何、500ms 移动隐藏均保留。restart 不触发新增下载。
源码抽出的 parseVtt 保持原算法;非法 cue/坐标、NOTE/ID 等仍不能称已修复。
旧版 CJS .default 与同步声明冲突仍待 04,不能以当前直接函数入口代替所有旧消费形式。
验证与交接
21 项候选回归在冻结旧版 4 通过/17 失败,新源码通过;保留 01/02 历史测试。 真实浏览器检查覆盖 published/candidate 核心、鼠标悬停、实际 sprite 像素和原生请求取消。 准确构建、源码/产物/浏览器与 CI 结果见 验证记录。 包内 ARCHITECTURE.md 说明实际文件地图和资源数据流。无依赖、版本或公开声明变更。 按仓库命令生成 dist/docs 编译产物,不手改。回退本检查点提交可回到 02 后生产实现; 历史对照仍可重跑。独立本地提交,不推送、不发布。