Files
ArtPlayer/refactor/baselines/auto-thumbnail-frame-presentation.json
T

9760 lines
252 KiB
JSON

{
"task": "PKG-AUTO-THUMB-03",
"status": "doing",
"date": "2026-09-12T23:46:36.426Z",
"previousCommit": "a128706fe78e01c5582eec54c1e3419ff8ffc781",
"scope": "Presentation-aware extraction on native callback-capable browsers, with constant job cleanup ownership and per-sample 30-second data/seek/presentation deadlines. Callback-less fallback first pixels remain unresolved.",
"unit": [
{
"variant": "before",
"tests": 19,
"pass": 2,
"fail": 17,
"log": "refactor/.cache/auto-thumbnail-frames-final-unit-before.log",
"sha256": "868ade926266bbc2a099ed10b3c9478933ee9063c2e7d1e3c4e6964758d6e867",
"scope": "New frame-specific tests only; fallback behavior and the synchronous-presentation observable outcome also pass on the previous checkpoint."
},
{
"variant": "source",
"tests": 52,
"pass": 52,
"fail": 0,
"log": "refactor/.cache/auto-thumbnail-frames-final-unit-source.log",
"sha256": "17450249d7a4af988240e07a09b797c7ad051641256f2a38152f8746e0424ced",
"scope": "19 frame-specific plus 33 existing lifecycle cases."
},
{
"variant": "main",
"tests": 52,
"pass": 52,
"fail": 0,
"log": "refactor/.cache/auto-thumbnail-frames-final-unit-main.log",
"sha256": "9cdda48b260e3de63bd326ea7328c5674e297e5863470d91b47a42cbb99315f8",
"scope": "19 frame-specific plus 33 existing lifecycle cases."
},
{
"variant": "legacy",
"tests": 52,
"pass": 52,
"fail": 0,
"log": "refactor/.cache/auto-thumbnail-frames-final-unit-legacy.log",
"sha256": "7c5de18110bf1d32dad1067c8713ddb47a74514e6ab23a301d40b1201fb20a70",
"scope": "19 frame-specific plus 33 existing lifecycle cases."
}
],
"native": [
{
"variant": "source",
"tests": 42,
"retries": 0,
"skipped": 0,
"report": "refactor/.cache/auto-thumbnail-frames-final-browser-source.json",
"sha256": "538ec20c3eb6cb314ed1857b1a778ac1a7558c3c508af772522e3ce43b8a1a44",
"results": "refactor/.cache/auto-thumbnail-frames-final-browser-source-results",
"measurements": [
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"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"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"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"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"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"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"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"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"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"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"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"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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.6015634,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
14,
14,
255
]
},
{
"time": 3.2026369,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
16,
16,
255
]
},
{
"time": 4.8020478,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4019029,
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
0
]
},
{
"time": 1.6006026,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 3.2025446,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 4.8009735,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4020927,
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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.6025738,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
14,
14,
255
]
},
{
"time": 3.2018507,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
16,
16,
255
]
},
{
"time": 4.8007837,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4020943,
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "c8dddade6f2fd6e364978ac4b6fabd7276ccf78184b45fcd1a9556493af4c115",
"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,
14,
255
],
[
14,
238,
14,
255
],
[
28,
28,
140,
255
],
[
239,
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.6005796,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 3.2004693,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 4.8021193,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4006919,
"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": []
}
]
},
{
"variant": "main",
"tests": 21,
"retries": 0,
"skipped": 0,
"report": "refactor/.cache/auto-thumbnail-frames-final-browser-main.json",
"sha256": "cea172aae2ee8954936c80a5e26266f2fdf399d768100ccb9d3fd2624d1b913a",
"results": "refactor/.cache/auto-thumbnail-frames-final-browser-main-results",
"measurements": [
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"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"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"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"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"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"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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": []
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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.6006083,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
14,
14,
255
]
},
{
"time": 3.2014815,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
16,
16,
255
]
},
{
"time": 4.8011166,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4021892,
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"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,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
0,
0,
0,
0
]
},
{
"time": 1.6006312,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 3.2016275,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 4.8011736,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4039991,
"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": []
}
]
},
{
"variant": "legacy",
"tests": 21,
"retries": 0,
"skipped": 0,
"report": "refactor/.cache/auto-thumbnail-frames-final-browser-legacy.json",
"sha256": "afc4af73ed9f94748c167f99a582289ad628e8f8b0fec39fed5b8d5a6250a5f4",
"results": "refactor/.cache/auto-thumbnail-frames-final-browser-legacy-results",
"measurements": [
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 2635
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"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"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 4076
}
],
"heldFrames": 0,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"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"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [],
"heldFrames": 1,
"frameSupport": true,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native destroy owns decoder and encoded URLs",
"scenario": "destroy",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native restart owns decoder and encoded URLs",
"scenario": "restart",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native complete owns decoder and encoded URLs",
"scenario": "complete",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"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"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-destroy owns decoder and encoded URLs",
"scenario": "frame-destroy",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate native frame-restart owns decoder and encoded URLs",
"scenario": "frame-restart",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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
]
},
"final": {
"urls": 0,
"listeners": 0,
"updates": 0
},
"blobs": [
{
"type": "image/jpeg",
"bytes": 983
}
],
"heldFrames": 0,
"frameSupport": false,
"result": {
"name": "artplayerPluginAutoThumbnail"
}
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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": []
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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": []
},
{
"browser": "firefox",
"version": "155.0",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented auto-thumbnail-timeline pixels and records fallback limits",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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.6014328,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
238,
14,
14,
255
]
},
{
"time": 3.2026031,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
16,
16,
255
]
},
{
"time": 4.8023124,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4013339,
"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": []
},
{
"browser": "webkit",
"version": "26.6",
"title": "Auto-thumbnail candidate verifies presented pattern pixels and records fallback limits",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"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,
14,
255
],
[
14,
238,
14,
255
],
[
28,
28,
140,
255
],
[
239,
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.6005294,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 3.2005638,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 4.8009563,
"duration": 8,
"connected": true,
"visibility": "hidden",
"display": "block",
"width": 320,
"height": 180,
"raw": [
16,
15,
239,
255
]
},
{
"time": 6.4060931,
"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": []
}
]
}
],
"fullCI": {
"status": "passed",
"command": "yarn ci:check",
"unit": 1572,
"engineering": 14,
"baseline": 232,
"total": 1818,
"strictProductionTypeScriptFiles": 339,
"log": "refactor/.cache/auto-thumbnail-frames-final-ci.log",
"sha256": "ba4284694431c836242ef10e5057f39ba2f91cadd6a36aa4918adb4f374ea66b",
"scope": "Auto-thumbnail remains JavaScript for this task03 checkpoint."
},
"limits": [
"Windows WebKit 26.6 has no native frame callback; cells 0-1 remain diagnostic while cells 2-4 are asserted. AUTO-THUMB-PIXEL-01 stays open.",
"Native samples and held callbacks use a stub player host, not full core integration or a physical Safari result.",
"The 30-second deadline covers a pending data/seek/presentation sample only; encoder/network/background/aggregate resource policy remains incomplete.",
"Auto-thumbnail source is still JavaScript. Strict TypeScript and historical declarations remain task04."
],
"previousNative": {
"report": "refactor/.cache/auto-thumbnail-frames-browser-before.json",
"sha256": "df8708056bdf1e64768ede89aadcb7a86d55b34e4623ee4921fbfa8c08b13be9",
"results": "refactor/.cache/auto-thumbnail-frames-browser-before-results",
"passed": 2,
"failed": 4,
"scope": "Previous checkpoint cannot satisfy native presentation assertions on Chromium/Firefox. Firefox also retains an incorrect early pixel. Callback-less WebKit retains the same explicitly partial acceptance; its two passing cases do not close its initial-frame defect."
},
"sameFrameExperiment": {
"file": "refactor/.cache/auto-thumbnail-same-frame-probe.json",
"sha256": "c96b942f9c09e1ab22053f79f753b27d1513a49509b72da8ecbbc8a7aff8eee1",
"results": [
{
"browser": "chromium",
"version": "153.0.8010.12",
"mode": "attached-hidden-callback",
"initial": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frame": 0.033333,
"beforeSeek": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.005,
"immediate": {
"time": 0.005,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.005,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.02,
"immediate": {
"time": 0.02,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.02,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.03,
"immediate": {
"time": 0.03,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.03,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 1
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.005,
"readyState": 4
},
{
"event": "canplay",
"time": 0.005,
"readyState": 4
},
{
"event": "seeked",
"time": 0.01,
"readyState": 4
},
{
"event": "canplay",
"time": 0.01,
"readyState": 4
},
{
"event": "seeked",
"time": 0.02,
"readyState": 4
},
{
"event": "canplay",
"time": 0.02,
"readyState": 4
},
{
"event": "seeked",
"time": 0.03,
"readyState": 4
},
{
"event": "canplay",
"time": 0.03,
"readyState": 4
},
{
"event": "seeked",
"time": 0.04,
"readyState": 4
},
{
"event": "canplay",
"time": 0.04,
"readyState": 4
}
]
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"mode": "attached-callback",
"initial": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frame": 0.033333,
"beforeSeek": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.005,
"immediate": {
"time": 0.005,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.005,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.02,
"immediate": {
"time": 0.02,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.02,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.03,
"immediate": {
"time": 0.03,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.03,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 1
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.005,
"readyState": 4
},
{
"event": "canplay",
"time": 0.005,
"readyState": 4
},
{
"event": "seeked",
"time": 0.01,
"readyState": 4
},
{
"event": "canplay",
"time": 0.01,
"readyState": 4
},
{
"event": "seeked",
"time": 0.02,
"readyState": 4
},
{
"event": "canplay",
"time": 0.02,
"readyState": 4
},
{
"event": "seeked",
"time": 0.03,
"readyState": 4
},
{
"event": "canplay",
"time": 0.03,
"readyState": 4
},
{
"event": "seeked",
"time": 0.04,
"readyState": 4
},
{
"event": "canplay",
"time": 0.04,
"readyState": 4
}
]
},
{
"browser": "firefox",
"version": "155.0",
"mode": "attached-hidden-callback",
"initial": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"frame": 0.04,
"beforeSeek": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.005,
"immediate": {
"time": 0.005,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.005,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.01,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.01,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.02,
"immediate": {
"time": 0.02,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.02,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.03,
"immediate": {
"time": 0.03,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.03,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.04,
"readyState": 4,
"rgba": [
255,
24,
0,
255
]
},
"afterPaint": {
"time": 0.04,
"readyState": 4,
"rgba": [
255,
24,
0,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.005,
"readyState": 4
},
{
"event": "canplay",
"time": 0.005,
"readyState": 4
},
{
"event": "seeked",
"time": 0.01,
"readyState": 4
},
{
"event": "canplay",
"time": 0.01,
"readyState": 4
},
{
"event": "seeked",
"time": 0.02,
"readyState": 4
},
{
"event": "canplay",
"time": 0.02,
"readyState": 4
},
{
"event": "seeked",
"time": 0.03,
"readyState": 4
},
{
"event": "canplay",
"time": 0.03,
"readyState": 4
},
{
"event": "seeked",
"time": 0.04,
"readyState": 4
},
{
"event": "canplay",
"time": 0.04,
"readyState": 4
}
]
},
{
"browser": "firefox",
"version": "155.0",
"mode": "attached-callback",
"initial": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"frame": 0.04,
"beforeSeek": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.005,
"immediate": {
"time": 0.005,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.005,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.01,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.01,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.02,
"immediate": {
"time": 0.02,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.02,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.03,
"immediate": {
"time": 0.03,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
},
"afterPaint": {
"time": 0.03,
"readyState": 4,
"rgba": [
137,
19,
126,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.04,
"readyState": 4,
"rgba": [
255,
24,
0,
255
]
},
"afterPaint": {
"time": 0.04,
"readyState": 4,
"rgba": [
255,
24,
0,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.005,
"readyState": 4
},
{
"event": "canplay",
"time": 0.005,
"readyState": 4
},
{
"event": "seeked",
"time": 0.01,
"readyState": 4
},
{
"event": "canplay",
"time": 0.01,
"readyState": 4
},
{
"event": "seeked",
"time": 0.02,
"readyState": 4
},
{
"event": "canplay",
"time": 0.02,
"readyState": 4
},
{
"event": "seeked",
"time": 0.03,
"readyState": 4
},
{
"event": "canplay",
"time": 0.03,
"readyState": 4
},
{
"event": "seeked",
"time": 0.04,
"readyState": 4
},
{
"event": "canplay",
"time": 0.04,
"readyState": 4
}
]
}
],
"scope": "Independent callback API experiment, not a candidate/default-count acceptance: hidden and ordinary Chromium/Firefox elements delivered callbacks for targets 0, .005, .01, .02, .03, .04. First five samples retain unique purple frame; .04 is red. No WebKit claim."
},
"actualEntries": [
{
"name": "main-require",
"entry": "./dist/artplayer-plugin-auto-thumbnail.js",
"result": "pass",
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"scope": "Actual built entry and registration without DOM access; not an installed tarball test."
},
{
"name": "legacy-require",
"entry": "./dist/artplayer-plugin-auto-thumbnail.legacy.js",
"result": "pass",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"scope": "Actual built entry and registration without DOM access; not an installed tarball test."
},
{
"name": "legacy-import",
"entry": "./dist/artplayer-plugin-auto-thumbnail.legacy.js",
"result": "pass",
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"scope": "Actual built entry and registration without DOM access; not an installed tarball test."
},
{
"name": "module-import",
"entry": "./dist/artplayer-plugin-auto-thumbnail.mjs",
"result": "pass",
"sha256": "6b3ed3bd30de684e55adbe361a1e6010c5de75e8bd27936466b61c6df4a08a05",
"scope": "Actual built entry and registration without DOM access; not an installed tarball test."
}
],
"artifacts": [
{
"file": "packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.js",
"copy": "docs/compiled/artplayer-plugin-auto-thumbnail.js",
"bytes": 5991,
"sha256": "7ab0cc25a5832f3978860a280d224023e96cbf2a31824199de272c10fae3af57",
"copiedBytesEqual": true
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.legacy.js",
"copy": "docs/compiled/artplayer-plugin-auto-thumbnail.legacy.js",
"bytes": 6571,
"sha256": "53efce3aa58773dc8afa03fc1de9f3829f2837b30e9a9438c4208a2f83f54657",
"copiedBytesEqual": true
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/dist/artplayer-plugin-auto-thumbnail.mjs",
"copy": "docs/compiled/artplayer-plugin-auto-thumbnail.mjs",
"bytes": 11367,
"sha256": "6b3ed3bd30de684e55adbe361a1e6010c5de75e8bd27936466b61c6df4a08a05",
"copiedBytesEqual": true
}
],
"inputs": [
{
"file": "package.json",
"sha256LF": "2dc53f03b5fe878f2930a20ed891d4ddafdd2cee13f2a536b2833a0849a23abf"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/ARCHITECTURE.md",
"sha256LF": "f5a56d8092489f36b0f024b92cbfa25c71bbb530975fc43128d05e06d30d4ec2"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/src/index.js",
"sha256LF": "6ecc757ac74d961fb0bda13d58582f0845e29b62f10e351a267b67adb7b684b8"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/src/options.js",
"sha256LF": "11c88fe9682d0736d28a128b352f34832a8ed2a7a82fb6e92e44fc85b7458056"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/src/session.js",
"sha256LF": "14b69480a829d15c9a74995fc398296ad10983bd3a177aa1ddc0205273afa6ec"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/src/extraction.js",
"sha256LF": "43ed1d8d4a855de7bab0f04c838eefd5b23ca1cf3d07c0e3c13f0b32364f79c5"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/src/video.js",
"sha256LF": "21f446ab9570e0ef4a75a4d76db5605559b546b36eddb4128702bc77bdaf4193"
},
{
"file": "packages/artplayer-plugin-auto-thumbnail/src/frames.js",
"sha256LF": "06565801ccb616211d6fba1858fc12df178bd503ff78128d49d41eca8a4fae3f"
},
{
"file": "test/helpers/auto-thumbnail.js",
"sha256LF": "1a5a3d468fd382ef694627f9263b5c786b3016f8f690ed67691727c8802f1071"
},
{
"file": "test/auto-thumbnail-frames.test.js",
"sha256LF": "5d4c28a09b28b9175460ec9f7bd4ea0e3b33a3cc9c6939a81f517103ae1ca987"
},
{
"file": "test/auto-thumbnail-lifecycle.test.js",
"sha256LF": "f184ff44d0e3d679463407e4e52a32e4c67308625876eb1bc7f96cb2e4fabc02"
},
{
"file": "test/browser/auto-thumbnail-lifecycle.spec.js",
"sha256LF": "e526c4db0611c777ae9af111070fd742e9f0cefa2bbafe88257315945830d14c"
},
{
"file": "test/browser/auto-thumbnail-pixels.spec.js",
"sha256LF": "71d14ed9b1e6372720df68b137697703e5ed7160504a91df8bfc732343465860"
}
],
"caughtBeforeCommit": {
"issue": "A readyState getter destroying the host could restore onloadeddata after cleanup.",
"correction": "Recheck sample identity after reading readiness.",
"preFixTests": 19,
"preFixPassed": 18,
"preFixFailed": 1,
"log": "refactor/.cache/auto-thumbnail-frames-ready-before.log",
"initialPassingFullCI": "refactor/.cache/auto-thumbnail-frames-ci.log",
"initialPassingTests": 1817,
"initialCheckpoint": "refactor/.cache/auto-thumbnail-frames-initial-checkpoint.json"
},
"followUpExperiment": {
"file": "refactor/.cache/auto-thumbnail-webkit-copy-probe.json",
"sha256": "1a22f5743e0457857fe9529b79328e81b185a0e52668d8ea34bc6e719aa5a09e",
"results": [
{
"browser": "webkit",
"version": "26.6",
"mode": "attached-hidden-bitmap",
"initial": {
"time": 0,
"readyState": 2,
"rgba": [
0,
0,
0,
0
]
},
"frame": null,
"beforeSeek": {
"time": 0,
"readyState": 2,
"rgba": [
0,
0,
0,
0
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0.0015394,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.0015394,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.005,
"immediate": {
"time": 0.0063651,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.0063651,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.0416231,
"readyState": 4,
"rgba": [
127,
14,
127,
255
]
},
"afterPaint": {
"time": 0.0416231,
"readyState": 4,
"rgba": [
127,
14,
127,
255
]
}
},
{
"target": 1.6,
"immediate": {
"time": 1.6004398,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 1.6004398,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 3.2,
"immediate": {
"time": 3.2016417,
"readyState": 4,
"rgba": [
16,
16,
16,
255
]
},
"afterPaint": {
"time": 3.2016417,
"readyState": 4,
"rgba": [
16,
16,
16,
255
]
}
},
{
"target": 4.8,
"immediate": {
"time": 4.8023997,
"readyState": 4,
"rgba": [
16,
15,
239,
255
]
},
"afterPaint": {
"time": 4.8023997,
"readyState": 4,
"rgba": [
16,
15,
239,
255
]
}
},
{
"target": 6.4,
"immediate": {
"time": 6.4007271,
"readyState": 3,
"rgba": [
235,
236,
12,
255
]
},
"afterPaint": {
"time": 6.4007271,
"readyState": 3,
"rgba": [
235,
236,
12,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 2
},
{
"event": "loadeddata",
"time": 0,
"readyState": 2
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0015394,
"readyState": 4
},
{
"event": "canplay",
"time": 0.0063651,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0063651,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0416231,
"readyState": 4
},
{
"event": "canplay",
"time": 1.6004398,
"readyState": 4
},
{
"event": "seeked",
"time": 1.6004398,
"readyState": 4
},
{
"event": "canplay",
"time": 3.2016417,
"readyState": 4
},
{
"event": "seeked",
"time": 3.2016417,
"readyState": 4
},
{
"event": "seeked",
"time": 4.8023997,
"readyState": 4
},
{
"event": "seeked",
"time": 6.4007271,
"readyState": 3
}
]
},
{
"browser": "webkit",
"version": "26.6",
"mode": "attached-hidden-videoframe",
"error": "Can't find variable: VideoFrame",
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 4
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
}
]
},
{
"browser": "webkit",
"version": "26.6",
"mode": "attached-hidden-plain",
"initial": {
"time": 0,
"readyState": 2,
"rgba": [
0,
0,
0,
0
]
},
"frame": null,
"beforeSeek": {
"time": 0,
"readyState": 2,
"rgba": [
0,
0,
0,
0
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
0,
0,
0,
0
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.005,
"immediate": {
"time": 0.0071363,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.0071363,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.0422188,
"readyState": 4,
"rgba": [
127,
14,
127,
255
]
},
"afterPaint": {
"time": 0.0422188,
"readyState": 4,
"rgba": [
127,
14,
127,
255
]
}
},
{
"target": 1.6,
"immediate": {
"time": 1.6022376,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 1.6022376,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 3.2,
"immediate": {
"time": 3.2019014,
"readyState": 4,
"rgba": [
16,
16,
16,
255
]
},
"afterPaint": {
"time": 3.2019014,
"readyState": 4,
"rgba": [
16,
16,
16,
255
]
}
},
{
"target": 4.8,
"immediate": {
"time": 4.8016506,
"readyState": 4,
"rgba": [
16,
15,
239,
255
]
},
"afterPaint": {
"time": 4.8016506,
"readyState": 4,
"rgba": [
16,
15,
239,
255
]
}
},
{
"target": 6.4,
"immediate": {
"time": 6.4018336,
"readyState": 3,
"rgba": [
235,
236,
12,
255
]
},
"afterPaint": {
"time": 6.4018336,
"readyState": 3,
"rgba": [
235,
236,
12,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 2
},
{
"event": "loadeddata",
"time": 0,
"readyState": 2
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0071363,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0422188,
"readyState": 4
},
{
"event": "seeked",
"time": 1.6022376,
"readyState": 4
},
{
"event": "seeked",
"time": 3.2019014,
"readyState": 4
},
{
"event": "seeked",
"time": 4.8016506,
"readyState": 4
},
{
"event": "seeked",
"time": 6.4018336,
"readyState": 3
}
]
}
],
"scope": "Independent Windows WebKit probe only: createImageBitmap(video) also gave the wrong initial color, like direct drawImage; VideoFrame was unavailable. No production fallback added and no native capability waiver."
},
"validatedAt": "2026-09-12T23:52:40.657Z",
"noBFrameExperiment": {
"scope": "Independent native media probe, not candidate acceptance. Reencoding the unique-first-frame clip without B frames did not repair Windows WebKit initial pixels; Chromium still reads the purple first frame. Do not apply a universal .04-second offset or waive the fallback risk.",
"media": {
"file": "refactor/.cache/auto-thumbnail-first-frame-no-b.mp4",
"sha256": "a9ee6b8f22af1d9dc9d09d25197148281056c680cbbdae3c33b046bec23c4dff",
"command": "ffmpeg -i auto-thumbnail-timeline.mp4 -c:v libx264 -bf 0 -g 30 -pix_fmt yuv420p -movflags +faststart <new-output.mp4>"
},
"runs": [
{
"file": "refactor/.cache/auto-thumbnail-no-b-frame-probe.json",
"sha256": "26e7648b606284b43fca97185d78b9c12a5c654ee139e4b0473ed4006acb2d3e",
"results": [
{
"browser": "webkit",
"version": "26.6",
"mode": "attached-hidden-plain",
"initial": {
"time": 0,
"readyState": 2,
"rgba": [
0,
0,
0,
0
]
},
"frame": null,
"beforeSeek": {
"time": 0,
"readyState": 2,
"rgba": [
0,
0,
0,
0
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
0,
0,
0,
0
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
0,
0,
0,
0
]
}
},
{
"target": 0,
"immediate": {
"time": 0.0022923,
"readyState": 4,
"rgba": [
0,
0,
0,
0
]
},
"afterPaint": {
"time": 0.0022923,
"readyState": 4,
"rgba": [
0,
0,
0,
0
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.0146568,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.0146568,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.042291,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.042291,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.1,
"immediate": {
"time": 0.1014159,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.1014159,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 0.5,
"immediate": {
"time": 0.5011826,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 0.5011826,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 1,
"immediate": {
"time": 1.0005246,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
},
"afterPaint": {
"time": 1.0005246,
"readyState": 4,
"rgba": [
238,
14,
14,
255
]
}
},
{
"target": 2.5,
"immediate": {
"time": 2.5005619,
"readyState": 4,
"rgba": [
16,
16,
16,
255
]
},
"afterPaint": {
"time": 2.5005619,
"readyState": 4,
"rgba": [
16,
16,
16,
255
]
}
},
{
"target": 4.5,
"immediate": {
"time": 4.5017801,
"readyState": 4,
"rgba": [
16,
15,
239,
255
]
},
"afterPaint": {
"time": 4.5017801,
"readyState": 4,
"rgba": [
16,
15,
239,
255
]
}
},
{
"target": 6.5,
"immediate": {
"time": 6.5019006,
"readyState": 3,
"rgba": [
235,
236,
12,
255
]
},
"afterPaint": {
"time": 6.5019006,
"readyState": 3,
"rgba": [
235,
236,
12,
255
]
}
},
{
"target": 0,
"immediate": {
"time": 0.0012953,
"readyState": 4,
"rgba": [
127,
14,
127,
255
]
},
"afterPaint": {
"time": 0.0012953,
"readyState": 4,
"rgba": [
127,
14,
127,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 2
},
{
"event": "loadeddata",
"time": 0,
"readyState": 2
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0022923,
"readyState": 4
},
{
"event": "canplay",
"time": 0.0146568,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0146568,
"readyState": 4
},
{
"event": "seeked",
"time": 0.042291,
"readyState": 4
},
{
"event": "canplay",
"time": 0.1014159,
"readyState": 4
},
{
"event": "seeked",
"time": 0.1014159,
"readyState": 4
},
{
"event": "seeked",
"time": 0.5011826,
"readyState": 4
},
{
"event": "seeked",
"time": 1.0005246,
"readyState": 4
},
{
"event": "seeked",
"time": 2.5005619,
"readyState": 4
},
{
"event": "seeked",
"time": 4.5017801,
"readyState": 4
},
{
"event": "seeked",
"time": 6.5019006,
"readyState": 3
},
{
"event": "canplay",
"time": 0.0012953,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0012953,
"readyState": 4
}
]
},
{
"browser": "webkit",
"version": "26.6",
"mode": "attached-plain",
"error": "seeked timed out",
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 4
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0021202,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0115887,
"readyState": 4
},
{
"event": "seeked",
"time": 0.0414667,
"readyState": 4
}
]
}
]
},
{
"file": "refactor/.cache/auto-thumbnail-no-b-frame-control.json",
"sha256": "503a6e2232b7176f3c36eb8ac61fe25b0645880303236a8ae605eef0ec387c2c",
"results": [
{
"browser": "chromium",
"version": "153.0.8010.12",
"mode": "attached-hidden-plain",
"initial": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frame": null,
"beforeSeek": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 0.1,
"immediate": {
"time": 0.1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 0.5,
"immediate": {
"time": 0.5,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.5,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 1,
"immediate": {
"time": 1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 2.5,
"immediate": {
"time": 2.5,
"readyState": 4,
"rgba": [
0,
0,
0,
255
]
},
"afterPaint": {
"time": 2.5,
"readyState": 4,
"rgba": [
0,
0,
0,
255
]
}
},
{
"target": 4.5,
"immediate": {
"time": 4.5,
"readyState": 4,
"rgba": [
0,
0,
253,
255
]
},
"afterPaint": {
"time": 4.5,
"readyState": 4,
"rgba": [
0,
0,
253,
255
]
}
},
{
"target": 6.5,
"immediate": {
"time": 6.5,
"readyState": 4,
"rgba": [
255,
255,
2,
255
]
},
"afterPaint": {
"time": 6.5,
"readyState": 4,
"rgba": [
255,
255,
2,
255
]
}
},
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 1
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.01,
"readyState": 4
},
{
"event": "canplay",
"time": 0.01,
"readyState": 4
},
{
"event": "seeked",
"time": 0.04,
"readyState": 4
},
{
"event": "canplay",
"time": 0.04,
"readyState": 4
},
{
"event": "seeked",
"time": 0.1,
"readyState": 4
},
{
"event": "canplay",
"time": 0.1,
"readyState": 4
},
{
"event": "seeked",
"time": 0.5,
"readyState": 4
},
{
"event": "canplay",
"time": 0.5,
"readyState": 4
},
{
"event": "seeked",
"time": 1,
"readyState": 4
},
{
"event": "canplay",
"time": 1,
"readyState": 4
},
{
"event": "seeked",
"time": 2.5,
"readyState": 4
},
{
"event": "canplay",
"time": 2.5,
"readyState": 4
},
{
"event": "seeked",
"time": 4.5,
"readyState": 4
},
{
"event": "canplay",
"time": 4.5,
"readyState": 4
},
{
"event": "seeked",
"time": 6.5,
"readyState": 4
},
{
"event": "canplay",
"time": 6.5,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
}
]
},
{
"browser": "chromium",
"version": "153.0.8010.12",
"mode": "attached-plain",
"initial": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frame": null,
"beforeSeek": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"frames": [
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.01,
"immediate": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0.01,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
},
{
"target": 0.04,
"immediate": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.04,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 0.1,
"immediate": {
"time": 0.1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 0.5,
"immediate": {
"time": 0.5,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 0.5,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 1,
"immediate": {
"time": 1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
},
"afterPaint": {
"time": 1,
"readyState": 4,
"rgba": [
254,
0,
0,
255
]
}
},
{
"target": 2.5,
"immediate": {
"time": 2.5,
"readyState": 4,
"rgba": [
0,
0,
0,
255
]
},
"afterPaint": {
"time": 2.5,
"readyState": 4,
"rgba": [
0,
0,
0,
255
]
}
},
{
"target": 4.5,
"immediate": {
"time": 4.5,
"readyState": 4,
"rgba": [
0,
0,
253,
255
]
},
"afterPaint": {
"time": 4.5,
"readyState": 4,
"rgba": [
0,
0,
253,
255
]
}
},
{
"target": 6.5,
"immediate": {
"time": 6.5,
"readyState": 4,
"rgba": [
255,
255,
2,
255
]
},
"afterPaint": {
"time": 6.5,
"readyState": 4,
"rgba": [
255,
255,
2,
255
]
}
},
{
"target": 0,
"immediate": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
},
"afterPaint": {
"time": 0,
"readyState": 4,
"rgba": [
127,
0,
126,
255
]
}
}
],
"transitions": [
{
"event": "loadedmetadata",
"time": 0,
"readyState": 1
},
{
"event": "loadeddata",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 1
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
},
{
"event": "seeked",
"time": 0.01,
"readyState": 4
},
{
"event": "canplay",
"time": 0.01,
"readyState": 4
},
{
"event": "seeked",
"time": 0.04,
"readyState": 4
},
{
"event": "canplay",
"time": 0.04,
"readyState": 4
},
{
"event": "seeked",
"time": 0.1,
"readyState": 4
},
{
"event": "canplay",
"time": 0.1,
"readyState": 4
},
{
"event": "seeked",
"time": 0.5,
"readyState": 4
},
{
"event": "canplay",
"time": 0.5,
"readyState": 4
},
{
"event": "seeked",
"time": 1,
"readyState": 4
},
{
"event": "canplay",
"time": 1,
"readyState": 4
},
{
"event": "seeked",
"time": 2.5,
"readyState": 4
},
{
"event": "canplay",
"time": 2.5,
"readyState": 4
},
{
"event": "seeked",
"time": 4.5,
"readyState": 4
},
{
"event": "canplay",
"time": 4.5,
"readyState": 4
},
{
"event": "seeked",
"time": 6.5,
"readyState": 4
},
{
"event": "canplay",
"time": 6.5,
"readyState": 4
},
{
"event": "seeked",
"time": 0,
"readyState": 4
},
{
"event": "canplay",
"time": 0,
"readyState": 4
}
]
}
]
}
]
}
}