Files
ArtPlayer/refactor/baselines/auto-thumbnail-canvas-validation.json

4249 lines
133 KiB
JSON

{
"task": "PKG-AUTO-THUMB-07",
"status": "complete",
"baselineCommit": "e93d3cbb67a937a94e3979f36efe16ee39cadb33",
"node": "24.21.0",
"yarn": "1.22.22",
"source": {
"path": "packages/artplayer-plugin-auto-thumbnail/src/extraction.ts",
"sha256": "028772ae962cb9d02e719435b799c6e0e193b15bc8448baa411a94bb7556fd5d",
"bytes": 2296
},
"architecture": {
"path": "packages/artplayer-plugin-auto-thumbnail/ARCHITECTURE.md",
"sha256": "d25be2e728d2c8cab00426a84abba2b5afffe407fc2d92b0caf939baf47a904b",
"bytes": 8933
},
"beforeArtifact": {
"path": "refactor/.cache/auto-thumb-canvas-before.js",
"sha256": "806d3c4601099bc67210c500f6b556072a90c7de0269d45821cb19d5e3b0c69a",
"bytes": 6044
},
"artifacts": [
{
"path": "packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.js",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"bytes": 6135,
"docs": {
"path": "docs/compiled/artplayer-plugin-auto-thumbnail.js",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"bytes": 6135
}
},
{
"path": "packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.legacy.js",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"bytes": 6715,
"docs": {
"path": "docs/compiled/artplayer-plugin-auto-thumbnail.legacy.js",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"bytes": 6715
}
},
{
"path": "packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.mjs",
"sha256": "cf726c7e6c5c08a1afc9b2c080e15150f3b16c0b321779257db662fe83336bf0",
"bytes": 11677,
"docs": {
"path": "docs/compiled/artplayer-plugin-auto-thumbnail.mjs",
"sha256": "cf726c7e6c5c08a1afc9b2c080e15150f3b16c0b321779257db662fe83336bf0",
"bytes": 11677
}
}
],
"controlled": [
{
"path": "refactor/.cache/auto-thumb-canvas-before.log",
"sha256": "3d40653069bcfe515426ecc8bb0595ac7191d7ebb74f88dd3bb974bc87929ff4",
"bytes": 5476,
"counts": {
"tests": 6,
"pass": 0,
"fail": 6
}
},
{
"path": "refactor/.cache/auto-thumb-canvas-after.log",
"sha256": "68fcd7a895737219444afc172b83114fd48661c840085de65396958244c96283",
"bytes": 664,
"counts": {
"tests": 6,
"pass": 6,
"fail": 0
}
},
{
"path": "refactor/.cache/auto-thumb-canvas-tests.log",
"sha256": "12e0e8b06291be00082f18f74d27bba1bfe4812c9da1c85b4edb843082060a77",
"bytes": 20711,
"counts": {
"tests": 160,
"pass": 159,
"fail": 1
}
},
{
"path": "refactor/.cache/auto-thumb-canvas-tests-final.log",
"sha256": "69157d61e43a1a99e3f17d760a4043ca6c0c9757305c2672e899fe58b2d90c83",
"bytes": 19819,
"counts": {
"tests": 160,
"pass": 160,
"fail": 0
}
},
{
"path": "refactor/.cache/auto-thumb-canvas-unit-js.log",
"sha256": "dd24231c16af3a8c8bdd70b61aea9204ba7d84648f339ff8e8bb9525dab8833d",
"bytes": 5808,
"counts": {
"tests": 58,
"pass": 58,
"fail": 0
}
},
{
"path": "refactor/.cache/auto-thumb-canvas-unit-legacy.js.log",
"sha256": "ffe539b33fb110ce4f5997000cb4f9d2f0981defd9b15e1b08be7dd3950f71f2",
"bytes": 5810,
"counts": {
"tests": 58,
"pass": 58,
"fail": 0
}
}
],
"reports": [
{
"mode": "before",
"report": "refactor/.cache/auto-thumb-canvas-native-before.json",
"sha256": "62b56c29d2f1c8d391f534dc4d51b4c336b75e48503c9bc2f5e882b0e777f063",
"results": "refactor/.cache/auto-thumb-canvas-native-before-results",
"stats": {
"startTime": "2026-09-13T19:40:36.042Z",
"duration": 3486.4629999999997,
"expected": 0,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"cases": [
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "failed",
"errors": [
{
"location": {
"file": "D:\\github\\ArtPlayer\\test\\browser\\auto-thumbnail-lifecycle.spec.js",
"column": 36,
"line": 116
},
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 2\u001b[39m\n\u001b[31m+ Received + 2\u001b[39m\n\n\u001b[2m Array [\u001b[22m\n\u001b[2m Array [\u001b[22m\n\u001b[32m- 0,\u001b[39m\n\u001b[32m- 0,\u001b[39m\n\u001b[31m+ 800,\u001b[39m\n\u001b[31m+ 45,\u001b[39m\n\u001b[2m ],\u001b[22m\n\u001b[2m ]\u001b[22m\n\n 114 | expect(state.after).toEqual(state.before)\n 115 | expect(state.video).toEqual({ connected: false, src: null, readyState: 0, paused: true, handlers: [true, true, true, true] })\n> 116 | expect(state.canvasDimensions).toEqual([[0, 0]])\n | ^\n 117 | expect(state.publishedImage).toEqual(scenario === 'complete' ? { width: 800, height: 45 } : null)\n 118 | expect(state.final).toEqual({ urls: 0, listeners: 0, updates: scenario === 'complete' ? 2 : 0 })\n 119 | expect(state.blobs.every(blob => blob.type === 'image/jpeg' && blob.bytes > 0)).toBe(true)\n at D:\\github\\ArtPlayer\\test\\browser\\auto-thumbnail-lifecycle.spec.js:116:36"
}
],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "806d3c4601099bc67210c500f6b556072a90c7de0269d45821cb19d5e3b0c69a",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
800,
45
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
},
{
"type": "image/jpeg",
"bytes": 4226
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
}
]
},
{
"mode": "main",
"report": "refactor/.cache/auto-thumb-canvas-native-main.json",
"sha256": "dae64fb488c400b5a8e9eba20fa92c593a669a6eaab7f2120816617ab2a80650",
"results": "refactor/.cache/auto-thumb-canvas-native-main-results",
"stats": {
"startTime": "2026-09-13T19:42:49.544Z",
"duration": 25004.026,
"expected": 21,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "destroy",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "restart",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
},
{
"type": "image/jpeg",
"bytes": 4226
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-destroy",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-restart",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "destroy",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "restart",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
},
{
"type": "image/jpeg",
"bytes": 6752
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-destroy",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-restart",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "destroy",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "restart",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4125
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
},
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-destroy",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-restart",
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"media": "auto-thumbnail-timeline",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
126,
0,
126,
255
],
[
254,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
1,
252,
255
],
[
255,
255,
1,
255
]
],
"spatial": [
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
127,
0,
126,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
254,
0,
0,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
255,
2,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.6,
"currentTime": 1.6
},
{
"mediaTime": 3.2,
"currentTime": 3.2
},
{
"mediaTime": 4.8,
"currentTime": 4.8
},
{
"mediaTime": 6.4,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"media": "pattern",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
15,
13,
138,
255
],
[
15,
15,
139,
255
],
[
15,
15,
139,
255
],
[
14,
15,
141,
255
],
[
213,
61,
47,
255
]
],
"spatial": [
[
244,
1,
0,
255
],
[
5,
251,
2,
255
],
[
15,
15,
139,
255
],
[
255,
0,
253,
255
],
[
2,
255,
253,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
253,
52,
0,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.583333,
"currentTime": 1.6
},
{
"mediaTime": 3.166667,
"currentTime": 3.2
},
{
"mediaTime": 4.791667,
"currentTime": 4.8
},
{
"mediaTime": 6.375,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"media": "auto-thumbnail-timeline",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
136,
19,
126,
255
],
[
254,
24,
0,
255
],
[
0,
0,
0,
255
],
[
1,
14,
253,
255
],
[
254,
241,
2,
255
]
],
"spatial": [
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
137,
19,
126,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
24,
0,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
241,
2,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.6,
"currentTime": 1.6
},
{
"mediaTime": 3.2,
"currentTime": 3.2
},
{
"mediaTime": 4.8,
"currentTime": 4.8
},
{
"mediaTime": 6.4,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"media": "pattern",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
5,
15,
250,
255
],
[
1,
14,
253,
255
],
[
1,
14,
253,
255
],
[
1,
14,
253,
255
],
[
247,
64,
0,
255
]
],
"spatial": [
[
255,
22,
9,
255
],
[
0,
216,
3,
255
],
[
1,
14,
253,
255
],
[
255,
36,
254,
255
],
[
1,
229,
254,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
69,
1,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.6,
"currentTime": 1.6
},
{
"mediaTime": 3.2,
"currentTime": 3.2
},
{
"mediaTime": 4.8,
"currentTime": 4.8
},
{
"mediaTime": 6.4,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"media": "auto-thumbnail-timeline",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
0,
0,
0,
255
],
[
238,
14,
14,
255
],
[
16,
16,
16,
255
],
[
16,
15,
239,
255
],
[
235,
236,
12,
255
]
],
"spatial": [
[
16,
16,
16,
255
],
[
16,
16,
16,
255
],
[
16,
16,
16,
255
],
[
16,
16,
16,
255
],
[
16,
16,
16,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
0
]
},
{
"time": 1.6016053,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
14,
14,
255
]
},
{
"time": 3.200928,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
16,
16,
255
]
},
{
"time": 4.8015866,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4018795,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
235,
236,
12,
255
]
}
],
"presented": [],
"supportsPresentation": false,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "23c8a1405077c315a7ebd4700a16d8ac05716464a6601c32a702a30e599727c3",
"media": "pattern",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
0,
0,
0,
255
],
[
28,
28,
140,
255
],
[
28,
28,
140,
255
],
[
28,
28,
140,
255
],
[
201,
71,
57,
255
]
],
"spatial": [
[
238,
14,
15,
255
],
[
14,
238,
14,
255
],
[
28,
28,
140,
255
],
[
238,
13,
237,
255
],
[
14,
237,
237,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
0
]
},
{
"time": 1.6003974,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 3.2008015,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 4.8012444,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4034658,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
61,
10,
255
]
}
],
"presented": [],
"supportsPresentation": false,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
}
]
},
{
"mode": "legacy",
"report": "refactor/.cache/auto-thumb-canvas-native-legacy.json",
"sha256": "87505fd4eb9cd4dab04ed7a284a60d118682214ccea88320630a297a1935a6a0",
"results": "refactor/.cache/auto-thumb-canvas-native-legacy-results",
"stats": {
"startTime": "2026-09-13T19:43:49.558Z",
"duration": 25423.173,
"expected": 21,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"cases": [
{
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "destroy",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "restart",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
},
{
"type": "image/jpeg",
"bytes": 4226
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-destroy",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-restart",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "destroy",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "restart",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
},
{
"type": "image/jpeg",
"bytes": 6752
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-destroy",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-restart",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "destroy",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "restart",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "complete",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 1,
"updates": 2
},
"after": {
"urls": 1,
"updates": 2
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": {
"width": 800,
"height": 45
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 2
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
},
{
"type": "image/jpeg",
"bytes": 4215
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-destroy",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-native-lifecycle",
"value": {
"scenario": "frame-restart",
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"scope": "Actual HTTP decoding/seek/JPEG and held native presentation callback lifecycle with a stub player host. Frame scenarios use a held Blob fallback only when native frame callbacks are absent. Pixel acceptance is separate; AUTO-THUMB-PIXEL-01 remains open.",
"before": {
"urls": 0,
"updates": 0
},
"after": {
"urls": 0,
"updates": 0
},
"video": {
"connected": false,
"src": null,
"readyState": 0,
"paused": true,
"handlers": [
true,
true,
true,
true
]
},
"canvasDimensions": [
[
0,
0
]
],
"publishedImage": null,
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4125
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"media": "auto-thumbnail-timeline",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
126,
0,
126,
255
],
[
254,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
1,
252,
255
],
[
255,
255,
1,
255
]
],
"spatial": [
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
127,
0,
126,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
254,
0,
0,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
255,
2,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.6,
"currentTime": 1.6
},
{
"mediaTime": 3.2,
"currentTime": 3.2
},
{
"mediaTime": 4.8,
"currentTime": 4.8
},
{
"mediaTime": 6.4,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"browser": "153.0.8010.12",
"project": "chromium",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"media": "pattern",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
15,
13,
138,
255
],
[
15,
15,
139,
255
],
[
15,
15,
139,
255
],
[
14,
15,
141,
255
],
[
213,
61,
47,
255
]
],
"spatial": [
[
244,
1,
0,
255
],
[
5,
251,
2,
255
],
[
15,
15,
139,
255
],
[
255,
0,
253,
255
],
[
2,
255,
253,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
253,
52,
0,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.583333,
"currentTime": 1.6
},
{
"mediaTime": 3.166667,
"currentTime": 3.2
},
{
"mediaTime": 4.791667,
"currentTime": 4.8
},
{
"mediaTime": 6.375,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"media": "auto-thumbnail-timeline",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
136,
19,
126,
255
],
[
254,
24,
0,
255
],
[
0,
0,
0,
255
],
[
1,
14,
253,
255
],
[
254,
241,
2,
255
]
],
"spatial": [
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
],
[
0,
0,
0,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
137,
19,
126,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
24,
0,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
241,
2,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.6,
"currentTime": 1.6
},
{
"mediaTime": 3.2,
"currentTime": 3.2
},
{
"mediaTime": 4.8,
"currentTime": 4.8
},
{
"mediaTime": 6.4,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"browser": "155.0",
"project": "firefox",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"media": "pattern",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
5,
15,
250,
255
],
[
1,
14,
253,
255
],
[
1,
14,
253,
255
],
[
1,
14,
253,
255
],
[
247,
64,
0,
255
]
],
"spatial": [
[
255,
22,
9,
255
],
[
0,
216,
3,
255
],
[
1,
14,
253,
255
],
[
255,
36,
254,
255
],
[
1,
229,
254,
255
]
],
"draws": [
{
"time": 0,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 1.6,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 3.2,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 4.8,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
14,
253,
255
]
},
{
"time": 6.4,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
255,
69,
1,
255
]
}
],
"presented": [
{
"mediaTime": 0,
"currentTime": 0
},
{
"mediaTime": 1.6,
"currentTime": 1.6
},
{
"mediaTime": 3.2,
"currentTime": 3.2
},
{
"mediaTime": 4.8,
"currentTime": 4.8
},
{
"mediaTime": 6.4,
"currentTime": 6.4
}
],
"supportsPresentation": true,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"media": "auto-thumbnail-timeline",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
0,
0,
0,
255
],
[
238,
14,
14,
255
],
[
16,
16,
16,
255
],
[
16,
15,
239,
255
],
[
235,
236,
12,
255
]
],
"spatial": [
[
16,
16,
16,
255
],
[
16,
16,
16,
255
],
[
16,
16,
16,
255
],
[
16,
16,
16,
255
],
[
16,
16,
16,
255
]
],
"draws": [
{
"time": 0.0002962,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
0
]
},
{
"time": 1.6019117,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
14,
14,
255
]
},
{
"time": 3.2013872,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
16,
16,
255
]
},
{
"time": 4.8018211,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4017066,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
235,
236,
12,
255
]
}
],
"presented": [],
"supportsPresentation": false,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
},
{
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"browser": "26.6",
"project": "webkit",
"status": "passed",
"errors": [],
"attachments": [
{
"name": "auto-thumbnail-candidate-hidden-pixels",
"value": {
"sha256": "32a620523aaccbfa3910232f88f255ebbadc89e20a0cb21dc09c17dff611627d",
"media": "pattern",
"scope": "All five cells are asserted where native frame presentation callbacks are available. Without that capability only cells 2-4 are asserted, with cells 0-1 recorded as unresolved diagnostics under AUTO-THUMB-PIXEL-01. Native HTTP/JPEG and a stub player host, not a core integration.",
"cells": [
[
0,
0,
0,
255
],
[
28,
28,
140,
255
],
[
28,
28,
140,
255
],
[
28,
28,
140,
255
],
[
217,
65,
51,
255
]
],
"spatial": [
[
238,
14,
15,
255
],
[
14,
238,
14,
255
],
[
28,
28,
140,
255
],
[
238,
13,
237,
255
],
[
14,
237,
237,
255
]
],
"draws": [
{
"time": 0.0011342,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
0
]
},
{
"time": 1.6006964,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 3.2010741,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 4.8014946,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4062879,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
239,
62,
14,
255
]
}
],
"presented": [],
"supportsPresentation": false,
"final": [
{
"connected": false,
"src": null,
"paused": true
}
],
"playing": 0,
"warnings": []
}
}
]
}
]
}
],
"checks": [
"Package strict TypeScript passed",
"Targeted source and test ESLint passed",
"Yarn strict toolchain passed: 28 tools / 1394 selectors",
"Normal three-format repository build passed; all docs copies byte-identical",
"Native Node ESM import exposes the existing default function"
],
"limitation": "Only private canvas dimensions/lifecycle and retained JPEG ownership are closed. No exact RAM/VRAM reclamation measurement, native encoder cancellation, whole-package installed type matrix, full core combinations or device acceptance. Pixel specs retain explicit callback-less WebKit first-two-cell gaps. Full source suite includes historical defect observations. Intermediate 159/1 failure was the legacy test reading dimensions after completion; the same dimension assertion now runs before extraction and final zero dimensions are checked separately."
}