{ "task": "PKG-JASSUB-09", "status": "doing", "baselineCommit": "7f185f698dbd303b00ca7bc0c21f51cf65c69a04", "node": "24.21.0", "yarn": "1.22.22", "productionChanges": false, "limitation": "Diagnostic profiles are not fixes. Intermediate controls differ as described; final source hashes are not claimed for all earlier runs. Pure native hosts passed, so core/style/compositor effects remain unresolved. Software preference is not verified GPU backend identity. Raw traces remain local; paths within attachments refer to their original shared result directory and must be resolved under each archived resultsPath.", "currentFiles": [ { "path": "test/browser/jassub-native.spec.js", "sha256": "26303f9d86cdba788409534fd6a096d202170ca1965da5c1ae078cd5c0cc0d93" }, { "path": "test/browser/jassub-platform.spec.js", "sha256": "cf86f9295a23b033d313c154c19c27d9246ed42596412f5f61ea8ee866ef7677" }, { "path": "playwright.jassub-diagnostic.config.js", "sha256": "76c596b7a10455a7223b996c58bc6ad71ed7c86b9a791bdbd5592f86e9629dc8" }, { "path": "packages/artplayer-plugin-jassub/src/jassub.es.js", "sha256": "60590f2fca6ffded74f96f8a6001a86c32eb38f5e1fae26338cbbb43e93fb70a" }, { "path": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" } ], "softwareConfigUsed": { "path": "refactor/.cache/jassub-firefox-software.config.mjs", "sha256": "41ff98209b4a26b0388284f4a1f5607e40cc93a187cca8cec4b4958d8f486f4c", "content": "import path from 'node:path'\nimport base from '../../playwright.config.js'\nconst root = process.cwd()\nexport default {\n ...base,\n testDir: path.join(root, 'test/browser'),\n outputDir: path.join(root, 'refactor/.cache/browser/results'),\n reporter: [['list'], ['json', { outputFile: path.join(root, 'refactor/.cache/browser/report.json') }]],\n projects: base.projects.filter(project => project.name === 'firefox').map(project => ({ ...project, use: { ...project.use, launchOptions: { firefoxUserPrefs: { 'gfx.webrender.software': true } } } })),\n webServer: { ...base.webServer, cwd: root },\n}\n" }, "reports": [ { "profile": "JASSUB default offscreen, animation-frame readback, hybrid seed", "reportPath": "refactor/.cache/jassub09-firefox-raf-readback.json", "sha256": "d22163a48b2be1659c5a6dbc2a24d06d881fc6109d5c93d9534622c1b09ee84c", "resultsPath": "refactor/.cache/jassub09-firefox-raf-readback-results", "stats": { "startTime": "2026-09-13T18:54:10.633Z", "duration": 45193.848999999995, "expected": 1, "skipped": 0, "unexpected": 3, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "passed", "duration": 2111, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand", "demand", "demand", "demand", "setTrack", "demand", "demand", "demand", "setTrack" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" } ], "terminal": { "sameCanvas": true, "containers": 0 }, "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "failed", "duration": 11098, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 160 | expect(offscreen.selected).toBe(defaultOffscreen && !customCanvas && offscreen.available)\n 161 | await page.locator('#play').click()\n> 162 | await expect.poll(async () => (await pixels(page)).visible).toBeGreaterThan(100)\n | ^\n 163 | const before = await pixels(page, 'before-seek')\n 164 | expect(before.connected).toBe(true)\n 165 | await page.locator('#pause').click()\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js:162:67" ], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 0, "sent": [ { "target": "init", "width": 300, "height": 150 }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.2 }, { "target": "getColorSpace" }, { "target": "demand", "time": 10.2 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [], "errors": [], "frames": { "before": "function", "registered": 4, "delivered": 3, "after": "function", "lastMetadata": { "expectedDisplayTime": 10676.6, "height": 720, "mediaTime": 10.2, "presentationTime": 10676.6, "presentedFrames": 256, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "visible": 0, "signature": 0, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.190425, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 254, "droppedFrames": 0, "mozPresentedFrames": 254 }, "onDemand": true }, "readbackFrame": true }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-0f197-false-defaultOffscreen-true-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-0f197-false-defaultOffscreen-true-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-0f197-false-defaultOffscreen-true-firefox\\trace.zip" } ] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "failed", "duration": 12417, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 160 | expect(offscreen.selected).toBe(defaultOffscreen && !customCanvas && offscreen.available)\n 161 | await page.locator('#play').click()\n> 162 | await expect.poll(async () => (await pixels(page)).visible).toBeGreaterThan(100)\n | ^\n 163 | const before = await pixels(page, 'before-seek')\n 164 | expect(before.connected).toBe(true)\n 165 | await page.locator('#pause').click()\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js:162:67" ], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 0, "sent": [ { "target": "init", "width": 300, "height": 150 }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.44 }, { "target": "getColorSpace" }, { "target": "demand", "time": 10.48 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [], "errors": [], "frames": { "before": "function", "registered": 4, "delivered": 3, "after": "function", "lastMetadata": { "expectedDisplayTime": 11260.38, "height": 720, "mediaTime": 10.48, "presentationTime": 11243.72, "presentedFrames": 263, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "visible": 0, "signature": 0, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.445192, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 260, "droppedFrames": 0, "mozPresentedFrames": 260 }, "onDemand": true }, "readbackFrame": true }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-c0461-false-defaultOffscreen-true-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-c0461-false-defaultOffscreen-true-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-c0461-false-defaultOffscreen-true-firefox\\trace.zip" } ] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "failed", "duration": 12427, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 160 | expect(offscreen.selected).toBe(defaultOffscreen && !customCanvas && offscreen.available)\n 161 | await page.locator('#play').click()\n> 162 | await expect.poll(async () => (await pixels(page)).visible).toBeGreaterThan(100)\n | ^\n 163 | const before = await pixels(page, 'before-seek')\n 164 | expect(before.connected).toBe(true)\n 165 | await page.locator('#pause').click()\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-native.spec.js:162:67" ], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 0, "sent": [ { "target": "init", "width": 300, "height": 150 }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.44 }, { "target": "getColorSpace" }, { "target": "demand", "time": 10.48 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" } ] } ], "snapshots": [], "errors": [], "frames": { "before": "function", "registered": 4, "delivered": 3, "after": "function", "lastMetadata": { "expectedDisplayTime": 11206.18, "height": 720, "mediaTime": 10.48, "presentationTime": 11189.52, "presentedFrames": 263, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "visible": 0, "signature": 0, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.445906, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 260, "droppedFrames": 0, "mozPresentedFrames": 260 }, "onDemand": true }, "readbackFrame": true }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-a4e6a-false-defaultOffscreen-true-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-a4e6a-false-defaultOffscreen-true-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-native-JASSUB-candi-a4e6a-false-defaultOffscreen-true-firefox\\trace.zip" } ] } ] }, { "profile": "JASSUB default offscreen, software WebRender requested, hybrid seed", "reportPath": "refactor/.cache/jassub09-firefox-software.json", "sha256": "49d616a9d306b0053bbd23ba09a047ac98f448c9f07a1250f03823fd3d59954f", "resultsPath": "refactor/.cache/jassub09-firefox-software-results", "stats": { "startTime": "2026-09-13T18:55:40.007Z", "duration": 11446.834, "expected": 4, "skipped": 0, "unexpected": 0, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "passed", "duration": 2292, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand", "demand", "demand", "setTrack", "demand", "demand", "demand", "demand", "setTrack" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" } ], "terminal": { "sameCanvas": true, "containers": 0 }, "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "passed", "duration": 1963, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 1, "sent": [ { "target": "init", "width": 300, "height": 150 }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.48 }, { "target": "getColorSpace" }, { "target": "demand", "time": 0.56 }, { "target": "demand", "time": 0.6 }, { "target": "demand", "time": 0.64 }, { "target": "demand", "time": 10 }, { "target": "demand", "time": 10 }, { "target": "canvas", "width": 1280, "height": 720 }, { "target": "demand", "time": 10.04 }, { "target": "demand", "time": 10.08 }, { "target": "demand", "time": 10.12 }, { "target": "demand", "time": 10.16 }, { "target": "demand", "time": 10.24 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [ { "phase": "before-seek", "visible": 2676, "signature": 1690974404, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.578111, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 13, "droppedFrames": 0, "mozPresentedFrames": 13 }, "onDemand": true }, { "phase": "after-seek", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 10.000023, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 15, "droppedFrames": 0, "mozPresentedFrames": 15 }, "onDemand": true }, { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.169707, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 19, "droppedFrames": 0, "mozPresentedFrames": 19 }, "onDemand": true } ], "errors": [], "frames": { "before": "function", "registered": 13, "delivered": 12, "after": "function", "lastMetadata": { "expectedDisplayTime": 1708.74, "height": 720, "mediaTime": 10.24, "presentationTime": 1692.06, "presentedFrames": 49, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.169707, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 19, "droppedFrames": 0, "mozPresentedFrames": 19 }, "onDemand": true }, "readbackFrame": false }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "passed", "duration": 1900, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 1, "sent": [ { "target": "init", "width": 300, "height": 150 }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.48 }, { "target": "getColorSpace" }, { "target": "demand", "time": 0.52 }, { "target": "demand", "time": 0.56 }, { "target": "demand", "time": 0.6 }, { "target": "demand", "time": 0.64 }, { "target": "demand", "time": 0.68 }, { "target": "demand", "time": 10 }, { "target": "demand", "time": 10 }, { "target": "canvas", "width": 1280, "height": 720 }, { "target": "demand", "time": 10.04 }, { "target": "demand", "time": 10.08 }, { "target": "demand", "time": 10.12 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [ { "phase": "before-seek", "visible": 2676, "signature": 1690974404, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.60064, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 14, "droppedFrames": 0, "mozPresentedFrames": 14 }, "onDemand": true }, { "phase": "after-seek", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 10.000024, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 16, "droppedFrames": 0, "mozPresentedFrames": 16 }, "onDemand": true }, { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.040616, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 17, "droppedFrames": 0, "mozPresentedFrames": 17 }, "onDemand": true } ], "errors": [], "frames": { "before": "function", "registered": 13, "delivered": 12, "after": "function", "lastMetadata": { "expectedDisplayTime": 1611.14, "height": 720, "mediaTime": 10.12, "presentationTime": 1611.14, "presentedFrames": 48, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.040616, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 17, "droppedFrames": 0, "mozPresentedFrames": 17 }, "onDemand": true }, "readbackFrame": false }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "passed", "duration": 1888, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 1, "sent": [ { "target": "init", "width": 300, "height": 150 }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.44 }, { "target": "getColorSpace" }, { "target": "demand", "time": 0.48 }, { "target": "demand", "time": 0.52 }, { "target": "demand", "time": 0.56 }, { "target": "demand", "time": 0.6 }, { "target": "demand", "time": 10 }, { "target": "demand", "time": 10 }, { "target": "canvas", "width": 1280, "height": 720 }, { "target": "demand", "time": 10.04 }, { "target": "demand", "time": 10.08 }, { "target": "demand", "time": 10.12 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [ { "phase": "before-seek", "visible": 2676, "signature": 1690974404, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.565826, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 13, "droppedFrames": 0, "mozPresentedFrames": 13 }, "onDemand": true }, { "phase": "after-seek", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 10.000019, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 15, "droppedFrames": 0, "mozPresentedFrames": 15 }, "onDemand": true }, { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.040477, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 16, "droppedFrames": 0, "mozPresentedFrames": 16 }, "onDemand": true } ], "errors": [], "frames": { "before": "function", "registered": 12, "delivered": 11, "after": "function", "lastMetadata": { "expectedDisplayTime": 1583.56, "height": 720, "mediaTime": 10.12, "presentationTime": 1583.56, "presentedFrames": 45, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.040477, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 16, "droppedFrames": 0, "mozPresentedFrames": 16 }, "onDemand": true }, "readbackFrame": false }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "JASSUB default offscreen, asyncRender=false, hybrid seed", "reportPath": "refactor/.cache/jassub09-firefox-sync-render.json", "sha256": "e8a1904028668372d42767d3da44052df6d7f4009934175751d61e93527e7d09", "resultsPath": "refactor/.cache/jassub09-firefox-sync-render-results", "stats": { "startTime": "2026-09-13T18:58:26.541Z", "duration": 10769.944, "expected": 4, "skipped": 0, "unexpected": 0, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "passed", "duration": 2087, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand", "demand", "demand", "demand", "setTrack", "demand", "demand", "demand", "setTrack" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" } ], "terminal": { "sameCanvas": true, "containers": 0 }, "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with candidate core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "passed", "duration": 1859, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 1, "sent": [ { "target": "init", "width": 300, "height": 150, "asyncRender": false }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.44 }, { "target": "getColorSpace" }, { "target": "demand", "time": 0.48 }, { "target": "demand", "time": 0.52 }, { "target": "demand", "time": 0.56 }, { "target": "demand", "time": 0.6 }, { "target": "demand", "time": 0.64 }, { "target": "demand", "time": 10 }, { "target": "demand", "time": 10 }, { "target": "canvas", "width": 1280, "height": 720 }, { "target": "demand", "time": 10.04 }, { "target": "demand", "time": 10.08 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [ { "phase": "before-seek", "visible": 2676, "signature": 1690974404, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.563054, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 13, "droppedFrames": 0, "mozPresentedFrames": 13 }, "onDemand": true }, { "phase": "after-seek", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 10.000021, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 15, "droppedFrames": 0, "mozPresentedFrames": 15 }, "onDemand": true }, { "phase": "fullscreen", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 1280, "cssHeight": 720, "time": 10.045057, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 16, "droppedFrames": 0, "mozPresentedFrames": 16 }, "onDemand": true } ], "errors": [], "frames": { "before": "function", "registered": 12, "delivered": 11, "after": "function", "lastMetadata": { "expectedDisplayTime": 1546.4, "height": 720, "mediaTime": 10.08, "presentationTime": 1546.4, "presentedFrames": 45, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "phase": "fullscreen", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 1280, "cssHeight": 720, "time": 10.045057, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 16, "droppedFrames": 0, "mozPresentedFrames": 16 }, "onDemand": true }, "readbackFrame": false, "synchronousRender": true }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "passed", "duration": 1738, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 1, "sent": [ { "target": "init", "width": 300, "height": 150, "asyncRender": false }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.2 }, { "target": "getColorSpace" }, { "target": "demand", "time": 0.24 }, { "target": "demand", "time": 0.28 }, { "target": "demand", "time": 0.32 }, { "target": "demand", "time": 0.36 }, { "target": "demand", "time": 10 }, { "target": "demand", "time": 10 }, { "target": "canvas", "width": 1280, "height": 720 }, { "target": "demand", "time": 10.04 }, { "target": "demand", "time": 10.08 }, { "target": "demand", "time": 10.12 }, { "target": "demand", "time": 10.16 }, { "target": "demand", "time": 10.2 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [ { "phase": "before-seek", "visible": 2676, "signature": 1690974404, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.316549, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 7, "droppedFrames": 0, "mozPresentedFrames": 7 }, "onDemand": true }, { "phase": "after-seek", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 10.000025, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 8, "droppedFrames": 0, "mozPresentedFrames": 8 }, "onDemand": true }, { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.166352, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 12, "droppedFrames": 0, "mozPresentedFrames": 12 }, "onDemand": true } ], "errors": [], "frames": { "before": "function", "registered": 14, "delivered": 13, "after": "function", "lastMetadata": { "expectedDisplayTime": 1421.2, "height": 720, "mediaTime": 10.2, "presentationTime": 1421.2, "presentedFrames": 34, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.166352, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 12, "droppedFrames": 0, "mozPresentedFrames": 12 }, "onDemand": true }, "readbackFrame": false, "synchronousRender": true }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [] }, { "title": "JASSUB candidate artifact renders actual WASM subtitles through seek and layout with published-5.3.1-beta.1 core, customCanvas=false, defaultOffscreen=true", "project": "firefox", "status": "passed", "duration": 1583, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": { "source": { "artifact": "packages/artplayer-plugin-jassub/dist/artplayer-plugin-jassub.js", "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f" }, "state": { "workers": [ { "url": "/assets/jassub/jassub-worker.js", "terminated": 1, "sent": [ { "target": "init", "width": 300, "height": 150, "asyncRender": false }, { "target": "offscreenCanvas" }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "canvas", "width": 640, "height": 360 }, { "target": "demand", "time": 0.2 }, { "target": "getColorSpace" }, { "target": "demand", "time": 0.24 }, { "target": "demand", "time": 0.28 }, { "target": "demand", "time": 0.32 }, { "target": "demand", "time": 0.36 }, { "target": "demand", "time": 10 }, { "target": "demand", "time": 10 }, { "target": "canvas", "width": 1280, "height": 720 }, { "target": "demand", "time": 10.04 }, { "target": "demand", "time": 10.08 }, { "target": "demand", "time": 10.12 } ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" } ] } ], "snapshots": [ { "phase": "before-seek", "visible": 2676, "signature": 1690974404, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 0.315222, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 7, "droppedFrames": 0, "mozPresentedFrames": 7 }, "onDemand": true }, { "phase": "after-seek", "visible": 6216, "signature": 3526987101, "width": 640, "height": 360, "cssWidth": 640, "cssHeight": 360, "time": 10.00002, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 8, "droppedFrames": 0, "mozPresentedFrames": 8 }, "onDemand": true }, { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.040418, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 9, "droppedFrames": 0, "mozPresentedFrames": 9 }, "onDemand": true } ], "errors": [], "frames": { "before": "function", "registered": 12, "delivered": 11, "after": "function", "lastMetadata": { "expectedDisplayTime": 1320.98, "height": 720, "mediaTime": 10.12, "presentationTime": 1320.98, "presentedFrames": 32, "width": 1280 } }, "renderCalls": [], "offscreen": { "available": true, "selected": true }, "lastPixel": { "phase": "fullscreen", "visible": 22298, "signature": 2781790832, "width": 1280, "height": 720, "cssWidth": 1280, "cssHeight": 720, "time": 10.040418, "connected": true, "media": { "paused": false, "readyState": 4, "totalFrames": 9, "droppedFrames": 0, "mozPresentedFrames": 9 }, "onDemand": true }, "readbackFrame": false, "synchronousRender": true }, "defaultOffscreen": true }, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Worker fillRect, initial native host, hybrid seed", "reportPath": "refactor/.cache/jassub09-firefox-platform.json", "sha256": "a23e16fa398737687e455ba2f8494dd5dee48b878460fe30a43cce12017f523a", "resultsPath": "refactor/.cache/jassub09-firefox-platform-results", "stats": { "startTime": "2026-09-13T18:57:23.035Z", "duration": 8438.881, "expected": 4, "skipped": 0, "unexpected": 0, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "passed", "duration": 2076, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand", "demand", "demand", "demand", "setTrack", "demand", "demand", "setTrack" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" } ], "terminal": { "sameCanvas": true, "containers": 0 }, "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "passed", "duration": 958, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "candidate", "evidence": { "offscreen": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.284068, "frames": 10, "sent": 10, "received": 10, "quality": 7 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. JASSUB wrapper, WASM, fonts and ImageBitmap rendering are absent. Capability fallback on hosts without transfer is main-thread painting, not offscreen verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "passed", "duration": 1019, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.285671, "frames": 10, "sent": 10, "received": 10, "quality": 7 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. JASSUB wrapper, WASM, fonts and ImageBitmap rendering are absent. Capability fallback on hosts without transfer is main-thread painting, not offscreen verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 940, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "pixel": [ 0, 0, 255, 255 ], "width": 960, "height": 540, "time": 10.201786, "frames": 9, "sent": 9, "received": 9, "quality": 5 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. JASSUB wrapper, WASM, fonts and ImageBitmap rendering are absent. Capability fallback on hosts without transfer is main-thread painting, not offscreen verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Worker ImageBitmap, initial native host 960x540, hybrid seed; attachment limitation incorrectly said no ImageBitmap", "reportPath": "refactor/.cache/jassub09-firefox-platform-bitmap.json", "sha256": "4d375c8d46f91d5ea27040afc7e85e107d43921d8ae3808f48a1f137e7bb039d", "resultsPath": "refactor/.cache/jassub09-firefox-platform-bitmap-results", "stats": { "startTime": "2026-09-13T18:59:55.790Z", "duration": 43776.993, "expected": 2, "skipped": 0, "unexpected": 2, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "passed", "duration": 2365, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand", "demand", "demand", "demand", "setTrack", "demand", "demand", "demand", "setTrack" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" } ], "terminal": { "sameCanvas": true, "containers": 0 }, "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "failed", "duration": 10787, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 83 | }, { host, bitmap })\n 84 | try {\n> 85 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([255, 0, 0, 255])\n | ^\n 86 | const before = await page.evaluate(() => window.nativeCanvasProbe.sample())\n 87 | await page.evaluate(async () => {\n 88 | const video = window.nativeCanvasProbe.video\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:85:107" ], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": true, "pixel": [ 0, 0, 255, 255 ], "width": 640, "height": 360, "time": 10.075562, "frames": 3, "sent": 3, "received": 2, "quality": 251 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. JASSUB wrapper, WASM, fonts and ImageBitmap rendering are absent. Capability fallback on hosts without transfer is main-thread painting, not offscreen verification." }, "jassub": null, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\trace.zip" } ] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "timedOut", "duration": 22200, "browser": "155.0", "platform": "win32", "errors": [ "Test timeout of 20000ms exceeded.", "Error: expect(received).toBeGreaterThan(expected)\n\nExpected: > 640\nReceived: 640\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 103 | }\n 104 | }, host)\n> 105 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).width).toBeGreaterThan(before.width)\n | ^\n 106 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).time).toBeGreaterThan(10.2)\n 107 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n 108 | }\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:105:107" ], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": true, "pixel": [ 0, 0, 0, 0 ], "width": 1280, "height": 720, "time": 20.154108, "frames": 8, "sent": 8, "received": 7, "quality": 504 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. JASSUB wrapper, WASM, fonts and ImageBitmap rendering are absent. Capability fallback on hosts without transfer is main-thread painting, not offscreen verification." }, "jassub": null, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-28634-ut-without-JASSUB-published-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-28634-ut-without-JASSUB-published-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-28634-ut-without-JASSUB-published-firefox\\trace.zip" } ] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 1798, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": true, "pixel": [ 0, 0, 255, 255 ], "width": 960, "height": 540, "time": 10.24264, "frames": 10, "sent": 10, "received": 10, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. JASSUB wrapper, WASM, fonts and ImageBitmap rendering are absent. Capability fallback on hosts without transfer is main-thread painting, not offscreen verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Worker ImageBitmap, script-free native host and matched viewport, hybrid seed", "reportPath": "refactor/.cache/jassub09-firefox-platform-matched.json", "sha256": "3504b38aab7ceadfc9faee4b0dd2796d19cd737bbb1a1e3bfb94a571dc55c1e3", "resultsPath": "refactor/.cache/jassub09-firefox-platform-matched-results", "stats": { "startTime": "2026-09-13T19:05:46.891Z", "duration": 33957.972, "expected": 2, "skipped": 0, "unexpected": 2, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "failed", "duration": 12211, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 89 | return { available: probe.available, selected: probe.selected, matrix }\n 90 | }, subtitle)\n> 91 | await expect.poll(() => page.evaluate(() => window.hybridProbe.pixels().visible)).toBeGreaterThan(100)\n | ^\n 92 | const before = await page.evaluate(() => window.hybridProbe.pixels())\n 93 | expect(capabilities.selected).toBe(capabilities.available)\n 94 | const hybridExpected = capabilities.selected && ['bt709', 'bt470bg', 'smpte170m'].includes(capabilities.matrix)\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-hybrid.spec.js:91:87" ], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" } ], "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-hybrid-JASSUB-actua-ba712-ap-and-terminal-track-calls-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-hybrid-JASSUB-actua-ba712-ap-and-terminal-track-calls-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-hybrid-JASSUB-actua-ba712-ap-and-terminal-track-calls-firefox\\trace.zip" } ] }, { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "failed", "duration": 11983, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 109 | await video.play()\n 110 | })\n> 111 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n | ^\n 112 | await page.evaluate((host) => {\n 113 | if (host === 'native') {\n 114 | Object.assign(window.nativeCanvasProbe.video.style, { position: 'fixed', inset: '0', width: '100vw', height: '100vh' })\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:111:107" ], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 116 }, { "stage": "bitmap-ready", "time": 0, "at": 117 }, { "stage": "drawn", "time": 0, "at": 118 }, { "stage": "bitmap-start", "time": 0.052674, "at": 183 }, { "stage": "bitmap-ready", "time": 0.052674, "at": 184 }, { "stage": "drawn", "time": 0.052674, "at": 184 }, { "stage": "bitmap-start", "time": 10, "at": 500 }, { "stage": "bitmap-ready", "time": 10, "at": 10510 }, { "stage": "drawn", "time": 10, "at": 10510 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 640, "height": 360, "time": 19.981265, "frames": 3, "sent": 3, "received": 3, "quality": 250 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\trace.zip" } ] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "passed", "duration": 1839, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 92 }, { "stage": "bitmap-ready", "time": 0, "at": 92 }, { "stage": "drawn", "time": 0, "at": 93 }, { "stage": "bitmap-start", "time": 0.040613, "at": 157 }, { "stage": "bitmap-ready", "time": 0.040613, "at": 157 }, { "stage": "drawn", "time": 0.040613, "at": 157 }, { "stage": "bitmap-start", "time": 10, "at": 191 }, { "stage": "bitmap-ready", "time": 10, "at": 191 }, { "stage": "drawn", "time": 10, "at": 192 }, { "stage": "bitmap-start", "time": 10.000023, "at": 477 }, { "stage": "bitmap-ready", "time": 10.000023, "at": 479 }, { "stage": "drawn", "time": 10.000023, "at": 483 }, { "stage": "bitmap-start", "time": 10.040591, "at": 508 }, { "stage": "bitmap-ready", "time": 10.040591, "at": 511 }, { "stage": "drawn", "time": 10.040591, "at": 514 }, { "stage": "bitmap-start", "time": 10.080739, "at": 561 }, { "stage": "bitmap-ready", "time": 10.080739, "at": 562 }, { "stage": "drawn", "time": 10.080739, "at": 564 }, { "stage": "bitmap-start", "time": 10.121073, "at": 594 }, { "stage": "bitmap-ready", "time": 10.121073, "at": 596 }, { "stage": "drawn", "time": 10.121073, "at": 598 }, { "stage": "bitmap-start", "time": 10.163093, "at": 644 }, { "stage": "bitmap-ready", "time": 10.163093, "at": 647 }, { "stage": "drawn", "time": 10.163093, "at": 649 }, { "stage": "bitmap-start", "time": 10.203433, "at": 677 }, { "stage": "bitmap-ready", "time": 10.203433, "at": 680 }, { "stage": "drawn", "time": 10.203433, "at": 681 }, { "stage": "bitmap-start", "time": 10.244072, "at": 726 }, { "stage": "bitmap-ready", "time": 10.244072, "at": 728 }, { "stage": "drawn", "time": 10.244072, "at": 730 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.244072, "frames": 10, "sent": 10, "received": 10, "quality": 7 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 965, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 28 }, { "stage": "bitmap-ready", "time": 0, "at": 29 }, { "stage": "drawn", "time": 0, "at": 30 }, { "stage": "bitmap-start", "time": 0.040632, "at": 80 }, { "stage": "bitmap-ready", "time": 0.040632, "at": 80 }, { "stage": "drawn", "time": 0.040632, "at": 81 }, { "stage": "bitmap-start", "time": 10, "at": 368 }, { "stage": "bitmap-ready", "time": 10, "at": 368 }, { "stage": "drawn", "time": 10, "at": 368 }, { "stage": "bitmap-start", "time": 10.000023, "at": 396 }, { "stage": "bitmap-ready", "time": 10.000023, "at": 397 }, { "stage": "drawn", "time": 10.000023, "at": 401 }, { "stage": "bitmap-start", "time": 10.041058, "at": 430 }, { "stage": "bitmap-ready", "time": 10.041058, "at": 431 }, { "stage": "drawn", "time": 10.041058, "at": 434 }, { "stage": "bitmap-start", "time": 10.081799, "at": 466 }, { "stage": "bitmap-ready", "time": 10.081799, "at": 468 }, { "stage": "drawn", "time": 10.081799, "at": 469 }, { "stage": "bitmap-start", "time": 10.122462, "at": 505 }, { "stage": "bitmap-ready", "time": 10.122462, "at": 507 }, { "stage": "drawn", "time": 10.122462, "at": 508 }, { "stage": "bitmap-start", "time": 10.16302, "at": 546 }, { "stage": "bitmap-ready", "time": 10.16302, "at": 548 }, { "stage": "drawn", "time": 10.16302, "at": 549 }, { "stage": "bitmap-start", "time": 10.203452, "at": 588 }, { "stage": "bitmap-ready", "time": 10.203452, "at": 589 }, { "stage": "drawn", "time": 10.203452, "at": 590 }, { "stage": "bitmap-start", "time": 10.243697, "at": 632 }, { "stage": "bitmap-ready", "time": 10.243697, "at": 634 }, { "stage": "drawn", "time": 10.243697, "at": 636 } ], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.243697, "frames": 10, "sent": 10, "received": 10, "quality": 7 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Matched control plus software WebRender requested, hybrid seed", "reportPath": "refactor/.cache/jassub09-firefox-platform-software.json", "sha256": "1abe7886296272e604cd0c08a2e536be846e54835cf79e126fa40b962376ceb0", "resultsPath": "refactor/.cache/jassub09-firefox-platform-software-results", "stats": { "startTime": "2026-09-13T19:06:43.149Z", "duration": 28568.394, "expected": 3, "skipped": 0, "unexpected": 1, "flaky": 0 }, "cases": [ { "title": "JASSUB actual subtitle color-space transitions tolerate a queued native hybrid bitmap and terminal track calls", "project": "firefox", "status": "passed", "duration": 1893, "browser": "155.0", "platform": "win32", "errors": [], "control": null, "jassub": null, "hybrid": { "sha256": "fb8cd8b7b6fb57a7866f929cfe20f7f582c86af96101f23c572dd79b4912dc9f", "state": { "available": true, "selected": true, "matrix": null, "sent": [ "init", "offscreenCanvas", "canvas", "canvas", "canvas", "demand", "getColorSpace", "demand", "demand", "demand", "setTrack", "demand", "setTrack" ], "received": [ { "target": "ready" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "unbusy" }, { "target": "verifyColorSpace" }, { "target": "unbusy" }, { "target": "verifyColorSpace" } ], "terminal": { "sameCanvas": true, "containers": 0 }, "errors": [], "busy": false, "lastDemand": null } }, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "passed", "duration": 969, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 32 }, { "stage": "bitmap-ready", "time": 0, "at": 33 }, { "stage": "drawn", "time": 0, "at": 34 }, { "stage": "bitmap-start", "time": 0.04032, "at": 99 }, { "stage": "bitmap-ready", "time": 0.04032, "at": 99 }, { "stage": "drawn", "time": 0.04032, "at": 100 }, { "stage": "bitmap-start", "time": 10.000021, "at": 379 }, { "stage": "bitmap-ready", "time": 10.000021, "at": 380 }, { "stage": "drawn", "time": 10.000021, "at": 413 }, { "stage": "bitmap-start", "time": 10.040633, "at": 429 }, { "stage": "bitmap-ready", "time": 10.040633, "at": 430 }, { "stage": "drawn", "time": 10.040633, "at": 430 }, { "stage": "bitmap-start", "time": 10.081222, "at": 462 }, { "stage": "bitmap-ready", "time": 10.081222, "at": 463 }, { "stage": "drawn", "time": 10.081222, "at": 463 }, { "stage": "bitmap-start", "time": 10.121777, "at": 514 }, { "stage": "bitmap-ready", "time": 10.121777, "at": 516 }, { "stage": "drawn", "time": 10.121777, "at": 519 }, { "stage": "bitmap-start", "time": 10.161893, "at": 548 }, { "stage": "bitmap-ready", "time": 10.161893, "at": 551 }, { "stage": "drawn", "time": 10.161893, "at": 553 }, { "stage": "bitmap-start", "time": 10.202426, "at": 584 }, { "stage": "bitmap-ready", "time": 10.202426, "at": 586 }, { "stage": "drawn", "time": 10.202426, "at": 587 }, { "stage": "bitmap-start", "time": 10.242986, "at": 635 }, { "stage": "bitmap-ready", "time": 10.242986, "at": 637 }, { "stage": "drawn", "time": 10.242986, "at": 639 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.242986, "frames": 9, "sent": 9, "received": 9, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "failed", "duration": 18995, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 99 | }, { host, bitmap })\n 100 | try {\n> 101 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([255, 0, 0, 255])\n | ^\n 102 | const before = await page.evaluate(() => window.nativeCanvasProbe.sample())\n 103 | await page.evaluate(async () => {\n 104 | const video = window.nativeCanvasProbe.video\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:101:107" ], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 31 }, { "stage": "bitmap-ready", "time": 0, "at": 32 }, { "stage": "drawn", "time": 0, "at": 33 }, { "stage": "bitmap-start", "time": 0.040297, "at": 96 }, { "stage": "bitmap-ready", "time": 0.040297, "at": 18325 }, { "stage": "drawn", "time": 0.040297, "at": 18326 } ], "errors": [], "coreLoaded": true, "pixel": [ 255, 0, 0, 255 ], "width": 640, "height": 360, "time": 18.29168, "frames": 3, "sent": 3, "received": 2, "quality": 456 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-28634-ut-without-JASSUB-published-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-28634-ut-without-JASSUB-published-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-28634-ut-without-JASSUB-published-firefox\\trace.zip" } ] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 1776, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 166 }, { "stage": "bitmap-ready", "time": 0, "at": 167 }, { "stage": "drawn", "time": 0, "at": 168 }, { "stage": "bitmap-start", "time": 0.040431, "at": 220 }, { "stage": "bitmap-ready", "time": 0.040431, "at": 221 }, { "stage": "drawn", "time": 0.040431, "at": 221 }, { "stage": "bitmap-start", "time": 10, "at": 539 }, { "stage": "bitmap-ready", "time": 10, "at": 539 }, { "stage": "drawn", "time": 10, "at": 539 }, { "stage": "bitmap-start", "time": 10.000019, "at": 563 }, { "stage": "bitmap-ready", "time": 10.000019, "at": 565 }, { "stage": "drawn", "time": 10.000019, "at": 568 }, { "stage": "bitmap-start", "time": 10.051738, "at": 613 }, { "stage": "bitmap-ready", "time": 10.051738, "at": 615 }, { "stage": "drawn", "time": 10.051738, "at": 618 }, { "stage": "bitmap-start", "time": 10.092131, "at": 648 }, { "stage": "bitmap-ready", "time": 10.092131, "at": 649 }, { "stage": "drawn", "time": 10.092131, "at": 651 }, { "stage": "bitmap-start", "time": 10.132581, "at": 689 }, { "stage": "bitmap-ready", "time": 10.132581, "at": 689 }, { "stage": "drawn", "time": 10.132581, "at": 691 }, { "stage": "bitmap-start", "time": 10.173092, "at": 731 }, { "stage": "bitmap-ready", "time": 10.173092, "at": 733 }, { "stage": "drawn", "time": 10.173092, "at": 735 }, { "stage": "bitmap-start", "time": 10.213372, "at": 769 }, { "stage": "bitmap-ready", "time": 10.213372, "at": 771 }, { "stage": "drawn", "time": 10.213372, "at": 771 } ], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.213372, "frames": 9, "sent": 9, "received": 9, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Matched ImageBitmap control, idle readback, no seed", "reportPath": "refactor/.cache/jassub09-firefox-platform-idle.json", "sha256": "6f5c83a61672e097b8bd58283058b4dcd05970a06c823cd2da8d28ff090fa8e3", "resultsPath": "refactor/.cache/jassub09-firefox-platform-idle-results", "stats": { "startTime": "2026-09-13T19:08:10.952Z", "duration": 7130.853999999999, "expected": 3, "skipped": 0, "unexpected": 0, "flaky": 0 }, "cases": [ { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "passed", "duration": 1840, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": true, "idleReadback": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 87 }, { "stage": "bitmap-ready", "time": 0, "at": 88 }, { "stage": "drawn", "time": 0, "at": 88 }, { "stage": "bitmap-start", "time": 0.040379, "at": 145 }, { "stage": "bitmap-ready", "time": 0.040379, "at": 145 }, { "stage": "drawn", "time": 0.040379, "at": 145 }, { "stage": "bitmap-start", "time": 10.000021, "at": 461 }, { "stage": "bitmap-ready", "time": 10.000021, "at": 462 }, { "stage": "drawn", "time": 10.000021, "at": 494 }, { "stage": "bitmap-start", "time": 10.040279, "at": 510 }, { "stage": "bitmap-ready", "time": 10.040279, "at": 511 }, { "stage": "drawn", "time": 10.040279, "at": 511 }, { "stage": "bitmap-start", "time": 10.080455, "at": 544 }, { "stage": "bitmap-ready", "time": 10.080455, "at": 544 }, { "stage": "drawn", "time": 10.080455, "at": 545 }, { "stage": "bitmap-start", "time": 10.121005, "at": 596 }, { "stage": "bitmap-ready", "time": 10.121005, "at": 598 }, { "stage": "drawn", "time": 10.121005, "at": 601 }, { "stage": "bitmap-start", "time": 10.161182, "at": 631 }, { "stage": "bitmap-ready", "time": 10.161182, "at": 635 }, { "stage": "drawn", "time": 10.161182, "at": 637 }, { "stage": "bitmap-start", "time": 10.201333, "at": 670 }, { "stage": "bitmap-ready", "time": 10.201333, "at": 672 }, { "stage": "drawn", "time": 10.201333, "at": 674 }, { "stage": "bitmap-start", "time": 10.241504, "at": 713 }, { "stage": "bitmap-ready", "time": 10.241504, "at": 716 }, { "stage": "drawn", "time": 10.241504, "at": 717 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.241504, "frames": 9, "sent": 9, "received": 9, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "passed", "duration": 1004, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": true, "idleReadback": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 33 }, { "stage": "bitmap-ready", "time": 0, "at": 33 }, { "stage": "drawn", "time": 0, "at": 34 }, { "stage": "bitmap-start", "time": 0.040508, "at": 94 }, { "stage": "bitmap-ready", "time": 0.040508, "at": 95 }, { "stage": "drawn", "time": 0.040508, "at": 95 }, { "stage": "bitmap-start", "time": 10, "at": 359 }, { "stage": "bitmap-ready", "time": 10, "at": 359 }, { "stage": "drawn", "time": 10, "at": 390 }, { "stage": "bitmap-start", "time": 10.000022, "at": 392 }, { "stage": "bitmap-ready", "time": 10.000022, "at": 393 }, { "stage": "drawn", "time": 10.000022, "at": 393 }, { "stage": "bitmap-start", "time": 10.080975, "at": 466 }, { "stage": "bitmap-ready", "time": 10.080975, "at": 468 }, { "stage": "drawn", "time": 10.080975, "at": 470 }, { "stage": "bitmap-start", "time": 10.121129, "at": 498 }, { "stage": "bitmap-ready", "time": 10.121129, "at": 501 }, { "stage": "drawn", "time": 10.121129, "at": 504 }, { "stage": "bitmap-start", "time": 10.161782, "at": 551 }, { "stage": "bitmap-ready", "time": 10.161782, "at": 553 }, { "stage": "drawn", "time": 10.161782, "at": 554 }, { "stage": "bitmap-start", "time": 10.201966, "at": 580 }, { "stage": "bitmap-ready", "time": 10.201966, "at": 582 }, { "stage": "drawn", "time": 10.201966, "at": 583 }, { "stage": "bitmap-start", "time": 10.242223, "at": 616 }, { "stage": "bitmap-ready", "time": 10.242223, "at": 618 }, { "stage": "drawn", "time": 10.242223, "at": 619 }, { "stage": "bitmap-start", "time": 10.28244, "at": 664 }, { "stage": "bitmap-ready", "time": 10.28244, "at": 666 }, { "stage": "drawn", "time": 10.28244, "at": 668 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.28244, "frames": 10, "sent": 10, "received": 10, "quality": 7 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 921, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": true, "idleReadback": true, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 27 }, { "stage": "bitmap-ready", "time": 0, "at": 28 }, { "stage": "drawn", "time": 0, "at": 29 }, { "stage": "bitmap-start", "time": 0.040256, "at": 80 }, { "stage": "bitmap-ready", "time": 0.040256, "at": 80 }, { "stage": "drawn", "time": 0.040256, "at": 81 }, { "stage": "bitmap-start", "time": 10, "at": 351 }, { "stage": "bitmap-ready", "time": 10, "at": 352 }, { "stage": "drawn", "time": 10, "at": 352 }, { "stage": "bitmap-start", "time": 10.000018, "at": 372 }, { "stage": "bitmap-ready", "time": 10.000018, "at": 374 }, { "stage": "drawn", "time": 10.000018, "at": 377 }, { "stage": "bitmap-start", "time": 10.040502, "at": 422 }, { "stage": "bitmap-ready", "time": 10.040502, "at": 424 }, { "stage": "drawn", "time": 10.040502, "at": 426 }, { "stage": "bitmap-start", "time": 10.080779, "at": 447 }, { "stage": "bitmap-ready", "time": 10.080779, "at": 449 }, { "stage": "drawn", "time": 10.080779, "at": 450 }, { "stage": "bitmap-start", "time": 10.12114, "at": 494 }, { "stage": "bitmap-ready", "time": 10.12114, "at": 496 }, { "stage": "drawn", "time": 10.12114, "at": 498 }, { "stage": "bitmap-start", "time": 10.161487, "at": 528 }, { "stage": "bitmap-ready", "time": 10.161487, "at": 530 }, { "stage": "drawn", "time": 10.161487, "at": 531 }, { "stage": "bitmap-start", "time": 10.201889, "at": 574 }, { "stage": "bitmap-ready", "time": 10.201889, "at": 578 }, { "stage": "drawn", "time": 10.201889, "at": 580 }, { "stage": "bitmap-start", "time": 10.242753, "at": 612 }, { "stage": "bitmap-ready", "time": 10.242753, "at": 614 }, { "stage": "drawn", "time": 10.242753, "at": 616 } ], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.242753, "frames": 10, "sent": 10, "received": 10, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Matched ImageBitmap control, overlapping readback, no seed", "reportPath": "refactor/.cache/jassub09-firefox-platform-overlap.json", "sha256": "f6e800a03f09d5257d8a15265514be806e0dd137700966a03700bf5a5e3d7eb4", "resultsPath": "refactor/.cache/jassub09-firefox-platform-overlap-results", "stats": { "startTime": "2026-09-13T19:09:31.864Z", "duration": 20068.783000000003, "expected": 2, "skipped": 0, "unexpected": 1, "flaky": 0 }, "cases": [ { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "failed", "duration": 12079, "browser": "155.0", "platform": "win32", "errors": [ "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 134 | }, host)\n 135 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).width).toBeGreaterThan(before.width)\n> 136 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).time).toBeGreaterThan(10.2)\n | ^\n 137 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n 138 | }\n 139 | finally {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:136:106" ], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": true, "idleReadback": false, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 84 }, { "stage": "bitmap-ready", "time": 0, "at": 85 }, { "stage": "drawn", "time": 0, "at": 86 }, { "stage": "bitmap-start", "time": 0.040729, "at": 145 }, { "stage": "bitmap-ready", "time": 0.040729, "at": 146 }, { "stage": "drawn", "time": 0.040729, "at": 147 }, { "stage": "bitmap-start", "time": 10, "at": 445 }, { "stage": "bitmap-ready", "time": 10, "at": 447 }, { "stage": "drawn", "time": 10, "at": 482 }, { "stage": "bitmap-start", "time": 10.000021, "at": 499 }, { "stage": "bitmap-ready", "time": 10.000021, "at": 501 }, { "stage": "drawn", "time": 10.000021, "at": 504 }, { "stage": "bitmap-start", "time": 10.081146, "at": 546 }, { "stage": "bitmap-ready", "time": 10.081146, "at": 549 }, { "stage": "drawn", "time": 10.081146, "at": 551 }, { "stage": "bitmap-start", "time": 10.121322, "at": 585 }, { "stage": "bitmap-ready", "time": 10.121322, "at": 587 }, { "stage": "drawn", "time": 10.121322, "at": 588 }, { "stage": "bitmap-start", "time": 10.161796, "at": 633 }, { "stage": "bitmap-ready", "time": 10.161796, "at": 10645 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 0, 0 ], "width": 1280, "height": 720, "time": 20.190294, "frames": 7, "sent": 7, "received": 6, "quality": 255 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [ { "name": "screenshot", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\test-failed-1.png" }, { "name": "error-context", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\error-context.md" }, { "name": "trace", "path": "D:\\github\\ArtPlayer\\refactor\\.cache\\browser\\results\\jassub-platform-Native-can-42c11-ut-without-JASSUB-candidate-firefox\\trace.zip" } ] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "passed", "duration": 1948, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": true, "idleReadback": false, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 116 }, { "stage": "bitmap-ready", "time": 0, "at": 117 }, { "stage": "drawn", "time": 0, "at": 118 }, { "stage": "bitmap-start", "time": 0.04221, "at": 182 }, { "stage": "bitmap-ready", "time": 0.04221, "at": 182 }, { "stage": "drawn", "time": 0.04221, "at": 183 }, { "stage": "bitmap-start", "time": 10, "at": 497 }, { "stage": "bitmap-ready", "time": 10, "at": 499 }, { "stage": "drawn", "time": 10, "at": 532 }, { "stage": "bitmap-start", "time": 10.000035, "at": 532 }, { "stage": "bitmap-ready", "time": 10.000035, "at": 533 }, { "stage": "drawn", "time": 10.000035, "at": 533 }, { "stage": "bitmap-start", "time": 10.040368, "at": 548 }, { "stage": "bitmap-ready", "time": 10.040368, "at": 548 }, { "stage": "drawn", "time": 10.040368, "at": 549 }, { "stage": "bitmap-start", "time": 10.080949, "at": 598 }, { "stage": "bitmap-ready", "time": 10.080949, "at": 598 }, { "stage": "drawn", "time": 10.080949, "at": 598 }, { "stage": "bitmap-start", "time": 10.121213, "at": 633 }, { "stage": "bitmap-ready", "time": 10.121213, "at": 636 }, { "stage": "drawn", "time": 10.121213, "at": 639 }, { "stage": "bitmap-start", "time": 10.161633, "at": 667 }, { "stage": "bitmap-ready", "time": 10.161633, "at": 671 }, { "stage": "drawn", "time": 10.161633, "at": 673 }, { "stage": "bitmap-start", "time": 10.201905, "at": 716 }, { "stage": "bitmap-ready", "time": 10.201905, "at": 719 }, { "stage": "drawn", "time": 10.201905, "at": 720 }, { "stage": "bitmap-start", "time": 10.242337, "at": 751 }, { "stage": "bitmap-ready", "time": 10.242337, "at": 752 }, { "stage": "drawn", "time": 10.242337, "at": 755 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.282543, "frames": 10, "sent": 10, "received": 10, "quality": 8 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 958, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": true, "idleReadback": false, "stages": [ { "stage": "bitmap-start", "time": 0, "at": 31 }, { "stage": "bitmap-ready", "time": 0, "at": 32 }, { "stage": "drawn", "time": 0, "at": 33 }, { "stage": "bitmap-start", "time": 0.040311, "at": 85 }, { "stage": "bitmap-ready", "time": 0.040311, "at": 85 }, { "stage": "drawn", "time": 0.040311, "at": 86 }, { "stage": "bitmap-start", "time": 10, "at": 353 }, { "stage": "bitmap-ready", "time": 10, "at": 353 }, { "stage": "drawn", "time": 10, "at": 354 }, { "stage": "bitmap-start", "time": 10.00002, "at": 375 }, { "stage": "bitmap-ready", "time": 10.00002, "at": 377 }, { "stage": "drawn", "time": 10.00002, "at": 379 }, { "stage": "bitmap-start", "time": 10.040363, "at": 423 }, { "stage": "bitmap-ready", "time": 10.040363, "at": 425 }, { "stage": "drawn", "time": 10.040363, "at": 428 }, { "stage": "bitmap-start", "time": 10.080901, "at": 449 }, { "stage": "bitmap-ready", "time": 10.080901, "at": 451 }, { "stage": "drawn", "time": 10.080901, "at": 454 }, { "stage": "bitmap-start", "time": 10.121234, "at": 489 }, { "stage": "bitmap-ready", "time": 10.121234, "at": 492 }, { "stage": "drawn", "time": 10.121234, "at": 494 }, { "stage": "bitmap-start", "time": 10.161583, "at": 529 }, { "stage": "bitmap-ready", "time": 10.161583, "at": 531 }, { "stage": "drawn", "time": 10.161583, "at": 533 }, { "stage": "bitmap-start", "time": 10.201804, "at": 569 }, { "stage": "bitmap-ready", "time": 10.201804, "at": 571 }, { "stage": "drawn", "time": 10.201804, "at": 573 }, { "stage": "bitmap-start", "time": 10.24233, "at": 610 }, { "stage": "bitmap-ready", "time": 10.24233, "at": 612 }, { "stage": "drawn", "time": 10.24233, "at": 615 } ], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.24233, "frames": 10, "sent": 10, "received": 10, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] }, { "profile": "Final fillRect control, three browsers, overlapping readback, no seed", "reportPath": "refactor/.cache/jassub09-platform-fill-final.json", "sha256": "56e6090da34843a6212e06e4b25e5337173562ab28e70c01ea000ce4933405eb", "resultsPath": "refactor/.cache/jassub09-platform-fill-final-results", "stats": { "startTime": "2026-09-13T19:10:10.107Z", "duration": 15722.711, "expected": 9, "skipped": 0, "unexpected": 0, "flaky": 0 }, "cases": [ { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "chromium", "status": "passed", "duration": 766, "browser": "153.0.8010.12", "platform": "win32", "errors": [], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": false, "idleReadback": false, "stages": [ { "stage": "drawn", "time": 0.001745, "at": 193.80000001192093 }, { "stage": "drawn", "time": 10.008198, "at": 306.4000000357628 }, { "stage": "drawn", "time": 10.035398, "at": 374 }, { "stage": "drawn", "time": 10.067577, "at": 407.2000000476837 }, { "stage": "drawn", "time": 10.117807, "at": 458.60000002384186 }, { "stage": "drawn", "time": 10.151417, "at": 489.9000000357628 }, { "stage": "drawn", "time": 10.200295, "at": 539.7000000476837 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.215356, "frames": 7, "sent": 7, "received": 7, "quality": 135 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "chromium", "status": "passed", "duration": 633, "browser": "153.0.8010.12", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": false, "idleReadback": false, "stages": [ { "stage": "drawn", "time": 0.002338, "at": 129.80000001192093 }, { "stage": "drawn", "time": 10.008063, "at": 242.19999998807907 }, { "stage": "drawn", "time": 10.033379, "at": 308.4000000357628 }, { "stage": "drawn", "time": 10.066185, "at": 341.4000000357628 }, { "stage": "drawn", "time": 10.117208, "at": 394 }, { "stage": "drawn", "time": 10.135637, "at": 410.19999998807907 }, { "stage": "drawn", "time": 10.200339, "at": 474.9000000357628 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.214106, "frames": 7, "sent": 7, "received": 7, "quality": 135 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "chromium", "status": "passed", "duration": 775, "browser": "153.0.8010.12", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": false, "idleReadback": false, "stages": [ { "stage": "drawn", "time": 0.000254, "at": 58.19999998807907 }, { "stage": "drawn", "time": 10, "at": 160.5 }, { "stage": "drawn", "time": 10.031822, "at": 240.60000002384186 }, { "stage": "drawn", "time": 10.064609, "at": 269.19999998807907 }, { "stage": "drawn", "time": 10.113383, "at": 318.10000002384186 }, { "stage": "drawn", "time": 10.163098, "at": 368.30000001192093 }, { "stage": "drawn", "time": 10.213633, "at": 418.39999997615814 }, { "stage": "drawn", "time": 10.231002, "at": 435.30000001192093 }, { "stage": "drawn", "time": 10.282114, "at": 486.10000002384186 }, { "stage": "drawn", "time": 10.330315, "at": 534.6999999880791 }, { "stage": "drawn", "time": 10.348213, "at": 553.6999999880791 }, { "stage": "drawn", "time": 10.398234, "at": 603.1000000238419 }, { "stage": "drawn", "time": 10.447594, "at": 652.3999999761581 } ], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.456233, "frames": 13, "sent": 13, "received": 13, "quality": 141 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "firefox", "status": "passed", "duration": 1941, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "candidate", "evidence": { "offscreen": true, "bitmap": false, "idleReadback": false, "stages": [ { "stage": "drawn", "time": 0, "at": 77 }, { "stage": "drawn", "time": 10, "at": 145 }, { "stage": "drawn", "time": 10, "at": 427 }, { "stage": "drawn", "time": 10.000023, "at": 449 }, { "stage": "drawn", "time": 10.040368, "at": 478 }, { "stage": "drawn", "time": 10.084491, "at": 528 }, { "stage": "drawn", "time": 10.12508, "at": 561 }, { "stage": "drawn", "time": 10.165403, "at": 612 }, { "stage": "drawn", "time": 10.205704, "at": 645 }, { "stage": "drawn", "time": 10.249933, "at": 696 }, { "stage": "drawn", "time": 10.290075, "at": 729 }, { "stage": "drawn", "time": 10.330524, "at": 779 }, { "stage": "drawn", "time": 10.370674, "at": 811 }, { "stage": "drawn", "time": 10.411144, "at": 861 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.411144, "frames": 14, "sent": 14, "received": 14, "quality": 10 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "firefox", "status": "passed", "duration": 949, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": true, "bitmap": false, "idleReadback": false, "stages": [ { "stage": "drawn", "time": 0, "at": 32 }, { "stage": "drawn", "time": 0.040779, "at": 100 }, { "stage": "drawn", "time": 10.000022, "at": 366 }, { "stage": "drawn", "time": 10.040467, "at": 417 }, { "stage": "drawn", "time": 10.080643, "at": 450 }, { "stage": "drawn", "time": 10.120946, "at": 484 }, { "stage": "drawn", "time": 10.161254, "at": 539 }, { "stage": "drawn", "time": 10.20156, "at": 571 }, { "stage": "drawn", "time": 10.24292, "at": 623 } ], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.283147, "frames": 9, "sent": 9, "received": 9, "quality": 7 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "firefox", "status": "passed", "duration": 927, "browser": "155.0", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": true, "bitmap": false, "idleReadback": false, "stages": [ { "stage": "drawn", "time": 0, "at": 27 }, { "stage": "drawn", "time": 0.040666, "at": 79 }, { "stage": "drawn", "time": 10, "at": 361 }, { "stage": "drawn", "time": 10.00003, "at": 393 }, { "stage": "drawn", "time": 10.041574, "at": 427 }, { "stage": "drawn", "time": 10.082066, "at": 462 }, { "stage": "drawn", "time": 10.122386, "at": 507 }, { "stage": "drawn", "time": 10.162813, "at": 541 }, { "stage": "drawn", "time": 10.20337, "at": 581 }, { "stage": "drawn", "time": 10.243711, "at": 622 } ], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.243711, "frames": 10, "sent": 10, "received": 10, "quality": 6 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: candidate", "project": "webkit", "status": "passed", "duration": 1854, "browser": "26.6", "platform": "win32", "errors": [], "control": { "host": "candidate", "evidence": { "offscreen": false, "bitmap": false, "idleReadback": false, "stages": [], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.2838334, "frames": 13, "sent": 13, "received": 13, "quality": 0 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: published", "project": "webkit", "status": "passed", "duration": 1929, "browser": "26.6", "platform": "win32", "errors": [], "control": { "host": "published", "evidence": { "offscreen": false, "bitmap": false, "idleReadback": false, "stages": [], "errors": [], "coreLoaded": true, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.32375, "frames": 17, "sent": 17, "received": 17, "quality": 0 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] }, { "title": "Native canvas and video control through seek/layout without JASSUB: native", "project": "webkit", "status": "passed", "duration": 1505, "browser": "26.6", "platform": "win32", "errors": [], "control": { "host": "native", "evidence": { "offscreen": false, "bitmap": false, "idleReadback": false, "stages": [], "errors": [], "coreLoaded": false, "pixel": [ 0, 0, 255, 255 ], "width": 1280, "height": 720, "time": 10.4148334, "frames": 22, "sent": 22, "received": 22, "quality": 0 }, "limitation": "Native video/frame callbacks and a minimal Worker painting opaque colors. Bitmap mode uses createImageBitmap/drawImage/close; otherwise fillRect. JASSUB wrapper, WASM and fonts are absent. The native host loads no ArtPlayer scripts. Capability fallback without transfer is main-thread fillRect, not offscreen or ImageBitmap verification." }, "jassub": null, "hybrid": null, "artifactPaths": [] } ] } ] }