Files
ArtPlayer/refactor/baselines/jassub-hybrid-validation.json
T

18351 lines
687 KiB
JSON

{
"task": "PKG-JASSUB-09",
"status": "doing",
"checkpoint": true,
"recordedAt": "2026-09-13T18:49:34.892Z",
"node": "v24.21.0",
"platform": "win32",
"patch": {
"task": "PKG-JASSUB-09",
"baselineCommit": "b4b0276fe9df13218ece21c3ba6a51b42948e16d",
"file": "packages/artplayer-plugin-jassub/src/jassub.es.js",
"originalSha256LF": "6a96af7914f702eb7d6303b466cbe16abddd278040f60cd29f153cdf60e92cb2",
"patchedSha256LF": "60590f2fca6ffded74f96f8a6001a86c32eb38f5e1fae26338cbbb43e93fb70a",
"patchFile": "refactor/baselines/jassub-hybrid.patch",
"patchSha256LF": "e1ff5591ea38fc66b46140458db93156c66aaaeceacb5ea433021cd8868651eb",
"predecessor": "refactor/baselines/jassub-offscreen-patch.json",
"purpose": "Release obsolete hybrid bitmaps before any render/scheduler/color-space effect while the display is offscreen; prevent public track calls from recreating canvas after hybrid destruction."
},
"files": [
{
"file": "test/jassub-offscreen.test.js",
"sha256": "b446296fd8bc8fd0f8e22948c0aad438535e28baa08ff87ea95dae1db854d42e"
},
{
"file": "test/browser/jassub-hybrid.spec.js",
"sha256": "fe41b08b433bf66b9e5967369bada1b36b5bbb7d1e57febb6fba64598b3ed7ab"
},
{
"file": "test/browser/jassub-native.spec.js",
"sha256": "68569839df7ab3403f9a72af0fab5fb3e05a6a6db8b0b6359f73729fe04fd102"
},
{
"file": "refactor/scripts/jassub-vendor-patch.test.mjs",
"sha256": "a0c899f56e39c6cd63ded10891632164e4560383a976a4d91454a32d8d780fbb"
}
],
"unit": {
"red": {
"file": "refactor/.cache/jassub09-unit-red-final.log",
"sha256": "49287bcace4188cb00bf67f6875df7e073769a53e0f6a77c3fe40af74d904825",
"pass": 7,
"fail": 4
},
"green": {
"file": "refactor/.cache/jassub09-unit-green.log",
"sha256": "623a72f132366fe6535196f8ddd7e69eff2bde5db795b11eac86044815656cea",
"pass": 11,
"fail": 0
},
"combined": {
"file": "refactor/.cache/jassub09-all-final.log",
"sha256": "a9a03cb837d5937940a421000b3f2107e97f16cf25d089c5b4753c09d6c6f882",
"pass": 196,
"fail": 0
},
"source": {
"file": "refactor/.cache/jassub09-candidate-source.log",
"sha256": "8741be19b33495c931aad986c8c6557e357762748372f47005e16119802133a9",
"pass": 79,
"fail": 0
},
"main": {
"file": "refactor/.cache/jassub09-candidate-js.log",
"sha256": "8a1843459ece69edc7dca3834d4107664958ba2c0bed974fc199e51b7544cc61",
"pass": 79,
"fail": 0
},
"legacy": {
"file": "refactor/.cache/jassub09-candidate-legacy.js.log",
"sha256": "ac772750d8af1dd85ef50249925f1911f140c8983c5b31c919daf25c8a9a0595",
"pass": 79,
"fail": 0
}
},
"browser": {
"reports": [
{
"file": "refactor/.cache/jassub09-browser-initial.json",
"sha256": "8559e26822ff25ee30a2412982bb62646ab68b9afe8d6c4d6f76576e5c1cf6d6",
"stats": {
"startTime": "2026-09-13T18:32:51.478Z",
"duration": 10334.179,
"expected": 1,
"skipped": 0,
"unexpected": 2,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "chromium",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js",
"column": 22,
"line": 135
},
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 1\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[2m \"containers\": 0,\u001b[22m\n\u001b[32m- \"sameCanvas\": true,\u001b[39m\n\u001b[31m+ \"sameCanvas\": false,\u001b[39m\n\u001b[2m }\u001b[22m\n\n 133 | return window.hybridProbe.terminal = { sameCanvas: canvas === instance._canvas, containers: document.querySelectorAll('.JASSUB').length }\n 134 | })\n> 135 | expect(terminal).toEqual({ sameCanvas: true, containers: 0 })\n | ^\n 136 | expect(await page.evaluate(() => window.hybridProbe.errors)).toEqual([])\n 137 | }\n 138 | finally {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js:135:22"
}
],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": true,
"selected": true,
"matrix": "bt709",
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"detachOffscreen",
"canvas",
"demand",
"demand",
"demand",
"canvas",
"setTrack",
"offscreenCanvas",
"canvas",
"detachOffscreen",
"canvas",
"demand",
"setTrack",
"offscreenCanvas",
"canvas",
"detachOffscreen",
"canvas"
],
"late": {
"reattached": true,
"widths": [
640
],
"closedWidths": [
0
]
},
"terminal": {
"sameCanvas": false,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js",
"column": 49,
"line": 92
},
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoContain\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // indexOf\u001b[22m\n\nExpected value: \u001b[32mnull\u001b[39m\nReceived array: \u001b[31m[\"bt709\", \"bt470bg\", \"smpte170m\"]\u001b[39m\n\n 90 | const before = await page.evaluate(() => window.hybridProbe.pixels())\n 91 | if (capabilities.selected) {\n> 92 | expect(['bt709', 'bt470bg', 'smpte170m']).toContain(capabilities.matrix)\n | ^\n 93 | await expect.poll(() => page.evaluate(() => Boolean(window.jassub._ctx))).toBe(true)\n 94 | await page.evaluate(() => {\n 95 | window.hybridProbe.holdRender = true\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js:92:49"
}
],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"demand",
"demand",
"demand"
],
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": null
},
"failedRequests": []
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": false,
"selected": false,
"sent": [
"init",
"canvas",
"canvas",
"demand",
"canvas",
"demand",
"demand",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"demand",
"demand",
"setTrack"
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-browser-red-final.json",
"sha256": "4c4053b8583797b9677bd4e2cfc7202bb802528cb65b6d8f8f4343df527af724",
"stats": {
"startTime": "2026-09-13T18:34:00.113Z",
"duration": 9722.425,
"expected": 2,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "chromium",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js",
"column": 36,
"line": 116
},
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 114 | expect(delivered.widths.every(width => width > 0)).toBe(true)\n 115 | expect(delivered.failure).toBeUndefined()\n> 116 | expect(delivered.sameCanvas).toBe(true)\n | ^\n 117 | expect(delivered.stillOffscreen).toBe(true)\n 118 | expect(delivered.closedWidths.every(width => width === 0)).toBe(true)\n 119 | }\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js:116:36"
}
],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": true,
"selected": true,
"matrix": "bt709",
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"detachOffscreen",
"canvas",
"demand",
"demand",
"canvas",
"setTrack",
"offscreenCanvas",
"canvas",
"detachOffscreen",
"canvas"
],
"late": {
"reattached": true,
"widths": [
640
],
"closedWidths": [
0
],
"sameCanvas": false,
"stillOffscreen": false
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": null
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"demand",
"setTrack"
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": false,
"selected": false,
"sent": [
"init",
"canvas",
"canvas",
"canvas",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"demand",
"demand",
"setTrack"
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-main-initial.json",
"sha256": "eef872a4e13e1b8d19ecd4e6e4832905c79a88bac7e2f4e075149c400e050d68",
"stats": {
"startTime": "2026-09-13T18:36:02.817Z",
"duration": 48784.781,
"expected": 11,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "chromium",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js",
"column": 87,
"line": 123
},
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m100\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 121 | await page.evaluate(() => window.jassub.setTrack(window.hybridProbe.matched))\n 122 | }\n> 123 | await expect.poll(() => page.evaluate(() => window.hybridProbe.pixels().visible)).toBeGreaterThan(100)\n | ^\n 124 | await expect.poll(() => page.evaluate(() => window.hybridProbe.pixels().signature)).not.toBe(before.signature)\n 125 | await page.evaluate(() => window.jassub.setTrack(window.hybridProbe.mismatched))\n 126 | if (hybridExpected)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js:123:87"
}
],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92",
"state": {
"available": true,
"selected": true,
"matrix": "bt709",
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"detachOffscreen",
"canvas",
"demand",
"demand",
"canvas",
"setTrack",
"offscreenCanvas",
"canvas"
],
"late": {
"reattached": true,
"widths": [
640
],
"closedWidths": [
0
],
"sameCanvas": true,
"stillOffscreen": true
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": null
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"setTrack",
"demand"
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92",
"state": {
"available": false,
"selected": false,
"sent": [
"init",
"canvas",
"canvas",
"canvas",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"setTrack",
"demand"
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.526328,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 17,
"droppedFrames": 0,
"decodedFrames": 17
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.02,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 143,
"droppedFrames": 0,
"decodedFrames": 143
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.02,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 143,
"droppedFrames": 0,
"decodedFrames": 143
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 10,
"delivered": 9,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1277,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1262.4,
"presentedFrames": 18,
"processingDuration": 0.001,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.02,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 143,
"droppedFrames": 0,
"decodedFrames": 143
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.506703,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.015833,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.126902,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 146,
"droppedFrames": 0,
"decodedFrames": 146
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 13,
"delivered": 12,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1291.7,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1275.5,
"presentedFrames": 20,
"processingDuration": 0.1013,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.126902,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 146,
"droppedFrames": 0,
"decodedFrames": 146
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
},
{
"target": "demand",
"time": 10.24
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.507868,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.013494,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.119659,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1322.2,
"height": 720,
"mediaTime": 10.24,
"presentationTime": 1306.6,
"presentedFrames": 21,
"processingDuration": 0.1309,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.119659,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.24
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.36
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.321298,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.00002,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 8,
"droppedFrames": 0,
"mozPresentedFrames": 8
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040388,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1333.34,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1333.34,
"presentedFrames": 32,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040388,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.24
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.36
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.280167,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000021,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 8,
"droppedFrames": 0,
"mozPresentedFrames": 8
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6243,
"signature": 2940899077,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040567,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1275.94,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1259.28,
"presentedFrames": 32,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6243,
"signature": 2940899077,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040567,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 20.08
},
{
"target": "demand",
"time": 20.12
},
{
"target": "demand",
"time": 20.16
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.484455,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 11,
"droppedFrames": 0,
"mozPresentedFrames": 11
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000029,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040318,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 264,
"droppedFrames": 0,
"mozPresentedFrames": 264
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 11485.2,
"height": 720,
"mediaTime": 20.16,
"presentationTime": 11485.2,
"presentedFrames": 292,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040318,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 264,
"droppedFrames": 0,
"mozPresentedFrames": 264
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4800001
},
{
"target": "demand",
"time": 0.5203959
},
{
"target": "demand",
"time": 0.5973334
},
{
"target": "demand",
"time": 0.6640001
},
{
"target": "demand",
"time": 0.719271
},
{
"target": "demand",
"time": 0.7964793
},
{
"target": "demand",
"time": 0.8587918
},
{
"target": "demand",
"time": 0.9357918
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.01
},
{
"target": "demand",
"time": 10.0253958
},
{
"target": "demand",
"time": 10.0717709
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.1977083
},
{
"target": "demand",
"time": 10.6092292
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.6851668,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0471667,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3167084,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 15,
"delivered": 14,
"after": "function",
"lastMetadata": {
"presentationTime": 3486,
"expectedDisplayTime": 3898,
"width": 640,
"height": 360,
"mediaTime": 10.6092292,
"presentedFrames": 0,
"processingDuration": 0
}
},
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3167084,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4443751
},
{
"target": "demand",
"time": 0.4789584
},
{
"target": "demand",
"time": 0.5417292
},
{
"target": "demand",
"time": 0.6189376
},
{
"target": "demand",
"time": 0.6799376
},
{
"target": "demand",
"time": 0.7560209
},
{
"target": "demand",
"time": 0.833521
},
{
"target": "demand",
"time": 0.8961668
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0550417
},
{
"target": "demand",
"time": 10.1161042
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.2106042
},
{
"target": "demand",
"time": 10.3693334
},
{
"target": "demand",
"time": 10.7396251
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.6402085,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0775834,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3689792,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 15,
"delivered": 14,
"after": "function",
"lastMetadata": {
"presentationTime": 3283,
"expectedDisplayTime": 3654,
"width": 640,
"height": 360,
"mediaTime": 10.7396251,
"presentedFrames": 0,
"processingDuration": 0
}
},
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3689792,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "d482d2ab5c8bfacd1354bb82d04f41adfd18a01b1eb0a67c4ef57df1d90d3d92"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4012084
},
{
"target": "demand",
"time": 0.4782501
},
{
"target": "demand",
"time": 0.5549584
},
{
"target": "demand",
"time": 0.633146
},
{
"target": "demand",
"time": 0.6950418
},
{
"target": "demand",
"time": 0.7718335
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0402291
},
{
"target": "demand",
"time": 10.086125
},
{
"target": "demand",
"time": 10.1349584
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.258875
},
{
"target": "demand",
"time": 10.3674375
},
{
"target": "demand",
"time": 10.7762918
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.5496876,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.1227292,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4455625,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"presentationTime": 3495,
"expectedDisplayTime": 3904,
"width": 640,
"height": 360,
"mediaTime": 10.7762918,
"presentedFrames": 0,
"processingDuration": 0
}
},
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4455625,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-main-second.json",
"sha256": "733c064c6e0feb3af684cb575fd4c5fde1435927014863a7a2541d48bdaa946f",
"stats": {
"startTime": "2026-09-13T18:39:08.206Z",
"duration": 58328.687,
"expected": 10,
"skipped": 0,
"unexpected": 2,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"state": {
"available": true,
"selected": true,
"matrix": "bt709",
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"detachOffscreen",
"canvas",
"demand",
"demand",
"canvas",
"setTrack",
"offscreenCanvas",
"canvas",
"demand",
"setTrack",
"detachOffscreen",
"canvas"
],
"late": {
"reattached": true,
"widths": [
640
],
"closedWidths": [
0
],
"sameCanvas": true,
"stillOffscreen": true
},
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js",
"column": 87,
"line": 89
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 87 | return { available: probe.available, selected: probe.selected, matrix }\n 88 | }, subtitle)\n> 89 | await expect.poll(() => page.evaluate(() => window.hybridProbe.pixels().visible)).toBeGreaterThan(100)\n | ^\n 90 | const before = await page.evaluate(() => window.hybridProbe.pixels())\n 91 | expect(capabilities.selected).toBe(capabilities.available)\n 92 | const hybridExpected = capabilities.selected && ['bt709', 'bt470bg', 'smpte170m'].includes(capabilities.matrix)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js:89:87"
}
],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace"
],
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": null
},
"failedRequests": []
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"state": {
"available": false,
"selected": false,
"sent": [
"init",
"canvas",
"canvas",
"canvas",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"demand",
"setTrack",
"demand"
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": []
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.509024,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.016278,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.119383,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 13,
"delivered": 12,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1307,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1290.6,
"presentedFrames": 20,
"processingDuration": 0.1029,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.119383,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.505818,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"decodedFrames": 15
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.018046,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.018046,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 10,
"delivered": 9,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1199.5,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1183.6,
"presentedFrames": 17,
"processingDuration": 0.0011,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.018046,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
},
{
"target": "demand",
"time": 10.24
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.50486,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.015319,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.117001,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1305.6,
"height": 720,
"mediaTime": 10.24,
"presentationTime": 1289.2,
"presentedFrames": 21,
"processingDuration": 0.1316,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.117001,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.549127,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 12,
"droppedFrames": 0,
"mozPresentedFrames": 12
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000019,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 14,
"droppedFrames": 0,
"mozPresentedFrames": 14
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6243,
"signature": 2940899077,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040413,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1704.26,
"height": 720,
"mediaTime": 10.08,
"presentationTime": 1704.26,
"presentedFrames": 43,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6243,
"signature": 2940899077,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040413,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js",
"column": 83,
"line": 167
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 165 | })\n 166 | await expect.poll(() => page.evaluate(() => window.jassubPixels().cssWidth)).toBeGreaterThan(before.cssWidth)\n> 167 | await expect.poll(() => page.evaluate(() => window.jassubPixels().visible)).toBeGreaterThan(100)\n | ^\n 168 | await page.evaluate(() => window.jassubPixels('fullscreen'))\n 169 | await testInfo.attach('actual-jassub-page', { body: await page.screenshot(), contentType: 'image/png' })\n 170 | if (artifact)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js:167:83"
}
],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 0,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.565525,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.00002,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 14,
"droppedFrames": 0,
"mozPresentedFrames": 14
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 10,
"delivered": 9,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1430.28,
"height": 720,
"mediaTime": 10.04,
"presentationTime": 1430.28,
"presentedFrames": 42,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040203,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 265,
"droppedFrames": 4,
"mozPresentedFrames": 261
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.48
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.04
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.24
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.580194,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000021,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.162441,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 19,
"droppedFrames": 0,
"mozPresentedFrames": 19
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 13,
"delivered": 12,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 2068.74,
"height": 720,
"mediaTime": 10.24,
"presentationTime": 2052.08,
"presentedFrames": 48,
"width": 1280
}
},
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.162441,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 19,
"droppedFrames": 0,
"mozPresentedFrames": 19
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.5072709
},
{
"target": "demand",
"time": 0.5847292
},
{
"target": "demand",
"time": 0.6661668
},
{
"target": "demand",
"time": 0.7087084
},
{
"target": "demand",
"time": 0.786771
},
{
"target": "demand",
"time": 0.8503543
},
{
"target": "demand",
"time": 0.8949585
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0579375
},
{
"target": "demand",
"time": 10.1342709
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.2329583
},
{
"target": "demand",
"time": 10.4049375
},
{
"target": "demand",
"time": 10.7880001
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.6631459,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0817917,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4043125,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"presentationTime": 3776,
"expectedDisplayTime": 4159,
"width": 640,
"height": 360,
"mediaTime": 10.7880001,
"presentedFrames": 0,
"processingDuration": 0
}
},
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4043125,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4600001
},
{
"target": "demand",
"time": 0.5103334
},
{
"target": "demand",
"time": 0.5876459
},
{
"target": "demand",
"time": 0.633646
},
{
"target": "demand",
"time": 0.6730835
},
{
"target": "demand",
"time": 0.7412501
},
{
"target": "demand",
"time": 0.8033752
},
{
"target": "demand",
"time": 0.8801043
},
{
"target": "demand",
"time": 0.9574585
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0535417
},
{
"target": "demand",
"time": 10.1124792
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.20525
},
{
"target": "demand",
"time": 10.3798751
},
{
"target": "demand",
"time": 10.4820417
},
{
"target": "demand",
"time": 10.8667085
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.6955209,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0530417,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4472084,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 17,
"delivered": 16,
"after": "function",
"lastMetadata": {
"presentationTime": 3840,
"expectedDisplayTime": 4225,
"width": 640,
"height": 360,
"mediaTime": 10.8667085,
"presentedFrames": 0,
"processingDuration": 0
}
},
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4472084,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4159168
},
{
"target": "demand",
"time": 0.4923542
},
{
"target": "demand",
"time": 0.5749167
},
{
"target": "demand",
"time": 0.6478334
},
{
"target": "demand",
"time": 0.6943751
},
{
"target": "demand",
"time": 0.7560834
},
{
"target": "demand",
"time": 0.8023127
},
{
"target": "demand",
"time": 0.8728126
},
{
"target": "demand",
"time": 10.01
},
{
"target": "demand",
"time": 10.0375208
},
{
"target": "demand",
"time": 10.0829792
},
{
"target": "demand",
"time": 10.1301459
},
{
"target": "demand",
"time": 10.2114167
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.3139375
},
{
"target": "demand",
"time": 10.4708751
},
{
"target": "demand",
"time": 10.5959584
},
{
"target": "demand",
"time": 10.9665835
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.6023959,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.1574583,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.5956459,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 18,
"delivered": 17,
"after": "function",
"lastMetadata": {
"presentationTime": 3889,
"expectedDisplayTime": 4260,
"width": 640,
"height": 360,
"mediaTime": 10.9665835,
"presentedFrames": 0,
"processingDuration": 0
}
},
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.5956459,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-firefox-before.json",
"sha256": "4bd0026e2155c67a01948e6d1d5e2b9311671c43a919fbe1afcb7bfeccb7b559",
"stats": {
"startTime": "2026-09-13T18:41:58.781Z",
"duration": 9670.230000000001,
"expected": 3,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 0.64
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.573149,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.00002,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040641,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"mozPresentedFrames": 16
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 2044.34,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 2044.34,
"presentedFrames": 46,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040641,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"mozPresentedFrames": 16
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.24
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.36
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.04
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.32263,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000019,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 8,
"droppedFrames": 0,
"mozPresentedFrames": 8
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.164419,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 12,
"droppedFrames": 0,
"mozPresentedFrames": 12
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1268.66,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1268.66,
"presentedFrames": 34,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.164419,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 12,
"droppedFrames": 0,
"mozPresentedFrames": 12
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.64
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.572787,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000022,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 14,
"droppedFrames": 0,
"mozPresentedFrames": 14
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040242,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1533.56,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1533.56,
"presentedFrames": 45,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040242,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-main-serial.json",
"sha256": "03b6db55d420da594b52a57c2d67205f02c01941394744b5354f15ab5eb94d2d",
"stats": {
"startTime": "2026-09-13T18:42:55.708Z",
"duration": 53238.81,
"expected": 11,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"state": {
"available": true,
"selected": true,
"matrix": "bt709",
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"detachOffscreen",
"canvas",
"demand",
"demand",
"canvas",
"setTrack",
"offscreenCanvas",
"canvas",
"demand",
"demand",
"setTrack",
"detachOffscreen",
"canvas"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 1
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 1
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 1
}
],
"late": {
"reattached": true,
"widths": [
640
],
"closedWidths": [
0
],
"sameCanvas": true,
"stillOffscreen": true
},
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"demand",
"setTrack"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
}
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"state": {
"available": false,
"selected": false,
"sent": [
"init",
"canvas",
"canvas",
"canvas",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"setTrack",
"demand"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2
},
{
"target": "verifyColorSpace"
}
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.502072,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.013395,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.113412,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1309.3,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1293.7,
"presentedFrames": 19,
"processingDuration": 0.1003,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.113412,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.526936,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.018199,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.018199,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 10,
"delivered": 9,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1218.6,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1202.8,
"presentedFrames": 18,
"processingDuration": 0.0017,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.018199,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.506401,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.015474,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.122022,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 146,
"droppedFrames": 0,
"decodedFrames": 146
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 13,
"delivered": 12,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1277.3,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1261.1,
"presentedFrames": 20,
"processingDuration": 0.0902,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.122022,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 146,
"droppedFrames": 0,
"decodedFrames": 146
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.24
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.36
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 20.08
},
{
"target": "demand",
"time": 20.12
},
{
"target": "demand",
"time": 20.16
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.320528,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000024,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 8,
"droppedFrames": 0,
"mozPresentedFrames": 8
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.04332,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 259,
"droppedFrames": 0,
"mozPresentedFrames": 259
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 13,
"delivered": 12,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 11341.94,
"height": 720,
"mediaTime": 20.16,
"presentationTime": 11325.26,
"presentedFrames": 283,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.04332,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 259,
"droppedFrames": 0,
"mozPresentedFrames": 259
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js",
"column": 83,
"line": 173
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 171 | })\n 172 | await expect.poll(() => page.evaluate(() => window.jassubPixels().cssWidth)).toBeGreaterThan(before.cssWidth)\n> 173 | await expect.poll(() => page.evaluate(() => window.jassubPixels().visible)).toBeGreaterThan(100)\n | ^\n 174 | await page.evaluate(() => window.jassubPixels('fullscreen'))\n 175 | await testInfo.attach('actual-jassub-page', { body: await page.screenshot(), contentType: 'image/png' })\n 176 | if (artifact)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js:173:83"
}
],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 0,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.569257,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.00002,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 14,
"droppedFrames": 0,
"mozPresentedFrames": 14
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 10,
"delivered": 9,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1467.42,
"height": 720,
"mediaTime": 10.04,
"presentationTime": 1467.42,
"presentedFrames": 42,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.042577,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 265,
"droppedFrames": 0,
"mozPresentedFrames": 265
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.569352,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000025,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.045296,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"mozPresentedFrames": 16
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1781.14,
"height": 720,
"mediaTime": 10.08,
"presentationTime": 1781.14,
"presentedFrames": 44,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.045296,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"mozPresentedFrames": 16
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.3902917
},
{
"target": "demand",
"time": 0.4673751
},
{
"target": "demand",
"time": 0.5463542
},
{
"target": "demand",
"time": 0.6064376
},
{
"target": "demand",
"time": 0.6832501
},
{
"target": "demand",
"time": 0.7463334
},
{
"target": "demand",
"time": 0.8085626
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0278541
},
{
"target": "demand",
"time": 10.0746875
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.2118334
},
{
"target": "demand",
"time": 10.3511042
},
{
"target": "demand",
"time": 10.4221251
},
{
"target": "demand",
"time": 10.7945001
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.5697293,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.074125,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4838334,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 15,
"delivered": 14,
"after": "function",
"lastMetadata": {
"presentationTime": 3499,
"expectedDisplayTime": 3871,
"width": 640,
"height": 360,
"mediaTime": 10.7945001,
"presentedFrames": 0,
"processingDuration": 0
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.4838334,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4121043
},
{
"target": "demand",
"time": 0.4912501
},
{
"target": "demand",
"time": 0.5658959
},
{
"target": "demand",
"time": 0.6265418
},
{
"target": "demand",
"time": 0.7026459
},
{
"target": "demand",
"time": 0.7789376
},
{
"target": "demand",
"time": 0.8395627
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.01
},
{
"target": "demand",
"time": 10.0357708
},
{
"target": "demand",
"time": 10.1308542
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.2254792
},
{
"target": "demand",
"time": 10.6678751
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.5876876,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0874792,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3545417,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"presentationTime": 3225,
"expectedDisplayTime": 3667,
"width": 640,
"height": 360,
"mediaTime": 10.6678751,
"presentedFrames": 0,
"processingDuration": 0
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3545417,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4542709
},
{
"target": "demand",
"time": 0.5307709
},
{
"target": "demand",
"time": 0.6062501
},
{
"target": "demand",
"time": 0.668021
},
{
"target": "demand",
"time": 0.7470001
},
{
"target": "demand",
"time": 0.8238126
},
{
"target": "demand",
"time": 0.8870418
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0122708
},
{
"target": "demand",
"time": 10.1069583
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.1927292
},
{
"target": "demand",
"time": 10.3089584
},
{
"target": "demand",
"time": 10.3923542
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.627521,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.064875,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3830417,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"presentationTime": 3126,
"expectedDisplayTime": 3209,
"width": 640,
"height": 360,
"mediaTime": 10.3923542,
"presentedFrames": 0,
"processingDuration": 0
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3830417,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-firefox-sequence-before.json",
"sha256": "8241745ac25c13a150fe5ae475e87f12fc02f01728c6f7034ce17e402349578a",
"stats": {
"startTime": "2026-09-13T18:45:38.250Z",
"duration": 50266.196,
"expected": 2,
"skipped": 0,
"unexpected": 2,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"demand",
"setTrack",
"demand"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
}
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.24
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.36
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.321283,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000026,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 8,
"droppedFrames": 0,
"mozPresentedFrames": 8
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.045103,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1341.58,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1341.58,
"presentedFrames": 32,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.045103,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js",
"column": 83,
"line": 173
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 171 | })\n 172 | await expect.poll(() => page.evaluate(() => window.jassubPixels().cssWidth)).toBeGreaterThan(before.cssWidth)\n> 173 | await expect.poll(() => page.evaluate(() => window.jassubPixels().visible)).toBeGreaterThan(100)\n | ^\n 174 | await page.evaluate(() => window.jassubPixels('fullscreen'))\n 175 | await testInfo.attach('actual-jassub-page', { body: await page.screenshot(), contentType: 'image/png' })\n 176 | if (artifact)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js:173:83"
}
],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 0,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.24
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.36
},
{
"target": "demand",
"time": 0.4
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.313355,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.00002,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1236.42,
"height": 720,
"mediaTime": 10.04,
"presentationTime": 1236.42,
"presentedFrames": 32,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040609,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 260,
"droppedFrames": 0,
"mozPresentedFrames": 260
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true",
"project": "firefox",
"status": "timedOut",
"errors": [
{
"message": "\u001b[31mTest timeout of 20000ms exceeded.\u001b[39m"
}
],
"evidence": {
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 1280,
"height": 720,
"duration": 114.5,
"currentTime": 36.053073
}
},
"failedRequests": []
},
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": true,
"source": {
"artifact": "refactor/.cache/jassub09-before.js",
"sha256": "b1b0d3a1900a1bbb05bce5270926f15254e210d90064701546de95deb6fcd886"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "offscreenCanvas"
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 36.08
},
{
"target": "demand",
"time": 36.16
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.565851,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000021,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 14,
"droppedFrames": 0,
"mozPresentedFrames": 14
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040344,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 665,
"droppedFrames": 0,
"mozPresentedFrames": 665
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 27788.86,
"height": 720,
"mediaTime": 36.16,
"presentationTime": 27772.2,
"presentedFrames": 695,
"width": 1280
}
},
"renderCalls": [],
"offscreen": {
"available": true,
"selected": true
},
"lastPixel": {
"phase": "fullscreen",
"visible": 0,
"signature": 0,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040344,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 665,
"droppedFrames": 0,
"mozPresentedFrames": 665
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option omitted, actual capability/selection recorded. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-hybrid-legacy.json",
"sha256": "1aa83c4e7bb0b34efe4f4d8469084d1cd7519a0a4010365f9797257bbc96ee86",
"stats": {
"startTime": "2026-09-13T18:47:22.100Z",
"duration": 9347.968,
"expected": 3,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
"sha256": "e19fea01316f78245e4508999bc441c483cfb47abfa6b5afbba529af3d05bfd8",
"state": {
"available": true,
"selected": true,
"matrix": "bt709",
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"detachOffscreen",
"canvas",
"demand",
"demand",
"canvas",
"setTrack",
"offscreenCanvas",
"canvas",
"demand",
"setTrack",
"detachOffscreen",
"canvas"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 1
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 1
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 1
}
],
"late": {
"reattached": true,
"widths": [
640
],
"closedWidths": [
0
],
"sameCanvas": true,
"stillOffscreen": true
},
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
"sha256": "e19fea01316f78245e4508999bc441c483cfb47abfa6b5afbba529af3d05bfd8",
"state": {
"available": true,
"selected": true,
"matrix": null,
"sent": [
"init",
"offscreenCanvas",
"canvas",
"canvas",
"canvas",
"demand",
"getColorSpace",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"setTrack"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
}
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"jassub-native-hybrid": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
"sha256": "e19fea01316f78245e4508999bc441c483cfb47abfa6b5afbba529af3d05bfd8",
"state": {
"available": false,
"selected": false,
"sent": [
"init",
"canvas",
"canvas",
"canvas",
"demand",
"demand",
"demand",
"demand",
"setTrack",
"demand",
"demand",
"setTrack"
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2
},
{
"target": "unbusy"
},
{
"target": "verifyColorSpace"
}
],
"terminal": {
"sameCanvas": true,
"containers": 0
},
"errors": [],
"busy": false,
"lastDemand": null
},
"limitation": "Actual Worker/WASM/ASS color-space transition and native ImageBitmap; one received render is held and delivered after synchronous public setTrack to reproduce a queued message. Not unmodified event timing, GPU endurance or physical-device evidence."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
},
{
"file": "refactor/.cache/jassub09-main-thread.json",
"sha256": "faa3c2cc37789f2f5090fbd1adedd0ef2a3c0a9d55bec63b542b2e1df675f818",
"stats": {
"startTime": "2026-09-13T18:47:32.128Z",
"duration": 26690.990999999998,
"expected": 9,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=false",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.526003,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.013171,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.103159,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1332,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1316.4,
"presentedFrames": 20,
"processingDuration": 0.1035,
"width": 1280
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": true,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.103159,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.4
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.44
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
},
{
"target": "demand",
"time": 10.24
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.505578,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"decodedFrames": 16
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.015167,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.11204,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 14,
"delivered": 13,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1320.4,
"height": 720,
"mediaTime": 10.24,
"presentationTime": 1304.2,
"presentedFrames": 21,
"processingDuration": 0.1423,
"width": 1280
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": true,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.11204,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=false",
"project": "chromium",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "verifyColorSpace"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.526528,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 17,
"droppedFrames": 0,
"decodedFrames": 17
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.014992,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 142,
"droppedFrames": 0,
"decodedFrames": 142
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.11912,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 12,
"delivered": 11,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1302.3,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1286.2,
"presentedFrames": 20,
"processingDuration": 0.093,
"width": 1280
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": true,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.11912,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 145,
"droppedFrames": 0,
"decodedFrames": 145
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
},
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=false",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.44
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.48
},
{
"target": "demand",
"time": 0.52
},
{
"target": "demand",
"time": 0.56
},
{
"target": "demand",
"time": 0.6
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.567181,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000023,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 15,
"droppedFrames": 0,
"mozPresentedFrames": 15
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.045016,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"mozPresentedFrames": 16
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1845.02,
"height": 720,
"mediaTime": 10.08,
"presentationTime": 1845.02,
"presentedFrames": 44,
"width": 1280
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": true,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.045016,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 16,
"droppedFrames": 0,
"mozPresentedFrames": 16
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.4
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
},
{
"target": "demand",
"time": 10.16
},
{
"target": "demand",
"time": 10.2
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.335934,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.000022,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.166012,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 13,
"delivered": 12,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1285.92,
"height": 720,
"mediaTime": 10.2,
"presentationTime": 1285.92,
"presentedFrames": 36,
"width": 1280
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": true,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.166012,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 13,
"droppedFrames": 0,
"mozPresentedFrames": 13
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": [
{
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"resourceType": "media",
"failure": {
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
}
}
]
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=false",
"project": "firefox",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "canvas",
"width": 640,
"height": 360
},
{
"target": "demand",
"time": 0.2
},
{
"target": "getColorSpace"
},
{
"target": "demand",
"time": 0.28
},
{
"target": "demand",
"time": 0.32
},
{
"target": "demand",
"time": 0.4
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 10.04
},
{
"target": "demand",
"time": 10.08
},
{
"target": "demand",
"time": 10.12
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "render",
"images": 0,
"width": 640,
"height": 360
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 640,
"height": 360
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 2676,
"signature": 1690974404,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.335644,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 7,
"droppedFrames": 0,
"mozPresentedFrames": 7
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 6216,
"signature": 3526987101,
"width": 640,
"height": 360,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.00002,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 8,
"droppedFrames": 0,
"mozPresentedFrames": 8
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040609,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "function",
"registered": 11,
"delivered": 10,
"after": "function",
"lastMetadata": {
"expectedDisplayTime": 1271.6,
"height": 720,
"mediaTime": 10.12,
"presentationTime": 1271.6,
"presentedFrames": 33,
"width": 1280
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": true,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 22298,
"signature": 2781790832,
"width": 1280,
"height": 720,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.040609,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 9,
"droppedFrames": 0,
"mozPresentedFrames": 9
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=false",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "candidate",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.3545209
},
{
"target": "demand",
"time": 0.3980001
},
{
"target": "demand",
"time": 0.4608543
},
{
"target": "demand",
"time": 0.5068751
},
{
"target": "demand",
"time": 0.5525209
},
{
"target": "demand",
"time": 0.6133334
},
{
"target": "demand",
"time": 0.6754793
},
{
"target": "demand",
"time": 0.7524793
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0208542
},
{
"target": "demand",
"time": 10.1169167
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.2097917
},
{
"target": "demand",
"time": 10.3577917
},
{
"target": "demand",
"time": 10.7018126
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.5289167,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0728125,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3391042,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 15,
"delivered": 14,
"after": "function",
"lastMetadata": {
"presentationTime": 3314,
"expectedDisplayTime": 3658,
"width": 640,
"height": 360,
"mediaTime": 10.7018126,
"presentedFrames": 0,
"processingDuration": 0
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3391042,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=candidate",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4560209
},
{
"target": "demand",
"time": 0.4951667
},
{
"target": "demand",
"time": 0.5419792
},
{
"target": "demand",
"time": 0.6041668
},
{
"target": "demand",
"time": 0.6503543
},
{
"target": "demand",
"time": 0.7137085
},
{
"target": "demand",
"time": 0.7588334
},
{
"target": "demand",
"time": 0.8211668
},
{
"target": "demand",
"time": 0.8902085
},
{
"target": "demand",
"time": 10
},
{
"target": "demand",
"time": 10.0354166
},
{
"target": "demand",
"time": 10.1122917
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.20825
},
{
"target": "demand",
"time": 10.3439167
},
{
"target": "demand",
"time": 10.6858126
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.6252293,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.0560208,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3318751,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 16,
"delivered": 15,
"after": "function",
"lastMetadata": {
"presentationTime": 3592,
"expectedDisplayTime": 3934,
"width": 640,
"height": 360,
"mediaTime": 10.6858126,
"presentedFrames": 0,
"processingDuration": 0
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.3318751,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
},
{
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=false",
"project": "webkit",
"status": "passed",
"errors": [],
"evidence": {
"actual-jassub-evidence": {
"core": "published-5.3.1-beta.1",
"onDemandRender": true,
"customCanvas": false,
"defaultOffscreen": false,
"source": {
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
},
"subtitleSha256": "12994d1b6a07c45fd9776cb8709afc37725a8003bd90e4e829b7cc44fbadc0ec",
"resources": [
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker.js",
"status": 200,
"contentType": "text/javascript"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/jassub-worker-modern.wasm",
"status": 200,
"contentType": "application/wasm"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
},
{
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
"status": 200,
"contentType": "font/woff2"
}
],
"external": [],
"state": {
"workers": [
{
"url": "/assets/jassub/jassub-worker.js",
"terminated": 1,
"sent": [
{
"target": "init",
"width": 300,
"height": 150
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "canvas",
"width": 1280,
"height": 720
},
{
"target": "demand",
"time": 0.4306043
},
{
"target": "demand",
"time": 0.4929167
},
{
"target": "demand",
"time": 0.5552501
},
{
"target": "demand",
"time": 0.6031668
},
{
"target": "demand",
"time": 0.6637084
},
{
"target": "demand",
"time": 0.7404376
},
{
"target": "demand",
"time": 0.8029585
},
{
"target": "demand",
"time": 0.8807293
},
{
"target": "demand",
"time": 10.01
},
{
"target": "demand",
"time": 10.0482708
},
{
"target": "demand",
"time": 10.0933125
},
{
"target": "demand",
"time": 10.1870208
},
{
"target": "canvas",
"width": 2560,
"height": 1440
},
{
"target": "demand",
"time": 10.2782292
},
{
"target": "demand",
"time": 10.4092084
},
{
"target": "demand",
"time": 10.5027501
},
{
"target": "demand",
"time": 10.8563126
}
],
"received": [
{
"target": "ready"
},
{
"target": "verifyColorSpace"
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 0,
"width": 1280,
"height": 720
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 1280,
"height": 720
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "unbusy"
},
{
"target": "render",
"images": 2,
"width": 2560,
"height": 1440
},
{
"target": "unbusy"
},
{
"target": "unbusy"
}
]
}
],
"snapshots": [
{
"phase": "before-seek",
"visible": 13152,
"signature": 1263898348,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 0.625271,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "after-seek",
"visible": 30818,
"signature": 827736580,
"width": 1280,
"height": 720,
"cssWidth": 640,
"cssHeight": 360,
"time": 10.11475,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
},
{
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.5021876,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
],
"errors": [],
"frames": {
"before": "undefined",
"registered": 17,
"delivered": 16,
"after": "function",
"lastMetadata": {
"presentationTime": 3617,
"expectedDisplayTime": 3971,
"width": 640,
"height": 360,
"mediaTime": 10.8563126,
"presentedFrames": 0,
"processingDuration": 0
}
},
"renderCalls": [
{
"context": true,
"images": 0
},
{
"context": true,
"images": 0
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
},
{
"context": true,
"images": 2
}
],
"offscreen": {
"available": false,
"selected": false
},
"lastPixel": {
"phase": "fullscreen",
"visible": 119170,
"signature": 1826006850,
"width": 2560,
"height": 1440,
"cssWidth": 1280,
"cssHeight": 720,
"time": 10.5021876,
"connected": true,
"media": {
"paused": false,
"readyState": 4,
"totalFrames": 0,
"droppedFrames": 0,
"decodedFrames": 0
},
"onDemand": true
}
},
"limitation": "Actual worker, WASM and local font; offscreen option explicitly false. Canvas pixels are read from a separate canvas copying the native display bitmap. No full failure recovery, sustained GPU/memory or physical-device acceptance; candidate adds direct-then-host destruction."
},
"browser": {
"version": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"state": {
"url": "http://127.0.0.1:8084/test/player.html?core=published-5.3.1-beta.1",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.6 Safari/605.1.15",
"events": [
"video:loadedmetadata",
"ready",
"video:playing",
"video:pause",
"video:playing",
"video:pause",
"video:seeked",
"video:playing",
"destroy"
],
"media": {
"source": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
"width": 0,
"height": 0,
"duration": null,
"currentTime": 0
}
},
"failedRequests": []
}
}
}
]
}
],
"acceptance": "Not fully green: candidate default main sequence 11 pass/1 Firefox failure; prior artifact sequence also reproduces Firefox failures. Final legacy transition 3 pass and explicit main-thread 9 pass. Native hybrid bitmap interleaving only proven in Chromium; Firefox matrix=null and WebKit no transfer are ordinary-switch controls. Do not add all successful exploratory runs and present them as a completed browser matrix.",
"causeBoundary": "Serial candidate run still fails; heavy concurrent tooling is not an established explanation. Failing default page recorded no renderCalls and never called track reattachment, so the two newly guarded code paths were not entered. Full Firefox stability remains unresolved, including earlier artifact failures."
},
"checks": [
{
"file": "refactor/.cache/jassub09-lint-final.log",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"file": "refactor/.cache/jassub09-typecheck.log",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
{
"file": "refactor/.cache/jassub09-build-final.log",
"sha256": "c5a213e4e813d6372a79cea7d953782bd34098e744cb8dc8a925678d5077ff28"
},
{
"file": "refactor/.cache/jassub09-installed-final.log",
"sha256": "a777232d3ea0ffce8d21a1fd2e913b98e3813ad35c806966b44cb853249c1155"
}
],
"installed": {
"file": "refactor/.cache/jassub-package-types-558618/report.json",
"sha256": "9044948311f288109b1786ae9ce4188dbbdcb999b71dee5931eb74bf1b912106",
"reusedRunnerTask": "PKG-JASSUB-04",
"rootDeclarations": [
{
"version": "1.0.0",
"candidateSha256": "0c00ce8fd60780c7c01d23534c193cedd32898dc79739e7cf13d8700a6ab7676",
"publishedSha256": "b591ab9895eef714e5bf3db17c805a2c5278c3244f6bbd614c7c02c397a0d450",
"bytesEqual": false,
"normalizedLFSha256": "b591ab9895eef714e5bf3db17c805a2c5278c3244f6bbd614c7c02c397a0d450"
},
{
"version": "1.1.0",
"candidateSha256": "0c00ce8fd60780c7c01d23534c193cedd32898dc79739e7cf13d8700a6ab7676",
"publishedSha256": "b591ab9895eef714e5bf3db17c805a2c5278c3244f6bbd614c7c02c397a0d450",
"bytesEqual": false,
"normalizedLFSha256": "b591ab9895eef714e5bf3db17c805a2c5278c3244f6bbd614c7c02c397a0d450"
}
],
"packages": [
{
"name": "artplayer",
"archiveSha256": "0c0ea52d41575261b836aefac68280733b119c75834ecad6d4bc78edb073f4c1",
"files": {
"package/ARCHITECTURE.md": "bee98fc9d93a3911d58e98ef15f2dbe07e12f2274c444d989094248a22079e46",
"package/README.md": "1e185e65f67fc2081b4182bbc6c4558ea05b6e3fa3acc5dd0c3ac7df1d542b09",
"package/THIRD_PARTY_NOTICES": "b77b5b46b79fa0cda850b0781f78c3b1112c4ed9672fa291956fe8eff53098e7",
"package/dist/artplayer.js": "6dc8ca6d6eb34aa8a056cbc31328efd634530b3c5c60f0014cb7ce719fabc335",
"package/dist/artplayer.legacy.js": "80f74a8a39df4baf64cc00c65d21cd57c011bfcdead0da38eea077fbc67c5c04",
"package/dist/artplayer.mjs": "432e2b0ad92009a09743e020bf7c928c8b8f18a52496622b16259ec9ab20059f",
"package/dist/i18n/ar.js": "bd0bef65f4f7dc3f8ed562904cc6fa9071ff4537fb64c1e0fc3d554141bcd3cb",
"package/dist/i18n/ar.mjs": "59310b7bbeea83bbb7d73aadc5ca82a6ec269c3530d19aa741c94d5c64fc5da8",
"package/dist/i18n/cs.js": "6e2c93daba24c2e48dfa206bcf4f2f2a8a02713b856e404d2e4e4ecd8309ca2f",
"package/dist/i18n/cs.mjs": "c73fba18797d62d7b2581e67fe7340c35fe84510b2250ff1ecaad253d9cabbac",
"package/dist/i18n/es.js": "f4133ac6ea06b69a474b33c4a1809a4066e2376bb9464a3f3aa8330f01f1944a",
"package/dist/i18n/es.mjs": "1390bca3def2be115e811de337df0a0c3f63998e51359f283023246245c552a7",
"package/dist/i18n/fa.js": "8d3ef2e0f0cc0ea480c2167b6fcb87cdf444e90759c3519e8daa139fec576da4",
"package/dist/i18n/fa.mjs": "ab441e8a2d79043b29ceca87c783bf06874bb9d3a149c1604bc167eb481be2a9",
"package/dist/i18n/fr.js": "89dc4194a6c0a962b9ce756b52c90401c1acf3b159f265f3bc0d7d6d7d987f03",
"package/dist/i18n/fr.mjs": "99491878430fb7b6f2b7bf93da0588a831704b412e01116f23ba1d9d45863816",
"package/dist/i18n/id.js": "4c6dc86db741bcc2857df55a9d037e82e91d375fa6fd22e0562809ff621b92db",
"package/dist/i18n/id.mjs": "383e5803a6b6686c6de4e867770241de75b6f517dcca2bdedc6f2004bf6e1fb3",
"package/dist/i18n/pl.js": "3a38828b1c3d719c0aca9906cf6a46c23555a8411f8d57645f0e0ce8147dc664",
"package/dist/i18n/pl.mjs": "079ed96732979035297af387c64a7b99519b5a43107fb86735a654ea4fe8e9b5",
"package/dist/i18n/ru.js": "62fac9dddb302eb16382e6e9301fc4b2c66f5f69d4a358a26b67026a5fa4e787",
"package/dist/i18n/ru.mjs": "a893aeaee1d79409db72e324fbff200e3864f33ed168f04d91d25f7cf2efa765",
"package/dist/i18n/tr.js": "1492c36b069a7d73db4f3913bd18085faff7afd8b3c158138fe264e31600e38c",
"package/dist/i18n/tr.mjs": "a90478cac078836b76c2a98261907610fee07f3e4b28671b8e7dbf533778f918",
"package/dist/i18n/vi.js": "c7216ef7e608a79b7e2c479a07bf310d4ab79577947ac4a62d676faaced0e9cf",
"package/dist/i18n/vi.mjs": "66270fdfa0b5da396322d1769169b7df37a030ba15ac18eb30bd87b3af8074ec",
"package/dist/i18n/zh-tw.js": "11c49857d6d40a5ffd224ffa59c9026e71621b345f63c5a086326db80a22371a",
"package/dist/i18n/zh-tw.mjs": "a38e630cb96de96c15d824686aec750e25cf6c8ada01285a292442a81566314f",
"package/package.json": "82e92699e7c29847f32ac6767ece0401290e7d7a12854722bdbcfd09b90b7954",
"package/types/COMPATIBILITY.md": "a7da9e102a116104b513df4f7451247b7759bc502d3375f30bd5b14a541826e0",
"package/types/README.md": "1bd9868e773610e6312fd48a1c5aa20772d29df0af40c3db66e75b7ab4a1aee0",
"package/types/artplayer.d.cts": "3685065e4263abcfd9d953176e461d5b3eb990b0363b54689a7f55deba770fef",
"package/types/artplayer.d.mts": "b664fec51ee5c5381f2ceab25d99d52aee56feab04a2ee7b4ea5b2145ea5fa0e",
"package/types/artplayer.d.ts": "5d0162adf7ac6d0f2bb9b5cfe361f28657c4d9c540cadbf36eba3cc954ce50f8",
"package/types/component.d.ts": "ae5bc1ddeaa1ee1ebbc62573e32423993727079205c64751a5a314170e588a32",
"package/types/config.d.ts": "36f9a84cd436f17701a0d11d3417fc1fe0414e0c52c80083b94a85dfc329e37e",
"package/types/cssVar.d.ts": "93217860fff2ebf750f606d95ddd22220a58837119e63bdf2f5f78fd7488458b",
"package/types/emitter.d.ts": "7e1f9a2a8ce65feb95734f1ed52d1334e57aa388bbef2a43d8bc53a9b6f6623c",
"package/types/events.d.ts": "f83624c9268a284477e8bd793fe3562a2363b72f2a44d5c64fe8c6a6cede8830",
"package/types/i18n.d.ts": "f4f2f05bdfda73c74fef34767cb18ee8e11b743120b1c4598e9714d7846018e5",
"package/types/icons.d.ts": "326a67ba7bdcf52862c5b2a269e540140aff98d05c7b96196485a77f84fe5960",
"package/types/language.d.cts": "f7928e108cf7b7814c2d75cb0a525333e95873fca6cd6d89a740450656b9c1cd",
"package/types/language.d.mts": "6619a26d604b7cccbe2f596243d87ae37cfaae33b8b52874ec071d9787446f9e",
"package/types/legacy/language.d.ts": "c7abda4d506fd933c350e9030290bf9e64347a921d683a66115da1995ebe0a81",
"package/types/option.d.ts": "ccf2c8ddc537dc65c9682d39f044726e23bff18f476b622512d7e6a4b949b5f6",
"package/types/playback.d.ts": "58705c273df6e76a77a6575e769a9ec6c013785c25080f2551aa22415788d870",
"package/types/player.d.ts": "92b00211b70ac71336e495899df972a0519dd138111846044fe4e0f967966177",
"package/types/plugin.d.ts": "fc3594a41c51d8248713e33c486fb1f6a518ac5c7ce31be6988a6cd8d052c5f3",
"package/types/quality.d.ts": "1ac1a48b4f74ff9ba1ce60443e1463d50d1c6a2e5d87d63dc7d2a8eb7f4c2c34",
"package/types/runtime.d.cts": "7ee988dfea9a0ac71a34a656f96f7b74e78aa92547cfdfab7ff7e1139a77d4a3",
"package/types/runtime.d.mts": "dcb85f59a8b7714918ced0c1d18c2bb24e8b80b56d8c594e019dcbdb5ad88b08",
"package/types/runtime.d.ts": "9c6ccd39a1be293f17ae46dae8ea077053e12635ee79d73a5e3b3a559230fcff",
"package/types/runtime/component.d.ts": "1b4c0cee44568649e80140fe778febfcae88af0ac85515f1cbeff78ab0c6d14f",
"package/types/runtime/construction.d.ts": "7a87bedf6f7ffff0c46078aa5f1551e0077d35574e286516121f5f935e2d9ce4",
"package/types/runtime/events.d.ts": "a1e2f9d387475453eaf95c2a5ee79e228636c0bb859bda3fcc46da46574a0c31",
"package/types/runtime/media.d.ts": "8fc89401be7fe25542c169d07dd5675f10916ed20be8493e19695966cf3864a8",
"package/types/runtime/option.d.ts": "6e334e1a76fdcc40b4665c02523bd31c3994d96078fadeb40e23422aa54c1a1d",
"package/types/runtime/player.d.ts": "8ac6383502e4872e83659838844856903031a81a0adc8e8535feb78453aa042c",
"package/types/runtime/plugin.d.ts": "8528f2b17843149f42f9cc16d6fd70baa238c9dc2c329b67d2c38096799c69bd",
"package/types/runtime/services.d.ts": "604c9f8e4b6c0da818f96576bf9f4b0e96085a9003927b2f7ba30027b1ba237e",
"package/types/runtime/setting.d.ts": "349c1fcb205ad312916bd3ee55e6bf241ea8a569fb2ab6c80822e69fc518f7d7",
"package/types/runtime/subtitle.d.ts": "269ff84678d327b3a9dc2f5bc6cc0d731d1e081b85422e474621d5d792efb153",
"package/types/runtime/template.d.ts": "7a62f968a38b4bf9109a4439557c02074eb1d62ba1f6e21a8eb194e91f0badfe",
"package/types/runtime/utils.d.ts": "6bf731705d86853e066dbaf3b8d4003b6548423fe615b7412b722bd0d3a6e48b",
"package/types/setting.d.ts": "08305a75dff96f06490430e099338b463df471b550c1d0dac3abc8995b39eb09",
"package/types/subtitle.d.ts": "b18314e2d64efdb6045830b6e12f615ae2ed585416130e562329ad3ea337f6ce",
"package/types/template.d.ts": "4792bc0c2cbcb7966e4375118bd34b326166e0831862e94ace4cf6b1bbe6a8c8",
"package/types/utils.d.ts": "fca0d3d814df94a25f9eb067c86fa0cf272e2791bac793b91229d57680797712"
}
},
{
"name": "artplayer-plugin-jassub",
"archiveSha256": "e4919e806729c1e876a5d2e24ba34ee5cfa236dc8ff7c6c4de8e4c0091f1a144",
"files": {
"package/ARCHITECTURE.md": "bf57b230fe22d3454e190559ac43e964559b8c63ca1cc6296d681e5fca6021b3",
"package/README.md": "06ec53e11a1aed27c978987a126781874e569e6f211d712ee7021f776d7ea10b",
"package/dist/artplayer-plugin-jassub.js": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"package/dist/artplayer-plugin-jassub.legacy.js": "e19fea01316f78245e4508999bc441c483cfb47abfa6b5afbba529af3d05bfd8",
"package/dist/artplayer-plugin-jassub.mjs": "d5f9df0621de4b5a9a5a8a232e290f99a1d8a2eda1bc0f8a34a2cb530c95653e",
"package/package.json": "e5098c03fb59c920ba28318348ffa5573e162d38293d0ac39c4fd74f9ee70c9b",
"package/types/README.md": "bc8e2943831aad7022c2ce0ae1cde704284da043857d5aa4acdd3fa161da63dd",
"package/types/artplayer-plugin-jassub.d.ts": "0c00ce8fd60780c7c01d23534c193cedd32898dc79739e7cf13d8700a6ab7676",
"package/types/runtime-api.d.ts": "ece90385f39c3d3dc648476bfd798dc42348c8f050742a8226870136add5cd5b",
"package/types/runtime.d.cts": "b4557e2016dd21b6ef34206ed3116e8879afe16a59ed85eaf1618846539b24bd",
"package/types/runtime.d.mts": "6ca863aed785caa1f2707ddfc4cb8456bed2465dbb0a2a1bc12e949a2ffccadc",
"package/types/runtime.d.ts": "b4557e2016dd21b6ef34206ed3116e8879afe16a59ed85eaf1618846539b24bd",
"package/worker/jassub-worker-modern.wasm": "8a8b37463713d1f2ddbc1fbb8a35889d9565e5a6670851758b46b2216d8e513c",
"package/worker/jassub-worker.js": "0fb9a83f96fc39426e733a94f3e7fe4e37099324c08328450ba032b653e85707",
"package/worker/jassub-worker.wasm": "73880d99ba9260ac39fc4476491cf254ca784c76f3af2fb03f3f9be8065ad3c0"
}
}
],
"matrix": [
{
"plugin": "published-1.0.0",
"compiler": "5.9.3",
"mode": "node10-commonjs",
"raw": [
{
"code": 2307,
"file": "consumer.ts",
"line": 4,
"message": "Cannot find module 'artplayer-plugin-jassub/legacy' or its corresponding type declarations.\n There are types at '<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub.d.ts', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.0.0",
"compiler": "5.9.3",
"mode": "nodenext-cjs",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.cts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.0.0",
"compiler": "5.9.3",
"mode": "nodenext-esm",
"raw": [
{
"code": 2344,
"file": "consumer.mts",
"line": 10,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 11,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 11,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' does not satisfy the constraint '(...args: any) => any'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(...args: any): any'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 12,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 12,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' does not satisfy the constraint '(...args: any) => any'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(...args: any): any'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 18,
"message": "Type '(_option: JassubOption) => (_art: Artplayer) => { name: string; instance: JassubInstance; }' is not assignable to type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 19,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' is not assignable to type 'OldFactory'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(option: JassubOption): (art: Artplayer) => OldResult'."
},
{
"code": 2349,
"file": "consumer.mts",
"line": 21,
"message": "This expression is not callable.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' has no call signatures."
},
{
"code": 2349,
"file": "consumer.mts",
"line": 22,
"message": "This expression is not callable.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' has no call signatures."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.mts",
"line": 32,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 33,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 34,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 35,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 36,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 37,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 38,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.0.0",
"compiler": "5.9.3",
"mode": "bundler-esm",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.0.0",
"compiler": "4.3.5",
"mode": "node10-commonjs",
"raw": [
{
"code": 2307,
"file": "consumer.ts",
"line": 4,
"message": "Cannot find module 'artplayer-plugin-jassub/legacy' or its corresponding type declarations."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.1.0",
"compiler": "5.9.3",
"mode": "node10-commonjs",
"raw": [
{
"code": 2307,
"file": "consumer.ts",
"line": 4,
"message": "Cannot find module 'artplayer-plugin-jassub/legacy' or its corresponding type declarations.\n There are types at '<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub.d.ts', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.1.0",
"compiler": "5.9.3",
"mode": "nodenext-cjs",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.cts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.1.0",
"compiler": "5.9.3",
"mode": "nodenext-esm",
"raw": [
{
"code": 2344,
"file": "consumer.mts",
"line": 10,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 11,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 11,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' does not satisfy the constraint '(...args: any) => any'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(...args: any): any'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 12,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 12,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' does not satisfy the constraint '(...args: any) => any'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(...args: any): any'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 18,
"message": "Type '(_option: JassubOption) => (_art: Artplayer) => { name: string; instance: JassubInstance; }' is not assignable to type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 19,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' is not assignable to type 'OldFactory'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(option: JassubOption): (art: Artplayer) => OldResult'."
},
{
"code": 2349,
"file": "consumer.mts",
"line": 21,
"message": "This expression is not callable.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' has no call signatures."
},
{
"code": 2349,
"file": "consumer.mts",
"line": 22,
"message": "This expression is not callable.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' has no call signatures."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.mts",
"line": 32,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 33,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 34,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 35,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 36,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 37,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 38,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.1.0",
"compiler": "5.9.3",
"mode": "bundler-esm",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "published-1.1.0",
"compiler": "4.3.5",
"mode": "node10-commonjs",
"raw": [
{
"code": 2307,
"file": "consumer.ts",
"line": 4,
"message": "Cannot find module 'artplayer-plugin-jassub/legacy' or its corresponding type declarations."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": null
},
{
"plugin": "candidate",
"compiler": "5.9.3",
"mode": "node10-commonjs",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": {
"diagnostics": [],
"negative": [
{
"line": 74,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 74,
"message": "Type 'number' is not assignable to type 'string'."
}
]
},
{
"line": 76,
"diagnostics": [
{
"code": 2353,
"file": "consumer.ts",
"line": 76,
"message": "Object literal may only specify known properties, and 'typoOption' does not exist in type 'RuntimeOption'."
}
]
},
{
"line": 78,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 78,
"message": "Argument of type 'boolean' is not assignable to parameter of type 'number'."
}
]
},
{
"line": 80,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 80,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 82,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 82,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 84,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 84,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 86,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 86,
"message": "Property 'then' does not exist on type 'RuntimeResult'."
}
]
},
{
"line": 88,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 88,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
}
]
},
{
"line": 90,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 90,
"message": "Type 'string' is not assignable to type 'number'."
}
]
},
{
"line": 92,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 92,
"message": "Property '_index' does not exist on type 'AssEvent'."
}
]
},
{
"line": 94,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 94,
"message": "Type 'AssEvent[] | undefined' is not assignable to type 'AssEvent[]'.\n Type 'undefined' is not assignable to type 'AssEvent[]'."
}
]
},
{
"line": 96,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 96,
"message": "Argument of type 'number' is not assignable to parameter of type 'FontSource'."
}
]
},
{
"line": 98,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 98,
"message": "Property 'nonexistentMethod' does not exist on type 'RuntimeInstance'."
}
]
},
{
"line": 100,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 100,
"message": "Type '\"gpu\"' is not assignable to type '\"js\" | \"wasm\" | undefined'."
}
]
}
],
"declarations": [
"consumer.ts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.ts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "f5e31a263c5b2793182ac9ebde944ba589f6a09b15547eeb568c6ffbf228d81a"
}
},
{
"plugin": "candidate",
"compiler": "5.9.3",
"mode": "nodenext-cjs",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.cts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.cts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.cts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": {
"diagnostics": [],
"negative": [
{
"line": 74,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 74,
"message": "Type 'number' is not assignable to type 'string'."
}
]
},
{
"line": 76,
"diagnostics": [
{
"code": 2353,
"file": "consumer.cts",
"line": 76,
"message": "Object literal may only specify known properties, and 'typoOption' does not exist in type 'RuntimeOption'."
}
]
},
{
"line": 78,
"diagnostics": [
{
"code": 2345,
"file": "consumer.cts",
"line": 78,
"message": "Argument of type 'boolean' is not assignable to parameter of type 'number'."
}
]
},
{
"line": 80,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 80,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 82,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 82,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 84,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 84,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 86,
"diagnostics": [
{
"code": 2339,
"file": "consumer.cts",
"line": 86,
"message": "Property 'then' does not exist on type 'RuntimeResult'."
}
]
},
{
"line": 88,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 88,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
}
]
},
{
"line": 90,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 90,
"message": "Type 'string' is not assignable to type 'number'."
}
]
},
{
"line": 92,
"diagnostics": [
{
"code": 2339,
"file": "consumer.cts",
"line": 92,
"message": "Property '_index' does not exist on type 'AssEvent'."
}
]
},
{
"line": 94,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 94,
"message": "Type 'AssEvent[] | undefined' is not assignable to type 'AssEvent[]'.\n Type 'undefined' is not assignable to type 'AssEvent[]'."
}
]
},
{
"line": 96,
"diagnostics": [
{
"code": 2345,
"file": "consumer.cts",
"line": 96,
"message": "Argument of type 'number' is not assignable to parameter of type 'FontSource'."
}
]
},
{
"line": 98,
"diagnostics": [
{
"code": 2339,
"file": "consumer.cts",
"line": 98,
"message": "Property 'nonexistentMethod' does not exist on type 'RuntimeInstance'."
}
]
},
{
"line": 100,
"diagnostics": [
{
"code": 2322,
"file": "consumer.cts",
"line": 100,
"message": "Type '\"gpu\"' is not assignable to type '\"js\" | \"wasm\" | undefined'."
}
]
}
],
"declarations": [
"consumer.cts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.cts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "f5e31a263c5b2793182ac9ebde944ba589f6a09b15547eeb568c6ffbf228d81a",
"commonjs": {
"esModuleInterop": false,
"diagnostics": [],
"declarations": [
"consumer.cts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.cts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "bdfbbfdc72847fcc44ee5a605b9e1a55f4452f84f85aa12f5991eaa7ba4092c5"
}
}
},
{
"plugin": "candidate",
"compiler": "5.9.3",
"mode": "nodenext-esm",
"raw": [
{
"code": 2344,
"file": "consumer.mts",
"line": 10,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 11,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 11,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' does not satisfy the constraint '(...args: any) => any'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(...args: any): any'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 12,
"message": "Type 'false' does not satisfy the constraint 'true'."
},
{
"code": 2344,
"file": "consumer.mts",
"line": 12,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' does not satisfy the constraint '(...args: any) => any'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(...args: any): any'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 18,
"message": "Type '(_option: JassubOption) => (_art: Artplayer) => { name: string; instance: JassubInstance; }' is not assignable to type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 19,
"message": "Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' is not assignable to type 'OldFactory'.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' provides no match for the signature '(option: JassubOption): (art: Artplayer) => OldResult'."
},
{
"code": 2349,
"file": "consumer.mts",
"line": 21,
"message": "This expression is not callable.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' has no call signatures."
},
{
"code": 2349,
"file": "consumer.mts",
"line": 22,
"message": "This expression is not callable.\n Type 'typeof import(\"<consumer>/node_modules/artplayer-plugin-jassub/types/artplayer-plugin-jassub\")' has no call signatures."
}
],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.mts",
"line": 32,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 33,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 34,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 35,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.mts",
"line": 36,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 37,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.mts",
"line": 38,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": {
"diagnostics": [],
"negative": [
{
"line": 74,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 74,
"message": "Type 'number' is not assignable to type 'string'."
}
]
},
{
"line": 76,
"diagnostics": [
{
"code": 2353,
"file": "consumer.mts",
"line": 76,
"message": "Object literal may only specify known properties, and 'typoOption' does not exist in type 'RuntimeOption'."
}
]
},
{
"line": 78,
"diagnostics": [
{
"code": 2345,
"file": "consumer.mts",
"line": 78,
"message": "Argument of type 'boolean' is not assignable to parameter of type 'number'."
}
]
},
{
"line": 80,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 80,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 82,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 82,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 84,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 84,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 86,
"diagnostics": [
{
"code": 2339,
"file": "consumer.mts",
"line": 86,
"message": "Property 'then' does not exist on type 'RuntimeResult'."
}
]
},
{
"line": 88,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 88,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
}
]
},
{
"line": 90,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 90,
"message": "Type 'string' is not assignable to type 'number'."
}
]
},
{
"line": 92,
"diagnostics": [
{
"code": 2339,
"file": "consumer.mts",
"line": 92,
"message": "Property '_index' does not exist on type 'AssEvent'."
}
]
},
{
"line": 94,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 94,
"message": "Type 'AssEvent[] | undefined' is not assignable to type 'AssEvent[]'.\n Type 'undefined' is not assignable to type 'AssEvent[]'."
}
]
},
{
"line": 96,
"diagnostics": [
{
"code": 2345,
"file": "consumer.mts",
"line": 96,
"message": "Argument of type 'number' is not assignable to parameter of type 'FontSource'."
}
]
},
{
"line": 98,
"diagnostics": [
{
"code": 2339,
"file": "consumer.mts",
"line": 98,
"message": "Property 'nonexistentMethod' does not exist on type 'RuntimeInstance'."
}
]
},
{
"line": 100,
"diagnostics": [
{
"code": 2322,
"file": "consumer.mts",
"line": 100,
"message": "Type '\"gpu\"' is not assignable to type '\"js\" | \"wasm\" | undefined'."
}
]
}
],
"declarations": [
"consumer.mts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.mts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.mts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "f5e31a263c5b2793182ac9ebde944ba589f6a09b15547eeb568c6ffbf228d81a"
}
},
{
"plugin": "candidate",
"compiler": "5.9.3",
"mode": "bundler-esm",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": {
"diagnostics": [],
"negative": [
{
"line": 74,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 74,
"message": "Type 'number' is not assignable to type 'string'."
}
]
},
{
"line": 76,
"diagnostics": [
{
"code": 2353,
"file": "consumer.ts",
"line": 76,
"message": "Object literal may only specify known properties, and 'typoOption' does not exist in type 'RuntimeOption'."
}
]
},
{
"line": 78,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 78,
"message": "Argument of type 'boolean' is not assignable to parameter of type 'number'."
}
]
},
{
"line": 80,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 80,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 82,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 82,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 84,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 84,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 86,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 86,
"message": "Property 'then' does not exist on type 'RuntimeResult'."
}
]
},
{
"line": 88,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 88,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
}
]
},
{
"line": 90,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 90,
"message": "Type 'string' is not assignable to type 'number'."
}
]
},
{
"line": 92,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 92,
"message": "Property '_index' does not exist on type 'AssEvent'."
}
]
},
{
"line": 94,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 94,
"message": "Type 'AssEvent[] | undefined' is not assignable to type 'AssEvent[]'.\n Type 'undefined' is not assignable to type 'AssEvent[]'."
}
]
},
{
"line": 96,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 96,
"message": "Argument of type 'number' is not assignable to parameter of type 'FontSource'."
}
]
},
{
"line": 98,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 98,
"message": "Property 'nonexistentMethod' does not exist on type 'RuntimeInstance'."
}
]
},
{
"line": 100,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 100,
"message": "Type '\"gpu\"' is not assignable to type '\"js\" | \"wasm\" | undefined'."
}
]
}
],
"declarations": [
"consumer.ts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.mts",
"node_modules/artplayer/types/artplayer.d.cts",
"node_modules/artplayer/types/artplayer.d.mts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "f5e31a263c5b2793182ac9ebde944ba589f6a09b15547eeb568c6ffbf228d81a"
}
},
{
"plugin": "candidate",
"compiler": "4.3.5",
"mode": "node10-commonjs",
"raw": [],
"diagnostics": [],
"invalid": [
{
"code": 2554,
"file": "consumer.ts",
"line": 30,
"message": "Expected 1 arguments, but got 0."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 31,
"message": "Argument of type 'undefined' is not assignable to parameter of type 'JassubOption'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 32,
"message": "Argument of type '{ workerUrl: string; wasmUrl: string; }' is not assignable to parameter of type 'JassubOption'.\n Property 'modernWasmUrl' is missing in type '{ workerUrl: string; wasmUrl: string; }' but required in type 'JassubOption'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 33,
"message": "Type 'number' is not assignable to type 'string'."
},
{
"code": 2345,
"file": "consumer.ts",
"line": 34,
"message": "Argument of type '640' is not assignable to parameter of type 'boolean | undefined'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 35,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
},
{
"code": 2322,
"file": "consumer.ts",
"line": 36,
"message": "Type '\"artplayerPluginJassub\"' is not assignable to type '\"other\"'."
}
],
"runtime": {
"diagnostics": [],
"negative": [
{
"line": 74,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 74,
"message": "Type 'number' is not assignable to type 'string | undefined'."
}
]
},
{
"line": 76,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 76,
"message": "Argument of type '{ typoOption: boolean; }' is not assignable to parameter of type 'RuntimeOption'.\n Object literal may only specify known properties, and 'typoOption' does not exist in type 'RuntimeOption'."
}
]
},
{
"line": 78,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 78,
"message": "Argument of type 'true' is not assignable to parameter of type 'number | undefined'."
}
]
},
{
"line": 80,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 80,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 82,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 82,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 84,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 84,
"message": "Type 'void' is not assignable to type 'Promise<void>'."
}
]
},
{
"line": 86,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 86,
"message": "Property 'then' does not exist on type 'RuntimeResult'."
}
]
},
{
"line": 88,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 88,
"message": "Type 'Promise<void>' is not assignable to type 'void'."
}
]
},
{
"line": 90,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 90,
"message": "Type 'string' is not assignable to type 'number | undefined'."
}
]
},
{
"line": 92,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 92,
"message": "Property '_index' does not exist on type 'AssEvent'."
}
]
},
{
"line": 94,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 94,
"message": "Type 'AssEvent[] | undefined' is not assignable to type 'AssEvent[]'.\n Type 'undefined' is not assignable to type 'AssEvent[]'."
}
]
},
{
"line": 96,
"diagnostics": [
{
"code": 2345,
"file": "consumer.ts",
"line": 96,
"message": "Argument of type 'number' is not assignable to parameter of type 'FontSource'."
}
]
},
{
"line": 98,
"diagnostics": [
{
"code": 2339,
"file": "consumer.ts",
"line": 98,
"message": "Property 'nonexistentMethod' does not exist on type 'RuntimeInstance'."
}
]
},
{
"line": 100,
"diagnostics": [
{
"code": 2322,
"file": "consumer.ts",
"line": 100,
"message": "Type '\"gpu\"' is not assignable to type '\"js\" | \"wasm\" | undefined'."
}
]
}
],
"declarations": [
"consumer.ts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.ts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "f5e31a263c5b2793182ac9ebde944ba589f6a09b15547eeb568c6ffbf228d81a",
"commonjs": {
"esModuleInterop": false,
"diagnostics": [],
"declarations": [
"consumer.ts",
"node_modules/artplayer-plugin-jassub/types/runtime-api.d.ts",
"node_modules/artplayer-plugin-jassub/types/runtime.d.ts",
"node_modules/artplayer/types/artplayer.d.ts",
"node_modules/artplayer/types/component.d.ts",
"node_modules/artplayer/types/config.d.ts",
"node_modules/artplayer/types/cssVar.d.ts",
"node_modules/artplayer/types/emitter.d.ts",
"node_modules/artplayer/types/events.d.ts",
"node_modules/artplayer/types/i18n.d.ts",
"node_modules/artplayer/types/icons.d.ts",
"node_modules/artplayer/types/option.d.ts",
"node_modules/artplayer/types/playback.d.ts",
"node_modules/artplayer/types/player.d.ts",
"node_modules/artplayer/types/plugin.d.ts",
"node_modules/artplayer/types/quality.d.ts",
"node_modules/artplayer/types/setting.d.ts",
"node_modules/artplayer/types/subtitle.d.ts",
"node_modules/artplayer/types/template.d.ts",
"node_modules/artplayer/types/utils.d.ts"
],
"sourceSha256": "bdfbbfdc72847fcc44ee5a605b9e1a55f4452f84f85aa12f5991eaa7ba4092c5"
}
}
}
],
"scope": "Actual npm 1.0.0/1.1.0 and Yarn-packed candidate/core installed outside workspace; offline installation and forced frozen reinstall with unchanged lock, strictly verified installed member hashes and non-link checks; root declaration text unchanged after CRLF normalization with both raw hashes recorded, exact old diagnostics, conditional accurate runtime declarations and Node lazy factory/legacy identity. Registrars are never invoked in Node; this is not browser Worker/WASM/font rendering or publication acceptance."
},
"artifacts": [
{
"file": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
"bytes": 18538,
"docsEqual": true
},
{
"file": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
"sha256": "e19fea01316f78245e4508999bc441c483cfb47abfa6b5afbba529af3d05bfd8",
"bytes": 19517,
"docsEqual": true
},
{
"file": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.mjs",
"sha256": "d5f9df0621de4b5a9a5a8a232e290f99a1d8a2eda1bc0f8a34a2cb530c95653e",
"bytes": 38811,
"docsEqual": true
}
],
"remaining": [
"JASSUB-FIREFOX-OFFSCREEN-01 native rendering/readback/fullscreen stability",
"PKG-JASSUB-09 still doing until remaining regression disposition",
"PKG-JASSUB-05 complete combinations, devices and GPU/memory endurance",
"PKG-JASSUB-06/VENDOR-04/05 distribution and notices"
]
}