refactor(vtt-thumbnail): [PKG-VTT-THUMB-03] own pending requests and preview resources

This commit is contained in:
Harvey Zhao committed 2026-09-13 08:37:48 +08:00
1 parent 05244d1104
commit 524ddf784f
23 files changed
+3045 -262

No files matched your search

@@ -0,0 +1,32 @@
# 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 结果见 [验证记录](../baselines/vtt-thumbnail-resources.json)。
包内 ARCHITECTURE.md 说明实际文件地图和资源数据流。无依赖、版本或公开声明变更。
按仓库命令生成 dist/docs 编译产物,不手改。回退本检查点提交可回到 02 后生产实现;
历史对照仍可重跑。独立本地提交,不推送、不发布。