{ "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 " }, "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 } ] } ] } ] } }