mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-13 15:56:15 -08:00
refactor(vtt-thumbnail): [PKG-VTT-THUMB-03] own pending requests and preview resources
This commit is contained in:
1 parent
05244d1104
commit
524ddf784f
23 files changed
+3045
-262
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -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 后生产实现;
|
||||
历史对照仍可重跑。独立本地提交,不推送、不发布。
|
||||
+3
-2
@@ -4,7 +4,7 @@
|
||||
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 222 项,范围 22 个包及工作区/示例。
|
||||
|
||||
状态:todo 94 / doing 12 / blocked 0 / done 116 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
状态:todo 93 / doing 13 / blocked 0 / done 116 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
|
||||
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| PKG-VTT-THUMB-01 | artplayer-plugin-vtt-thumbnail<br>核对包契约与历史用法 | BASE-05 | vtt/style、异步返回、预览控件名与样式契约 | 源码/声明/README/demo/发布包差异已登记;公开形状和版本范围冻结 | M | done |
|
||||
| PKG-VTT-THUMB-02 | artplayer-plugin-vtt-thumbnail<br>建立特有行为与错误测试 | PKG-VTT-THUMB-01, ENG-03, ENG-05 | VTT 解析、xywh、相对 URL、时间边界、请求失败和定位 | 旧版本行为可重跑,成功/失败/切源/销毁有必要断言 | M | done |
|
||||
| PKG-VTT-THUMB-03 | artplayer-plugin-vtt-thumbnail<br>整理内部职责与资源 | PKG-VTT-THUMB-02, CORE-09, CORE-19 | 纯解析/区间查找与 DOM、请求/定时器生命周期分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | M | todo |
|
||||
| PKG-VTT-THUMB-03 | artplayer-plugin-vtt-thumbnail<br>整理内部职责与资源 | PKG-VTT-THUMB-02, CORE-09, CORE-19 | 纯解析/区间查找与 DOM、请求/定时器生命周期分离 | 结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过 | M | doing |
|
||||
| PKG-VTT-THUMB-04 | artplayer-plugin-vtt-thumbnail<br>迁移自有源码和公开类型 | PKG-VTT-THUMB-03, ENG-04, ENG-06, CORE-07 | cue/rect/result 和参数可选性保持兼容 | 严格类型检查、旧消费样例通过;声明路径/导出和同步异步兼容 | M | todo |
|
||||
| PKG-VTT-THUMB-05 | artplayer-plugin-vtt-thumbnail<br>验证新旧核心和组合 | PKG-VTT-THUMB-04, CORE-22 | 鼠标和移动进度、全屏、切源、chapter 组合 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | M | todo |
|
||||
| PKG-VTT-THUMB-06 | artplayer-plugin-vtt-thumbnail<br>验证分发并同步文档 | PKG-VTT-THUMB-05, ENG-07 | vtt.thumbnail.js、VTT/图片资源解析和产物验证 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | M | todo |
|
||||
@@ -499,6 +499,7 @@
|
||||
- PKG-AUTO-THUMB-03: [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-lifecycle-checkpoint.md) [记录](baselines/auto-thumbnail-lifecycle-checkpoint.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-hidden-renderer.md) [记录](baselines/auto-thumbnail-hidden-renderer.json) [记录](baselines/auto-thumbnail-timeline-media.json) [记录](changes/2026-09-13-PKG-AUTO-THUMB-03-frame-presentation.md) [记录](baselines/auto-thumbnail-frame-presentation.json)
|
||||
- PKG-VTT-THUMB-01: [记录](baselines/vtt-thumbnail-release.json) [记录](baselines/vtt-thumbnail-contract.md) [记录](changes/2026-09-13-PKG-VTT-THUMB-01-contract.md)
|
||||
- PKG-VTT-THUMB-02: [记录](baselines/vtt-thumbnail-failures.json) [记录](changes/2026-09-13-PKG-VTT-THUMB-02-failures.md)
|
||||
- PKG-VTT-THUMB-03: [记录](changes/2026-09-13-PKG-VTT-THUMB-03-resources.md) [记录](baselines/vtt-thumbnail-resources.json)
|
||||
- PKG-HLS-01: [记录](baselines/hls-control-contract.md) [记录](baselines/hls-control-release.json) [记录](changes/2026-09-11-PKG-HLS-01-contract.md)
|
||||
- PKG-HLS-02: [记录](hls-validation.md) [记录](baselines/hls-sdk.json) [记录](baselines/hls-validation.json) [记录](changes/2026-09-11-PKG-HLS-02-tests.md)
|
||||
- PKG-HLS-03: [记录](changes/2026-09-12-PKG-HLS-03-modules.md) [记录](baselines/hls-modules-validation.json) [记录](hls-validation.md)
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# 进度与证据
|
||||
|
||||
## PKG-VTT-THUMB-03 请求与预览资源检查点(doing)
|
||||
|
||||
生产入口拆为注册、生命周期、请求、预览和纯解析,保留旧源码 helper。已修复销毁后
|
||||
安装/样式写入、挂起请求取消、移动计时器和部分安装回滚;HTTP 错误明确拒绝。
|
||||
21 项候选测试在旧版 4 通过/17 失败,源码/main/legacy 各 21 通过;原生旧版 6 项均复现失败,
|
||||
候选三种入口各 12 项通过(两种核心 × 三浏览器 × 两场景),实际 ESM 也通过。
|
||||
完整 CI 2038 项通过。构建产物与包内架构同步,未改变声明/版本;解析健壮性、严格 TS、
|
||||
完整设备/核心组合与安装/demo 验收仍待。见[变更](changes/2026-09-13-PKG-VTT-THUMB-03-resources.md)
|
||||
和[验证](baselines/vtt-thumbnail-resources.json)。222 项:116 done、13 doing、93 todo。
|
||||
独立本地检查点提交,不推送、不发布。
|
||||
|
||||
|
||||
## PKG-VTT-THUMB-02 特有失败与生命周期复现完成
|
||||
|
||||
108 项新历史测试复现销毁后安装/计时器写入、请求拒绝、HTTP 状态忽略、非法 VTT/坐标、
|
||||
|
||||
+8
-2
@@ -4151,7 +4151,10 @@
|
||||
"refactor/baselines/vtt-thumbnail-contract.md",
|
||||
"refactor/scripts/vtt-thumbnail-contract.test.mjs",
|
||||
"test/vtt-thumbnail.test.js",
|
||||
"refactor/baselines/vtt-thumbnail-failures.json"
|
||||
"refactor/baselines/vtt-thumbnail-failures.json",
|
||||
"test/vtt-thumbnail-lifecycle.test.js",
|
||||
"test/browser/vtt-thumbnail-lifecycle.spec.js",
|
||||
"refactor/baselines/vtt-thumbnail-resources.json"
|
||||
],
|
||||
"compatibleResolution": "Preserve valid cue selection and geometry; test malformed data and standard VTT separately from old compiler defects.",
|
||||
"closureCriteria": "Parser fixtures include malformed, empty, real demo VTT, fractional and shared bounds, relative URLs and historical accepted formats."
|
||||
@@ -4171,7 +4174,10 @@
|
||||
"refactor/baselines/vtt-thumbnail-contract.md",
|
||||
"refactor/scripts/vtt-thumbnail-contract.test.mjs",
|
||||
"test/vtt-thumbnail.test.js",
|
||||
"refactor/baselines/vtt-thumbnail-failures.json"
|
||||
"refactor/baselines/vtt-thumbnail-failures.json",
|
||||
"test/vtt-thumbnail-lifecycle.test.js",
|
||||
"test/browser/vtt-thumbnail-lifecycle.spec.js",
|
||||
"refactor/baselines/vtt-thumbnail-resources.json"
|
||||
],
|
||||
"compatibleResolution": "Own requests, listeners, timers and controls per registration without stale writes or cross-instance cleanup.",
|
||||
"closureCriteria": "Deferred request, destroy, failure, timer, repeated registration and native core scenarios demonstrate cleanup."
|
||||
|
||||
+5
-2
@@ -1897,11 +1897,14 @@
|
||||
"CORE-09",
|
||||
"CORE-19"
|
||||
],
|
||||
"status": "todo",
|
||||
"status": "doing",
|
||||
"risk": "M",
|
||||
"deliverable": "纯解析/区间查找与 DOM、请求/定时器生命周期分离",
|
||||
"acceptance": "结构变化和缺陷修复分开记录;原 API/事件/资源生命周期通过",
|
||||
"evidence": []
|
||||
"evidence": [
|
||||
"changes/2026-09-13-PKG-VTT-THUMB-03-resources.md",
|
||||
"baselines/vtt-thumbnail-resources.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "PKG-VTT-THUMB-04",
|
||||
|
||||
Reference in new issue
Block a user