Files
ArtPlayer/refactor/baselines/jassub-native-call-validation.json
T

8701 lines
253 KiB
JSON

{
"task": "PKG-JASSUB-09",
"status": "doing",
"baselineCommit": "319dccb60593f6206418dc04b27b1170767fa716",
"productionChanges": false,
"node": "24.21.0",
"yarn": "1.22.22",
"runs": [
{
"path": "refactor/.cache/jassub-single-flight.json",
"sha256": "5f55a8abd7d53a49f1bdd6019bc8a59b4d0f721d30e4204e6d07f8732bfad276",
"log": {
"path": "refactor/.cache/jassub-single-flight.log",
"sha256": "028327e1e48786520947c52e3dbbfd6ce4d31452d938140567217018b818f0d1"
},
"resultsArchive": "refactor/.cache/jassub-single-flight-results",
"sourceRevision": "Initial bounded queue and worker heartbeat; no call-return or sample timings",
"stats": {
"startTime": "2026-09-15T10:15:50.021Z",
"duration": 20555.049,
"expected": 2,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "firefox",
"status": "passed",
"duration": 1840,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 90
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 91
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 91
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040336,
"at": 149
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040336,
"at": 149
},
{
"stage": "drawn",
"id": 2,
"time": 0.040336,
"at": 150
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 415
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 416
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 446
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.04052,
"at": 483
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.04052,
"at": 485
},
{
"stage": "drawn",
"id": 4,
"time": 10.04052,
"at": 487
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.081124,
"at": 516
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.081124,
"at": 520
},
{
"stage": "drawn",
"id": 5,
"time": 10.081124,
"at": 522
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.122386,
"at": 566
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.122386,
"at": 568
},
{
"stage": "drawn",
"id": 6,
"time": 10.122386,
"at": 569
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.162489,
"at": 600
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.162489,
"at": 602
},
{
"stage": "drawn",
"id": 7,
"time": 10.162489,
"at": 603
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.202764,
"at": 633
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.202764,
"at": 635
},
{
"stage": "drawn",
"id": 8,
"time": 10.202764,
"at": 637
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.243189,
"at": 683
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.243189,
"at": 685
},
{
"stage": "drawn",
"id": 9,
"time": 10.243189,
"at": 687
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.243189,
"frames": 10,
"sent": 9,
"received": 9,
"skipped": 1,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "firefox",
"status": "failed",
"duration": 11394,
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js",
"column": 107,
"line": 147
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 145 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).width).toBeGreaterThan(before.width)\n 146 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).time).toBeGreaterThan(10.2)\n> 147 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n | ^\n 148 | }\n 149 | finally {\n 150 | const evidence = await page.evaluate(() => {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:147:107"
}
],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 31
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 31
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 33
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040342,
"at": 92
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040342,
"at": 93
},
{
"stage": "drawn",
"id": 2,
"time": 0.040342,
"at": 94
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 358
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 359
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 394
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000019,
"at": 413
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000019,
"at": 415
},
{
"stage": "drawn",
"id": 4,
"time": 10.000019,
"at": 417
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.081001,
"at": 467
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.081001,
"at": 469
},
{
"stage": "drawn",
"id": 5,
"time": 10.081001,
"at": 471
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.121499,
"at": 496
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.121499,
"at": 498
},
{
"stage": "drawn",
"id": 6,
"time": 10.121499,
"at": 500
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.162048,
"at": 549
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.162048,
"at": 551
},
{
"stage": "drawn",
"id": 7,
"time": 10.162048,
"at": 552
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.202281,
"at": 580
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.202281,
"at": 582
},
{
"stage": "drawn",
"id": 8,
"time": 10.202281,
"at": 584
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.243053,
"at": 631
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.243053,
"at": 634
},
{
"stage": "drawn",
"id": 9,
"time": 10.243053,
"at": 636
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.283132,
"at": 663
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.283132,
"at": 666
},
{
"stage": "drawn",
"id": 10,
"time": 10.283132,
"at": 666
},
{
"stage": "bitmap-start",
"id": 11,
"time": 10.323727,
"at": 696
},
{
"stage": "pending",
"ids": [
11
],
"at": 10716
},
{
"stage": "bitmap-ready",
"id": 11,
"time": 10.323727,
"at": 10716
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
0,
0
],
"width": 1280,
"height": 720,
"time": 20.349107,
"frames": 12,
"sent": 11,
"received": 10,
"skipped": 1,
"maxOutstanding": 1,
"quality": 258
},
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "firefox",
"status": "passed",
"duration": 1971,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 204
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 205
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 205
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.046516,
"at": 267
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.046516,
"at": 267
},
{
"stage": "drawn",
"id": 2,
"time": 0.046516,
"at": 267
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 646
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 647
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 647
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.00002,
"at": 668
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.00002,
"at": 668
},
{
"stage": "drawn",
"id": 4,
"time": 10.00002,
"at": 669
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.040478,
"at": 710
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.040478,
"at": 712
},
{
"stage": "drawn",
"id": 5,
"time": 10.040478,
"at": 716
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.08099,
"at": 752
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.08099,
"at": 754
},
{
"stage": "drawn",
"id": 6,
"time": 10.08099,
"at": 757
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.121186,
"at": 791
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.121186,
"at": 793
},
{
"stage": "drawn",
"id": 7,
"time": 10.121186,
"at": 795
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.161497,
"at": 831
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.161497,
"at": 834
},
{
"stage": "drawn",
"id": 8,
"time": 10.161497,
"at": 836
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.201796,
"at": 871
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.201796,
"at": 874
},
{
"stage": "drawn",
"id": 9,
"time": 10.201796,
"at": 876
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.242348,
"at": 913
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.242348,
"at": 915
},
{
"stage": "drawn",
"id": 10,
"time": 10.242348,
"at": 919
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.242348,
"frames": 10,
"sent": 10,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
}
]
},
{
"path": "refactor/.cache/jassub-bitmap-boundary.json",
"sha256": "e2999e31f565b259895955d58d1c87e0d5481fe03647d418c947f24982d7acdd",
"log": {
"path": "refactor/.cache/jassub-bitmap-boundary.log",
"sha256": "d7d5713061ca22866be52abe23e161bc6e9f12ec27630ec20331181cf1a47dda"
},
"resultsArchive": "refactor/.cache/jassub-bitmap-boundary-results",
"sourceRevision": "Call-expression return and sample timings; ImageData construction still inside timed expression; no latency assertion",
"stats": {
"startTime": "2026-09-15T10:17:02.953Z",
"duration": 30377.481,
"expected": 2,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "firefox",
"status": "passed",
"duration": 1961,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 2,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 86
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 86
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 86
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 87
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040588,
"at": 142
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040588,
"at": 143
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040588,
"at": 143
},
{
"stage": "drawn",
"id": 2,
"time": 0.040588,
"at": 143
},
{
"stage": "bitmap-start",
"id": 3,
"time": 0.080581,
"at": 191
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 0.080581,
"at": 192
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 0.080581,
"at": 192
},
{
"stage": "drawn",
"id": 3,
"time": 0.080581,
"at": 192
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000023,
"at": 491
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000023,
"at": 492
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000023,
"at": 492
},
{
"stage": "drawn",
"id": 4,
"time": 10.000023,
"at": 492
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.044549,
"at": 542
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.044549,
"at": 543
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.044549,
"at": 543
},
{
"stage": "drawn",
"id": 5,
"time": 10.044549,
"at": 543
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.084796,
"at": 575
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.084796,
"at": 575
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.084796,
"at": 575
},
{
"stage": "drawn",
"id": 6,
"time": 10.084796,
"at": 576
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.124967,
"at": 616
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.124967,
"at": 618
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.124967,
"at": 618
},
{
"stage": "drawn",
"id": 7,
"time": 10.124967,
"at": 620
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.165033,
"at": 664
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.165033,
"at": 666
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.165033,
"at": 668
},
{
"stage": "drawn",
"id": 8,
"time": 10.165033,
"at": 670
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.205584,
"at": 693
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.205584,
"at": 694
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.205584,
"at": 695
},
{
"stage": "drawn",
"id": 9,
"time": 10.205584,
"at": 697
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.246224,
"at": 749
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.246224,
"at": 750
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.246224,
"at": 751
},
{
"stage": "drawn",
"id": 10,
"time": 10.246224,
"at": 752
},
{
"stage": "bitmap-start",
"id": 11,
"time": 10.28641,
"at": 778
}
],
"samples": [
{
"start": 434,
"sent": 1,
"received": 1,
"drawn": 435,
"read": 435,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 486,
"sent": 2,
"received": 2,
"drawn": 487,
"read": 487,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 791,
"sent": 3,
"received": 3,
"drawn": 792,
"read": 792,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 910,
"sent": 6,
"received": 6,
"drawn": 910,
"read": 910,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 933,
"sent": 7,
"received": 6,
"drawn": 936,
"read": 936,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1063,
"sent": 10,
"received": 9,
"drawn": 1067,
"read": 1068,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1076,
"sent": 10,
"received": 10,
"drawn": 1078,
"read": 1078,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1083,
"sent": 10,
"received": 10,
"drawn": 1085,
"read": 1085,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.28641,
"frames": 11,
"sent": 11,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "firefox",
"status": "failed",
"duration": 11351,
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js",
"column": 106,
"line": 154
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 152 | }, host)\n 153 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).width).toBeGreaterThan(before.width)\n> 154 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).time).toBeGreaterThan(10.2)\n | ^\n 155 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n 156 | }\n 157 | finally {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:154:106"
}
],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 10013,
"slowCalls": [
{
"id": 9,
"milliseconds": 10013
}
],
"slowSamples": [
{
"start": 706,
"sent": 9,
"received": 8,
"drawn": 10712,
"read": 10712,
"pixel": [
0,
0,
0,
0
]
}
],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 34
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 35
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 35
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 36
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040281,
"at": 88
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040281,
"at": 88
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040281,
"at": 88
},
{
"stage": "drawn",
"id": 2,
"time": 0.040281,
"at": 89
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10.000041,
"at": 387
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10.000041,
"at": 388
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10.000041,
"at": 388
},
{
"stage": "drawn",
"id": 3,
"time": 10.000041,
"at": 418
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.041817,
"at": 438
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.041817,
"at": 439
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.041817,
"at": 439
},
{
"stage": "drawn",
"id": 4,
"time": 10.041817,
"at": 439
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.082226,
"at": 472
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.082226,
"at": 473
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.082226,
"at": 473
},
{
"stage": "drawn",
"id": 5,
"time": 10.082226,
"at": 474
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.122645,
"at": 525
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.122645,
"at": 526
},
{
"stage": "pending",
"ids": [
6
],
"at": 526
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.122645,
"at": 526
},
{
"stage": "drawn",
"id": 6,
"time": 10.122645,
"at": 529
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.163209,
"at": 560
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.163209,
"at": 562
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.163209,
"at": 563
},
{
"stage": "drawn",
"id": 7,
"time": 10.163209,
"at": 566
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.203777,
"at": 610
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.203777,
"at": 611
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.203777,
"at": 612
},
{
"stage": "drawn",
"id": 8,
"time": 10.203777,
"at": 614
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.244097,
"at": 640
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.244097,
"at": 10653
},
{
"stage": "pending",
"ids": [
9
],
"at": 10654
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.244097,
"at": 10654
},
{
"stage": "drawn",
"id": 9,
"time": 10.244097,
"at": 10657
}
],
"samples": [
{
"start": 172,
"sent": 2,
"received": 2,
"drawn": 174,
"read": 174,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 181,
"sent": 2,
"received": 2,
"drawn": 181,
"read": 181,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 448,
"sent": 2,
"received": 2,
"drawn": 449,
"read": 449,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 561,
"sent": 5,
"received": 5,
"drawn": 562,
"read": 562,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 581,
"sent": 5,
"received": 5,
"drawn": 583,
"read": 583,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 694,
"sent": 8,
"received": 8,
"drawn": 697,
"read": 697,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 706,
"sent": 9,
"received": 8,
"drawn": 10712,
"read": 10712,
"pixel": [
0,
0,
0,
0
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
0,
0
],
"width": 1280,
"height": 720,
"time": 20.263101,
"frames": 10,
"sent": 10,
"received": 9,
"skipped": 0,
"maxOutstanding": 1,
"quality": 256
},
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "firefox",
"status": "passed",
"duration": 11857,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 10005,
"slowCalls": [
{
"id": 2,
"milliseconds": 10005
}
],
"slowSamples": [
{
"start": 422,
"sent": 2,
"received": 1,
"drawn": 10425,
"read": 10425,
"pixel": [
0,
0,
0,
0
]
}
],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 154
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 155
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 155
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 156
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.044607,
"at": 214
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.044607,
"at": 10219
},
{
"stage": "pending",
"ids": [
2
],
"at": 10221
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.044607,
"at": 10221
},
{
"stage": "drawn",
"id": 2,
"time": 0.044607,
"at": 10222
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 10496
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 10496
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 10496
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 10497
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.00002,
"at": 10508
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.00002,
"at": 10508
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.00002,
"at": 10508
},
{
"stage": "drawn",
"id": 4,
"time": 10.00002,
"at": 10508
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.040276,
"at": 10550
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.040276,
"at": 10552
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.040276,
"at": 10552
},
{
"stage": "drawn",
"id": 5,
"time": 10.040276,
"at": 10556
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.080722,
"at": 10590
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.080722,
"at": 10592
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.080722,
"at": 10592
},
{
"stage": "drawn",
"id": 6,
"time": 10.080722,
"at": 10594
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.121554,
"at": 10633
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.121554,
"at": 10635
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.121554,
"at": 10635
},
{
"stage": "drawn",
"id": 7,
"time": 10.121554,
"at": 10638
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.161691,
"at": 10672
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.161691,
"at": 10673
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.161691,
"at": 10674
},
{
"stage": "drawn",
"id": 8,
"time": 10.161691,
"at": 10675
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.202183,
"at": 10718
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.202183,
"at": 10720
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.202183,
"at": 10721
},
{
"stage": "drawn",
"id": 9,
"time": 10.202183,
"at": 10722
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.242573,
"at": 10758
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.242573,
"at": 10762
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.242573,
"at": 10762
},
{
"stage": "drawn",
"id": 10,
"time": 10.242573,
"at": 10763
}
],
"samples": [
{
"start": 406,
"sent": 1,
"received": 1,
"drawn": 407,
"read": 407,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 422,
"sent": 2,
"received": 1,
"drawn": 10425,
"read": 10425,
"pixel": [
0,
0,
0,
0
]
},
{
"start": 10712,
"sent": 3,
"received": 3,
"drawn": 10712,
"read": 10712,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 10733,
"sent": 4,
"received": 4,
"drawn": 10734,
"read": 10734,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 10848,
"sent": 7,
"received": 6,
"drawn": 10850,
"read": 10850,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 10855,
"sent": 7,
"received": 7,
"drawn": 10856,
"read": 10857,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 10972,
"sent": 10,
"received": 9,
"drawn": 10975,
"read": 10975,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 10985,
"sent": 10,
"received": 10,
"drawn": 10986,
"read": 10986,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.242573,
"frames": 11,
"sent": 10,
"received": 10,
"skipped": 1,
"maxOutstanding": 1,
"quality": 256
},
"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."
}
}
]
},
{
"path": "refactor/.cache/jassub-native-call.json",
"sha256": "32a315730da2a41df96167fa9407b332e52e6d4df5349085efd0352ccf154a11",
"log": {
"path": "refactor/.cache/jassub-native-call.log",
"sha256": "689fa3afd36441f3108061617c8ce5633cb2db588d0e53076792abe4f60a1f76"
},
"resultsArchive": "refactor/.cache/jassub-native-call-results",
"sourceRevision": "ImageData constructed before timed native call; sample copyStart; latency assertion then covered pre-layout only",
"stats": {
"startTime": "2026-09-15T10:18:24.989Z",
"duration": 19885.343999999997,
"expected": 2,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "firefox",
"status": "passed",
"duration": 1891,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 7,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 91
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 91
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 92
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 92
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040343,
"at": 148
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040343,
"at": 150
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040343,
"at": 150
},
{
"stage": "drawn",
"id": 2,
"time": 0.040343,
"at": 150
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 415
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 416
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 416
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 448
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000023,
"at": 463
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000023,
"at": 470
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000023,
"at": 470
},
{
"stage": "drawn",
"id": 4,
"time": 10.000023,
"at": 470
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.08096,
"at": 515
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.08096,
"at": 517
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.08096,
"at": 517
},
{
"stage": "drawn",
"id": 5,
"time": 10.08096,
"at": 519
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.123904,
"at": 571
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.123904,
"at": 574
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.123904,
"at": 576
},
{
"stage": "drawn",
"id": 6,
"time": 10.123904,
"at": 578
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.164359,
"at": 601
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.164359,
"at": 603
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.164359,
"at": 603
},
{
"stage": "drawn",
"id": 7,
"time": 10.164359,
"at": 604
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.204811,
"at": 650
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.204811,
"at": 651
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.204811,
"at": 651
},
{
"stage": "drawn",
"id": 8,
"time": 10.204811,
"at": 653
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.245086,
"at": 686
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.245086,
"at": 688
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.245086,
"at": 688
},
{
"stage": "drawn",
"id": 9,
"time": 10.245086,
"at": 689
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.285387,
"at": 716
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.285387,
"at": 718
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.285387,
"at": 718
},
{
"stage": "drawn",
"id": 10,
"time": 10.285387,
"at": 720
}
],
"samples": [
{
"start": 434,
"sent": 1,
"received": 1,
"copyStart": 434,
"drawn": 436,
"read": 436,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 449,
"sent": 1,
"received": 1,
"copyStart": 449,
"drawn": 449,
"read": 449,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 759,
"sent": 3,
"received": 2,
"copyStart": 759,
"drawn": 760,
"read": 760,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 786,
"sent": 4,
"received": 4,
"copyStart": 786,
"drawn": 786,
"read": 786,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 896,
"sent": 6,
"received": 6,
"copyStart": 896,
"drawn": 899,
"read": 899,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 905,
"sent": 6,
"received": 6,
"copyStart": 905,
"drawn": 906,
"read": 906,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1021,
"sent": 9,
"received": 9,
"copyStart": 1021,
"drawn": 1023,
"read": 1023,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1032,
"sent": 10,
"received": 9,
"copyStart": 1032,
"drawn": 1034,
"read": 1034,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.285387,
"frames": 10,
"sent": 10,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "firefox",
"status": "failed",
"duration": 11294,
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js",
"column": 106,
"line": 161
},
"message": "Error: Timeout 7000ms exceeded while waiting on the predicate\n\n 159 | }, host)\n 160 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).width).toBeGreaterThan(before.width)\n> 161 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).time).toBeGreaterThan(10.2)\n | ^\n 162 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n 163 | }\n 164 | finally {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:161:106"
}
],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 10010,
"slowCalls": [
{
"id": 7,
"milliseconds": 10010
}
],
"slowSamples": [
{
"start": 607,
"sent": 7,
"received": 6,
"copyStart": 607,
"drawn": 10611,
"read": 10611,
"pixel": [
0,
0,
0,
0
]
}
],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 30
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 31
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 31
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 31
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.044498,
"at": 101
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.044498,
"at": 102
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.044498,
"at": 102
},
{
"stage": "drawn",
"id": 2,
"time": 0.044498,
"at": 103
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 350
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 350
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 350
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 383
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.00002,
"at": 399
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.00002,
"at": 400
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.00002,
"at": 400
},
{
"stage": "drawn",
"id": 4,
"time": 10.00002,
"at": 400
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.08124,
"at": 452
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.08124,
"at": 453
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.08124,
"at": 453
},
{
"stage": "drawn",
"id": 5,
"time": 10.08124,
"at": 456
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.121462,
"at": 485
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.121462,
"at": 488
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.121462,
"at": 489
},
{
"stage": "drawn",
"id": 6,
"time": 10.121462,
"at": 491
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.161916,
"at": 536
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.161916,
"at": 10546
},
{
"stage": "pending",
"ids": [
7
],
"at": 10548
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.161916,
"at": 10548
},
{
"stage": "drawn",
"id": 7,
"time": 10.161916,
"at": 10554
}
],
"samples": [
{
"start": 162,
"sent": 1,
"received": 1,
"copyStart": 162,
"drawn": 162,
"read": 162,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 168,
"sent": 1,
"received": 1,
"copyStart": 168,
"drawn": 168,
"read": 168,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 455,
"sent": 3,
"received": 2,
"copyStart": 455,
"drawn": 456,
"read": 456,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 484,
"sent": 4,
"received": 4,
"copyStart": 484,
"drawn": 485,
"read": 485,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 596,
"sent": 6,
"received": 6,
"copyStart": 597,
"drawn": 600,
"read": 600,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 607,
"sent": 7,
"received": 6,
"copyStart": 607,
"drawn": 10611,
"read": 10611,
"pixel": [
0,
0,
0,
0
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
0,
0
],
"width": 1280,
"height": 720,
"time": 20.043525,
"frames": 8,
"sent": 8,
"received": 7,
"skipped": 0,
"maxOutstanding": 1,
"quality": 251
},
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "firefox",
"status": "passed",
"duration": 1720,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 4,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 161
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 162
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 162
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 163
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040342,
"at": 215
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040342,
"at": 215
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040342,
"at": 215
},
{
"stage": "drawn",
"id": 2,
"time": 0.040342,
"at": 216
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 476
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 478
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 478
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 478
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000019,
"at": 502
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000019,
"at": 503
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000019,
"at": 503
},
{
"stage": "drawn",
"id": 4,
"time": 10.000019,
"at": 504
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.040605,
"at": 537
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.040605,
"at": 538
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.040605,
"at": 538
},
{
"stage": "drawn",
"id": 5,
"time": 10.040605,
"at": 541
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.080921,
"at": 587
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.080921,
"at": 589
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.080921,
"at": 589
},
{
"stage": "drawn",
"id": 6,
"time": 10.080921,
"at": 591
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.121767,
"at": 614
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.121767,
"at": 616
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.121767,
"at": 616
},
{
"stage": "drawn",
"id": 7,
"time": 10.121767,
"at": 618
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.161878,
"at": 655
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.161878,
"at": 656
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.161878,
"at": 656
},
{
"stage": "drawn",
"id": 8,
"time": 10.161878,
"at": 657
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.202049,
"at": 695
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.202049,
"at": 697
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.202049,
"at": 697
},
{
"stage": "drawn",
"id": 9,
"time": 10.202049,
"at": 698
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.242519,
"at": 738
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.242519,
"at": 742
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.242519,
"at": 742
},
{
"stage": "drawn",
"id": 10,
"time": 10.242519,
"at": 744
}
],
"samples": [
{
"start": 366,
"sent": 1,
"received": 1,
"copyStart": 367,
"drawn": 368,
"read": 368,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 383,
"sent": 1,
"received": 1,
"copyStart": 383,
"drawn": 383,
"read": 383,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 659,
"sent": 3,
"received": 3,
"copyStart": 659,
"drawn": 660,
"read": 660,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 685,
"sent": 4,
"received": 4,
"copyStart": 685,
"drawn": 686,
"read": 686,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 796,
"sent": 7,
"received": 7,
"copyStart": 796,
"drawn": 800,
"read": 800,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 804,
"sent": 7,
"received": 7,
"copyStart": 804,
"drawn": 805,
"read": 805,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 919,
"sent": 10,
"received": 9,
"copyStart": 919,
"drawn": 921,
"read": 921,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 926,
"sent": 10,
"received": 10,
"copyStart": 926,
"drawn": 928,
"read": 928,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.242519,
"frames": 10,
"sent": 10,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
}
]
},
{
"path": "refactor/.cache/jassub-native-call-final.json",
"sha256": "459883d27e9ee6503b74b4d51db93642bb7203d5e06924d8a1404c203677d409",
"log": {
"path": "refactor/.cache/jassub-native-call-final.log",
"sha256": "9dd0fbcf9eb5fce557d141a80b4c91943e41bb93785e11cedc86cf0673153e34"
},
"resultsArchive": "refactor/.cache/jassub-native-call-final-results",
"sourceRevision": "final source in this checkpoint",
"stats": {
"startTime": "2026-09-15T10:19:40.447Z",
"duration": 28853.963,
"expected": 8,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "chromium",
"status": "passed",
"duration": 756,
"errors": [],
"browser": "153.0.8010.12",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 1.9000000357627869,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0.001182,
"at": 170.30000001192093
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0.001182,
"at": 170.9000000357628
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0.001182,
"at": 171
},
{
"stage": "drawn",
"id": 1,
"time": 0.001182,
"at": 172.5
},
{
"stage": "bitmap-start",
"id": 2,
"time": 10.007995,
"at": 289.60000002384186
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 10.007995,
"at": 290.10000002384186
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 10.007995,
"at": 290.10000002384186
},
{
"stage": "drawn",
"id": 2,
"time": 10.007995,
"at": 290.2000000476837
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10.016096,
"at": 341.5
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10.016096,
"at": 343.4000000357628
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10.016096,
"at": 343.5
},
{
"stage": "drawn",
"id": 3,
"time": 10.016096,
"at": 343.5
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.066756,
"at": 389.4000000357628
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.066756,
"at": 390.4000000357628
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.066756,
"at": 390.5
},
{
"stage": "drawn",
"id": 4,
"time": 10.066756,
"at": 390.60000002384186
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.11622,
"at": 440.80000001192093
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.11622,
"at": 442.2000000476837
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.11622,
"at": 442.2000000476837
},
{
"stage": "drawn",
"id": 5,
"time": 10.11622,
"at": 443.2000000476837
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.133987,
"at": 457.60000002384186
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.133987,
"at": 458.9000000357628
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.133987,
"at": 458.9000000357628
},
{
"stage": "drawn",
"id": 6,
"time": 10.133987,
"at": 459
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.200522,
"at": 524.6000000238419
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.200522,
"at": 526
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.200522,
"at": 526
},
{
"stage": "drawn",
"id": 7,
"time": 10.200522,
"at": 526.1000000238419
}
],
"samples": [
{
"start": 240.5999999642372,
"sent": 1,
"received": 1,
"copyStart": 240.80000001192093,
"drawn": 241.19999998807907,
"read": 241.39999997615814,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 247.0999999642372,
"sent": 1,
"received": 1,
"copyStart": 247.19999998807907,
"drawn": 247.19999998807907,
"read": 247.5999999642372,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 347.5,
"sent": 1,
"received": 1,
"copyStart": 347.5,
"drawn": 347.69999998807907,
"read": 347.89999997615814,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 463.39999997615814,
"sent": 4,
"received": 4,
"copyStart": 463.5,
"drawn": 463.5999999642372,
"read": 463.69999998807907,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 476.30000001192093,
"sent": 4,
"received": 4,
"copyStart": 476.30000001192093,
"drawn": 476.39999997615814,
"read": 476.5999999642372,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 580.0999999642372,
"sent": 6,
"received": 6,
"copyStart": 580.1999999880791,
"drawn": 581.5999999642372,
"read": 582.1999999880791,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 586.3999999761581,
"sent": 7,
"received": 6,
"copyStart": 586.3999999761581,
"drawn": 587,
"read": 587.8999999761581,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 592.5999999642372,
"sent": 7,
"received": 7,
"copyStart": 592.6999999880791,
"drawn": 593.3000000119209,
"read": 594.0999999642372,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.217196,
"frames": 8,
"sent": 8,
"received": 7,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "chromium",
"status": "passed",
"duration": 666,
"errors": [],
"browser": "153.0.8010.12",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 1.699999988079071,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0.001247,
"at": 147.9000000357628
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0.001247,
"at": 148.60000002384186
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0.001247,
"at": 148.60000002384186
},
{
"stage": "drawn",
"id": 1,
"time": 0.001247,
"at": 149.80000001192093
},
{
"stage": "bitmap-start",
"id": 2,
"time": 10,
"at": 252.69999998807907
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 10,
"at": 253.60000002384186
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 10,
"at": 253.60000002384186
},
{
"stage": "drawn",
"id": 2,
"time": 10,
"at": 253.60000002384186
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10.038078,
"at": 336.4000000357628
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10.038078,
"at": 337.9000000357628
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10.038078,
"at": 337.9000000357628
},
{
"stage": "drawn",
"id": 3,
"time": 10.038078,
"at": 338.80000001192093
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.072322,
"at": 370.30000001192093
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.072322,
"at": 371.69999998807907
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.072322,
"at": 371.80000001192093
},
{
"stage": "drawn",
"id": 4,
"time": 10.072322,
"at": 371.80000001192093
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.103544,
"at": 403.4000000357628
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.103544,
"at": 404.69999998807907
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.103544,
"at": 404.69999998807907
},
{
"stage": "drawn",
"id": 5,
"time": 10.103544,
"at": 404.80000001192093
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.154936,
"at": 453.30000001192093
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.154936,
"at": 455
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.154936,
"at": 455
},
{
"stage": "drawn",
"id": 6,
"time": 10.154936,
"at": 455
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.206103,
"at": 504.4000000357628
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.206103,
"at": 506.10000002384186
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.206103,
"at": 506.10000002384186
},
{
"stage": "drawn",
"id": 7,
"time": 10.206103,
"at": 506.19999998807907
}
],
"samples": [
{
"start": 196.60000002384186,
"sent": 1,
"received": 1,
"copyStart": 196.80000001192093,
"drawn": 197.10000002384186,
"read": 197.30000001192093,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 203.5,
"sent": 1,
"received": 1,
"copyStart": 203.60000002384186,
"drawn": 203.80000001192093,
"read": 204.10000002384186,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 304.69999998807907,
"sent": 2,
"received": 2,
"copyStart": 304.80000001192093,
"drawn": 305,
"read": 305.30000001192093,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 318.10000002384186,
"sent": 2,
"received": 2,
"copyStart": 318.10000002384186,
"drawn": 318.19999998807907,
"read": 318.4000000357628,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 425.10000002384186,
"sent": 4,
"received": 4,
"copyStart": 425.19999998807907,
"drawn": 426.60000002384186,
"read": 427.19999998807907,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 431.4000000357628,
"sent": 4,
"received": 4,
"copyStart": 431.5,
"drawn": 432.10000002384186,
"read": 433,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 539.1000000238419,
"sent": 6,
"received": 6,
"copyStart": 539.1999999880791,
"drawn": 539.8000000119209,
"read": 540.6000000238419,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 543.6999999880791,
"sent": 6,
"received": 6,
"copyStart": 543.6999999880791,
"drawn": 544.4000000357628,
"read": 545.4000000357628,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.214735,
"frames": 7,
"sent": 7,
"received": 7,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "chromium",
"status": "passed",
"duration": 654,
"errors": [],
"browser": "153.0.8010.12",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 2.200000047683716,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0.000363,
"at": 80.89999997615814
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0.000363,
"at": 81.5
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0.000363,
"at": 81.5
},
{
"stage": "drawn",
"id": 1,
"time": 0.000363,
"at": 82.30000001192093
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.053215,
"at": 173.5
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.053215,
"at": 174
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.053215,
"at": 174
},
{
"stage": "drawn",
"id": 2,
"time": 0.053215,
"at": 174.10000002384186
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 283.30000001192093
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 283.60000002384186
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 283.60000002384186
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 283.69999998807907
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.028735,
"at": 358.89999997615814
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.028735,
"at": 360.80000001192093
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.028735,
"at": 360.80000001192093
},
{
"stage": "drawn",
"id": 4,
"time": 10.028735,
"at": 361.69999998807907
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.06209,
"at": 390.10000002384186
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.06209,
"at": 391.5
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.06209,
"at": 391.5
},
{
"stage": "drawn",
"id": 5,
"time": 10.06209,
"at": 391.60000002384186
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.112095,
"at": 441.39999997615814
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.112095,
"at": 443.60000002384186
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.112095,
"at": 443.60000002384186
},
{
"stage": "drawn",
"id": 6,
"time": 10.112095,
"at": 443.69999998807907
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.144327,
"at": 473.60000002384186
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.144327,
"at": 475.30000001192093
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.144327,
"at": 475.30000001192093
},
{
"stage": "drawn",
"id": 7,
"time": 10.144327,
"at": 475.30000001192093
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.194395,
"at": 524.1000000238419
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.194395,
"at": 526
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.194395,
"at": 526
},
{
"stage": "drawn",
"id": 8,
"time": 10.194395,
"at": 526.1000000238419
}
],
"samples": [
{
"start": 99.20000004768372,
"sent": 1,
"received": 1,
"copyStart": 99.30000001192093,
"drawn": 99.40000003576279,
"read": 99.5,
"pixel": [
0,
0,
0,
0
]
},
{
"start": 209.9000000357628,
"sent": 2,
"received": 2,
"copyStart": 209.9000000357628,
"drawn": 210.30000001192093,
"read": 210.5,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 213.5,
"sent": 2,
"received": 2,
"copyStart": 213.5,
"drawn": 213.60000002384186,
"read": 213.70000004768372,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 306.7000000476837,
"sent": 3,
"received": 3,
"copyStart": 306.7000000476837,
"drawn": 306.80000001192093,
"read": 307.10000002384186,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 316.10000002384186,
"sent": 3,
"received": 3,
"copyStart": 316.10000002384186,
"drawn": 316.2000000476837,
"read": 316.4000000357628,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 429.4000000357628,
"sent": 5,
"received": 5,
"copyStart": 429.5,
"drawn": 430.9000000357628,
"read": 431.5,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 434.30000001192093,
"sent": 5,
"received": 5,
"copyStart": 434.4000000357628,
"drawn": 435.10000002384186,
"read": 435.7000000476837,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 548.4000000357628,
"sent": 8,
"received": 8,
"copyStart": 548.4000000357628,
"drawn": 549.1000000238419,
"read": 549.9000000357628,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 553.7000000476837,
"sent": 8,
"received": 8,
"copyStart": 553.7000000476837,
"drawn": 554.4000000357628,
"read": 555.6000000238419,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.220343,
"frames": 8,
"sent": 8,
"received": 8,
"skipped": 0,
"maxOutstanding": 1,
"quality": 136
},
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "firefox",
"status": "passed",
"duration": 1952,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 3,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 121
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 122
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 122
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 122
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.041282,
"at": 194
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.041282,
"at": 194
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.041282,
"at": 194
},
{
"stage": "drawn",
"id": 2,
"time": 0.041282,
"at": 194
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 504
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 505
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 506
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 539
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000035,
"at": 560
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000035,
"at": 563
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000035,
"at": 563
},
{
"stage": "drawn",
"id": 4,
"time": 10.000035,
"at": 566
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.080923,
"at": 607
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.080923,
"at": 609
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.080923,
"at": 610
},
{
"stage": "drawn",
"id": 5,
"time": 10.080923,
"at": 612
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.121181,
"at": 640
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.121181,
"at": 642
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.121181,
"at": 642
},
{
"stage": "drawn",
"id": 6,
"time": 10.121181,
"at": 644
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.161447,
"at": 690
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.161447,
"at": 692
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.161447,
"at": 692
},
{
"stage": "drawn",
"id": 7,
"time": 10.161447,
"at": 694
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.201807,
"at": 723
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.201807,
"at": 725
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.201807,
"at": 725
},
{
"stage": "drawn",
"id": 8,
"time": 10.201807,
"at": 726
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.242093,
"at": 773
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.242093,
"at": 775
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.242093,
"at": 775
},
{
"stage": "drawn",
"id": 9,
"time": 10.242093,
"at": 777
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.282276,
"at": 806
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.282276,
"at": 808
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.282276,
"at": 808
},
{
"stage": "drawn",
"id": 10,
"time": 10.282276,
"at": 809
},
{
"stage": "bitmap-start",
"id": 11,
"time": 10.322817,
"at": 840
},
{
"stage": "bitmap-returned",
"id": 11,
"time": 10.322817,
"at": 842
},
{
"stage": "bitmap-ready",
"id": 11,
"time": 10.322817,
"at": 842
}
],
"samples": [
{
"start": 443,
"sent": 1,
"received": 1,
"copyStart": 443,
"drawn": 444,
"read": 444,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 473,
"sent": 1,
"received": 1,
"copyStart": 473,
"drawn": 476,
"read": 476,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 826,
"sent": 3,
"received": 2,
"copyStart": 826,
"drawn": 827,
"read": 827,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 852,
"sent": 4,
"received": 3,
"copyStart": 852,
"drawn": 857,
"read": 857,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 979,
"sent": 7,
"received": 6,
"copyStart": 979,
"drawn": 984,
"read": 984,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 989,
"sent": 7,
"received": 7,
"copyStart": 989,
"drawn": 990,
"read": 990,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1111,
"sent": 10,
"received": 10,
"copyStart": 1111,
"drawn": 1112,
"read": 1112,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1118,
"sent": 10,
"received": 10,
"copyStart": 1118,
"drawn": 1118,
"read": 1118,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.322817,
"frames": 11,
"sent": 11,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "firefox",
"status": "failed",
"duration": 11346,
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js",
"column": 107,
"line": 155
},
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeGreaterThan\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m\n\nExpected: > \u001b[32m640\u001b[39m\nReceived: \u001b[31m640\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate\n\n 153 | }\n 154 | }, host)\n> 155 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).width).toBeGreaterThan(before.width)\n | ^\n 156 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).time).toBeGreaterThan(10.2)\n 157 | await expect.poll(async () => (await page.evaluate(() => window.nativeCanvasProbe.sample())).pixel).toEqual([0, 0, 255, 255])\n 158 | if (singleFlight) {\n at D:\\github\\ArtPlayer\\test\\browser\\jassub-platform.spec.js:155:107"
}
],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 10006,
"slowCalls": [
{
"id": 8,
"milliseconds": 10006
}
],
"slowSamples": [
{
"start": 667,
"sent": 8,
"received": 7,
"copyStart": 667,
"drawn": 10671,
"read": 10671,
"pixel": [
0,
0,
0,
0
]
}
],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 47
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 48
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 48
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 49
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040262,
"at": 114
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040262,
"at": 116
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040262,
"at": 116
},
{
"stage": "drawn",
"id": 2,
"time": 0.040262,
"at": 116
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 399
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 399
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 400
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 429
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000023,
"at": 431
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000023,
"at": 431
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000023,
"at": 431
},
{
"stage": "drawn",
"id": 4,
"time": 10.000023,
"at": 431
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.040364,
"at": 467
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.040364,
"at": 469
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.040364,
"at": 469
},
{
"stage": "drawn",
"id": 5,
"time": 10.040364,
"at": 472
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.080738,
"at": 499
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.080738,
"at": 501
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.080738,
"at": 503
},
{
"stage": "drawn",
"id": 6,
"time": 10.080738,
"at": 506
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.12089,
"at": 534
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.12089,
"at": 536
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.12089,
"at": 536
},
{
"stage": "drawn",
"id": 7,
"time": 10.12089,
"at": 538
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.161375,
"at": 584
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.161375,
"at": 10590
},
{
"stage": "pending",
"ids": [
8
],
"at": 10592
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.161375,
"at": 10593
},
{
"stage": "drawn",
"id": 8,
"time": 10.161375,
"at": 10596
}
],
"samples": [
{
"start": 195,
"sent": 1,
"received": 1,
"copyStart": 195,
"drawn": 196,
"read": 196,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 204,
"sent": 2,
"received": 2,
"copyStart": 204,
"drawn": 204,
"read": 204,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 513,
"sent": 3,
"received": 2,
"copyStart": 513,
"drawn": 513,
"read": 513,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 538,
"sent": 4,
"received": 4,
"copyStart": 538,
"drawn": 539,
"read": 539,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 667,
"sent": 8,
"received": 7,
"copyStart": 667,
"drawn": 10671,
"read": 10671,
"pixel": [
0,
0,
0,
0
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
0,
0
],
"width": 1280,
"height": 720,
"time": 20.156982,
"frames": 9,
"sent": 9,
"received": 8,
"skipped": 0,
"maxOutstanding": 1,
"quality": 254
},
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "firefox",
"status": "passed",
"duration": 1801,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 2,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 153
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 154
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 154
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 154
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040324,
"at": 205
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040324,
"at": 206
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040324,
"at": 206
},
{
"stage": "drawn",
"id": 2,
"time": 0.040324,
"at": 206
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 472
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 472
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 472
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 473
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000019,
"at": 497
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000019,
"at": 499
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000019,
"at": 499
},
{
"stage": "drawn",
"id": 4,
"time": 10.000019,
"at": 502
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.052705,
"at": 541
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.052705,
"at": 543
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.052705,
"at": 543
},
{
"stage": "drawn",
"id": 5,
"time": 10.052705,
"at": 545
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.093076,
"at": 582
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.093076,
"at": 582
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.093076,
"at": 583
},
{
"stage": "drawn",
"id": 6,
"time": 10.093076,
"at": 584
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.133241,
"at": 624
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.133241,
"at": 626
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.133241,
"at": 626
},
{
"stage": "drawn",
"id": 7,
"time": 10.133241,
"at": 628
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.173407,
"at": 662
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.173407,
"at": 663
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.173407,
"at": 663
},
{
"stage": "drawn",
"id": 8,
"time": 10.173407,
"at": 665
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.213531,
"at": 702
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.213531,
"at": 704
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.213531,
"at": 704
},
{
"stage": "drawn",
"id": 9,
"time": 10.213531,
"at": 705
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.254277,
"at": 744
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.254277,
"at": 745
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.254277,
"at": 745
},
{
"stage": "drawn",
"id": 10,
"time": 10.254277,
"at": 747
}
],
"samples": [
{
"start": 383,
"sent": 1,
"received": 1,
"copyStart": 383,
"drawn": 384,
"read": 384,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 396,
"sent": 1,
"received": 1,
"copyStart": 396,
"drawn": 397,
"read": 397,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 679,
"sent": 3,
"received": 3,
"copyStart": 679,
"drawn": 679,
"read": 679,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 699,
"sent": 4,
"received": 3,
"copyStart": 699,
"drawn": 704,
"read": 704,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 817,
"sent": 6,
"received": 6,
"copyStart": 818,
"drawn": 820,
"read": 820,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 828,
"sent": 7,
"received": 7,
"copyStart": 828,
"drawn": 831,
"read": 831,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 937,
"sent": 9,
"received": 9,
"copyStart": 937,
"drawn": 940,
"read": 940,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 947,
"sent": 10,
"received": 9,
"copyStart": 947,
"drawn": 948,
"read": 949,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.254277,
"frames": 10,
"sent": 10,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "webkit",
"status": "passed",
"duration": 2018,
"errors": [],
"browser": "26.6",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": false,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [],
"samples": [
{
"start": 712,
"sent": 1,
"received": 1,
"copyStart": 712,
"drawn": 714,
"read": 715,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 727,
"sent": 2,
"received": 2,
"copyStart": 727,
"drawn": 728,
"read": 744,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 1014,
"sent": 7,
"received": 7,
"copyStart": 1014,
"drawn": 1015,
"read": 1015,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1038,
"sent": 8,
"received": 8,
"copyStart": 1038,
"drawn": 1039,
"read": 1049,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1226,
"sent": 10,
"received": 10,
"copyStart": 1226,
"drawn": 1229,
"read": 1231,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1236,
"sent": 10,
"received": 10,
"copyStart": 1236,
"drawn": 1236,
"read": 1237,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1243,
"sent": 11,
"received": 11,
"copyStart": 1243,
"drawn": 1246,
"read": 1298,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.3067917,
"frames": 12,
"sent": 12,
"received": 12,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "webkit",
"status": "passed",
"duration": 1853,
"errors": [],
"browser": "26.6",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": false,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [],
"samples": [
{
"start": 539,
"sent": 2,
"received": 2,
"copyStart": 539,
"drawn": 540,
"read": 547,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 560,
"sent": 2,
"received": 2,
"copyStart": 560,
"drawn": 560,
"read": 560,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 748,
"sent": 7,
"received": 7,
"copyStart": 748,
"drawn": 749,
"read": 749,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 897,
"sent": 11,
"received": 11,
"copyStart": 897,
"drawn": 897,
"read": 913,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 977,
"sent": 12,
"received": 12,
"copyStart": 977,
"drawn": 977,
"read": 978,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1124,
"sent": 14,
"received": 14,
"copyStart": 1124,
"drawn": 1127,
"read": 1145,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1157,
"sent": 14,
"received": 14,
"copyStart": 1157,
"drawn": 1157,
"read": 1158,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1194,
"sent": 15,
"received": 15,
"copyStart": 1194,
"drawn": 1196,
"read": 1225,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.4491459,
"frames": 16,
"sent": 16,
"received": 16,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "webkit",
"status": "passed",
"duration": 1383,
"errors": [],
"browser": "26.6",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": false,
"bitmap": true,
"idleReadback": false,
"singleFlight": true,
"stages": [],
"samples": [
{
"start": 499,
"sent": 2,
"received": 2,
"copyStart": 499,
"drawn": 501,
"read": 510,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 545,
"sent": 3,
"received": 3,
"copyStart": 545,
"drawn": 545,
"read": 559,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 741,
"sent": 11,
"received": 11,
"copyStart": 741,
"drawn": 742,
"read": 743,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 756,
"sent": 12,
"received": 12,
"copyStart": 756,
"drawn": 757,
"read": 762,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 893,
"sent": 13,
"received": 13,
"copyStart": 893,
"drawn": 896,
"read": 900,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 905,
"sent": 14,
"received": 14,
"copyStart": 905,
"drawn": 907,
"read": 980,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 993,
"sent": 15,
"received": 15,
"copyStart": 993,
"drawn": 995,
"read": 1066,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.3971875,
"frames": 16,
"sent": 16,
"received": 16,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
}
]
},
{
"path": "refactor/.cache/jassub-native-idle.json",
"sha256": "dd0aff9a593f540939cdef25e80448820eb5b0c42364890f4bd69897b20d98c8",
"log": {
"path": "refactor/.cache/jassub-native-idle.log",
"sha256": "25938b224e67b649907d4a876cc6605e4ac4d416737cac153a2ef2fe03d485c3"
},
"resultsArchive": "refactor/.cache/jassub-native-idle-results",
"sourceRevision": "final source in this checkpoint",
"stats": {
"startTime": "2026-09-15T10:20:41.013Z",
"duration": 7428.251,
"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": 1879,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 3,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": true,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 76
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 76
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 77
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 77
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040691,
"at": 144
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040691,
"at": 146
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040691,
"at": 146
},
{
"stage": "drawn",
"id": 2,
"time": 0.040691,
"at": 146
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 412
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 412
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 412
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 445
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000023,
"at": 465
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000023,
"at": 467
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000023,
"at": 467
},
{
"stage": "drawn",
"id": 4,
"time": 10.000023,
"at": 469
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.080998,
"at": 513
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.080998,
"at": 514
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.080998,
"at": 515
},
{
"stage": "drawn",
"id": 5,
"time": 10.080998,
"at": 517
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.122633,
"at": 567
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.122633,
"at": 569
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.122633,
"at": 569
},
{
"stage": "drawn",
"id": 6,
"time": 10.122633,
"at": 571
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.163223,
"at": 598
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.163223,
"at": 599
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.163223,
"at": 599
},
{
"stage": "drawn",
"id": 7,
"time": 10.163223,
"at": 602
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.203587,
"at": 629
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.203587,
"at": 631
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.203587,
"at": 632
},
{
"stage": "drawn",
"id": 8,
"time": 10.203587,
"at": 634
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.244026,
"at": 681
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.244026,
"at": 684
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.244026,
"at": 684
},
{
"stage": "drawn",
"id": 9,
"time": 10.244026,
"at": 687
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.284167,
"at": 714
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.284167,
"at": 716
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.284167,
"at": 716
},
{
"stage": "drawn",
"id": 10,
"time": 10.284167,
"at": 719
}
],
"samples": [
{
"start": 420,
"sent": 1,
"received": 1,
"copyStart": 420,
"drawn": 422,
"read": 422,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 434,
"sent": 1,
"received": 1,
"copyStart": 434,
"drawn": 435,
"read": 435,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 757,
"sent": 3,
"received": 3,
"copyStart": 757,
"drawn": 757,
"read": 757,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 781,
"sent": 4,
"received": 4,
"copyStart": 781,
"drawn": 784,
"read": 784,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 902,
"sent": 6,
"received": 6,
"copyStart": 902,
"drawn": 905,
"read": 905,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 913,
"sent": 7,
"received": 7,
"copyStart": 913,
"drawn": 916,
"read": 916,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1033,
"sent": 10,
"received": 10,
"copyStart": 1033,
"drawn": 1035,
"read": 1035,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1042,
"sent": 10,
"received": 10,
"copyStart": 1042,
"drawn": 1045,
"read": 1045,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.324573,
"frames": 10,
"sent": 10,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "firefox",
"status": "passed",
"duration": 1076,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 4,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": true,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 35
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 36
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 36
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 37
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040419,
"at": 93
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040419,
"at": 94
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040419,
"at": 94
},
{
"stage": "drawn",
"id": 2,
"time": 0.040419,
"at": 94
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 143
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 143
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 143
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 143
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000022,
"at": 426
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000022,
"at": 427
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000022,
"at": 427
},
{
"stage": "drawn",
"id": 4,
"time": 10.000022,
"at": 460
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.04042,
"at": 478
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.04042,
"at": 479
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.04042,
"at": 479
},
{
"stage": "drawn",
"id": 5,
"time": 10.04042,
"at": 482
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.080886,
"at": 511
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.080886,
"at": 513
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.080886,
"at": 514
},
{
"stage": "drawn",
"id": 6,
"time": 10.080886,
"at": 517
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.121055,
"at": 561
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.121055,
"at": 563
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.121055,
"at": 564
},
{
"stage": "drawn",
"id": 7,
"time": 10.121055,
"at": 565
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.161301,
"at": 596
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.161301,
"at": 599
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.161301,
"at": 599
},
{
"stage": "drawn",
"id": 8,
"time": 10.161301,
"at": 601
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.201711,
"at": 644
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.201711,
"at": 646
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.201711,
"at": 646
},
{
"stage": "drawn",
"id": 9,
"time": 10.201711,
"at": 647
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.242035,
"at": 678
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.242035,
"at": 682
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.242035,
"at": 682
},
{
"stage": "drawn",
"id": 10,
"time": 10.242035,
"at": 685
},
{
"stage": "bitmap-start",
"id": 11,
"time": 10.282187,
"at": 710
},
{
"stage": "bitmap-returned",
"id": 11,
"time": 10.282187,
"at": 712
},
{
"stage": "bitmap-ready",
"id": 11,
"time": 10.282187,
"at": 712
},
{
"stage": "drawn",
"id": 11,
"time": 10.282187,
"at": 714
}
],
"samples": [
{
"start": 179,
"sent": 2,
"received": 2,
"copyStart": 179,
"drawn": 181,
"read": 181,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 199,
"sent": 2,
"received": 2,
"copyStart": 199,
"drawn": 199,
"read": 199,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 496,
"sent": 3,
"received": 3,
"copyStart": 496,
"drawn": 497,
"read": 497,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 547,
"sent": 4,
"received": 4,
"copyStart": 547,
"drawn": 547,
"read": 547,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 667,
"sent": 7,
"received": 7,
"copyStart": 668,
"drawn": 671,
"read": 671,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 679,
"sent": 8,
"received": 8,
"copyStart": 679,
"drawn": 681,
"read": 681,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 791,
"sent": 11,
"received": 11,
"copyStart": 791,
"drawn": 794,
"read": 794,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 799,
"sent": 11,
"received": 11,
"copyStart": 799,
"drawn": 801,
"read": 801,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.282187,
"frames": 11,
"sent": 11,
"received": 11,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "firefox",
"status": "passed",
"duration": 1078,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": 4,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": true,
"idleReadback": true,
"singleFlight": true,
"stages": [
{
"stage": "bitmap-start",
"id": 1,
"time": 0,
"at": 30
},
{
"stage": "bitmap-returned",
"id": 1,
"time": 0,
"at": 31
},
{
"stage": "bitmap-ready",
"id": 1,
"time": 0,
"at": 32
},
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 32
},
{
"stage": "bitmap-start",
"id": 2,
"time": 0.040351,
"at": 84
},
{
"stage": "bitmap-returned",
"id": 2,
"time": 0.040351,
"at": 84
},
{
"stage": "bitmap-ready",
"id": 2,
"time": 0.040351,
"at": 84
},
{
"stage": "drawn",
"id": 2,
"time": 0.040351,
"at": 86
},
{
"stage": "bitmap-start",
"id": 3,
"time": 10,
"at": 394
},
{
"stage": "bitmap-returned",
"id": 3,
"time": 10,
"at": 394
},
{
"stage": "bitmap-ready",
"id": 3,
"time": 10,
"at": 394
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 395
},
{
"stage": "bitmap-start",
"id": 4,
"time": 10.000021,
"at": 418
},
{
"stage": "bitmap-returned",
"id": 4,
"time": 10.000021,
"at": 419
},
{
"stage": "bitmap-ready",
"id": 4,
"time": 10.000021,
"at": 419
},
{
"stage": "drawn",
"id": 4,
"time": 10.000021,
"at": 422
},
{
"stage": "bitmap-start",
"id": 5,
"time": 10.040477,
"at": 454
},
{
"stage": "bitmap-returned",
"id": 5,
"time": 10.040477,
"at": 457
},
{
"stage": "bitmap-ready",
"id": 5,
"time": 10.040477,
"at": 457
},
{
"stage": "drawn",
"id": 5,
"time": 10.040477,
"at": 459
},
{
"stage": "bitmap-start",
"id": 6,
"time": 10.080822,
"at": 492
},
{
"stage": "bitmap-returned",
"id": 6,
"time": 10.080822,
"at": 495
},
{
"stage": "bitmap-ready",
"id": 6,
"time": 10.080822,
"at": 495
},
{
"stage": "drawn",
"id": 6,
"time": 10.080822,
"at": 497
},
{
"stage": "bitmap-start",
"id": 7,
"time": 10.121577,
"at": 537
},
{
"stage": "bitmap-returned",
"id": 7,
"time": 10.121577,
"at": 541
},
{
"stage": "bitmap-ready",
"id": 7,
"time": 10.121577,
"at": 541
},
{
"stage": "drawn",
"id": 7,
"time": 10.121577,
"at": 543
},
{
"stage": "bitmap-start",
"id": 8,
"time": 10.162213,
"at": 573
},
{
"stage": "bitmap-returned",
"id": 8,
"time": 10.162213,
"at": 576
},
{
"stage": "bitmap-ready",
"id": 8,
"time": 10.162213,
"at": 576
},
{
"stage": "drawn",
"id": 8,
"time": 10.162213,
"at": 578
},
{
"stage": "bitmap-start",
"id": 9,
"time": 10.202572,
"at": 612
},
{
"stage": "bitmap-returned",
"id": 9,
"time": 10.202572,
"at": 615
},
{
"stage": "bitmap-ready",
"id": 9,
"time": 10.202572,
"at": 615
},
{
"stage": "drawn",
"id": 9,
"time": 10.202572,
"at": 617
},
{
"stage": "bitmap-start",
"id": 10,
"time": 10.243209,
"at": 658
},
{
"stage": "bitmap-returned",
"id": 10,
"time": 10.243209,
"at": 660
},
{
"stage": "bitmap-ready",
"id": 10,
"time": 10.243209,
"at": 660
},
{
"stage": "drawn",
"id": 10,
"time": 10.243209,
"at": 662
}
],
"samples": [
{
"start": 154,
"sent": 2,
"received": 2,
"copyStart": 154,
"drawn": 155,
"read": 155,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 169,
"sent": 2,
"received": 2,
"copyStart": 169,
"drawn": 169,
"read": 169,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 459,
"sent": 3,
"received": 3,
"copyStart": 459,
"drawn": 459,
"read": 459,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 479,
"sent": 4,
"received": 4,
"copyStart": 479,
"drawn": 483,
"read": 483,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 603,
"sent": 7,
"received": 7,
"copyStart": 603,
"drawn": 606,
"read": 606,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 610,
"sent": 7,
"received": 7,
"copyStart": 610,
"drawn": 612,
"read": 612,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 729,
"sent": 10,
"received": 10,
"copyStart": 729,
"drawn": 730,
"read": 730,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 736,
"sent": 10,
"received": 10,
"copyStart": 736,
"drawn": 737,
"read": 737,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.243209,
"frames": 10,
"sent": 10,
"received": 10,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
}
]
},
{
"path": "refactor/.cache/jassub-native-fillrect.json",
"sha256": "6d798a0efa32804c732a28802598b2e67678d3926e1be41077decb598d3d9f6b",
"log": {
"path": "refactor/.cache/jassub-native-fillrect.log",
"sha256": "0e2a66a27aa26adb6f6b426dd5f67f7878ff4bb0ed3ea7497c2bc68ca41e9dfe"
},
"resultsArchive": "refactor/.cache/jassub-native-fillrect-results",
"sourceRevision": "final source in this checkpoint",
"stats": {
"startTime": "2026-09-15T10:21:29.228Z",
"duration": 16159.668000000001,
"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": 750,
"errors": [],
"browser": "153.0.8010.12",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [
{
"stage": "drawn",
"id": 1,
"time": 0.001127,
"at": 154.19999998807907
},
{
"stage": "drawn",
"id": 2,
"time": 10.007648,
"at": 265.19999998807907
},
{
"stage": "drawn",
"id": 3,
"time": 10.016605,
"at": 314.5
},
{
"stage": "drawn",
"id": 4,
"time": 10.051014,
"at": 348.7999999523163
},
{
"stage": "drawn",
"id": 5,
"time": 10.100365,
"at": 399.7999999523163
},
{
"stage": "drawn",
"id": 6,
"time": 10.149599,
"at": 448.19999998807907
},
{
"stage": "drawn",
"id": 7,
"time": 10.182436,
"at": 481.0999999642372
}
],
"samples": [
{
"start": 229.9000000357628,
"sent": 1,
"received": 1,
"copyStart": 230,
"drawn": 230.60000002384186,
"read": 230.80000001192093,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 235.70000004768372,
"sent": 1,
"received": 1,
"copyStart": 235.80000001192093,
"drawn": 236,
"read": 236.30000001192093,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 331,
"sent": 1,
"received": 1,
"copyStart": 331,
"drawn": 331.30000001192093,
"read": 331.4000000357628,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 448.30000001192093,
"sent": 4,
"received": 4,
"copyStart": 448.4000000357628,
"drawn": 448.5,
"read": 448.7000000476837,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 457.10000002384186,
"sent": 4,
"received": 4,
"copyStart": 457.10000002384186,
"drawn": 457.10000002384186,
"read": 457.30000001192093,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 573.7000000476837,
"sent": 7,
"received": 7,
"copyStart": 573.7000000476837,
"drawn": 575,
"read": 575.7000000476837,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 582.3000000119209,
"sent": 7,
"received": 7,
"copyStart": 582.3000000119209,
"drawn": 583.2000000476837,
"read": 584.2000000476837,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 589.2000000476837,
"sent": 7,
"received": 7,
"copyStart": 589.2000000476837,
"drawn": 589.8000000119209,
"read": 590.7000000476837,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.232401,
"frames": 7,
"sent": 7,
"received": 7,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "chromium",
"status": "passed",
"duration": 671,
"errors": [],
"browser": "153.0.8010.12",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [
{
"stage": "drawn",
"id": 1,
"time": 0.001294,
"at": 162.79999995231628
},
{
"stage": "drawn",
"id": 2,
"time": 10.004339,
"at": 275.5999999642372
},
{
"stage": "drawn",
"id": 3,
"time": 10.046559,
"at": 360.39999997615814
},
{
"stage": "drawn",
"id": 4,
"time": 10.080241,
"at": 393
},
{
"stage": "drawn",
"id": 5,
"time": 10.130588,
"at": 443.0999999642372
},
{
"stage": "drawn",
"id": 6,
"time": 10.163324,
"at": 475.89999997615814
},
{
"stage": "drawn",
"id": 7,
"time": 10.196307,
"at": 508.89999997615814
}
],
"samples": [
{
"start": 212.20000004768372,
"sent": 1,
"received": 1,
"copyStart": 212.4000000357628,
"drawn": 212.9000000357628,
"read": 213,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 217.9000000357628,
"sent": 1,
"received": 1,
"copyStart": 217.9000000357628,
"drawn": 217.9000000357628,
"read": 218.30000001192093,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 321.9000000357628,
"sent": 2,
"received": 2,
"copyStart": 321.9000000357628,
"drawn": 322.30000001192093,
"read": 322.80000001192093,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 336.4000000357628,
"sent": 2,
"received": 2,
"copyStart": 336.4000000357628,
"drawn": 336.5,
"read": 336.7000000476837,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 452.80000001192093,
"sent": 4,
"received": 4,
"copyStart": 452.80000001192093,
"drawn": 454.2000000476837,
"read": 454.80000001192093,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 458.10000002384186,
"sent": 4,
"received": 4,
"copyStart": 458.10000002384186,
"drawn": 458.7000000476837,
"read": 459.4000000357628,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 563.5,
"sent": 7,
"received": 7,
"copyStart": 563.5,
"drawn": 564.2000000476837,
"read": 565.6000000238419,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 569.3000000119209,
"sent": 7,
"received": 7,
"copyStart": 569.3000000119209,
"drawn": 569.9000000357628,
"read": 570.8000000119209,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.218263,
"frames": 7,
"sent": 7,
"received": 7,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "chromium",
"status": "passed",
"duration": 785,
"errors": [],
"browser": "153.0.8010.12",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [
{
"stage": "drawn",
"id": 1,
"time": 0.000247,
"at": 62.80000001192093
},
{
"stage": "drawn",
"id": 2,
"time": 10,
"at": 158.19999998807907
},
{
"stage": "drawn",
"id": 3,
"time": 10.018715,
"at": 221.80000001192093
},
{
"stage": "drawn",
"id": 4,
"time": 10.051546,
"at": 254.10000002384186
},
{
"stage": "drawn",
"id": 5,
"time": 10.102875,
"at": 305.19999998807907
},
{
"stage": "drawn",
"id": 6,
"time": 10.153039,
"at": 355.30000001192093
},
{
"stage": "drawn",
"id": 7,
"time": 10.20122,
"at": 403.60000002384186
},
{
"stage": "drawn",
"id": 8,
"time": 10.217934,
"at": 420.4000000357628
},
{
"stage": "drawn",
"id": 9,
"time": 10.268676,
"at": 471
},
{
"stage": "drawn",
"id": 10,
"time": 10.318655,
"at": 520.9000000357628
},
{
"stage": "drawn",
"id": 11,
"time": 10.336063,
"at": 538.1999999880791
},
{
"stage": "drawn",
"id": 12,
"time": 10.386585,
"at": 589.1000000238419
},
{
"stage": "drawn",
"id": 13,
"time": 10.434933,
"at": 637.3000000119209
},
{
"stage": "drawn",
"id": 14,
"time": 10.452726,
"at": 654.8000000119209
}
],
"samples": [
{
"start": 95,
"sent": 1,
"received": 1,
"copyStart": 95.10000002384186,
"drawn": 95.60000002384186,
"read": 95.80000001192093,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 99.40000003576279,
"sent": 1,
"received": 1,
"copyStart": 99.40000003576279,
"drawn": 99.60000002384186,
"read": 100.20000004768372,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 183.20000004768372,
"sent": 2,
"received": 2,
"copyStart": 183.30000001192093,
"drawn": 183.60000002384186,
"read": 183.9000000357628,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 190.30000001192093,
"sent": 2,
"received": 2,
"copyStart": 190.30000001192093,
"drawn": 190.4000000357628,
"read": 190.70000004768372,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 306.4000000357628,
"sent": 4,
"received": 4,
"copyStart": 306.4000000357628,
"drawn": 308,
"read": 308.80000001192093,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 311.80000001192093,
"sent": 4,
"received": 4,
"copyStart": 311.80000001192093,
"drawn": 312.5,
"read": 313.2000000476837,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 415.4000000357628,
"sent": 6,
"received": 6,
"copyStart": 415.4000000357628,
"drawn": 416.5,
"read": 417.60000002384186,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 679.2000000476837,
"sent": 14,
"received": 14,
"copyStart": 679.2000000476837,
"drawn": 679.8000000119209,
"read": 680.8000000119209,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 684.1000000238419,
"sent": 14,
"received": 14,
"copyStart": 684.2000000476837,
"drawn": 684.9000000357628,
"read": 685.9000000357628,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.468325,
"frames": 14,
"sent": 14,
"received": 14,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "firefox",
"status": "passed",
"duration": 1931,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": true,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 102
},
{
"stage": "drawn",
"id": 2,
"time": 0.04034,
"at": 155
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 456
},
{
"stage": "drawn",
"id": 4,
"time": 10.000022,
"at": 489
},
{
"stage": "drawn",
"id": 5,
"time": 10.040341,
"at": 505
},
{
"stage": "drawn",
"id": 6,
"time": 10.083278,
"at": 556
},
{
"stage": "drawn",
"id": 7,
"time": 10.123847,
"at": 591
},
{
"stage": "drawn",
"id": 8,
"time": 10.164306,
"at": 628
},
{
"stage": "drawn",
"id": 9,
"time": 10.204976,
"at": 676
}
],
"samples": [
{
"start": 501,
"sent": 1,
"received": 1,
"copyStart": 501,
"drawn": 502,
"read": 502,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 519,
"sent": 2,
"received": 2,
"copyStart": 519,
"drawn": 520,
"read": 520,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 810,
"sent": 2,
"received": 2,
"copyStart": 810,
"drawn": 810,
"read": 810,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 924,
"sent": 6,
"received": 6,
"copyStart": 924,
"drawn": 924,
"read": 924,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 942,
"sent": 6,
"received": 6,
"copyStart": 942,
"drawn": 943,
"read": 943,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1052,
"sent": 9,
"received": 9,
"copyStart": 1052,
"drawn": 1055,
"read": 1055,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1061,
"sent": 9,
"received": 9,
"copyStart": 1061,
"drawn": 1062,
"read": 1062,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1069,
"sent": 9,
"received": 9,
"copyStart": 1069,
"drawn": 1071,
"read": 1071,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.248036,
"frames": 9,
"sent": 9,
"received": 9,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "firefox",
"status": "passed",
"duration": 1030,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": true,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 30
},
{
"stage": "drawn",
"id": 2,
"time": 0.040514,
"at": 86
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 353
},
{
"stage": "drawn",
"id": 4,
"time": 10.040582,
"at": 406
},
{
"stage": "drawn",
"id": 5,
"time": 10.081018,
"at": 454
},
{
"stage": "drawn",
"id": 6,
"time": 10.121477,
"at": 489
},
{
"stage": "drawn",
"id": 7,
"time": 10.163221,
"at": 542
},
{
"stage": "drawn",
"id": 8,
"time": 10.203652,
"at": 574
},
{
"stage": "drawn",
"id": 9,
"time": 10.24449,
"at": 623
},
{
"stage": "drawn",
"id": 10,
"time": 10.284972,
"at": 654
},
{
"stage": "drawn",
"id": 11,
"time": 10.325091,
"at": 688
}
],
"samples": [
{
"start": 156,
"sent": 2,
"received": 2,
"copyStart": 156,
"drawn": 156,
"read": 156,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 162,
"sent": 2,
"received": 2,
"copyStart": 162,
"drawn": 162,
"read": 162,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 451,
"sent": 3,
"received": 3,
"copyStart": 451,
"drawn": 452,
"read": 452,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 470,
"sent": 4,
"received": 3,
"copyStart": 470,
"drawn": 478,
"read": 478,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 596,
"sent": 6,
"received": 6,
"copyStart": 597,
"drawn": 604,
"read": 604,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 615,
"sent": 7,
"received": 7,
"copyStart": 615,
"drawn": 616,
"read": 616,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 743,
"sent": 10,
"received": 10,
"copyStart": 743,
"drawn": 745,
"read": 745,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 759,
"sent": 11,
"received": 11,
"copyStart": 759,
"drawn": 760,
"read": 760,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.325091,
"frames": 11,
"sent": 11,
"received": 11,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "firefox",
"status": "passed",
"duration": 1003,
"errors": [],
"browser": "155.0",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": true,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [
{
"stage": "drawn",
"id": 1,
"time": 0,
"at": 34
},
{
"stage": "drawn",
"id": 2,
"time": 0.040411,
"at": 88
},
{
"stage": "drawn",
"id": 3,
"time": 10,
"at": 381
},
{
"stage": "drawn",
"id": 4,
"time": 10.000022,
"at": 406
},
{
"stage": "drawn",
"id": 5,
"time": 10.040326,
"at": 439
},
{
"stage": "drawn",
"id": 6,
"time": 10.080451,
"at": 481
},
{
"stage": "drawn",
"id": 7,
"time": 10.123945,
"at": 526
},
{
"stage": "drawn",
"id": 8,
"time": 10.164429,
"at": 564
},
{
"stage": "drawn",
"id": 9,
"time": 10.205162,
"at": 605
},
{
"stage": "drawn",
"id": 10,
"time": 10.245373,
"at": 644
},
{
"stage": "drawn",
"id": 11,
"time": 10.285975,
"at": 685
}
],
"samples": [
{
"start": 148,
"sent": 2,
"received": 2,
"copyStart": 148,
"drawn": 149,
"read": 149,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 155,
"sent": 2,
"received": 2,
"copyStart": 155,
"drawn": 156,
"read": 156,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 444,
"sent": 3,
"received": 3,
"copyStart": 444,
"drawn": 445,
"read": 445,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 460,
"sent": 4,
"received": 3,
"copyStart": 460,
"drawn": 467,
"read": 467,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 600,
"sent": 7,
"received": 7,
"copyStart": 601,
"drawn": 603,
"read": 603,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 612,
"sent": 7,
"received": 7,
"copyStart": 613,
"drawn": 615,
"read": 615,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 734,
"sent": 10,
"received": 10,
"copyStart": 734,
"drawn": 736,
"read": 736,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 741,
"sent": 11,
"received": 11,
"copyStart": 741,
"drawn": 745,
"read": 745,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.285975,
"frames": 11,
"sent": 11,
"received": 11,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: candidate",
"project": "webkit",
"status": "passed",
"duration": 1813,
"errors": [],
"browser": "26.6",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "candidate",
"evidence": {
"offscreen": false,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [],
"samples": [
{
"start": 570,
"sent": 2,
"received": 2,
"copyStart": 570,
"drawn": 571,
"read": 586,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 622,
"sent": 2,
"received": 2,
"copyStart": 622,
"drawn": 622,
"read": 622,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 869,
"sent": 7,
"received": 7,
"copyStart": 869,
"drawn": 870,
"read": 870,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 911,
"sent": 8,
"received": 8,
"copyStart": 911,
"drawn": 914,
"read": 943,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 981,
"sent": 9,
"received": 9,
"copyStart": 981,
"drawn": 984,
"read": 1010,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1156,
"sent": 11,
"received": 11,
"copyStart": 1156,
"drawn": 1158,
"read": 1162,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1197,
"sent": 11,
"received": 11,
"copyStart": 1197,
"drawn": 1197,
"read": 1198,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.3526667,
"frames": 12,
"sent": 12,
"received": 12,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: published",
"project": "webkit",
"status": "passed",
"duration": 1967,
"errors": [],
"browser": "26.6",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "published",
"evidence": {
"offscreen": false,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [],
"samples": [
{
"start": 596,
"sent": 2,
"received": 2,
"copyStart": 596,
"drawn": 597,
"read": 607,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 621,
"sent": 2,
"received": 2,
"copyStart": 621,
"drawn": 621,
"read": 621,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 1119,
"sent": 12,
"received": 12,
"copyStart": 1119,
"drawn": 1120,
"read": 1121,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1139,
"sent": 13,
"received": 13,
"copyStart": 1139,
"drawn": 1140,
"read": 1150,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1325,
"sent": 15,
"received": 15,
"copyStart": 1325,
"drawn": 1328,
"read": 1349,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1394,
"sent": 16,
"received": 16,
"copyStart": 1394,
"drawn": 1397,
"read": 1430,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1470,
"sent": 17,
"received": 17,
"copyStart": 1470,
"drawn": 1472,
"read": 1503,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": true,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.4753126,
"frames": 18,
"sent": 18,
"received": 18,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
},
{
"title": "Native canvas and video control through seek/layout without JASSUB: native",
"project": "webkit",
"status": "passed",
"duration": 1644,
"errors": [],
"browser": "26.6",
"platform": "win32",
"unhandledErrors": [],
"maxSynchronousCallMs": null,
"slowCalls": [],
"slowSamples": [],
"control": {
"host": "native",
"evidence": {
"offscreen": false,
"bitmap": false,
"idleReadback": false,
"singleFlight": false,
"stages": [],
"samples": [
{
"start": 537,
"sent": 3,
"received": 3,
"copyStart": 537,
"drawn": 538,
"read": 545,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 556,
"sent": 4,
"received": 4,
"copyStart": 556,
"drawn": 557,
"read": 573,
"pixel": [
255,
0,
0,
255
]
},
{
"start": 838,
"sent": 17,
"received": 17,
"copyStart": 838,
"drawn": 839,
"read": 840,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 882,
"sent": 18,
"received": 18,
"copyStart": 882,
"drawn": 886,
"read": 925,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 959,
"sent": 19,
"received": 19,
"copyStart": 959,
"drawn": 962,
"read": 1031,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1187,
"sent": 21,
"received": 21,
"copyStart": 1187,
"drawn": 1189,
"read": 1199,
"pixel": [
0,
0,
255,
255
]
},
{
"start": 1213,
"sent": 22,
"received": 22,
"copyStart": 1213,
"drawn": 1215,
"read": 1286,
"pixel": [
0,
0,
255,
255
]
}
],
"errors": [],
"coreLoaded": false,
"pixel": [
0,
0,
255,
255
],
"width": 1280,
"height": 720,
"time": 10.4579584,
"frames": 23,
"sent": 23,
"received": 23,
"skipped": 0,
"maxOutstanding": 1,
"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."
}
}
]
}
],
"sourceFiles": [
{
"path": "test/browser/jassub-platform.spec.js",
"sha256": "e3e8b8da8ae86c6a02995a112ca6f5b9c0c41207fba6bbeb0bd38321ea19c6f4"
},
{
"path": "test/browser/player.html",
"sha256": "4037c6eadc5da176f9dd67b2b517acb06c8cb2246c841316df26c660e55584b4"
},
{
"path": "test/browser/fixtures.js",
"sha256": "313414b8958eb5b03a2da8595fa0bbf6bfdc01484373898c6cb7179545df175d"
},
{
"path": "playwright.config.js",
"sha256": "df2384f5626252ec933725867e400ec22eb92bc5e6f04873059b32decf2f2d56"
}
],
"findings": [
"One outstanding task still stalls: queue concurrency is not required in the reproduced published-host failure.",
"Measured synchronous createImageBitmap call and main-thread drawImage readback each take roughly ten seconds; the remaining Promise settlement takes milliseconds in the captured sample.",
"The script-free native host in the intermediate boundary run also records a ten-second canvas readback despite an eventual-pixel pass. Green result alone is insufficient to infer no stall.",
"The final diagnostic bounds readback durations at seven seconds across initial playback, seek and layout. This opt-in bound does not change production defaults.",
"Idle readback passes once but changes observation scheduling. It is not a demonstrated runtime fix or evidence that screenshot/JASSUB failures have been resolved."
],
"limitations": [
"No native stack, lock identity or exact browser root cause; no offscreen-default change, vendor patch, publication, physical-device or full-package acceptance.",
"Worker and main-thread performance clocks have different origins. Durations are compared within each realm, not by subtracting cross-realm timestamps.",
"Early source revisions differ as explicitly identified. Final source fingerprints only cover final/idle/fillRect runs. Raw traces remain local.",
"Windows WebKit lacks canvas transfer; its cases exercise main-thread fillRect, not ImageBitmap or offscreen rendering."
]
}