mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 19:06:15 -08:00
5442 lines
206 KiB
JSON
5442 lines
206 KiB
JSON
{
|
|
"task": "PKG-JASSUB-10",
|
|
"status": "validated",
|
|
"baselineCommit": "04060aa8b6b5cf070bac0c6a9d50eb329fab9719",
|
|
"unitRed": {
|
|
"log": "refactor/.cache/jassub-render-red.log",
|
|
"passed": 12,
|
|
"failed": 4
|
|
},
|
|
"browserRed": {
|
|
"log": "refactor/.cache/jassub-render-browser-red-final.log",
|
|
"passed": 0,
|
|
"failed": 3
|
|
},
|
|
"limitations": [
|
|
"Native fault injection, not proof of spontaneous bitmap corruption.",
|
|
"Firefox offscreen stall remains open."
|
|
],
|
|
"date": "2026-09-14T07:27:35.052Z",
|
|
"environment": {
|
|
"node": "24.21.0",
|
|
"yarn": "1.22.22",
|
|
"platform": "win32",
|
|
"engines": [
|
|
"Chromium 153.0.8010.12",
|
|
"Firefox 155.0",
|
|
"Windows WebKit 26.6"
|
|
]
|
|
},
|
|
"artifactOrigin": "Normal yarn build artplayer-plugin-jassub; no manual output edits",
|
|
"artifacts": [
|
|
{
|
|
"path": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"docs": {
|
|
"path": "docs/compiled/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
}
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae",
|
|
"docs": {
|
|
"path": "docs/compiled/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
}
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.mjs",
|
|
"sha256": "09dd8391827beafce39daa5ceb0bf098c69236c5abee4d2dbf6350354ea94098",
|
|
"docs": {
|
|
"path": "docs/compiled/artplayer-plugin-jassub.mjs",
|
|
"sha256": "09dd8391827beafce39daa5ceb0bf098c69236c5abee4d2dbf6350354ea94098"
|
|
}
|
|
}
|
|
],
|
|
"baselineArtifact": {
|
|
"path": "refactor/.cache/jassub-render-prechange.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f"
|
|
},
|
|
"inputs": [
|
|
{
|
|
"path": "packages/artplayer-plugin-jassub/src/jassub.es.js",
|
|
"sha256": "ebabca473edfbe7f9768dba25b2c2403f2c9c5dec64292fa008d8eb758e32696"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-jassub/ARCHITECTURE.md",
|
|
"sha256": "b61040dc0d9cad6ec01c3cdc25115f025173a91871d8a3a17cf479523beaf1e4"
|
|
},
|
|
{
|
|
"path": "test/jassub-offscreen.test.js",
|
|
"sha256": "e0708d5049cb4d209f185de21aee2326e8b8d956c9b4d3c764f416bb1f5ef24c"
|
|
},
|
|
{
|
|
"path": "test/browser/jassub-render-failure.spec.js",
|
|
"sha256": "3eabcdaf2c76bfca3fa7bd64873dcb2f8bd491204e6d7859c4011f5a29389f40"
|
|
},
|
|
{
|
|
"path": "test/browser/jassub-native.spec.js",
|
|
"sha256": "3198fb4314a8ac3d379beb027aed79103905f23ab615d7e54a368c7a6763e105"
|
|
},
|
|
{
|
|
"path": "refactor/scripts/jassub-vendor-patch.test.mjs",
|
|
"sha256": "212ee2b2d61cd9a72ae90389e0439f98119d1a761105be86592d8a0b01c2e1cd"
|
|
},
|
|
{
|
|
"path": "docs/assets/jassub/jassub-worker.js",
|
|
"sha256": "0fb9a83f96fc39426e733a94f3e7fe4e37099324c08328450ba032b653e85707"
|
|
},
|
|
{
|
|
"path": "docs/assets/jassub/jassub-worker.wasm",
|
|
"sha256": "73880d99ba9260ac39fc4476491cf254ca784c76f3af2fb03f3f9be8065ad3c0"
|
|
},
|
|
{
|
|
"path": "docs/assets/jassub/jassub-worker-modern.wasm",
|
|
"sha256": "8a8b37463713d1f2ddbc1fbb8a35889d9565e5a6670851758b46b2216d8e513c"
|
|
},
|
|
{
|
|
"path": "docs/assets/jassub/default.woff2",
|
|
"sha256": "886929903707c5bb28b07cd2eed69921b3d5ef5c49c73a0dd1e187ebf6546a4c"
|
|
}
|
|
],
|
|
"validation": [
|
|
{
|
|
"command": "yarn test:jassub",
|
|
"passed": 201,
|
|
"failed": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-suite-final.log",
|
|
"sha256": "5cc052851610a75450d3b91998c800f20654ba68c53a3fb68b89911616c0b025"
|
|
}
|
|
},
|
|
{
|
|
"command": "ARTPLAYER_JASSUB_ARTIFACT=<main|legacy>; node --test test/jassub-runtime.test.js test/jassub-vendor-lifecycle.test.js test/jassub-frame-polyfill.test.js test/jassub-offscreen.test.js",
|
|
"passedPerFormat": 69,
|
|
"failed": 0,
|
|
"logs": [
|
|
{
|
|
"path": "refactor/.cache/jassub-render-main-unit.log",
|
|
"sha256": "0216eb4309c06934cf648b1087c2b1eb4de4a24c388976c750f40711454c2a09"
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-legacy-unit.log",
|
|
"sha256": "0c41fcf0046d1f0f5d50ef1a2ed54f2771271064ee7107695958b217412a922d"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"command": "Final offscreen tests against exact Git prechange main",
|
|
"passed": 12,
|
|
"failed": 4,
|
|
"expectedFailure": true,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-red-exact.log",
|
|
"sha256": "b36df034d7bb1862551d420b559e4433208e4866106498569e067e8c59a1248b"
|
|
}
|
|
},
|
|
{
|
|
"command": "Strict package tsc",
|
|
"exitCode": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-types.log",
|
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
}
|
|
},
|
|
{
|
|
"command": "Targeted read-only eslint",
|
|
"exitCode": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-lint-clean.log",
|
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
}
|
|
},
|
|
{
|
|
"command": "yarn check:toolchain --strict",
|
|
"exitCode": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-toolchain.log",
|
|
"sha256": "73998cb4a2395aa495dd689a7f3677c253f077f6f381d94f13555fc3c059b4b6"
|
|
}
|
|
},
|
|
{
|
|
"command": "yarn check:types",
|
|
"files": 37,
|
|
"changed": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-declarations.log",
|
|
"sha256": "d10a5cd2101a35bd5383f1e1df591578405b14341e5cac786edd54436c8b1e73"
|
|
}
|
|
},
|
|
{
|
|
"command": "Final formatted source node --test test/jassub-offscreen.test.js",
|
|
"passed": 16,
|
|
"failed": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-source-final.log",
|
|
"sha256": "7334355be083a5c0324df8aa50bbfbe5590187cd533a93bd71a74b94033c966f"
|
|
}
|
|
},
|
|
{
|
|
"command": "node --test refactor/scripts/risk-register.test.mjs refactor/scripts/jassub-vendor-patch.test.mjs",
|
|
"passed": 3,
|
|
"failed": 0,
|
|
"log": {
|
|
"path": "refactor/.cache/jassub-render-register-checks.log",
|
|
"sha256": "c36d095d2cefbed227f9ea465f27abf4389eddb6736367ed98f221b4cf4b7df6"
|
|
}
|
|
}
|
|
],
|
|
"browserCommands": {
|
|
"fault": "ARTPLAYER_JASSUB_ARTIFACT=<artifact>; yarn test:browser test/browser/jassub-render-failure.spec.js --workers=1",
|
|
"normal": "ARTPLAYER_JASSUB_ARTIFACT=<artifact>; yarn test:browser test/browser/jassub-native.spec.js --workers=1",
|
|
"legacy": "ARTPLAYER_JASSUB_ARTIFACT=<legacy>; yarn test:browser test/browser/jassub-render-failure.spec.js test/browser/jassub-native.spec.js --workers=1",
|
|
"options": "Default diagnostics unset; native regression explicit main-thread, asyncRender enabled. No retries or timeout increases."
|
|
},
|
|
"runs": [
|
|
{
|
|
"path": "refactor/.cache/jassub-render-harness-browser/report.json",
|
|
"sha256": "ab2a5bdceaa0a59273024bf471a49875b466b68a194d6c8de5086d33abde42e7",
|
|
"classification": "Invalid initial harness, not production defect evidence",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "chromium",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "eval at evaluate (:311:30), <anonymous>",
|
|
"column": 16,
|
|
"line": 23
|
|
},
|
|
"message": "Error: page.evaluate: TypeError: Cannot read properties of undefined (reading 'addEventListener')\n at eval (eval at evaluate (:311:30), <anonymous>:23:16)\n at UtilityScript.evaluate (<anonymous>:313:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at eval (eval at evaluate (:311:30), <anonymous>:23:16)\n at UtilityScript.evaluate (<anonymous>:313:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:26:16"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"browser-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "firefox",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "@debugger eval code line 311 > eval",
|
|
"column": 7,
|
|
"line": 23
|
|
},
|
|
"message": "Error: page.evaluate: can't access property \"addEventListener\", instance is undefined\n@debugger eval code line 311 > eval:23:7\nevaluate@debugger eval code:313:16\n@debugger eval code:1:44\n@debugger eval code:1:62\n\n at @debugger eval code line 311 > eval:23:7\n at evaluate@debugger eval code:313:16\n at @debugger eval code:1:44\n at @debugger eval code:1:62\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:26:16"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"browser-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "webkit",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 16,
|
|
"line": 26
|
|
},
|
|
"message": "Error: page.evaluate: TypeError: undefined is not an object (evaluating 'instance.addEventListener')\n\n 24 | await page.locator('#play').click()\n 25 | try {\n> 26 | await page.evaluate((subtitle) => {\n | ^\n 27 | const register = window.artplayerPluginJassub.default || window.artplayerPluginJassub\n 28 | const { instance } = window.art.plugins.add(register({\n 29 | offscreenRender: false,\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:26:16"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"browser-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": [
|
|
{
|
|
"url": "http://127.0.0.1:8084/assets/jassub/default.woff2",
|
|
"resourceType": "xhr",
|
|
"failure": {
|
|
"errorText": "Load request cancelled"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-red-browser/report.json",
|
|
"sha256": "c11c2fc67a03467f261a04d97ae9d8479b109d4e52780fc8bbe9fb570a44c82a",
|
|
"classification": "Old main: native failure leaves the remaining bitmaps open",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "chromium",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 28,
|
|
"line": 77
|
|
},
|
|
"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 - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m 0,\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[2m ]\u001b[22m\n\n 75 | expect(evidence.asyncRender).toBe(true)\n 76 | expect(evidence.failure?.name).toBe('InvalidStateError')\n> 77 | expect(evidence.after).toEqual([0, 0, 0])\n | ^\n 78 | await expect.poll(() => page.evaluate(() => {\n 79 | const { instance } = window.bitmapFailureProbe\n 80 | const pixels = instance._ctx.getImageData(0, 0, instance._canvas.width, instance._canvas.height).data\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:77:28"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
434,
|
|
434
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image source is detached"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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 closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "firefox",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 28,
|
|
"line": 77
|
|
},
|
|
"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 - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m 0,\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[2m ]\u001b[22m\n\n 75 | expect(evidence.asyncRender).toBe(true)\n 76 | expect(evidence.failure?.name).toBe('InvalidStateError')\n> 77 | expect(evidence.after).toEqual([0, 0, 0])\n | ^\n 78 | await expect.poll(() => page.evaluate(() => {\n 79 | const { instance } = window.bitmapFailureProbe\n 80 | const pixels = instance._ctx.getImageData(0, 0, instance._canvas.width, instance._canvas.height).data\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:77:28"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
434,
|
|
434
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "CanvasRenderingContext2D.drawImage: Passed-in ImageBitmap is closed"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "webkit",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 28,
|
|
"line": 77
|
|
},
|
|
"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 - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m 0,\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 868,\u001b[39m\n\u001b[31m+ 868,\u001b[39m\n\u001b[2m ]\u001b[22m\n\n 75 | expect(evidence.asyncRender).toBe(true)\n 76 | expect(evidence.failure?.name).toBe('InvalidStateError')\n> 77 | expect(evidence.after).toEqual([0, 0, 0])\n | ^\n 78 | await expect.poll(() => page.evaluate(() => {\n 79 | const { instance } = window.bitmapFailureProbe\n 80 | const pixels = instance._ctx.getImageData(0, 0, instance._canvas.width, instance._canvas.height).data\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:77:28"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
|
|
"evidence": {
|
|
"before": [
|
|
868,
|
|
868,
|
|
868
|
|
],
|
|
"after": [
|
|
0,
|
|
868,
|
|
868
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "The object is in an invalid state."
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-force-busy-browser/report.json",
|
|
"sha256": "a1bfd4cb307e7cfe7f101aa90b6a8a328d2a089440038980145d530e359d7eb3",
|
|
"classification": "Intermediate candidate: all batch releases pass; two recovery failures from force while busy",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "chromium",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 9,
|
|
"line": 93
|
|
},
|
|
"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 91 | }\n 92 | return green\n> 93 | })).toBeGreaterThan(100)\n | ^\n 94 | expect(await page.evaluate(() => window.bitmapFailureProbe.errors)).toEqual([])\n 95 | }\n 96 | finally {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:93:9"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image source is detached"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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 closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "CanvasRenderingContext2D.drawImage: Passed-in ImageBitmap is closed"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "webkit",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 9,
|
|
"line": 93
|
|
},
|
|
"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 91 | }\n 92 | return green\n> 93 | })).toBeGreaterThan(100)\n | ^\n 94 | expect(await page.evaluate(() => window.bitmapFailureProbe.errors)).toEqual([])\n 95 | }\n 96 | finally {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:93:9"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"evidence": {
|
|
"before": [
|
|
868,
|
|
868,
|
|
868
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "The object is in an invalid state."
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-main-browser/report.json",
|
|
"sha256": "0c94bf1d7effb1c8d9f694a90045d6ccd03616baa887be8d777bd756bf6384c8",
|
|
"classification": "Final main fault injection and recovery",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "chromium",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image source is detached"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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 closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "CanvasRenderingContext2D.drawImage: Passed-in ImageBitmap is closed"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "webkit",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995",
|
|
"evidence": {
|
|
"before": [
|
|
868,
|
|
868,
|
|
868
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "The object is in an invalid state."
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-main-native-browser/report.json",
|
|
"sha256": "55534ea4a5754d78b8368d2445c3a8907b366361afaeacb65c25d16d2b48e3fe",
|
|
"classification": "Final main: native main-thread playback across three cores",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "chromium",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "candidate",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 17,
|
|
"receivedCount": 16
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.50815,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.016988,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.111681,
|
|
"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": 1333.8,
|
|
"height": 720,
|
|
"mediaTime": 10.2,
|
|
"presentationTime": 1317.7,
|
|
"presentedFrames": 20,
|
|
"processingDuration": 0.1064,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.111681,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 145,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 145
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "published",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 17,
|
|
"receivedCount": 16
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.506226,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.014403,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.119913,
|
|
"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": 1300.6,
|
|
"height": 720,
|
|
"mediaTime": 10.2,
|
|
"presentationTime": 1284.6,
|
|
"presentedFrames": 20,
|
|
"processingDuration": 0.103,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.119913,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 145,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 145
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"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": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 18,
|
|
"receivedCount": 17
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.507059,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.0167,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.121131,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 146,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 146
|
|
},
|
|
"onDemand": true
|
|
}
|
|
],
|
|
"errors": [],
|
|
"frames": {
|
|
"before": "function",
|
|
"registered": 14,
|
|
"delivered": 13,
|
|
"after": "function",
|
|
"lastMetadata": {
|
|
"expectedDisplayTime": 1319.5,
|
|
"height": 720,
|
|
"mediaTime": 10.24,
|
|
"presentationTime": 1303,
|
|
"presentedFrames": 21,
|
|
"processingDuration": 0.132,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.121131,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 146,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 146
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "candidate",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 15,
|
|
"receivedCount": 14
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.572448,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.000021,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040492,
|
|
"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": 1843.26,
|
|
"height": 720,
|
|
"mediaTime": 10.12,
|
|
"presentationTime": 1843.26,
|
|
"presentedFrames": 45,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040492,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 16,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 16
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "published",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 14,
|
|
"receivedCount": 13
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.577102,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040457,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 16,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 16
|
|
},
|
|
"onDemand": true
|
|
}
|
|
],
|
|
"errors": [],
|
|
"frames": {
|
|
"before": "function",
|
|
"registered": 10,
|
|
"delivered": 9,
|
|
"after": "function",
|
|
"lastMetadata": {
|
|
"expectedDisplayTime": 1568.46,
|
|
"height": 720,
|
|
"mediaTime": 10.12,
|
|
"presentationTime": 1568.46,
|
|
"presentedFrames": 45,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040457,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 16,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 16
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"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": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 14,
|
|
"receivedCount": 13
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.331069,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.000021,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040195,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 9,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 9
|
|
},
|
|
"onDemand": true
|
|
}
|
|
],
|
|
"errors": [],
|
|
"frames": {
|
|
"before": "function",
|
|
"registered": 10,
|
|
"delivered": 9,
|
|
"after": "function",
|
|
"lastMetadata": {
|
|
"expectedDisplayTime": 1246,
|
|
"height": 720,
|
|
"mediaTime": 10.08,
|
|
"presentationTime": 1246,
|
|
"presentedFrames": 32,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040195,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 9,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 9
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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 candidate core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "webkit",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "candidate",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 19,
|
|
"receivedCount": 17
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 13152,
|
|
"signature": 1263898348,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.5820834,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.0713125,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3293542,
|
|
"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": 3210,
|
|
"expectedDisplayTime": 3552,
|
|
"width": 640,
|
|
"height": 360,
|
|
"mediaTime": 10.6897709,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3293542,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 0,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 0
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "webkit",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "published",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js",
|
|
"sha256": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 22,
|
|
"receivedCount": 20
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 13152,
|
|
"signature": 1263898348,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.6690626,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.1203959,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.4891459,
|
|
"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": 3568,
|
|
"expectedDisplayTime": 3940,
|
|
"width": 640,
|
|
"height": 360,
|
|
"mediaTime": 10.8824377,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.4891459,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 0,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 0
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"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": "6dc1e7a9e2172c4983c99b2e16c969a974039e6fe9a48b94817dd0a7a30fa995"
|
|
},
|
|
"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,
|
|
"sentCount": 19,
|
|
"receivedCount": 18
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 13152,
|
|
"signature": 1263898348,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.5862292,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.1024583,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3547709,
|
|
"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": 3428,
|
|
"expectedDisplayTime": 3787,
|
|
"width": 640,
|
|
"height": 360,
|
|
"mediaTime": 10.7305418,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3547709,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 0,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 0
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-legacy-browser/report.json",
|
|
"sha256": "cc96b5249214b750293d5db4953d6bcec5eba7c28c19722458d54058ebbb5e6d",
|
|
"classification": "Final legacy: native failure/recovery and main-thread playback",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "chromium",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "candidate",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 15,
|
|
"receivedCount": 14
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.504158,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.02,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.02,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 142,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 142
|
|
},
|
|
"onDemand": true
|
|
}
|
|
],
|
|
"errors": [],
|
|
"frames": {
|
|
"before": "function",
|
|
"registered": 11,
|
|
"delivered": 10,
|
|
"after": "function",
|
|
"lastMetadata": {
|
|
"expectedDisplayTime": 1242.8,
|
|
"height": 720,
|
|
"mediaTime": 10.12,
|
|
"presentationTime": 1226.3,
|
|
"presentedFrames": 18,
|
|
"processingDuration": 0.001,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.02,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 142,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 142
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "published",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 17,
|
|
"receivedCount": 16
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.507876,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.011122,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.113968,
|
|
"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": 1284.7,
|
|
"height": 720,
|
|
"mediaTime": 10.2,
|
|
"presentationTime": 1268.7,
|
|
"presentedFrames": 20,
|
|
"processingDuration": 0.1041,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.113968,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 145,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 145
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"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.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 18,
|
|
"receivedCount": 17
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.50656,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.016375,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.118281,
|
|
"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": 1307,
|
|
"height": 720,
|
|
"mediaTime": 10.24,
|
|
"presentationTime": 1291.2,
|
|
"presentedFrames": 21,
|
|
"processingDuration": 0.1267,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.118281,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 145,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 145
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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=false",
|
|
"project": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "candidate",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 19,
|
|
"receivedCount": 18
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.557524,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.000022,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.161224,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 19,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 19
|
|
},
|
|
"onDemand": true
|
|
}
|
|
],
|
|
"errors": [],
|
|
"frames": {
|
|
"before": "function",
|
|
"registered": 15,
|
|
"delivered": 14,
|
|
"after": "function",
|
|
"lastMetadata": {
|
|
"expectedDisplayTime": 1915.22,
|
|
"height": 720,
|
|
"mediaTime": 10.2,
|
|
"presentationTime": 1915.22,
|
|
"presentedFrames": 48,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.161224,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 19,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 19
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "published",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 16,
|
|
"receivedCount": 15
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.564941,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.000021,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 14,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 14
|
|
},
|
|
"onDemand": true
|
|
},
|
|
{
|
|
"phase": "fullscreen",
|
|
"visible": 6216,
|
|
"signature": 3526987101,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 1280,
|
|
"cssHeight": 720,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040466,
|
|
"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": 1570.66,
|
|
"height": 720,
|
|
"mediaTime": 10.12,
|
|
"presentationTime": 1570.66,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040466,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 15,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 15
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"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.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 15,
|
|
"receivedCount": 14
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 2676,
|
|
"signature": 1690974404,
|
|
"width": 640,
|
|
"height": 360,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.333505,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.000021,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040411,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 10,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 10
|
|
},
|
|
"onDemand": true
|
|
}
|
|
],
|
|
"errors": [],
|
|
"frames": {
|
|
"before": "function",
|
|
"registered": 11,
|
|
"delivered": 10,
|
|
"after": "function",
|
|
"lastMetadata": {
|
|
"expectedDisplayTime": 1332.88,
|
|
"height": 720,
|
|
"mediaTime": 10.12,
|
|
"presentationTime": 1332.88,
|
|
"presentedFrames": 34,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.040411,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 10,
|
|
"droppedFrames": 0,
|
|
"mozPresentedFrames": 10
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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 candidate core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "webkit",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "candidate",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 21,
|
|
"receivedCount": 20
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 13152,
|
|
"signature": 1263898348,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.6290835,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.1345834,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.5196876,
|
|
"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": 3722,
|
|
"expectedDisplayTime": 4097,
|
|
"width": 640,
|
|
"height": 360,
|
|
"mediaTime": 10.9120002,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.5196876,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 0,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 0
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=false",
|
|
"project": "webkit",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"actual-jassub-evidence": {
|
|
"core": "published",
|
|
"onDemandRender": true,
|
|
"customCanvas": false,
|
|
"defaultOffscreen": false,
|
|
"source": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 20,
|
|
"receivedCount": 19
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 13152,
|
|
"signature": 1263898348,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.5798542,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.0724167,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3716459,
|
|
"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": 3375,
|
|
"expectedDisplayTime": 3765,
|
|
"width": 640,
|
|
"height": 360,
|
|
"mediaTime": 10.6888543,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3716459,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 0,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 0
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"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.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae"
|
|
},
|
|
"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,
|
|
"sentCount": 19,
|
|
"receivedCount": 17
|
|
}
|
|
],
|
|
"snapshots": [
|
|
{
|
|
"phase": "before-seek",
|
|
"visible": 13152,
|
|
"signature": 1263898348,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"cssWidth": 640,
|
|
"cssHeight": 360,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 0.5524376,
|
|
"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,
|
|
"clip": {
|
|
"x": 8,
|
|
"y": 8,
|
|
"width": 640,
|
|
"height": 360
|
|
},
|
|
"time": 10.1231875,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3799167,
|
|
"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": 3484,
|
|
"expectedDisplayTime": 3842,
|
|
"width": 640,
|
|
"height": 360,
|
|
"mediaTime": 10.7383334,
|
|
"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,
|
|
"clip": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"width": 1280,
|
|
"height": 720
|
|
},
|
|
"time": 10.3799167,
|
|
"connected": true,
|
|
"media": {
|
|
"paused": false,
|
|
"readyState": 4,
|
|
"totalFrames": 0,
|
|
"droppedFrames": 0,
|
|
"decodedFrames": 0
|
|
},
|
|
"onDemand": true
|
|
},
|
|
"readbackFrame": false,
|
|
"synchronousRender": false,
|
|
"screenshotReadback": false
|
|
},
|
|
"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-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "chromium",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image source is detached"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "firefox",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "CanvasRenderingContext2D.drawImage: Passed-in ImageBitmap is closed"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": [
|
|
{
|
|
"url": "http://127.0.0.1:8084/assets/sample/steve-jobs.mp4",
|
|
"resourceType": "media",
|
|
"failure": {
|
|
"errorText": "NS_ERROR_PARSED_DATA_CACHED"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "webkit",
|
|
"status": "passed",
|
|
"retry": 0,
|
|
"errors": [],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.legacy.js",
|
|
"sha256": "373682081158e2f94a64b5917efcedfef3e65c8103c07554a3a482c81d911aae",
|
|
"evidence": {
|
|
"before": [
|
|
868,
|
|
868,
|
|
868
|
|
],
|
|
"after": [
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "The object is in an invalid state."
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "refactor/.cache/jassub-render-red-exact-browser/report.json",
|
|
"sha256": "d234a22017bf8f362d680465c539f980fddc07d839e0385be30f8060580661f6",
|
|
"classification": "Final identical fault regression against exact prechange main",
|
|
"cases": [
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "chromium",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 28,
|
|
"line": 83
|
|
},
|
|
"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 - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m 0,\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[2m ]\u001b[22m\n\n 81 | expect(evidence.asyncRender).toBe(true)\n 82 | expect(evidence.failure?.name).toBe('InvalidStateError')\n> 83 | expect(evidence.after).toEqual([0, 0, 0])\n | ^\n 84 | // A busy renderer intentionally ignores resize(force); let its pending demand finish first.\n 85 | await expect.poll(() => page.evaluate(() => window.bitmapFailureProbe.instance.busy)).toBe(false)\n 86 | await page.evaluate(() => window.bitmapFailureProbe.instance.resize(0, 0, 0, 0, true))\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:83:28"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "refactor/.cache/jassub-render-prechange.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
434,
|
|
434
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image source is detached"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "153.0.8010.12",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.8010.12 Safari/537.36",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "firefox",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 28,
|
|
"line": 83
|
|
},
|
|
"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 - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m 0,\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[31m+ 434,\u001b[39m\n\u001b[2m ]\u001b[22m\n\n 81 | expect(evidence.asyncRender).toBe(true)\n 82 | expect(evidence.failure?.name).toBe('InvalidStateError')\n> 83 | expect(evidence.after).toEqual([0, 0, 0])\n | ^\n 84 | // A busy renderer intentionally ignores resize(force); let its pending demand finish first.\n 85 | await expect.poll(() => page.evaluate(() => window.bitmapFailureProbe.instance.busy)).toBe(false)\n 86 | await page.evaluate(() => window.bitmapFailureProbe.instance.resize(0, 0, 0, 0, true))\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:83:28"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "refactor/.cache/jassub-render-prechange.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
|
|
"evidence": {
|
|
"before": [
|
|
434,
|
|
434,
|
|
434
|
|
],
|
|
"after": [
|
|
0,
|
|
434,
|
|
434
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "CanvasRenderingContext2D.drawImage: Passed-in ImageBitmap is closed"
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "155.0",
|
|
"platform": "win32",
|
|
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.0",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"title": "JASSUB closes the entire bitmap batch after a native draw failure and renders the next frame",
|
|
"project": "webkit",
|
|
"status": "failed",
|
|
"retry": 0,
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js",
|
|
"column": 28,
|
|
"line": 83
|
|
},
|
|
"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 - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m 0,\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 868,\u001b[39m\n\u001b[31m+ 868,\u001b[39m\n\u001b[2m ]\u001b[22m\n\n 81 | expect(evidence.asyncRender).toBe(true)\n 82 | expect(evidence.failure?.name).toBe('InvalidStateError')\n> 83 | expect(evidence.after).toEqual([0, 0, 0])\n | ^\n 84 | // A busy renderer intentionally ignores resize(force); let its pending demand finish first.\n 85 | await expect.poll(() => page.evaluate(() => window.bitmapFailureProbe.instance.busy)).toBe(false)\n 86 | await page.evaluate(() => window.bitmapFailureProbe.instance.resize(0, 0, 0, 0, true))\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-render-failure.spec.js:83:28"
|
|
}
|
|
],
|
|
"attachments": {
|
|
"bitmap-failure": {
|
|
"artifact": "refactor/.cache/jassub-render-prechange.js",
|
|
"sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f",
|
|
"evidence": {
|
|
"before": [
|
|
868,
|
|
868,
|
|
868
|
|
],
|
|
"after": [
|
|
0,
|
|
868,
|
|
868
|
|
],
|
|
"failure": {
|
|
"name": "InvalidStateError",
|
|
"message": "The object is in an invalid state."
|
|
},
|
|
"asyncRender": true
|
|
},
|
|
"limitation": "Actual JASSUB Worker/WASM bitmap, plus two native bitmap copies. Deliberately closing the first bitmap injects a native draw error; this does not claim spontaneous Worker corruption or Firefox offscreen recovery."
|
|
},
|
|
"browser-evidence": {
|
|
"browser": "26.6",
|
|
"platform": "win32",
|
|
"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",
|
|
"errors": [],
|
|
"consoleErrors": [],
|
|
"failedRequests": []
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"notes": [
|
|
"Full suite and exact old-main red sequence precede a formatting-only if brace; the final formatted source offscreen group was re-run and passes all 16 tests. Browser test content was unchanged after final native/red-exact runs.",
|
|
"The two new bitmap copies are native resources; the fault is deliberate closure of the original Worker bitmap, not observed spontaneous corruption.",
|
|
"No public types, package version, Worker protocol, dependencies or default options changed.",
|
|
"Main/legacy each have 12 final native cases; ESM is built but not separately browser-executed.",
|
|
"JASSUB-09/05 and Firefox offscreen risk remain open. No package-wide release acceptance, remote CI, physical devices or publication is claimed."
|
|
]
|
|
}
|