mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-09 03:46:16 -08:00
372 lines
14 KiB
JSON
372 lines
14 KiB
JSON
{
|
|
"task": "CORE-19",
|
|
"status": "partial",
|
|
"date": "2026-09-11",
|
|
"parentCommit": "98a18000321500f92f228be7b7edff4bda948a56",
|
|
"node": "v24.21.0",
|
|
"scope": "Screenshot source migration only. Thumbnail migration, progress/quality review, generated distribution and installed-package validation remain outstanding.",
|
|
"fingerprints": {
|
|
"packages/artplayer/src/player/screenshotMix.ts": "fb16737d3bb2735ef0d0aa1ebe536cc3418c27d92e1b66ad4b34e81c165773b2",
|
|
"packages/artplayer/src/capture/frame.ts": "eb25d81ec2d40a239103c63cfd80333705251291f2c2da77c740b4d413ea9cd9",
|
|
"packages/artplayer/src/control/screenshot.ts": "67be1306991861cb8bb0adec2b58a8468211459f9337895e611972dbb71a6ef5",
|
|
"test/screenshot.test.js": "740e879c9159c75e62240d37e3a327facb228f54b0b531e9da375c1f184abb24",
|
|
"test/types/screenshot.ts": "f329d9b897e9e9e4190ebc6ededfe55ccd0bebf796683615af103c19cf6b3947",
|
|
"test/browser/screenshot.spec.js": "a2b49fbd8616533fc351892c1f6687d588d2bc9350fda4be5475decb97d77a0e",
|
|
"package.json": "97a0860bb31a4ddae2db96854da1d5531e2d0c14c3b87e487336eb7edb64f2d5",
|
|
"yarn.lock": "80c78af925697e0ae55fae48a6a0761c60d231737a389324c82b6efef437f7c4",
|
|
"packages/artplayer/ARCHITECTURE.md": "00bcea6fa0424121f98d107448b7a1fd07bab32accbdd2f79cef8f60bafa48ae"
|
|
},
|
|
"before": {
|
|
"log": "refactor/.cache/core19-screenshot-before.log",
|
|
"sha256": "0e05e3a1abf0a4039eeaf243e89cfd0b094be41a862f269c823ae18af9bdde94",
|
|
"tests": 7,
|
|
"passed": 3,
|
|
"failed": 4,
|
|
"source": "HEAD screenshotMix.js before migration"
|
|
},
|
|
"ci": {
|
|
"tests": 383,
|
|
"unit": 354,
|
|
"engineering": 4,
|
|
"baseline": 25,
|
|
"productionTs": 202,
|
|
"screenshotTests": 11,
|
|
"publicTypesUnchanged": true,
|
|
"log": "refactor/.cache/core19-screenshot-ci.log",
|
|
"sha256": "84b2b0725cf85bedaebada67dba574af47a7d959a6dcc960183d789577bc9fa6"
|
|
},
|
|
"browser": {
|
|
"format": "source-built UMD, not installed tarball",
|
|
"tests": 39,
|
|
"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": "ef9fadfd897b2062d3f5661a0bb5640bf46ead4e3cae4ef6147114fe51250745",
|
|
"bytes": 319634
|
|
},
|
|
"/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",
|
|
"title": "published: captures decoded PNG pixels and consumer-owned Blob URLs",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-df9c2bbb8d025d633416",
|
|
"title": "published: screenshot preserves download filename, event data and Promise result",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-0a6dee5b9d177600d5a8",
|
|
"title": "published: actual cross-origin video rejects capture with SecurityError and notice",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-8f64836f1c03f8d717e4",
|
|
"title": "published: source replacement does not download a stale captured frame",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-b4214300e6ac634d4655",
|
|
"title": "published: screenshot toolbar rejection has exact historical error accounting",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-792a2dbdf0f914f96ecd",
|
|
"title": "candidate: captures decoded PNG pixels and consumer-owned Blob URLs",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-22a5ed94932418b4b372",
|
|
"title": "candidate: screenshot preserves download filename, event data and Promise result",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-a632ad23423ba0506c16",
|
|
"title": "candidate: actual cross-origin video rejects capture with SecurityError and notice",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-77348d8cffa16737f1dd",
|
|
"title": "candidate: source replacement does not download a stale captured frame",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-623fad4c93a929006ed5",
|
|
"title": "candidate: screenshot toolbar rejection has exact historical error accounting",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-9e300009a29a3180767b",
|
|
"title": "candidate: null toBlob callback rejects and reports without a page error",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-4bd04bd342c6bdf7a25b",
|
|
"title": "candidate: destroy during screenshot await suppresses the queued download and event",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "chromium",
|
|
"id": "b6aa675bc40ab83f8367-e0a456d9599734bf4dcf",
|
|
"title": "candidate: cross-origin screenshot toolbar handles its internal rejected Promise",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-103e07624403b62f7105",
|
|
"title": "published: captures decoded PNG pixels and consumer-owned Blob URLs",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-d07a101b915332333405",
|
|
"title": "published: screenshot preserves download filename, event data and Promise result",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-f9ac6b159f7b68e08d1f",
|
|
"title": "published: actual cross-origin video rejects capture with SecurityError and notice",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-8f9455d971851037e69b",
|
|
"title": "published: source replacement does not download a stale captured frame",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-2ee0a5945c50d9e45f02",
|
|
"title": "published: screenshot toolbar rejection has exact historical error accounting",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-f19f61a7a1c98a24d88c",
|
|
"title": "candidate: captures decoded PNG pixels and consumer-owned Blob URLs",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-65dd2ec52a2eb98f201a",
|
|
"title": "candidate: screenshot preserves download filename, event data and Promise result",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-6b93df0891d1e9824971",
|
|
"title": "candidate: actual cross-origin video rejects capture with SecurityError and notice",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-50103daef0af74cb00cc",
|
|
"title": "candidate: source replacement does not download a stale captured frame",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-26c20a0c8613a9c27c04",
|
|
"title": "candidate: screenshot toolbar rejection has exact historical error accounting",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-95ac367f79cfe12d6100",
|
|
"title": "candidate: null toBlob callback rejects and reports without a page error",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-0fa775711c5f64752304",
|
|
"title": "candidate: destroy during screenshot await suppresses the queued download and event",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "firefox",
|
|
"id": "b6aa675bc40ab83f8367-ee450bc7384fa2bf264f",
|
|
"title": "candidate: cross-origin screenshot toolbar handles its internal rejected Promise",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-c9c9cf5e121268cd3c46",
|
|
"title": "published: captures decoded PNG pixels and consumer-owned Blob URLs",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-ca43428c5f3aaaeb4a6b",
|
|
"title": "published: screenshot preserves download filename, event data and Promise result",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-9f3df52110132996acf1",
|
|
"title": "published: actual cross-origin video rejects capture with SecurityError and notice",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-d6a14bd3846cace85be0",
|
|
"title": "published: source replacement does not download a stale captured frame",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-f815992e0057af92552e",
|
|
"title": "published: screenshot toolbar rejection has exact historical error accounting",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-c1936aa08e32e5571887",
|
|
"title": "candidate: captures decoded PNG pixels and consumer-owned Blob URLs",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-e4a6e8d9ad57f6261d57",
|
|
"title": "candidate: screenshot preserves download filename, event data and Promise result",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-64493da78eb55d39fce4",
|
|
"title": "candidate: actual cross-origin video rejects capture with SecurityError and notice",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-0658f99f3c9a04fd2918",
|
|
"title": "candidate: source replacement does not download a stale captured frame",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-43884fe589ffc5240a6c",
|
|
"title": "candidate: screenshot toolbar rejection has exact historical error accounting",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-de63a41620e9a6fbb8a6",
|
|
"title": "candidate: null toBlob callback rejects and reports without a page error",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-9c57f1479f12611e3650",
|
|
"title": "candidate: destroy during screenshot await suppresses the queued download and event",
|
|
"status": "passed"
|
|
},
|
|
{
|
|
"browser": "webkit",
|
|
"id": "b6aa675bc40ab83f8367-db263e0db17b09f39961",
|
|
"title": "candidate: cross-origin screenshot toolbar handles its internal rejected Promise",
|
|
"status": "passed"
|
|
}
|
|
],
|
|
"log": "refactor/.cache/core19-screenshot-browser-v2.json",
|
|
"sha256": "117aa85284e99d5fd5c2fc030e5ada2f68df4df321702ee7048a6f95badc283d"
|
|
},
|
|
"remaining": [
|
|
"Thumbnail generation, loading errors and internal Blob ownership",
|
|
"Quality/progress boundary regression",
|
|
"Full CORE-19 type/build/installed tarball browser validation",
|
|
"Close registered risks only with final evidence",
|
|
"Complete task documentation and separate local commit"
|
|
]
|
|
}
|