{ "task": "PKG-VAST-03", "date": "2026-09-14", "baselineCommit": "314a1c3163e4c5bc8d1a9f1432726824ea3af7dc", "node": "24.21.0", "yarn": "1.22.22", "typescript": "5.9.3", "browserVersions": { "chromium": "153.0.8010.12", "firefox": "155.0", "webkit": "26.6" }, "authorization": "User accepted published eager default and explicit workspace-1.2 lazy mode on 2026-09-14.", "sourceCompiler": "node node_modules/typescript/bin/tsc -p packages/artplayer-plugin-vast/tsconfig.json --noEmit", "logs": [ { "path": "refactor/.cache/vast03-compatibility-red.log", "sha256": "8ed6779319fef902917768f65f46f8ceaa35d36783f61bb387a488d343767dca", "pass": 2, "fail": 5 }, { "path": "refactor/.cache/vast03-compatibility-first.log", "sha256": "64c043eea17231581b9544c53dfe2ecaafc5e36f38323f634fda3ba21239efc1", "pass": 7, "fail": 0 }, { "path": "refactor/.cache/vast03-modes-node-release.log", "sha256": "8a1be5ddc4eb6a8df79be756a202c55f25360a6134bb402d4dd34c3a8cd7c548", "pass": 82, "fail": 0 }, { "path": "refactor/.cache/vast03-script-tests.log", "sha256": "58af5209cd059ccb85d98a5a1a168d134fb1569978f98e8a71b61ef5fc044824", "pass": 12, "fail": 0 }, { "path": "refactor/.cache/vast03-artifact-js.log", "sha256": "507e5ca6a3375704928558a1ee320134d37eb99f71ed683918858ce6400c8efe", "pass": 4, "fail": 0 }, { "path": "refactor/.cache/vast03-artifact-legacy.js.log", "sha256": "f2b55fe086415a3f3dfb68b66c545d12d44f68978d1329d8bac441a201a99b07", "pass": 4, "fail": 0 } ], "checks": [ { "path": "refactor/.cache/vast03-source-types-final.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "exitCode": 0 }, { "path": "refactor/.cache/vast03-lint-final.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "exitCode": 0 }, { "path": "refactor/.cache/vast03-build.log", "sha256": "401f18f99b75fd552ab564b62c8e3f7c2d1794e2b5c13afd29c9919dde85252f", "exitCode": 0 }, { "path": "refactor/.cache/vast03-toolchain.log", "sha256": "4c11c00ffeb93d2d3804291a155493350f29d7838067b5df3aa3417254a0b870", "exitCode": 0 } ], "initialLint": { "path": "refactor/.cache/vast03-lint.log", "sha256": "d0e247eea0868e45cabe96377ba860408425d4bbd742c38ef03d8b62622e1932", "errors": 6, "resolved": true }, "browserLogs": [ { "path": "refactor/.cache/vast03-modes-browser-first.log", "sha256": "6c78bf09e049bdd6bf275437d60de2e276082d481db6962d00cb5567e70b5e24" }, { "path": "refactor/.cache/vast03-modes-browser-final.log", "sha256": "435fcaccaa278868f3e98a3579edb78f9d4063c3a76a14c3d833df67774a1bb4" }, { "path": "refactor/.cache/vast03-modes-browser-release.log", "sha256": "fecc2e82378c70e8f96f05de866777d63928602ede69ba82f03dd2f5bfe04c06" } ], "preLintBrowser": { "path": "refactor/.cache/vast03-modes-browser-prelint-report/report.json", "sha256": "1a95d44fdd266d60f5ce8cf902377b35d58030f658900fdac370ee19ecdf435f" }, "firstBrowser": { "report": { "path": "refactor/.cache/vast03-modes-browser-first-report/report.json", "sha256": "e6b33fb6c30eac6c4839f97a2413ea2d2cc9b5d9c9475d88527af4b7f662673e" }, "stats": { "startTime": "2026-09-14T14:25:51.894Z", "duration": 120905.141, "expected": 153, "skipped": 0, "unexpected": 9, "flaky": 0 }, "cases": [ { "name": "published-5.1.7 / source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 288, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 713, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 172, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7230, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 186, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 226, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 608, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 268, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 163, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 222, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 220, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 206, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 628, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 193, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 204, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 591, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 261, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 160, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 192, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 605, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 157, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7269, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 231, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 220, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 590, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 277, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 158, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 246, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 186, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 239, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 608, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 215, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 184, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 608, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 352, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 176, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 199, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 614, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 176, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7228, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 202, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 240, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 640, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 299, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 242, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 262, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 277, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 247, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 625, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 165, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 187, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 626, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 277, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 173, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1697, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1818, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 397, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7478, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 422, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 407, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 830, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 479, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 387, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 422, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 438, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 579, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1435, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 498, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 485, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1010, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1498, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 409, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 426, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1045, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 360, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7613, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 390, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 402, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 830, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 534, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 329, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 427, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 414, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 529, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1380, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 515, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 401, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 823, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1856, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 426, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 438, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 959, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 478, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7529, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 451, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 546, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 974, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 572, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 383, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 468, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 496, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 595, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1288, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 417, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1555, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 830, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 517, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 391, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1052, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 2167, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 800, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7944, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1002, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1109, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1832, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1755, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1076, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1075, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 937, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1186, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1848, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1003, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1229, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1748, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1469, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 5705, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 942, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1625, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1057, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 7968, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 988, "errors": [], "inputs": { "core": "published", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1082, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1740, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1532, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 704, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1045, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1010, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1120, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1781, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1273, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1050, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1871, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1677, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1141, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1043, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1890, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1268, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "unexpected", "results": [ { "status": "failed", "retry": 0, "duration": 8111, "errors": [ { "location": { "file": "D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js", "column": 33, "line": 198 }, "message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('[id^=\"art-vast-\"]')\nExpected: visible\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" locator('[id^=\"art-vast-\"]') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('[id^=\"art-vast-\"]')\u001b[22m\n\n\n 196 | })\n 197 | const container = page.locator('[id^=\"art-vast-\"]')\n> 198 | await expect(container).toBeVisible()\n | ^\n 199 | await page.evaluate(() => {\n 200 | window.art.plugins.artplayerPluginVast.destroy()\n 201 | window.vastContext.playUrl('/two.xml')\n at D:\\github\\ArtPlayer\\test\\browser\\vast.spec.js:198:33" } ], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1005, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1004, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1777, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1630, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1386, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1148, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1217, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "sha256": "b3b7fa37d93c8eadb5db9251b453c1f51e2ae093e50b8fb534252543d40dc2d3", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1058, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1966, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1447, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1311, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1917, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1931, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1281, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] } ] }, "finalBrowser": { "report": { "path": "refactor/.cache/vast03-modes-browser-release-report/report.json", "sha256": "ddd6d007078e30c433026d67981ebd45ae0af78d58c3314a45e8c408f77938a6" }, "stats": { "startTime": "2026-09-14T14:35:44.810Z", "duration": 79196.26599999999, "expected": 162, "skipped": 0, "unexpected": 0, "flaky": 0 }, "cases": [ { "name": "published-5.1.7 / source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 343, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 767, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 201, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 274, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 299, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 261, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 653, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 352, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 194, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 271, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 220, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 257, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 758, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 222, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 291, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 676, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 324, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 223, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 257, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 662, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 193, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 289, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 220, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 307, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 658, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 334, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 178, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 294, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 238, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 251, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 662, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 205, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 207, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 642, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 307, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 189, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 264, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 671, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 212, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 248, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 248, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 325, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 683, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 323, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 226, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 274, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 236, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 242, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 640, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 204, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 229, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 657, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 387, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "chromium", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 219, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "153.0.8010.12", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1940, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 2325, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 504, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 535, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 538, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 591, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1009, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 696, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 465, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 528, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 466, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 518, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 935, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 467, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 482, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1189, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 712, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 605, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1106, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1462, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 414, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 430, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 439, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 460, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 883, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 543, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 381, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 458, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 393, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 469, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 886, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 411, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 429, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 900, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 547, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 525, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 711, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1235, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1661, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1600, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 534, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 583, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1071, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 765, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 519, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 618, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 623, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 674, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1044, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 574, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 670, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1225, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 819, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "firefox", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 541, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "155.0", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1146, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1928, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 893, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1132, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 973, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1103, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1899, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1553, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 907, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1003, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 905, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1230, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1999, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 877, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1009, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1791, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1508, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published-5.1.7 / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 895, "errors": [], "inputs": { "core": "published-5.1.7", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.1.7" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1108, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1961, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 955, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1062, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1139, "errors": [], "inputs": { "core": "published", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1083, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1830, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1559, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 773, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1097, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1095, "errors": [], "inputs": { "core": "published", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1044, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1746, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1123, "errors": [], "inputs": { "core": "published", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1035, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1844, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1603, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "published / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1151, "errors": [], "inputs": { "core": "published", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.0" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 996, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1777, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1121, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1048, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 943, "errors": [], "inputs": { "core": "candidate", "implementation": "source", "options": {}, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1035, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1895, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1609, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate suppresses late SDK initialization after real core destruction", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1173, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate isolates stale events and terminates recreated ads on core destroy", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1038, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "players": [ { "requests": [ { "adTagUrl": "/one.xml" } ], "destroyCalls": 1, "connected": false, "display": "block" }, { "requests": [ { "adTagUrl": "/two.xml" } ], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / source-workspace: candidate callback rejection cleans allocated SDK and DOM without destroying the core", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1142, "errors": [], "inputs": { "core": "candidate", "implementation": "source-workspace", "options": { "compatibility": "workspace-1.2" }, "sha256": "6bee5af9439fbd46268c2c9fc84a5b29257d86cae891c6ae0ec93c9802b5af58", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [], "destroyCalls": 1, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1079, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1828, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / published-1.0.0-source historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1206, "errors": [], "inputs": { "core": "candidate", "implementation": "published-1.0.0-source", "options": {}, "sha256": "2d41a516b07abf90d92d84ff6e4ea6873bb2d4ebfd00d4d21f0935aed372ee03", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: async SDK and callback gate real core registration and preserve requests", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1063, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/test/ad-tag.xml" }, { "adsResponse": "" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: SDK rejection stays observable and core can still play content", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1802, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0: real overlay follows SDK events and explicit cleanup supports inactive recreation", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1667, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": false, "players": [ { "requests": [ { "adTagUrl": "/first.xml" }, { "adsResponse": "" } ], "destroyCalls": 1, "connected": false, "display": "none" }, { "requests": [ { "adTagUrl": "/new-session.xml" } ], "destroyCalls": 0, "connected": true, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] }, { "name": "candidate / frozen-workspace-1.2.0 historical: late SDK after destroy allocates into the detached player", "project": "webkit", "status": "expected", "results": [ { "status": "passed", "retry": 0, "duration": 1152, "errors": [], "inputs": { "core": "candidate", "implementation": "frozen-workspace-1.2.0", "options": {}, "sha256": "ac391200c572c8e68431212e6b5f102956f959196ad98da54fa2f42b4d8888bf", "sdk": "controlled wrapper recorder, no IMA execution" }, "state": { "destroyed": true, "callbackCalls": 1, "players": [ { "requests": [ { "adTagUrl": "/late.xml" } ], "destroyCalls": 0, "connected": false, "display": "none" } ], "coreVersion": "5.4.1" }, "browserVersion": "26.6", "platform": "win32" } ] } ] }, "resources": { "/candidate/artplayer.js": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "5139cabd5abf9b92684ee2dcdaa620c4db7f67c0cb1aa3f654435d739468bf9d", "bytes": 378931 }, "/compiled/artplayer.js": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "5139cabd5abf9b92684ee2dcdaa620c4db7f67c0cb1aa3f654435d739468bf9d", "bytes": 378931, "aliasOf": "/candidate/artplayer.js" }, "/uncompiled/artplayer/index.js": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "5139cabd5abf9b92684ee2dcdaa620c4db7f67c0cb1aa3f654435d739468bf9d", "bytes": 378931, "aliasOf": "/candidate/artplayer.js" }, "/candidate/artplayer-plugin-chapter.js": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" }, "sha256": "1a8eb891d3690e2526e78a2e53183a25367b1d02a5fd349d821548edb731ee3a", "bytes": 8529 }, "/compiled/artplayer-plugin-chapter.js": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" }, "sha256": "1a8eb891d3690e2526e78a2e53183a25367b1d02a5fd349d821548edb731ee3a", "bytes": 8529, "aliasOf": "/candidate/artplayer-plugin-chapter.js" }, "/uncompiled/artplayer-plugin-chapter/index.js": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer-plugin-chapter\\src\\index.ts" }, "sha256": "1a8eb891d3690e2526e78a2e53183a25367b1d02a5fd349d821548edb731ee3a", "bytes": 8529, "aliasOf": "/candidate/artplayer-plugin-chapter.js" }, "/published/artplayer.js": { "source": { "kind": "npm-release", "version": "5.4.0", "integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==", "member": "package/dist/artplayer.js" }, "sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f", "bytes": 134037 }, "/published/artplayer-plugin-chapter.js": { "source": { "kind": "npm-release", "version": "1.1.0", "integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==", "member": "package/dist/artplayer-plugin-chapter.js" }, "sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0", "bytes": 4973 }, "/test/pattern.mp4": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 }, "/test/pattern.webm": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.webm" }, "sha256": "9d3c2b3dec9581a599de2d6732992ef7846790e0d1368e6e131bd339b39e984f", "bytes": 162073 }, "/published-4.5.5/artplayer.js": { "source": { "kind": "npm-release", "version": "4.5.5", "integrity": "sha512-HeAKbe3od9ZgFQVSBCg5FlixJsefDEBC8txVG19yZgvzlcJuiurxPlasap+GHuex/ftG+jmSXnTRtuNrTki2Kw==", "member": "package/dist/artplayer.js" }, "sha256": "3467e626ca29d2f7884e75eb75b8b90de74a25761ffa2e272576c9b5a98fa0a4", "bytes": 153582 }, "/published-5.1.7/artplayer.js": { "source": { "kind": "npm-release", "version": "5.1.7", "integrity": "sha512-N/QdNlTwsIHUsWOHMPj0pq97v3qmgXZHfhy1q7I+8YN3/XakJiJJyVJgGaeBjU+y/fUIrzBhwpBaX+NFwK9/qw==", "member": "package/dist/artplayer.js" }, "sha256": "484ccc3f22446ec6fd0dd8b8a5602c740b601d55097a1ae043262d92aab35357", "bytes": 155940 }, "/published-4.5.9/artplayer.js": { "source": { "kind": "npm-release", "version": "4.5.9", "integrity": "sha512-x5JzGdXkw4GFdztvPkVnm8TOWrGDcvGKKMPb9wuP6UfyftlLM3UQctmmalfAMnQSxugJwq2Kb9ix9OG2SgbJJA==", "member": "package/dist/artplayer.js" }, "sha256": "09a9f09e3a64a02ca7c27af710d7254f886f0bfb09fd54bf3a728ce863e5a497", "bytes": 156408 }, "/published-5.3.0/artplayer.js": { "source": { "kind": "npm-release", "version": "5.3.0", "integrity": "sha512-yExO39MpEg4P+bxgChxx1eJfiUPE4q1QQRLCmqGhlsj+ANuaoEkR8hF93LdI5ZyrAcIbJkuEndxEiUoKobifDw==", "member": "package/dist/artplayer.js" }, "sha256": "54ffaf7598b910d5a88d2d2eec1aa6faa806583915b99b892dd32129c53e421a", "bytes": 159238 }, "/published-5.1.6/artplayer.js": { "source": { "kind": "npm-release", "version": "5.1.6", "integrity": "sha512-cqnVVLKCKWCryKl6Pmop50/Di9IQwOeNNQs5qWGzJDPiM0qTC7Q/Enusa+8JQid8p09fvp4Vc32ViSSYutdEeQ==", "member": "package/dist/artplayer.js" }, "sha256": "6a7b1f3007ecda9f399e6cff606490dd745c495e19ce10e864a401ff09996172", "bytes": 155714 }, "/published-5.1.2/artplayer.js": { "source": { "kind": "npm-release", "version": "5.1.2", "integrity": "sha512-eIWlxiP2ghgftaZWIGnclkOpXGFZTOf5xrm6sGZCGx5A8wGbTHRSMe+ZiyPFpbNhBVupi/QObSjX/FcD+YbS1Q==", "member": "package/dist/artplayer.js" }, "sha256": "3dfd035b4cde34c9d9dd1b303f95bfbb42bde105bcb3e5671a8d375a719290b1", "bytes": 154583 }, "/test/audio-tone.m4a": { "source": { "kind": "generated-media", "file": "test/browser/media/audio-tone.m4a" }, "sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56", "bytes": 132436 }, "/test/thumbnail-pattern.mp4": { "source": { "kind": "generated-media", "file": "test/browser/media/thumbnail-pattern.mp4" }, "sha256": "4c977be04d97f6ac1342ac4959b8e61678f390d88a088430e4d0200137a03d1c", "bytes": 752916 }, "/test/auto-thumbnail-timeline.mp4": { "source": { "kind": "generated-media", "file": "test/browser/media/auto-thumbnail-timeline.mp4" }, "sha256": "10370156cffada462d3ea00aae0caadd62752369cd6538cc55248b3ddd7bf994", "bytes": 8602 }, "/test/declaration-cues.vtt": { "source": { "kind": "test-subtitles", "file": "test/browser/media/declaration-cues.vtt" }, "sha256": "5d149d4e641ce41cbb83376835c03daf1fb89f3b9f568fa59e064d51e2b57704", "bytes": 54 }, "/test/thumbnail-grid.svg": { "source": { "kind": "test-thumbnail-grid", "file": "test/browser/media/thumbnail-grid.svg" }, "sha256": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6", "bytes": 14969 }, "/test/legacy-safe-area.js": { "source": { "kind": "frozen-own-source", "file": "test/helpers/legacy-safe-area.js", "commit": "ccf77c4e" }, "sha256": "ce0368618ef6363b78271b8bcc7973abd0478e797cc464ddd912929e6dfa501a", "bytes": 795 }, "/test/iframe-boundary-child.html": { "source": { "kind": "iframe-fixture", "file": "test/browser/iframe-boundary-child.html" }, "sha256": "4721de185f606de7d576e71395127257e476765455e2a947ded79df4ebed901a", "bytes": 1451 }, "/published-5.3.1-beta.1/artplayer.js": { "source": { "kind": "npm-release", "version": "5.3.1-beta.1", "integrity": "sha512-btjbQwXPl86U/Apja0WrCUF+AXLPacI60eUGAeJTx3EMuUKrVaOFrmWrIeeyMUi5aIzMSXM++tQjlSMJVnmhuQ==", "member": "package/dist/artplayer.js" }, "sha256": "e91e64228c57bb97300c709789d5557ab07b133cab307267b4a2a4df3083c861", "bytes": 159458 }, "/assets/sample/video.mp4": { "source": { "kind": "docs-media", "file": "docs/assets/sample/video.mp4" }, "sha256": "30a2de667ba267b6bc605edcee1c4bd728c048ed76f500ea0e73d1f1a6f8f980", "bytes": 5818706 }, "/test/performance.js": { "source": { "kind": "adapted-baseline-fixture", "file": "refactor/fixtures/performance.js" }, "sha256": "c5a8a8611db004aadd6c3b82c61b8ae242319c1a12e73bf784c1da06fcebed72", "bytes": 9251 } }, "files": [ { "path": "package.json", "sha256": "b73d3a65b84166b8a854123681d4f9cbf9837b2bf3b5a9ffba8065dd8f92b721" }, { "path": "packages/artplayer-plugin-vast/src/index.ts", "sha256": "4221668a9e96cc7feef0f98f6276261c174431ef24b9b8c81d0f5d84261a6cd1" }, { "path": "packages/artplayer-plugin-vast/src/sdk.ts", "sha256": "aaff7c1e4a31ff99261b045648663caa46f66b5a25ad129e5fc929facaf1ff89" }, { "path": "packages/artplayer-plugin-vast/src/session.ts", "sha256": "08ad97deaa386d26034711e17fba001f326c842960efb83cb858db3a2bd09e48" }, { "path": "packages/artplayer-plugin-vast/src/types.ts", "sha256": "ce35e64057e059bea40325baa2dee68ba9f32a794f6989ed65f6053c56c9672d" }, { "path": "packages/artplayer-plugin-vast/src/view.ts", "sha256": "15e5b186bdcb8f9f60379e726eedec4b31ca61df27efe1891effccb1e56db491" }, { "path": "test/vast-compatibility.test.js", "sha256": "39f868f917d703b8e684df1d2c49745ac34f685821a3e0a46a13c2b4adfadf75" }, { "path": "test/vast.test.js", "sha256": "4dc15cfb158982d215d0dd418ea152282c0a2e6bda83eceb7a306c6bcdbe84a9" }, { "path": "test/vast-lifecycle.test.js", "sha256": "3e56629f66a3069357906224f81a23b556285e710dfaa0318dfd00e38f7531a6" }, { "path": "test/vast-exports.test.js", "sha256": "437fe773065d071afcecfe58c139a67b5b7b259baee1d44235e2f1b2bfc5f41c" }, { "path": "test/helpers/vast.js", "sha256": "a75d84890d0c5f44a586dc971fbf2f89b85643a1308c189c92e056cbc10e45b5" }, { "path": "test/helpers/vast-sdk.js", "sha256": "f8bc792ef16da9396bafefaf89f1b53b6254bf263d0c3019b87ee188eac35bd1" }, { "path": "test/browser/vast.spec.js", "sha256": "73fe175cd203af417f78e03980e59006f3c33af81d0f06822edcf7a87d09bacb" } ], "artifactCopies": [ { "artifact": { "path": "packages/artplayer-plugin-vast/dist/artplayer-plugin-vast.js", "sha256": "cebaf6a44f80079841205498c4f855ba4e5c804ae7958c06eadda524d728e079" }, "docs": { "path": "docs/compiled/artplayer-plugin-vast.js", "sha256": "cebaf6a44f80079841205498c4f855ba4e5c804ae7958c06eadda524d728e079" } }, { "artifact": { "path": "packages/artplayer-plugin-vast/dist/artplayer-plugin-vast.legacy.js", "sha256": "8ebb4ebdd4c0fc5ddc467d5ee15b18ab7e5c078c15bbfd37dc33aa89eac1de92" }, "docs": { "path": "docs/compiled/artplayer-plugin-vast.legacy.js", "sha256": "8ebb4ebdd4c0fc5ddc467d5ee15b18ab7e5c078c15bbfd37dc33aa89eac1de92" } }, { "artifact": { "path": "packages/artplayer-plugin-vast/dist/artplayer-plugin-vast.mjs", "sha256": "a63e6e8b27032ea690fe740e9ec0a98646346f1fcd3622740f1f5363f234a72b" }, "docs": { "path": "docs/compiled/artplayer-plugin-vast.mjs", "sha256": "a63e6e8b27032ea690fe740e9ec0a98646346f1fcd3622740f1f5363f234a72b" } } ], "limitations": [ "SDK boundary is a controlled recorder; no real Google IMA ad playback or device acceptance.", "Artifact export tests use an already destroyed host; full installed distribution remains task06.", "Public declaration and second parameter consumption remain task04; runtime authorization does not waive type compatibility.", "Actual core baselines are npm5.1.7/npm5.4.0 and candidate5.4.1; earlier prose claiming published5.4.1 was incorrect.", "Initial browser failures preserve the stale workspace-only expectations, not a claim of an IMA vendor regression." ] }