Files
ArtPlayer/refactor/changes/2026-09-12-PKG-DPIP-02-tests.md
T

45 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PKG-DPIP-02 窗口竞争与还原失败
本步只建立历史可重跑测试,不修改插件生产源码。三份实际可执行发布(1.0.1、
1.0.2、1.1.0)和冻结工作区各12项,共48项;1.0.0缺运行时仍不加入行为矩阵。
正常/错误对照包含请求拒绝后重试、pagehide/unload只关闭一次、不支持两种fallback、
source替换保持节点身份及resize调用。明确复现的缺陷:
- close或destroy发生在requestWindow完成前,迟到窗口仍接管播放器,逃逸open可重开。
- 并发open覆盖还原目标,前一窗口/监听器/占位节点遗留,close把播放器还原到前一窗口。
- open/close的sleep完成后仍在销毁实例发resize;激活事件里销毁同样未撤销后续效果。
- adoption失败未回滚窗口与占位;占位节点被外部移动后,close先adopt再insert失败,
播放器成为无父节点,窗口仍active且关闭监听器已经移除。
- 从其他document迁入的播放器可还原,但复制的样式来自全局document,遗漏原文档样式。
- 1.1.0/冻结源码在DOMContentLoaded前重复执行会重复注入相同id;1.0.1/1.0.2的
Parcel模块缓存使相同bundle重复执行只有一份,不能把新版本缺陷写成全部版本都有。
受控宿主的destroy只触发插件可见通知,不模拟核心全量回收,保留控件/监听器的断言
只证明插件本身没有释放,不能据此声称实际核心destroy一定保留整个UI。
浏览器矩阵为四实现×两实际核心(npm5.4.0/候选)×三引擎×两场景,共48项。
使用原生iframe的document/adoptNode/insertBefore/Event,控制requestWindow和close;
验证同一个player/video节点迁入与还原、媒体已加载、pagehide/unload、实际notice DOM,
并明确断言历史pending-close和移动占位导致的失败状态。未伪装为原生文档PiP窗口,
不证明用户激活、焦点/键盘、原生窗口关闭或跨窗连续播放。能力检测在替换API前记录。
首次Node运行45/48通过:两份Parcel bundle重复执行缓存与预计不同,冻结源码重复
eval遇到词法重声明。loader现在只加函数作用域隔离,不改执行代码;保留旧Parcel缓存
的实际1节点断言。首次浏览器16/48通过:24项错误使用notice.show getter读文字,
改为$noticeInner.textContent;另8项WebKit对320宽媒体返回640(当前CSS宽度),
现以精确历史引擎差异记录,不能把其通过称为正确原生像素/内在尺寸通过。首次完整报告、
trace和截图保留,尺寸原因及原生媒体连续性留05进一步对照。
第二轮37/48通过:跨文档迁移后的原生媒体/resize事件会把notice改成Aspect Ratio,
错误断言需要在close同步失败路径刚写入DOM时取证,不能稍后假定它永远不被覆盖。
另外iframe默认300×150触发布局变化,WebKit读数也出现266;最终固定测试iframe为
640×360并等待明确的640宽读数,保留其他引擎320宽对照,没有把任意正数作为通过。
第二轮报告同样完整归档。该改动稳定DOM测试环境,不解决或解释原生媒体内在尺寸。
结果见[验证证据](../baselines/dpip-behavior-validation.json)。03将分离窗口状态机、
DOM迁移/样式、控件与事件资源,新增候选正向断言并保留本文件对应旧失败对照;
04处理类型/导出,05继续原生窗口和代理/设备组合。本步测试失败可独立回退,
不会修改已发布归档。不推送、发布或升级版本。
最终64项Node定向检查(48生命周期+16正常契约)、48项浏览器和lint通过;完整CI1116项(986单元+14工程+116基线)通过,另44项重复契约观察。284生产TS文件严格检查。本步done并独立提交,已复现风险保持open,由03/05完成修复和原生验收。