mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-20 12:11:20 -08:00
test(dpip): [PKG-DPIP-02] reproduce window races and DOM rollback failures
This commit is contained in:
1 parent
efbbdb4782
commit
202351934b
13 files changed
+574
-13
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# 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完成修复和原生验收。
|
||||
Reference in new issue
Block a user