Files
ArtPlayer/refactor/baselines/audio-combinations-checkpoint.json

13768 lines
470 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schemaVersion": 1,
"task": "PKG-AUDIO-05",
"date": "2026-09-12",
"baseCommit": "0218196d",
"status": "incomplete",
"scope": "Audio resume fix and native offset comparisons; buffering remains unaccepted on Windows WebKit. No installed package, physical device, audible output or npm release acceptance.",
"sourceFiles": [
{
"file": "packages/artplayer-plugin-audio-track/src/index.ts",
"bytes": 3217,
"sha256": "769b3d04261456bfb2c10849486244c9c15529229b658e39e48f8f71403abe49"
},
{
"file": "packages/artplayer-plugin-audio-track/src/track.ts",
"bytes": 1620,
"sha256": "9c6d587dc881e30a4d55746088d0122da5e0051258303d50d14a8fe5f69be2df"
},
{
"file": "test/audio-track.test.js",
"bytes": 12397,
"sha256": "283a05933e5e2d3630de80161de962e076b248a3456908102ae435c825d40640"
},
{
"file": "test/browser/audio-fixture.js",
"bytes": 5322,
"sha256": "41215d454fa48b45b248c4af6992aa3980a059d20ca41f95cff910186849aee3"
},
{
"file": "test/browser/audio-combinations.spec.js",
"bytes": 9431,
"sha256": "1db548954678c6fbe7b4757f9a1b105926e4c04e2a65af206402902b60210e68"
},
{
"file": "test/browser/audio-buffering.spec.js",
"bytes": 3906,
"sha256": "cd651c1f16610cde1329770d8e65fbb3c08879e2487e27bdceb1f362d9d259aa"
},
{
"file": "test/browser/media-gate-native.spec.js",
"bytes": 3654,
"sha256": "961cb3f9a82ae41dbdbf25d4b04c07bc03c475671b0365b92f58f5814f1349a2"
},
{
"file": "test/helpers/media-gate.js",
"bytes": 3309,
"sha256": "b9bc0e8550739902ed4d94674b53d6c5b35795cd25ddf3e567ed22eed591f385"
},
{
"file": "test/media-gate.test.js",
"bytes": 3484,
"sha256": "2f27f469011eb13fe451c0ecae27ffa2ede0510ebf011b0f9dc2bf6c8c3dc60b"
}
],
"artifacts": [
{
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"bytes": 2292,
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
{
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"bytes": 2324,
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
{
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.mjs",
"bytes": 4407,
"sha256": "9caa5a6e11a2e777760dd2835426842a87d04fb081ea2e7d48c7229035fd89a9"
}
],
"reports": [
{
"file": "refactor/.cache/audio05-resume-browser-before.json",
"sha256": "03d2727699416e9ae27f5a78bfd806bae1e1a652c57d67df63118140a793d11e",
"resultDir": "refactor/.cache/audio05-resume-browser-before-results",
"stats": {
"startTime": "2026-09-11T19:28:04.221Z",
"duration": 12777.964,
"expected": 3,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 22 | await expect.poll(() => page.evaluate(() => window.art.video.currentSrc)).toContain('pair=last')\n 23 | await expect.poll(() => page.evaluate(() => window.audioPlugin.audio.currentSrc)).toContain('pair=last')\n> 24 | await expect.poll(() => page.evaluate(() => !window.art.video.paused && !window.audioPlugin.audio.paused && window.art.currentTime > 0.3)).toBe(true)\n | ^\n 25 | await expect.poll(() => page.evaluate(() => Math.abs(window.art.currentTime - window.audioPlugin.audio.currentTime))).toBeLessThan(0.5)\n 26 | expect(await page.evaluate(() => window.originalAudio === window.audioPlugin.audio)).toBe(true)\n 27 | await page.evaluate(async () => {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-combinations.spec.js:24:146"
],
"candidate": {
"file": "workspace source build",
"sha256": "5ede3ac9970c9102fb251b342ca2f40626438d37d975b21b38d2033ba2025472"
},
"evidence": {
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last",
"attribute": "/test/audio-tone.m4a?pair=last",
"time": 6.2677277,
"paused": true,
"readyState": 4,
"networkState": 2,
"rate": 1,
"seekable": [
[
0,
16
]
]
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4?pair=last",
"attribute": "/test/pattern.mp4?pair=last",
"time": 6.2850211,
"paused": false,
"readyState": 4,
"networkState": 2,
"rate": 1,
"seekable": [
[
0,
8
]
]
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "playing",
"time": 0.0599999,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "pause",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 0.2329331,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 0.4905903,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 0.75005,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 1.0059406,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 1.2666878,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 1.5236955,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 1.7842786,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 2.0439702,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 2.3051412,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 2.5685032,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 2.832704,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 3.0948822,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 3.3598468,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 3.6233408,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 3.8953308,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 4.1467604,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 4.4086288,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 4.6696784,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 4.9291,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 5.188978,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 5.4462444,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 5.7060956,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
},
{
"event": "seeked",
"time": 5.9578872,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?pair=last"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.015546,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.0599999,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0207264,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.0599999,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.5227898,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.5081659,
"audioPaused": true
},
{
"event": "pause",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 0,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "pause",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 0,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "play",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
}
],
"warnings": []
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "5ede3ac9970c9102fb251b342ca2f40626438d37d975b21b38d2033ba2025472"
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "5ede3ac9970c9102fb251b342ca2f40626438d37d975b21b38d2033ba2025472"
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "5ede3ac9970c9102fb251b342ca2f40626438d37d975b21b38d2033ba2025472"
}
}
]
},
{
"file": "refactor/.cache/audio05-resume-browser-after.json",
"sha256": "d68167eb3e010d2e6826f8b736feb68fa96f7c5995e219fd44f6cb992fa85563",
"resultDir": "refactor/.cache/audio05-resume-browser-after-results",
"stats": {
"startTime": "2026-09-11T19:31:41.214Z",
"duration": 12642.521,
"expected": 4,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
}
}
]
},
{
"file": "refactor/.cache/audio05-buffering-first.json",
"sha256": "3eb808cd24e44d5ea36a1ac7659c33cc9f3420c17ad2f87d95f54ef28678a2d9",
"resultDir": "refactor/.cache/audio05-buffering-first-results",
"stats": {
"startTime": "2026-09-11T19:33:47.538Z",
"duration": 75490.135,
"expected": 16,
"skipped": 0,
"unexpected": 8,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.051073,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.051073
}
]
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520204,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.572766
},
{
"trusted": true,
"time": 3.70644,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.706691
},
{
"trusted": true,
"time": 4.768425,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.768614
}
]
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.044163,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.044163
}
]
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520138,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.570272
},
{
"trusted": true,
"time": 3.708122,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.708408
},
{
"trusted": true,
"time": 4.770338,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.770514
}
]
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.051502,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.051502
}
]
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520117,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.572616
},
{
"trusted": true,
"time": 3.710823,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.711015
},
{
"trusted": true,
"time": 4.773836,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.774018
}
]
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.056678,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.056678
}
]
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520204,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.572764
},
{
"trusted": true,
"time": 3.708802,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.709007
},
{
"trusted": true,
"time": 4.769417,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.76961
}
]
}
}
},
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.08365,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.08365
}
]
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.479461,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.480339
},
{
"trusted": true,
"time": 4.816293,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.816293
}
]
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 3,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.106487,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.106487
}
]
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.468864,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.466854
},
{
"trusted": true,
"time": 4.840025,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.840025
}
]
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.117204,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.117204
}
]
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.465794,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.466638
}
]
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.085232,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.085232
}
]
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.475024,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.47601
}
]
}
}
},
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "timedOut",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Test timeout of 20000ms exceeded.",
"Error: page.evaluate: Target page, context or browser has been closed\n\n 47 | finally {\n 48 | try {\n> 49 | const events = page.isClosed() ? { closed: true } : await page.evaluate(() => window.starvation)\n | ^\n 50 | await testInfo.attach('media-gate', { contentType: 'application/json', body: JSON.stringify({ file, sha256: hash(bytes), bytes: bytes.length, limit, requests: gate.requests, events }) })\n 51 | if (!page.isClosed())\n 52 | await page.evaluate(() => window.art?.destroy())\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:49:76"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": "/test/audio-tone.m4a",
"time": 0.4685201,
"paused": true,
"readyState": 4,
"networkState": 2,
"rate": 1,
"seekable": [
[
0,
16
]
]
},
"video": {
"src": "http://127.0.0.1:10923/media.mp4",
"attribute": "http://127.0.0.1:10923/media.mp4",
"time": 0,
"paused": true,
"readyState": 2,
"networkState": 2,
"rate": 1,
"seekable": [
[
0,
8
]
]
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.04,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.4685201,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0085744,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.04,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0089635,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.04,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.5062957,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.4685201,
"audioPaused": true
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 2,
"playing": false,
"audioTime": 0.4685201,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 2,
"playing": false,
"audioTime": 0.4685201,
"audioPaused": true
}
],
"warnings": []
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 32768,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:11425/media.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:11425/media.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:11425/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:11425/media.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:11425/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0014499,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0135666,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:1040/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.0304791,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.4145827,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0113469,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.03,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0115762,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.03,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.4164894,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.4145827,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.4145827,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 32768,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:10931/media.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:10931/media.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:10931/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:10931/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0085826,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0088334,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:9915/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.3921661,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0169927,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0175908,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.4350741,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3921661,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.3921661,
"audioPaused": true
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.3921661,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.3921661,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.3921661,
"audioPaused": true
},
{
"event": "play",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 32768,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:11419/media.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:11419/media.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:11419/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:11419/media.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:11419/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0043108,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0046633,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:9905/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.01,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.3729786,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0209483,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0212516,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.4062749,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3729786,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.3729786,
"audioPaused": true
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.3729786,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 32768,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:11410/media.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:11410/media.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:11410/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:11410/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0087447,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0093061,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
}
]
},
{
"file": "refactor/.cache/audio05-buffering-range.json",
"sha256": "6324bf0fd37a55a8aaf9b4f6184106b74de09a0339a78eb7fe4bfe6504c3a5a9",
"resultDir": "refactor/.cache/audio05-buffering-range-results",
"stats": {
"startTime": "2026-09-11T19:38:23.771Z",
"duration": 32413.353,
"expected": 0,
"skipped": 0,
"unexpected": 8,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:5142/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.01,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.4431452,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0.0122689,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0067564,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0072316,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.5097273,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.4431452,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0.4431452,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.4431452,
"audioPaused": true
},
{
"event": "play",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:6523/media.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:6523/media.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:6523/media.m4a"
},
{
"event": "seeked",
"time": 0.2757954,
"src": "http://127.0.0.1:6523/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:6523/media.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:6523/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0043847,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.004759,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:12415/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.4191452,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0.0051514,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.010577,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0108101,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.4565386,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.4191452,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.4191452,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0,
"videoPaused": false,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": false
},
{
"event": "video:seeking",
"videoTime": 0.0051514,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0.0051514,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:5140/media.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:5140/media.m4a"
},
{
"event": "playing",
"time": 0,
"src": "http://127.0.0.1:5140/media.m4a"
},
{
"event": "seeked",
"time": 0.270323,
"src": "http://127.0.0.1:5140/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:5140/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0023163,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0094821,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:6531/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.01,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.3853327,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.0019365,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0.0019365,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0.0019365,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0056252,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0099037,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.4423159,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3853327,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3853327,
"audioPaused": true
},
{
"event": "video:seeking",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3853327,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3853327,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0019365,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.4499993,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0019365,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.0019365,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:12412/media.m4a",
"attribute": "",
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 3,
"error": 4,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:12412/media.m4a"
},
{
"event": "playing",
"time": 0.01,
"src": "http://127.0.0.1:12412/media.m4a"
},
{
"event": "seeked",
"time": 0.2705959,
"src": "http://127.0.0.1:12412/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:12412/media.m4a"
},
{
"event": "error",
"time": 0,
"src": "http://127.0.0.1:12412/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0099985,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0104975,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:5145/media.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.04,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "pause",
"time": 0.5099159,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "playing",
"time": 0.0155212,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0.0155212,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "seeked",
"time": 0.0072245,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0054347,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.04,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.005711,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.04,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.4991899,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.5099159,
"audioPaused": true
},
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.5099159,
"audioPaused": true
},
{
"event": "video:seeking",
"videoTime": 0.0055213,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.5099159,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0.0055213,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.0055213,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0072245,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.0055213,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0072245,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.0055213,
"audioPaused": false
}
],
"warnings": []
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 28 | if (owner === 'video')\n 29 | await page.evaluate(url => window.art.switchUrl(url), gate.url)\n> 30 | await expect.poll(() => page.evaluate(() => window.starvation.some(event => event.trusted && event.time > 0.3 && event.readyState < 3))).toBe(true)\n | ^\n 31 | expect(gate.blocked).toBeGreaterThan(0)\n 32 | const stalled = await page.evaluate(() => ({ audio: window.audioPlugin.audio.currentTime, video: window.art.currentTime }))\n 33 | if (owner === 'video') {\n at D:\\github\\ArtPlayer\\test\\browser\\audio-buffering.spec.js:30:148"
],
"candidate": {
"file": "workspace source build",
"sha256": "c4b37388ecf38c4c33dc172895d2d76d1ffca2587628c01b11b38cfe1852c713"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 0,
"wasHeld": true,
"closed": false
}
],
"events": []
},
"audioState": {
"audio": {
"src": "http://127.0.0.1:6526/media.m4a",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": null,
"time": 0,
"paused": true,
"readyState": 0,
"networkState": 0,
"rate": 1,
"seekable": []
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:6526/media.m4a"
},
{
"event": "playing",
"time": 0.01,
"src": "http://127.0.0.1:6526/media.m4a"
},
{
"event": "seeked",
"time": 0.2704205,
"src": "http://127.0.0.1:6526/media.m4a"
},
{
"event": "emptied",
"time": 0,
"src": "http://127.0.0.1:6526/media.m4a"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0101653,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0105265,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
}
],
"warnings": []
}
}
}
]
},
{
"file": "refactor/.cache/audio05-native-gate.json",
"sha256": "66e004da32035a0e7f3da443bf3cd1cc67b12a1ffbbe89d5852df7825b935e05",
"resultDir": "refactor/.cache/audio05-native-gate-results",
"stats": {
"startTime": "2026-09-11T19:41:53.906Z",
"duration": 13741.815,
"expected": 6,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "native video progressive gate capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"progressed": true,
"waiting": true,
"before": {
"time": 3.058466,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 4
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 4
},
{
"event": "playing",
"trusted": true,
"time": 0.008574,
"readyState": 4
},
{
"event": "waiting",
"trusted": true,
"time": 3.058466,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.467406,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio progressive gate capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"progressed": true,
"waiting": true,
"before": {
"time": 3.520088,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.520088,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.941515,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video progressive gate capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 0,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 0,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.370381,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio progressive gate capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"progressed": false,
"waiting": false,
"before": {
"time": 0.007338,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 0.007338,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 0,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.33334,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video progressive gate capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"progressed": false,
"waiting": false,
"before": {
"time": 0.0015322,
"readyState": 4,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.0015322,
"readyState": 4
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5418984,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio progressive gate capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 4,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 4
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5886241,
"readyState": 4,
"paused": false
}
}
}
}
]
},
{
"file": "refactor/.cache/audio05-native-gate-modes.json",
"sha256": "de64305734cdd5650248c05dfc4a3441d0f813c497fe7f0f4ed56e7439b25143",
"resultDir": "refactor/.cache/audio05-native-gate-modes-results",
"stats": {
"startTime": "2026-09-11T19:44:53.627Z",
"duration": 23539.946,
"expected": 12,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "native video streamed response capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": false,
"progressed": true,
"waiting": true,
"before": {
"time": 3.056878,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 4
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 4
},
{
"event": "playing",
"trusted": true,
"time": 0.007564,
"readyState": 4
},
{
"event": "waiting",
"trusted": true,
"time": 3.056878,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.467469,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video complete ranges capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": true,
"progressed": true,
"waiting": true,
"before": {
"time": 3.05782,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.008634,
"readyState": 4
},
{
"event": "waiting",
"trusted": true,
"time": 3.05782,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.465331,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio streamed response capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": false,
"progressed": true,
"waiting": true,
"before": {
"time": 3.520093,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.520093,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.933101,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio complete ranges capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": true,
"progressed": true,
"waiting": true,
"before": {
"time": 3.520322,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.520322,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.94277,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video streamed response capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": false,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 0,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.411953,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video complete ranges capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": true,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 0,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 0,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.332938,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio streamed response capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": false,
"progressed": false,
"waiting": false,
"before": {
"time": 0.001457,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 0.001457,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 32768,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.405297,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio complete ranges capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": true,
"progressed": false,
"waiting": false,
"before": {
"time": 0.001535,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 0.001535,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 0,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.364553,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video streamed response capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": false,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 3,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5203526,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video complete ranges capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": true,
"progressed": false,
"waiting": false,
"before": {
"time": 0.001194,
"readyState": 4,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.0010823,
"readyState": 4
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5994215,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio streamed response capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": false,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 3,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5642908,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio complete ranges capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": true,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 4,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 4
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5164575,
"readyState": 4,
"paused": false
}
}
}
}
]
},
{
"file": "refactor/.cache/audio05-native-preload.json",
"sha256": "5afa60842860262a5874928fff788141d27579aa40f8c742290cf70abbc930cf",
"resultDir": "refactor/.cache/audio05-native-preload-results",
"stats": {
"startTime": "2026-09-11T19:52:11.881Z",
"duration": 23649.817000000003,
"expected": 12,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "native video streamed response capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": false,
"progressed": true,
"waiting": true,
"before": {
"time": 3.057163,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.007045,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.057163,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.509993,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video complete ranges capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": true,
"progressed": true,
"waiting": true,
"before": {
"time": 3.057933,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.007816,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.057933,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.510883,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio streamed response capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": false,
"progressed": true,
"waiting": true,
"before": {
"time": 3.5201,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.013691,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.5201,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.946327,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio complete ranges capability without ArtPlayer instances",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": true,
"progressed": true,
"waiting": true,
"before": {
"time": 3.520125,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.013439,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.520125,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.9301,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video streamed response capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": false,
"progressed": true,
"waiting": true,
"before": {
"time": 3.124083,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "stalled",
"trusted": true,
"time": 3.041666,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.124083,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.534162,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video complete ranges capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": true,
"progressed": true,
"waiting": true,
"before": {
"time": 3.123058,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "stalled",
"trusted": true,
"time": 3.000305,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.123058,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.528452,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio streamed response capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": false,
"progressed": true,
"waiting": true,
"before": {
"time": 3.480786,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "stalled",
"trusted": true,
"time": 2.915738,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.480786,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.88914,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio complete ranges capability without ArtPlayer instances",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": true,
"progressed": true,
"waiting": true,
"before": {
"time": 3.475381,
"readyState": 2,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "stalled",
"trusted": true,
"time": 2.990622,
"readyState": 3
},
{
"event": "waiting",
"trusted": true,
"time": 3.475381,
"readyState": 2
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 3.879204,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video streamed response capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": false,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 3,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5358984,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native video complete ranges capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"limit": 98304,
"completeRanges": true,
"progressed": false,
"waiting": false,
"before": {
"time": 0.0010975,
"readyState": 4,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0.0009908,
"readyState": 4
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 98303,
"sent": 98304,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-251537",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.3351694,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio streamed response capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": false,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 3,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 3
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5994157,
"readyState": 4,
"paused": false
}
}
}
},
{
"title": "native audio complete ranges capability without ArtPlayer instances",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"evidence": {
"native-gate-capability": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"limit": 32768,
"completeRanges": true,
"progressed": false,
"waiting": false,
"before": {
"time": 0,
"readyState": 4,
"paused": false,
"error": null,
"instances": 0,
"events": [
{
"event": "loadedmetadata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "loadeddata",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "canplay",
"trusted": true,
"time": 0,
"readyState": 3
},
{
"event": "playing",
"trusted": true,
"time": 0,
"readyState": 4
}
]
},
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 32767,
"sent": 32768,
"wasHeld": false,
"closed": true
},
{
"method": "GET",
"range": "bytes=32768-132435",
"start": 32768,
"end": 132435,
"sent": 99668,
"wasHeld": true,
"closed": true
}
],
"after": {
"time": 0.5714783,
"readyState": 4,
"paused": false
}
}
}
}
]
},
{
"file": "refactor/.cache/audio05-main-final.json",
"sha256": "957d06e2d4d76123f57f88f7bb024eb6c0bbcfcf5f4113bfc6e4286fe2f34af6",
"resultDir": "refactor/.cache/audio05-main-final-results",
"stats": {
"startTime": "2026-09-11T19:48:44.346Z",
"duration": 70371.302,
"expected": 78,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16.01,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
}
]
},
{
"file": "refactor/.cache/audio05-legacy-first.json",
"sha256": "d33400253d74833815745c39a7041478b9de5aab5936aba59f00ee81a5ffde1c",
"resultDir": "refactor/.cache/audio05-legacy-first-results",
"stats": {
"startTime": "2026-09-11T19:50:31.712Z",
"duration": 83518.777,
"expected": 77,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "failed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [
"Error: expect(received).toEqual(expected) // deep equality\n\n- Expected - 1\n+ Received + 1\n\n Object {\n \"error\": null,\n- \"time\": 0,\n+ \"time\": 0.01,\n }\n\n 101 | return { audio: state(window.audioPlugin.audio), native: state(window.boundaryAudio) }\n 102 | })\n> 103 | expect(negative.native).toEqual({ time: 0, error: null })\n | ^\n 104 | expect(negative.audio).toEqual(negative.native)\n 105 | await page.evaluate(() => {\n 106 | window.audioPlugin.update({ offset: 20 })\n at D:\\github\\ArtPlayer\\test\\browser\\audio-combinations.spec.js:103:31"
],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"audioState": {
"audio": {
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first",
"attribute": "/test/audio-tone.m4a?source=first",
"time": 0,
"paused": true,
"readyState": 4,
"networkState": 2,
"rate": 1,
"seekable": [
[
0,
16
]
]
},
"video": {
"src": "http://127.0.0.1:8084/test/pattern.mp4",
"attribute": "/test/pattern.mp4",
"time": 0.5009295,
"paused": true,
"readyState": 4,
"networkState": 2,
"rate": 1,
"seekable": [
[
0,
8
]
]
},
"events": [
{
"event": "loadedmetadata",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "playing",
"time": 0.01,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "pause",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "seeked",
"time": 0.01,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
},
{
"event": "seeked",
"time": 0,
"src": "http://127.0.0.1:8084/test/audio-tone.m4a?source=first"
}
],
"hostEvents": [
{
"event": "video:canplay",
"videoTime": 0,
"videoPaused": true,
"videoReadyState": 3,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:playing",
"videoTime": 0.0187376,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "play",
"videoTime": 0.0191983,
"videoPaused": false,
"videoReadyState": 4,
"playing": true,
"audioTime": 0.01,
"audioPaused": false
},
{
"event": "pause",
"videoTime": 0.2779891,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0.3512495,
"audioPaused": true
},
{
"event": "seek",
"videoTime": 0.5,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:pause",
"videoTime": 0.5,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:seeking",
"videoTime": 0.5,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
},
{
"event": "video:seeked",
"videoTime": 0.5009295,
"videoPaused": true,
"videoReadyState": 4,
"playing": false,
"audioTime": 0,
"audioPaused": true
}
],
"warnings": []
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
}
]
},
{
"file": "refactor/.cache/audio05-main-verified.json",
"sha256": "595616e0a145335e4e9b170c3a1a40dd57adb6e059d29582b9c173ab50b9d92f",
"resultDir": "refactor/.cache/audio05-main-verified-results",
"stats": {
"startTime": "2026-09-11T19:53:07.593Z",
"duration": 67652.504,
"expected": 78,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
}
}
]
},
{
"file": "refactor/.cache/audio05-legacy-verified.json",
"sha256": "7eb66b1911f23b858e588103979e63def637579951e054f9b1e28cf225479c28",
"resultDir": "refactor/.cache/audio05-legacy-verified-results",
"stats": {
"startTime": "2026-09-11T19:54:16.148Z",
"duration": 67259.5,
"expected": 78,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "published core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + published audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "candidate core + source audio: rapid main/audio switches settle on the last pair",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: two active players keep clocks and ownership independent",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native offset bounds recover to an in-range seek",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"negative-offset-native": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow-offset-native": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"offset-boundary": {
"negative": {
"audio": {
"time": 0,
"error": null
},
"native": {
"time": 0,
"error": null
}
},
"overflow": {
"audio": {
"time": 16,
"duration": 16,
"error": null
},
"native": {
"time": 16,
"duration": 16,
"error": null
}
},
"recovered": true
}
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "native WAV diagnostic isolates sample decoding from ArtPlayer and plugin",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": []
},
{
"title": "published AUDIO-LIFE-01: empty src cleanup produces a native media error",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "published core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: native pause/end stop audio and closed references stay inert",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: native pause and end leave external audio playing",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + published audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: decoded play, offset seek, rate, source and cleanup",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
},
{
"title": "candidate core + source audio: real load error can recover with a new source",
"engine": "webkit",
"status": "passed",
"retry": 0,
"browser": "26.6",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
}
}
]
},
{
"file": "refactor/.cache/audio05-buffering-main-verified.json",
"sha256": "938f4aa737edba20d16877fbf5c848a1899467d1b2c71e4067ce1cf78f6c1b1d",
"resultDir": "refactor/.cache/audio05-buffering-main-verified-results",
"stats": {
"startTime": "2026-09-11T19:56:07.265Z",
"duration": 39460.18,
"expected": 16,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.046952,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.046952
}
]
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520099,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.571896
},
{
"trusted": true,
"time": 3.713268,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.713423
},
{
"trusted": true,
"time": 4.77619,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.777043
}
]
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.044984,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.044984
}
]
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.52009,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.570001
},
{
"trusted": true,
"time": 3.709846,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.710125
},
{
"trusted": true,
"time": 4.772766,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.772964
}
]
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.053599,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.053599
}
]
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520191,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.572656
},
{
"trusted": true,
"time": 3.717265,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.717479
},
{
"trusted": true,
"time": 4.779745,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.780182
}
]
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.046969,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.046969
}
]
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520086,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.572527
},
{
"trusted": true,
"time": 3.710438,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.710666
},
{
"trusted": true,
"time": 4.772738,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.772961
}
]
}
}
},
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.091355,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.091355
}
]
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.472442,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.473147
},
{
"trusted": true,
"time": 4.851071,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.851071
}
]
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.124274,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.124274
}
]
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.46977,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.470308
},
{
"trusted": true,
"time": 4.863898,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.863898
}
]
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.085056,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.085056
}
]
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.47336,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.473967
}
]
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.119118,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.119118
}
]
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.js",
"sha256": "23b10856628c5568f1aa7ad88e926c7da8d96edfadf6df872777062a78a4b4be"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.470919,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.472051
},
{
"trusted": true,
"time": 4.809731,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.809731
}
]
}
}
}
]
},
{
"file": "refactor/.cache/audio05-buffering-legacy-verified.json",
"sha256": "4be33788eed7e05fe69fce3d81c4af610437fafab4a7eeec8c02a1e362431c93",
"resultDir": "refactor/.cache/audio05-buffering-legacy-verified-results",
"stats": {
"startTime": "2026-09-11T19:56:47.438Z",
"duration": 39232.465,
"expected": 16,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.057768,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.057768
}
]
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520129,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.571263
},
{
"trusted": true,
"time": 3.718571,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.718916
},
{
"trusted": true,
"time": 4.781188,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.781398
}
]
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.046582,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.046582
}
]
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520105,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.572026
},
{
"trusted": true,
"time": 3.725024,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.725195
},
{
"trusted": true,
"time": 4.781138,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.781305
}
]
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.057216,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.057216
}
]
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520118,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.571326
},
{
"trusted": true,
"time": 3.709577,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.710835
},
{
"trusted": true,
"time": 4.772257,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.772514
}
]
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 98304,
"wasHeld": true,
"closed": true
},
{
"method": "GET",
"range": "bytes=98304-",
"start": 98304,
"end": 251537,
"sent": 153234,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.056473,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.056473
}
]
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "chromium",
"status": "passed",
"retry": 0,
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.520133,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.570552
},
{
"trusted": true,
"time": 3.717869,
"readyState": 1,
"audioPaused": false,
"videoTime": 3.718226
},
{
"trusted": true,
"time": 4.780486,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.780705
}
]
}
}
},
{
"title": "published core + published audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.089564,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.089564
}
]
}
}
},
{
"title": "published core + published audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.456143,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.456461
},
{
"trusted": true,
"time": 4.806926,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.806926
}
]
}
}
},
{
"title": "published core + source audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 0,
"readyState": 1,
"audioPaused": true,
"videoTime": 0
},
{
"trusted": true,
"time": 3.120104,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.120104
}
]
}
}
},
{
"title": "published core + source audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.466804,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.467978
},
{
"trusted": true,
"time": 4.846831,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.846831
}
]
}
}
},
{
"title": "candidate core + published audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.08836,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.08836
}
]
}
}
},
{
"title": "candidate core + published audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.469772,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.472316
},
{
"trusted": true,
"time": 4.808428,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.808428
}
]
}
}
},
{
"title": "candidate core + source audio: real video starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "pattern.mp4",
"sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233",
"bytes": 251538,
"limit": 98304,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 251537,
"sent": 251538,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.113086,
"readyState": 2,
"audioPaused": true,
"videoTime": 3.113086
}
]
}
}
},
{
"title": "candidate core + source audio: real audio starvation resumes after network release",
"engine": "firefox",
"status": "passed",
"retry": 0,
"browser": "155.0",
"platform": "win32",
"errors": [],
"candidate": {
"file": "packages/artplayer-plugin-audio-track/dist/artplayer-plugin-audio-track.legacy.js",
"sha256": "41b94e84e3d3729b9373cb13de2f64d5ea30b4c36627f38583bf4c3c9bc2160c"
},
"evidence": {
"mediaGate": {
"file": "audio-tone.m4a",
"sha256": "83e6672b880b5d1c97093b1e26bdc40221c0b279615f40e99dbf9d2ade7b4d56",
"bytes": 132436,
"limit": 32768,
"requests": [
{
"method": "GET",
"range": "bytes=0-",
"start": 0,
"end": 132435,
"sent": 132436,
"wasHeld": true,
"closed": true
}
],
"events": [
{
"trusted": true,
"time": 3.45942,
"readyState": 2,
"audioPaused": false,
"videoTime": 3.460135
},
{
"trusted": true,
"time": 4.835629,
"readyState": 1,
"audioPaused": false,
"videoTime": 4.835629
}
]
}
}
}
]
}
],
"logs": [
{
"file": "refactor/.cache/audio05-resume-unit-before.log",
"sha256": "4e4ff92741ef962595e8b8ee460cac66c7f81864dc2c0832e2dfae0f06a3c9bb",
"summaries": [
"ℹ tests 45",
"ℹ pass 44",
"ℹ fail 1",
"ℹ skipped 0"
]
},
{
"file": "refactor/.cache/audio05-native-zero-before.log",
"sha256": "ce7385f6763fda2462791c5f32709a6f86a04e00eda2dd5978fe5894ab144377",
"summaries": [
"ℹ tests 46",
"ℹ pass 44",
"ℹ fail 2",
"ℹ skipped 0"
]
},
{
"file": "refactor/.cache/audio05-resume-unit.log",
"sha256": "4eae74a39cc19e02f69d808b7dcf6b81f8133cefdda80e18717bc7c396e67b54",
"summaries": [
"ℹ tests 46",
"ℹ pass 46",
"ℹ fail 0",
"ℹ skipped 0"
]
},
{
"file": "refactor/.cache/audio05-artifacts.log",
"sha256": "74af1d95d806bb405e92e7352b950cd7149cb2178ab54c24110ff6bc8ccc4daa",
"summaries": [
"ℹ tests 97",
"ℹ pass 97",
"ℹ fail 0",
"ℹ skipped 0"
]
},
{
"file": "refactor/.cache/audio05-build.log",
"sha256": "f44c27b9e589b145117edfcd618d91b883e09050dab18b55ba80df087913cbb7",
"summaries": [
"Done in 1.83s."
]
},
{
"file": "refactor/.cache/audio05-ci.log",
"sha256": "f1bdb385889cf6a626f16d3f4d0847ef71298732e8b7af892d1dffb00cd099b1",
"summaries": [
"ℹ tests 550",
"ℹ pass 550",
"ℹ fail 0",
"ℹ skipped 0",
"ℹ tests 14",
"ℹ pass 14",
"ℹ fail 0",
"ℹ skipped 0",
"ℹ tests 35",
"ℹ pass 35",
"ℹ fail 0",
"ℹ skipped 0",
"Done in 109.95s."
]
},
{
"file": "refactor/.cache/audio05-gate-final-unit.log",
"sha256": "24d75e55de687f999f0f368357b3d74c20a243571b6cde0d13f37f61bb13a99b",
"summaries": [
"ℹ tests 3",
"ℹ pass 3",
"ℹ fail 0",
"ℹ skipped 0"
]
}
],
"resultPathNote": "Raw reports retain their original shared output paths. Copied resultDir contains the preserved relative test directories and traces. Cache is local; hashes and these summaries survive in Git. Rerun if cache is missing.",
"remaining": [
"AUDIO-BUFFER-01: Windows WebKit never reached real starvation for these inputs even without ArtPlayer",
"AUDIO-SYNC-01: full supported environment and playback-policy coverage",
"PKG-AUDIO-06: installed artifacts and 8082 docs demo",
"Physical Safari/iOS/Android and actual sound output"
]
}