Files
ArtPlayer/refactor/baselines/vast-compatibility-validation.json
T

12527 lines
400 KiB
JSON

{
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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": "<VAST/>"
}
],
"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."
]
}