Files
ArtPlayer/refactor/baselines/capture-thumbnails-partial.json

598 lines
23 KiB
JSON

{
"task": "CORE-19",
"status": "partial",
"date": "2026-09-11",
"node": "v24.21.0",
"parentCommit": "98a18000321500f92f228be7b7edff4bda948a56",
"scope": "Capture and thumbnails source migration. Progress/quality and borrowed media URL ownership review, final builds and installed-package exit remain outstanding.",
"fingerprints": {
"package.json": "a288e650a0a65e5c036b8504e8f01f4039e609798066741171045a1f1da4262f",
"yarn.lock": "80c78af925697e0ae55fae48a6a0761c60d231737a389324c82b6efef437f7c4",
"packages/artplayer/ARCHITECTURE.md": "f500068cbf7a6a3259887d4ae21e96da61753558841ab6510904148270b08d58",
"packages/artplayer/src/player/screenshotMix.ts": "fb16737d3bb2735ef0d0aa1ebe536cc3418c27d92e1b66ad4b34e81c165773b2",
"packages/artplayer/src/capture/frame.ts": "eb25d81ec2d40a239103c63cfd80333705251291f2c2da77c740b4d413ea9cd9",
"packages/artplayer/src/control/screenshot.ts": "67be1306991861cb8bb0adec2b58a8468211459f9337895e611972dbb71a6ef5",
"packages/artplayer/src/player/thumbnailsMix.ts": "6c097d7d00779a6d0d3d65cf9ffd126624a48c9bdb98396c84c39f4de4bdf712",
"packages/artplayer/src/thumbnails/layout.ts": "6630439242a880f53fcb374b7b15c7f486405aab8a0fad651b137f02971eeb59",
"packages/artplayer/src/image/load.ts": "b4f1517243249d5fb017b89f993660e8b148906bbf28d08fe5c9f6d3a41e1e88",
"packages/artplayer/src/utils/dom.js": "fd6148ff85ee97607de54652f0f1e4cb5158f628a2d0951f1946a21f2b4e0008",
"test/screenshot.test.js": "740e879c9159c75e62240d37e3a327facb228f54b0b531e9da375c1f184abb24",
"test/thumbnails.test.js": "367882200a3898cce718379f95bb80706d9d5ee06e8d8e3624acada118ccc41c",
"test/types/screenshot.ts": "f329d9b897e9e9e4190ebc6ededfe55ccd0bebf796683615af103c19cf6b3947",
"test/types/thumbnails.ts": "2b01c655ad30be3e9ef6732d13f85dbdf32cf71c734d63537bdb0f82ac69350c",
"test/browser/screenshot.spec.js": "a2b49fbd8616533fc351892c1f6687d588d2bc9350fda4be5475decb97d77a0e",
"test/browser/thumbnails.spec.js": "bc00e6fe6eb6987bd36193f26c69e2377249b53f41dfc1474dd44d6e833a2c09",
"test/browser/media/thumbnail-grid.svg": "bb3f1ec9895d37def77ca4b192d3cd73577a2668558cc99de1588f511d65d3e6",
"test/browser/server.mjs": "2b36e65ed9248f334b6dfb2d54a22cf5a26b3b531d7eb1f93392e38bb14d10cc"
},
"before": {
"file": "refactor/.cache/core19-thumbnails-before.log",
"sha256": "34f9d1cade73482bf90d05775db461a0dbf18b47dfba755127f52f6a873bf531",
"tests": 7,
"passed": 2,
"failed": 5,
"note": "Initial baseline used the old crop expectations; after generator review, final tests explicitly validate corrected zero-based grid cells."
},
"ci": {
"tests": 401,
"unit": 372,
"engineering": 4,
"baseline": 25,
"screenshotTests": 11,
"thumbnailTests": 18,
"productionTs": 205,
"publicTypesUnchanged": true,
"file": "refactor/.cache/core19-thumbnails-ci.log",
"sha256": "c47ada46288646b0a817504b353be4bd3620490af051e986329561f6fa523353"
},
"browser": {
"format": "Source-built UMD; not an installed tarball",
"tests": 63,
"screenshot": 39,
"thumbnail": 24,
"retries": 0,
"skipped": 0,
"unexpectedPageErrors": 0,
"versions": {
"chromium": "153.0.8010.12",
"firefox": "155.0",
"webkit": "26.6"
},
"knownRejections": [
{
"browser": "chromium",
"core": "published",
"rejections": [
"controlled screenshot draw failure"
]
},
{
"browser": "chromium",
"core": "candidate",
"rejections": []
},
{
"browser": "firefox",
"core": "published",
"rejections": [
"controlled screenshot draw failure"
]
},
{
"browser": "firefox",
"core": "candidate",
"rejections": []
},
{
"browser": "webkit",
"core": "published",
"rejections": [
"controlled screenshot draw failure"
]
},
{
"browser": "webkit",
"core": "candidate",
"rejections": []
}
],
"artifacts": {
"/candidate/artplayer.js": {
"source": {
"kind": "workspace-build",
"entry": "packages\\artplayer\\src\\index.js"
},
"sha256": "a5a5f9283af11841dc5f6d234012a16738f68d4549c704ef9bb0da93fe2a8493",
"bytes": 323694
},
"/candidate/artplayer-plugin-chapter.js": {
"source": {
"kind": "workspace-build",
"entry": "packages\\artplayer-plugin-chapter\\src\\index.ts"
},
"sha256": "3e8d0b7e7a90b5dbadf4cb108fd770d294f8a8a92ea089c41d0766c98bbc8230",
"bytes": 8433
},
"/published/artplayer.js": {
"source": {
"kind": "npm-release",
"version": "5.4.0",
"integrity": "sha512-2B+plbx8N2yNsjK4nJU3+EOG8TULm1LRZk/QPkWRAMEX2Ee/MSnZG/WJYz8kcoZxZuLKcQ3uXifqLuPxZOH29A==",
"member": "package/dist/artplayer.js"
},
"sha256": "f1db1fa3406aa6d41baa7c554749429a8e79f99d56a794bde23345eb9c07573f",
"bytes": 134037
},
"/published/artplayer-plugin-chapter.js": {
"source": {
"kind": "npm-release",
"version": "1.1.0",
"integrity": "sha512-ji66Lr2K2S+OjFMuMby3yq+pefWlOC51Sbpop/DIr2N6w3F0smrF+YZbshN1Dy8/Tx1TYpT7N6WkkZWy5Jix1w==",
"member": "package/dist/artplayer-plugin-chapter.js"
},
"sha256": "c2aaee11bf1db765433b01d9f8dd3978e41fa4d39655db00ebd03fc0be3e35e0",
"bytes": 4973
}
},
"cases": [
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-45f5a568a618398c2003",
"file": "screenshot.spec.js",
"title": "published: captures decoded PNG pixels and consumer-owned Blob URLs",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-df9c2bbb8d025d633416",
"file": "screenshot.spec.js",
"title": "published: screenshot preserves download filename, event data and Promise result",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-0a6dee5b9d177600d5a8",
"file": "screenshot.spec.js",
"title": "published: actual cross-origin video rejects capture with SecurityError and notice",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-8f64836f1c03f8d717e4",
"file": "screenshot.spec.js",
"title": "published: source replacement does not download a stale captured frame",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-b4214300e6ac634d4655",
"file": "screenshot.spec.js",
"title": "published: screenshot toolbar rejection has exact historical error accounting",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-792a2dbdf0f914f96ecd",
"file": "screenshot.spec.js",
"title": "candidate: captures decoded PNG pixels and consumer-owned Blob URLs",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-22a5ed94932418b4b372",
"file": "screenshot.spec.js",
"title": "candidate: screenshot preserves download filename, event data and Promise result",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-a632ad23423ba0506c16",
"file": "screenshot.spec.js",
"title": "candidate: actual cross-origin video rejects capture with SecurityError and notice",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-77348d8cffa16737f1dd",
"file": "screenshot.spec.js",
"title": "candidate: source replacement does not download a stale captured frame",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-623fad4c93a929006ed5",
"file": "screenshot.spec.js",
"title": "candidate: screenshot toolbar rejection has exact historical error accounting",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-9e300009a29a3180767b",
"file": "screenshot.spec.js",
"title": "candidate: null toBlob callback rejects and reports without a page error",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-4bd04bd342c6bdf7a25b",
"file": "screenshot.spec.js",
"title": "candidate: destroy during screenshot await suppresses the queued download and event",
"status": "passed"
},
{
"browser": "chromium",
"id": "b6aa675bc40ab83f8367-e0a456d9599734bf4dcf",
"file": "screenshot.spec.js",
"title": "candidate: cross-origin screenshot toolbar handles its internal rejected Promise",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-103e07624403b62f7105",
"file": "screenshot.spec.js",
"title": "published: captures decoded PNG pixels and consumer-owned Blob URLs",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-d07a101b915332333405",
"file": "screenshot.spec.js",
"title": "published: screenshot preserves download filename, event data and Promise result",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-f9ac6b159f7b68e08d1f",
"file": "screenshot.spec.js",
"title": "published: actual cross-origin video rejects capture with SecurityError and notice",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-8f9455d971851037e69b",
"file": "screenshot.spec.js",
"title": "published: source replacement does not download a stale captured frame",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-2ee0a5945c50d9e45f02",
"file": "screenshot.spec.js",
"title": "published: screenshot toolbar rejection has exact historical error accounting",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-f19f61a7a1c98a24d88c",
"file": "screenshot.spec.js",
"title": "candidate: captures decoded PNG pixels and consumer-owned Blob URLs",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-65dd2ec52a2eb98f201a",
"file": "screenshot.spec.js",
"title": "candidate: screenshot preserves download filename, event data and Promise result",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-6b93df0891d1e9824971",
"file": "screenshot.spec.js",
"title": "candidate: actual cross-origin video rejects capture with SecurityError and notice",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-50103daef0af74cb00cc",
"file": "screenshot.spec.js",
"title": "candidate: source replacement does not download a stale captured frame",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-26c20a0c8613a9c27c04",
"file": "screenshot.spec.js",
"title": "candidate: screenshot toolbar rejection has exact historical error accounting",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-95ac367f79cfe12d6100",
"file": "screenshot.spec.js",
"title": "candidate: null toBlob callback rejects and reports without a page error",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-0fa775711c5f64752304",
"file": "screenshot.spec.js",
"title": "candidate: destroy during screenshot await suppresses the queued download and event",
"status": "passed"
},
{
"browser": "firefox",
"id": "b6aa675bc40ab83f8367-ee450bc7384fa2bf264f",
"file": "screenshot.spec.js",
"title": "candidate: cross-origin screenshot toolbar handles its internal rejected Promise",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-c9c9cf5e121268cd3c46",
"file": "screenshot.spec.js",
"title": "published: captures decoded PNG pixels and consumer-owned Blob URLs",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-ca43428c5f3aaaeb4a6b",
"file": "screenshot.spec.js",
"title": "published: screenshot preserves download filename, event data and Promise result",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-9f3df52110132996acf1",
"file": "screenshot.spec.js",
"title": "published: actual cross-origin video rejects capture with SecurityError and notice",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-d6a14bd3846cace85be0",
"file": "screenshot.spec.js",
"title": "published: source replacement does not download a stale captured frame",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-f815992e0057af92552e",
"file": "screenshot.spec.js",
"title": "published: screenshot toolbar rejection has exact historical error accounting",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-c1936aa08e32e5571887",
"file": "screenshot.spec.js",
"title": "candidate: captures decoded PNG pixels and consumer-owned Blob URLs",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-e4a6e8d9ad57f6261d57",
"file": "screenshot.spec.js",
"title": "candidate: screenshot preserves download filename, event data and Promise result",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-64493da78eb55d39fce4",
"file": "screenshot.spec.js",
"title": "candidate: actual cross-origin video rejects capture with SecurityError and notice",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-0658f99f3c9a04fd2918",
"file": "screenshot.spec.js",
"title": "candidate: source replacement does not download a stale captured frame",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-43884fe589ffc5240a6c",
"file": "screenshot.spec.js",
"title": "candidate: screenshot toolbar rejection has exact historical error accounting",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-de63a41620e9a6fbb8a6",
"file": "screenshot.spec.js",
"title": "candidate: null toBlob callback rejects and reports without a page error",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-9c57f1479f12611e3650",
"file": "screenshot.spec.js",
"title": "candidate: destroy during screenshot await suppresses the queued download and event",
"status": "passed"
},
{
"browser": "webkit",
"id": "b6aa675bc40ab83f8367-db263e0db17b09f39961",
"file": "screenshot.spec.js",
"title": "candidate: cross-origin screenshot toolbar handles its internal rejected Promise",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-0b84034df4da7a0602cb",
"file": "thumbnails.spec.js",
"title": "published: thumbnail cells follow the generated grid at row boundaries and on returning to the first cell",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-27b7b29e95483cbd0627",
"file": "thumbnails.spec.js",
"title": "published: scaled internal thumbnails and public image results have distinct Blob URL owners",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-c501a3337d7f3459c0bd",
"file": "thumbnails.spec.js",
"title": "published: a delayed image follows the latest hover rather than the first request position",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-7590e561a95171418094",
"file": "thumbnails.spec.js",
"title": "candidate: thumbnail cells follow the generated grid at row boundaries and on returning to the first cell",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-ef943cb95bbec2be8e9f",
"file": "thumbnails.spec.js",
"title": "candidate: scaled internal thumbnails and public image results have distinct Blob URL owners",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-35d168c9c28975e08fe1",
"file": "thumbnails.spec.js",
"title": "candidate: a delayed image follows the latest hover rather than the first request position",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-15f9f09a8e027b4f1453",
"file": "thumbnails.spec.js",
"title": "candidate: removing thumbnails revokes the scaled image and a replacement control can reload",
"status": "passed"
},
{
"browser": "chromium",
"id": "c863e7942d336f9fc9b4-7ac5238b9dd76e5bd284",
"file": "thumbnails.spec.js",
"title": "candidate: image failure permits a retry through the same thumbnail configuration",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-cbdca6544e577990fbe6",
"file": "thumbnails.spec.js",
"title": "published: thumbnail cells follow the generated grid at row boundaries and on returning to the first cell",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-ae0fe968cf56f04deadf",
"file": "thumbnails.spec.js",
"title": "published: scaled internal thumbnails and public image results have distinct Blob URL owners",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-3ea053475afbb979f768",
"file": "thumbnails.spec.js",
"title": "published: a delayed image follows the latest hover rather than the first request position",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-e717f553b51ae759828d",
"file": "thumbnails.spec.js",
"title": "candidate: thumbnail cells follow the generated grid at row boundaries and on returning to the first cell",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-36518c4875e5c6c5eb4d",
"file": "thumbnails.spec.js",
"title": "candidate: scaled internal thumbnails and public image results have distinct Blob URL owners",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-e4dbbda8c6e5556ff597",
"file": "thumbnails.spec.js",
"title": "candidate: a delayed image follows the latest hover rather than the first request position",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-3aa635296202313cceb6",
"file": "thumbnails.spec.js",
"title": "candidate: removing thumbnails revokes the scaled image and a replacement control can reload",
"status": "passed"
},
{
"browser": "firefox",
"id": "c863e7942d336f9fc9b4-7889e72271358857e901",
"file": "thumbnails.spec.js",
"title": "candidate: image failure permits a retry through the same thumbnail configuration",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-80303351d5af14d7bcba",
"file": "thumbnails.spec.js",
"title": "published: thumbnail cells follow the generated grid at row boundaries and on returning to the first cell",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-6303b616b2bb5f58f229",
"file": "thumbnails.spec.js",
"title": "published: scaled internal thumbnails and public image results have distinct Blob URL owners",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-b18b5d8413c96e250a43",
"file": "thumbnails.spec.js",
"title": "published: a delayed image follows the latest hover rather than the first request position",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-cdb048780d3502ba5f34",
"file": "thumbnails.spec.js",
"title": "candidate: thumbnail cells follow the generated grid at row boundaries and on returning to the first cell",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-3cd51c32262f07831a10",
"file": "thumbnails.spec.js",
"title": "candidate: scaled internal thumbnails and public image results have distinct Blob URL owners",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-bdd8944a779d3e0838d2",
"file": "thumbnails.spec.js",
"title": "candidate: a delayed image follows the latest hover rather than the first request position",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-3ea1350b66dcf3b9e182",
"file": "thumbnails.spec.js",
"title": "candidate: removing thumbnails revokes the scaled image and a replacement control can reload",
"status": "passed"
},
{
"browser": "webkit",
"id": "c863e7942d336f9fc9b4-7e155f3c5195944a8163",
"file": "thumbnails.spec.js",
"title": "candidate: image failure permits a retry through the same thumbnail configuration",
"status": "passed"
}
],
"file": "refactor/.cache/core19-capture-thumbnail-browser-final.json",
"sha256": "78fa8caf62f1acadeec505c96cea3d8b082f999f6cad99e2182938046525b1b5"
},
"earlierFailure": {
"file": "refactor/.cache/core19-thumbnails-browser.json",
"sha256": "4f7be130c6ed4bdd63f447769b18f777eb6e09f2b094d5a283d14093a35582e9",
"passed": 62,
"failed": 1,
"description": "Firefox retry case using a malformed successful response failed. Fixture now explicitly uses a no-store transient HTTP 503, with two network attempts verified. No timeout increase or broad error suppression."
},
"remaining": [
"Progress callback/drag source lifetime review",
"Quality boundaries",
"Borrowed media URL ownership review",
"Build, installed tarball and full UMD/legacy browser exit",
"Final risk closure, task status and independent local commit"
]
}