{ "schemaVersion": 1, "task": "PKG-DANMUKU-03", "status": "done", "capturedAt": "2026-09-13T10:34:37.905Z", "baselineCommit": "d3c91af92c6a2f7cfdbfa0cae8b4b8c6d5c93cde", "historical": { "tests": 86, "file": "refactor/.cache/danmuku03-historical.log", "sha256": "dedfbec48537135b45b8048d0ad1b813f17e6a32a219af7e75f039ea4d6ca7e7" }, "controlled": [ { "format": "source", "tests": 46, "file": "refactor/.cache/danmuku03-candidate-source-final.log", "sha256": "bcb2f5fe1b3ecd065abe69c970e53d87beda9b7c3427904661d0df29c0e151e0" }, { "format": "main", "tests": 46, "file": "refactor/.cache/danmuku03-candidate-main-final.log", "sha256": "c0696fb27b88aa247ccf2edbba095377e37c31b39818ec44ca50e6393caf7120" }, { "format": "legacy", "tests": 46, "file": "refactor/.cache/danmuku03-candidate-legacy-final.log", "sha256": "8ee98db5268974875dcbe282ef0831126f9989cddb0a90726aa6fe04dd31d646" } ], "browsers": [ { "format": "source", "file": "refactor/.cache/danmuku03-browser-source/report.json", "sha256": "5967aa83e7397c660aeef747bc836f831d3eb3a307b0c3a8d8836bdc35bc022d", "tests": 24, "versions": [ "chromium: 153.0.8010.12", "firefox: 155.0", "webkit: 26.6" ], "spec": { "file": "refactor/.cache/danmuku03-browser-source/danmuku-input.spec.js", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, "observations": [ { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/905ee766-8319-4ce2-b88c-2e8d835ea10f", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/f951e296-e24f-45b9-8f8c-d39fd2857833", "blob:http://127.0.0.1:8084/905ee766-8319-4ce2-b88c-2e8d835ea10f" ], "revoked": [ "", "blob:http://127.0.0.1:8084/905ee766-8319-4ce2-b88c-2e8d835ea10f", "blob:http://127.0.0.1:8084/f951e296-e24f-45b9-8f8c-d39fd2857833" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "chromium", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Failed to fetch", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/53e84983-e99b-43c2-b5d8-82ad422aedf3", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/0a70b910-de9e-4787-ad41-fd44da5e4db7", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/1309f4fe-4412-4b28-abea-b93708aa2869", "blob:http://127.0.0.1:8084/53e84983-e99b-43c2-b5d8-82ad422aedf3", "blob:http://127.0.0.1:8084/0a70b910-de9e-4787-ad41-fd44da5e4db7" ], "revoked": [ "", "blob:http://127.0.0.1:8084/53e84983-e99b-43c2-b5d8-82ad422aedf3", "blob:http://127.0.0.1:8084/0a70b910-de9e-4787-ad41-fd44da5e4db7" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/1309f4fe-4412-4b28-abea-b93708aa2869", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/53e84983-e99b-43c2-b5d8-82ad422aedf3", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/0a70b910-de9e-4787-ad41-fd44da5e4db7", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Failed to fetch" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "chromium", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "chromium", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "chromium", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/98ac9323-1581-4733-a66f-80743412680f", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/6241b63d-0858-4cef-ad3b-bd07255989a2", "blob:http://127.0.0.1:8084/98ac9323-1581-4733-a66f-80743412680f" ], "revoked": [ "blob:http://127.0.0.1:8084/98ac9323-1581-4733-a66f-80743412680f", "blob:http://127.0.0.1:8084/6241b63d-0858-4cef-ad3b-bd07255989a2" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "chromium", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Failed to fetch", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/6ee902e7-93f3-4ad2-802a-2909ddbcd9b8", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/06021393-a47a-4d83-a613-f072247bd237", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/3448d6ff-80e6-4400-90e6-f45efa3d8728", "blob:http://127.0.0.1:8084/6ee902e7-93f3-4ad2-802a-2909ddbcd9b8", "blob:http://127.0.0.1:8084/06021393-a47a-4d83-a613-f072247bd237" ], "revoked": [ "blob:http://127.0.0.1:8084/6ee902e7-93f3-4ad2-802a-2909ddbcd9b8", "blob:http://127.0.0.1:8084/06021393-a47a-4d83-a613-f072247bd237" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/3448d6ff-80e6-4400-90e6-f45efa3d8728", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/6ee902e7-93f3-4ad2-802a-2909ddbcd9b8", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/06021393-a47a-4d83-a613-f072247bd237", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Failed to fetch" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "chromium", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "chromium", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "firefox", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/0d452f87-775e-44d8-8fd1-4c83ac615d26", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/546ece4a-939f-48c3-b05c-4994863cb7a0", "blob:http://127.0.0.1:8084/0d452f87-775e-44d8-8fd1-4c83ac615d26" ], "revoked": [ "", "blob:http://127.0.0.1:8084/0d452f87-775e-44d8-8fd1-4c83ac615d26", "blob:http://127.0.0.1:8084/546ece4a-939f-48c3-b05c-4994863cb7a0" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "firefox", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: NetworkError when attempting to fetch resource.", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/4c228d41-4a97-4db6-916b-475458efe582", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/7bd47fa5-c950-4367-88f9-02573e7943c9", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/0f4d50de-a736-45d8-83a8-e30d98d1e403", "blob:http://127.0.0.1:8084/4c228d41-4a97-4db6-916b-475458efe582", "blob:http://127.0.0.1:8084/7bd47fa5-c950-4367-88f9-02573e7943c9" ], "revoked": [ "", "blob:http://127.0.0.1:8084/4c228d41-4a97-4db6-916b-475458efe582", "blob:http://127.0.0.1:8084/7bd47fa5-c950-4367-88f9-02573e7943c9" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/0f4d50de-a736-45d8-83a8-e30d98d1e403", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/4c228d41-4a97-4db6-916b-475458efe582", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/7bd47fa5-c950-4367-88f9-02573e7943c9", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: NetworkError when attempting to fetch resource." }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "firefox", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "firefox", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "firefox", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8e69328b-97d7-45f8-930f-1d97e2471fce", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/786c3352-0e99-4495-bad4-b1c673950c7c", "blob:http://127.0.0.1:8084/8e69328b-97d7-45f8-930f-1d97e2471fce" ], "revoked": [ "blob:http://127.0.0.1:8084/8e69328b-97d7-45f8-930f-1d97e2471fce", "blob:http://127.0.0.1:8084/786c3352-0e99-4495-bad4-b1c673950c7c" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "firefox", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: NetworkError when attempting to fetch resource.", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/d3b21649-c5d3-473b-b864-8835269ed5fc", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/8cf60956-cd8b-4572-add2-7024fd4113fe", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/f93b024d-58c5-4676-a5a0-0ca14d789d96", "blob:http://127.0.0.1:8084/d3b21649-c5d3-473b-b864-8835269ed5fc", "blob:http://127.0.0.1:8084/8cf60956-cd8b-4572-add2-7024fd4113fe" ], "revoked": [ "blob:http://127.0.0.1:8084/d3b21649-c5d3-473b-b864-8835269ed5fc", "blob:http://127.0.0.1:8084/8cf60956-cd8b-4572-add2-7024fd4113fe" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f93b024d-58c5-4676-a5a0-0ca14d789d96", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/d3b21649-c5d3-473b-b864-8835269ed5fc", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/8cf60956-cd8b-4572-add2-7024fd4113fe", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: NetworkError when attempting to fetch resource." }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "firefox", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "firefox", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "webkit", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/a328138c-3aa4-4ac9-8de6-40c3590077c7", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/226aa06b-e166-4c3f-b5f9-5591b6823721", "blob:http://127.0.0.1:8084/a328138c-3aa4-4ac9-8de6-40c3590077c7" ], "revoked": [ "", "blob:http://127.0.0.1:8084/a328138c-3aa4-4ac9-8de6-40c3590077c7", "blob:http://127.0.0.1:8084/226aa06b-e166-4c3f-b5f9-5591b6823721" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "webkit", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Load failed", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/38a6856b-0378-489a-a528-de8a728125b5", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/0f842e97-c239-4efc-b551-85078f831119", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/a0b2554c-93fa-4ce8-9f26-29c87fd0b758", "blob:http://127.0.0.1:8084/38a6856b-0378-489a-a528-de8a728125b5", "blob:http://127.0.0.1:8084/0f842e97-c239-4efc-b551-85078f831119" ], "revoked": [ "", "blob:http://127.0.0.1:8084/38a6856b-0378-489a-a528-de8a728125b5", "blob:http://127.0.0.1:8084/0f842e97-c239-4efc-b551-85078f831119" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/a0b2554c-93fa-4ce8-9f26-29c87fd0b758", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/38a6856b-0378-489a-a528-de8a728125b5", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/0f842e97-c239-4efc-b551-85078f831119", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Load failed" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "webkit", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "webkit", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "webkit", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/a2cfda3f-fbec-4fd1-9751-15999e1c10f2", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/57339828-20bc-4787-a1fd-583ceb852d63", "blob:http://127.0.0.1:8084/a2cfda3f-fbec-4fd1-9751-15999e1c10f2" ], "revoked": [ "blob:http://127.0.0.1:8084/a2cfda3f-fbec-4fd1-9751-15999e1c10f2", "blob:http://127.0.0.1:8084/57339828-20bc-4787-a1fd-583ceb852d63" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "webkit", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Load failed", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/b6ec8cf5-3f57-48c8-9370-89d45fe713ca", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/8d777727-88cd-4c5f-ac93-2dc79f495db4", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/538cfe4a-e5e1-4eaf-8707-8f4fcf0dd281", "blob:http://127.0.0.1:8084/b6ec8cf5-3f57-48c8-9370-89d45fe713ca", "blob:http://127.0.0.1:8084/8d777727-88cd-4c5f-ac93-2dc79f495db4" ], "revoked": [ "blob:http://127.0.0.1:8084/b6ec8cf5-3f57-48c8-9370-89d45fe713ca", "blob:http://127.0.0.1:8084/8d777727-88cd-4c5f-ac93-2dc79f495db4" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/538cfe4a-e5e1-4eaf-8707-8f4fcf0dd281", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/b6ec8cf5-3f57-48c8-9370-89d45fe713ca", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/8d777727-88cd-4c5f-ac93-2dc79f495db4", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Load failed" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "webkit", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "in-memory source UMD", "sha256": "ed20cee74240503a48e20775189725a12e613f36180ea5355f27cf49a37d0927", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "webkit", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } } ] }, { "format": "main", "file": "refactor/.cache/danmuku03-browser-main/report.json", "sha256": "7a4ee62c21b8d1f0736cbb2bf6b8b6a41d7e2195f335727db9cfa7799f8bfe3d", "tests": 24, "versions": [ "chromium: 153.0.8010.12", "firefox: 155.0", "webkit: 26.6" ], "spec": { "file": "refactor/.cache/danmuku03-browser-main/danmuku-input.spec.js", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, "observations": [ { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/7931ae40-e773-474d-bba3-7936d2557d20", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/21188295-abbf-4178-b8c0-14d0d50a41f1", "blob:http://127.0.0.1:8084/7931ae40-e773-474d-bba3-7936d2557d20" ], "revoked": [ "", "blob:http://127.0.0.1:8084/7931ae40-e773-474d-bba3-7936d2557d20", "blob:http://127.0.0.1:8084/21188295-abbf-4178-b8c0-14d0d50a41f1" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "chromium", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Failed to fetch", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/758ff1f0-ce6e-400a-b8ea-3f5bc11cc500", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/d386f3f2-422b-4cb5-aee7-b28141fd5174", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/f9462648-c7bc-434a-821c-595931fad776", "blob:http://127.0.0.1:8084/758ff1f0-ce6e-400a-b8ea-3f5bc11cc500", "blob:http://127.0.0.1:8084/d386f3f2-422b-4cb5-aee7-b28141fd5174" ], "revoked": [ "", "blob:http://127.0.0.1:8084/758ff1f0-ce6e-400a-b8ea-3f5bc11cc500", "blob:http://127.0.0.1:8084/d386f3f2-422b-4cb5-aee7-b28141fd5174" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f9462648-c7bc-434a-821c-595931fad776", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/758ff1f0-ce6e-400a-b8ea-3f5bc11cc500", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/d386f3f2-422b-4cb5-aee7-b28141fd5174", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Failed to fetch" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "chromium", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "chromium", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "chromium", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c574a64d-15f5-46e5-a0bc-23dae7b461c4", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/37a4ea34-2005-4b4d-afdb-48640460e8cf", "blob:http://127.0.0.1:8084/c574a64d-15f5-46e5-a0bc-23dae7b461c4" ], "revoked": [ "blob:http://127.0.0.1:8084/c574a64d-15f5-46e5-a0bc-23dae7b461c4", "blob:http://127.0.0.1:8084/37a4ea34-2005-4b4d-afdb-48640460e8cf" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "chromium", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Failed to fetch", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/c0769544-b3d3-4356-a28f-4625ddd297c2", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/34d648de-33d0-404c-a964-87cdcb48cf88", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/c93e4ca3-df59-467e-88ff-42a9517c8e41", "blob:http://127.0.0.1:8084/c0769544-b3d3-4356-a28f-4625ddd297c2", "blob:http://127.0.0.1:8084/34d648de-33d0-404c-a964-87cdcb48cf88" ], "revoked": [ "blob:http://127.0.0.1:8084/c0769544-b3d3-4356-a28f-4625ddd297c2", "blob:http://127.0.0.1:8084/34d648de-33d0-404c-a964-87cdcb48cf88" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c93e4ca3-df59-467e-88ff-42a9517c8e41", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/c0769544-b3d3-4356-a28f-4625ddd297c2", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/34d648de-33d0-404c-a964-87cdcb48cf88", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Failed to fetch" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "chromium", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "chromium", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "firefox", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/239cadd4-ff54-48b1-a4de-b5403deeb3aa", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/aa69ae8b-bbb7-4ba9-8b6b-a9fb65dfaf07", "blob:http://127.0.0.1:8084/239cadd4-ff54-48b1-a4de-b5403deeb3aa" ], "revoked": [ "", "blob:http://127.0.0.1:8084/239cadd4-ff54-48b1-a4de-b5403deeb3aa", "blob:http://127.0.0.1:8084/aa69ae8b-bbb7-4ba9-8b6b-a9fb65dfaf07" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "firefox", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: NetworkError when attempting to fetch resource.", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/c6cc6036-f034-4764-9d95-a65b071b7890", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/3bb99fcf-185b-4394-b38c-30c2a1c37797", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/d1d3fc57-cd09-471c-9ac8-f9ccf6bf0279", "blob:http://127.0.0.1:8084/c6cc6036-f034-4764-9d95-a65b071b7890", "blob:http://127.0.0.1:8084/3bb99fcf-185b-4394-b38c-30c2a1c37797" ], "revoked": [ "", "blob:http://127.0.0.1:8084/c6cc6036-f034-4764-9d95-a65b071b7890", "blob:http://127.0.0.1:8084/3bb99fcf-185b-4394-b38c-30c2a1c37797" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/d1d3fc57-cd09-471c-9ac8-f9ccf6bf0279", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/c6cc6036-f034-4764-9d95-a65b071b7890", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/3bb99fcf-185b-4394-b38c-30c2a1c37797", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: NetworkError when attempting to fetch resource." }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "firefox", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "firefox", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "firefox", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b9905e7d-9f92-445d-b85a-1ff762b92098", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/4dfb00d5-c560-4fa7-b39e-474a69904713", "blob:http://127.0.0.1:8084/b9905e7d-9f92-445d-b85a-1ff762b92098" ], "revoked": [ "blob:http://127.0.0.1:8084/b9905e7d-9f92-445d-b85a-1ff762b92098", "blob:http://127.0.0.1:8084/4dfb00d5-c560-4fa7-b39e-474a69904713" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "firefox", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: NetworkError when attempting to fetch resource.", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/23be7a32-759b-4b8e-96ff-a06317d72ea2", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/545cca93-0133-47af-95dc-4032b5b9fb71", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/57e72acd-9989-427b-a6ed-7913aaff0582", "blob:http://127.0.0.1:8084/23be7a32-759b-4b8e-96ff-a06317d72ea2", "blob:http://127.0.0.1:8084/545cca93-0133-47af-95dc-4032b5b9fb71" ], "revoked": [ "blob:http://127.0.0.1:8084/23be7a32-759b-4b8e-96ff-a06317d72ea2", "blob:http://127.0.0.1:8084/545cca93-0133-47af-95dc-4032b5b9fb71" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/57e72acd-9989-427b-a6ed-7913aaff0582", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/23be7a32-759b-4b8e-96ff-a06317d72ea2", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/545cca93-0133-47af-95dc-4032b5b9fb71", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: NetworkError when attempting to fetch resource." }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "firefox", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "firefox", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "webkit", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/dd54677a-2040-4fd9-95b0-7e1f6f70803c", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/58271a89-b04a-4c14-8bb0-4fe0ee187dcc", "blob:http://127.0.0.1:8084/dd54677a-2040-4fd9-95b0-7e1f6f70803c" ], "revoked": [ "", "blob:http://127.0.0.1:8084/dd54677a-2040-4fd9-95b0-7e1f6f70803c", "blob:http://127.0.0.1:8084/58271a89-b04a-4c14-8bb0-4fe0ee187dcc" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "webkit", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Load failed", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/896a7f66-a0e3-4ff6-b64b-6d2fe427cbd7", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/9d19914c-8db7-423b-8fe2-3ab319a2203e", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/b49edc53-604c-475c-9eff-4628e0953f0d", "blob:http://127.0.0.1:8084/896a7f66-a0e3-4ff6-b64b-6d2fe427cbd7", "blob:http://127.0.0.1:8084/9d19914c-8db7-423b-8fe2-3ab319a2203e" ], "revoked": [ "", "blob:http://127.0.0.1:8084/896a7f66-a0e3-4ff6-b64b-6d2fe427cbd7", "blob:http://127.0.0.1:8084/9d19914c-8db7-423b-8fe2-3ab319a2203e" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b49edc53-604c-475c-9eff-4628e0953f0d", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/896a7f66-a0e3-4ff6-b64b-6d2fe427cbd7", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/9d19914c-8db7-423b-8fe2-3ab319a2203e", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Load failed" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "webkit", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "webkit", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "webkit", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/0eda17c0-ceaf-4aff-bdbc-e688880271f1", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/f3799092-4118-491e-8563-0378426e7f7b", "blob:http://127.0.0.1:8084/0eda17c0-ceaf-4aff-bdbc-e688880271f1" ], "revoked": [ "blob:http://127.0.0.1:8084/0eda17c0-ceaf-4aff-bdbc-e688880271f1", "blob:http://127.0.0.1:8084/f3799092-4118-491e-8563-0378426e7f7b" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "webkit", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Load failed", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/b0af81e5-78b9-490d-8607-7bd6b15d8b45", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/f098d7da-c12f-4b1d-b4b5-22f4332ef120", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/8d19c0b6-5b76-4494-996c-312252a77571", "blob:http://127.0.0.1:8084/b0af81e5-78b9-490d-8607-7bd6b15d8b45", "blob:http://127.0.0.1:8084/f098d7da-c12f-4b1d-b4b5-22f4332ef120" ], "revoked": [ "blob:http://127.0.0.1:8084/b0af81e5-78b9-490d-8607-7bd6b15d8b45", "blob:http://127.0.0.1:8084/f098d7da-c12f-4b1d-b4b5-22f4332ef120" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8d19c0b6-5b76-4494-996c-312252a77571", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/b0af81e5-78b9-490d-8607-7bd6b15d8b45", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/f098d7da-c12f-4b1d-b4b5-22f4332ef120", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Load failed" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "webkit", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "webkit", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } } ] }, { "format": "legacy", "file": "refactor/.cache/danmuku03-browser-legacy/report.json", "sha256": "ebc55a046d6eea28a8e35a41e3ad0cada700d48514ff25f35553fd8a844ad82d", "tests": 24, "versions": [ "chromium: 153.0.8010.12", "firefox: 155.0", "webkit: 26.6" ], "spec": { "file": "refactor/.cache/danmuku03-browser-legacy/danmuku-input.spec.js", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, "observations": [ { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/3fcfcef4-5b18-464b-8f37-cd295bae1e04", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/f0752248-ce73-4a96-9811-3c81539f7d94", "blob:http://127.0.0.1:8084/3fcfcef4-5b18-464b-8f37-cd295bae1e04" ], "revoked": [ "", "blob:http://127.0.0.1:8084/3fcfcef4-5b18-464b-8f37-cd295bae1e04", "blob:http://127.0.0.1:8084/f0752248-ce73-4a96-9811-3c81539f7d94" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "chromium", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Failed to fetch", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/6ca228f3-cac3-473d-8bce-003ab1a4d050", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/cad9b870-2d0b-4663-a1b7-d0e1da5eb29b", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/662b9a07-4172-43ba-83c9-912e0931d860", "blob:http://127.0.0.1:8084/6ca228f3-cac3-473d-8bce-003ab1a4d050", "blob:http://127.0.0.1:8084/cad9b870-2d0b-4663-a1b7-d0e1da5eb29b" ], "revoked": [ "", "blob:http://127.0.0.1:8084/6ca228f3-cac3-473d-8bce-003ab1a4d050", "blob:http://127.0.0.1:8084/cad9b870-2d0b-4663-a1b7-d0e1da5eb29b" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/662b9a07-4172-43ba-83c9-912e0931d860", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/6ca228f3-cac3-473d-8bce-003ab1a4d050", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/cad9b870-2d0b-4663-a1b7-d0e1da5eb29b", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Failed to fetch" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "chromium", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "chromium", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "chromium", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/41e13124-e4a4-4e29-91f6-65e2c46ea18c", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/3675f14d-bdd6-4044-987f-9a9f2ac1adb6", "blob:http://127.0.0.1:8084/41e13124-e4a4-4e29-91f6-65e2c46ea18c" ], "revoked": [ "blob:http://127.0.0.1:8084/41e13124-e4a4-4e29-91f6-65e2c46ea18c", "blob:http://127.0.0.1:8084/3675f14d-bdd6-4044-987f-9a9f2ac1adb6" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "chromium", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Failed to fetch", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/239700e3-b8b8-4146-880e-daa243e68e8b", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/05604c54-429d-42c5-9e06-9ae3e245dbca", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/55bb16d1-7f5d-46fe-92cf-b95d5e819036", "blob:http://127.0.0.1:8084/239700e3-b8b8-4146-880e-daa243e68e8b", "blob:http://127.0.0.1:8084/05604c54-429d-42c5-9e06-9ae3e245dbca" ], "revoked": [ "blob:http://127.0.0.1:8084/239700e3-b8b8-4146-880e-daa243e68e8b", "blob:http://127.0.0.1:8084/05604c54-429d-42c5-9e06-9ae3e245dbca" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/55bb16d1-7f5d-46fe-92cf-b95d5e819036", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/239700e3-b8b8-4146-880e-daa243e68e8b", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/05604c54-429d-42c5-9e06-9ae3e245dbca", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Failed to fetch" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "chromium", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "chromium", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "chromium", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "firefox", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b9c43144-0267-4280-893d-dad00c3a1ad5", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/b3e8fc5c-e5e9-4b1d-a53d-275672406c27", "blob:http://127.0.0.1:8084/b9c43144-0267-4280-893d-dad00c3a1ad5" ], "revoked": [ "", "blob:http://127.0.0.1:8084/b9c43144-0267-4280-893d-dad00c3a1ad5", "blob:http://127.0.0.1:8084/b3e8fc5c-e5e9-4b1d-a53d-275672406c27" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "firefox", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: NetworkError when attempting to fetch resource.", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/431b48a2-f5ac-416e-8e84-d08a73f21622", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/5968bf3a-1a59-47b8-be95-45b9917b1e27", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/f8967902-1ffc-41b6-9fa6-d1792bc6a115", "blob:http://127.0.0.1:8084/431b48a2-f5ac-416e-8e84-d08a73f21622", "blob:http://127.0.0.1:8084/5968bf3a-1a59-47b8-be95-45b9917b1e27" ], "revoked": [ "", "blob:http://127.0.0.1:8084/431b48a2-f5ac-416e-8e84-d08a73f21622", "blob:http://127.0.0.1:8084/5968bf3a-1a59-47b8-be95-45b9917b1e27" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f8967902-1ffc-41b6-9fa6-d1792bc6a115", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/431b48a2-f5ac-416e-8e84-d08a73f21622", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/5968bf3a-1a59-47b8-be95-45b9917b1e27", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: NetworkError when attempting to fetch resource." }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "firefox", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "firefox", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "firefox", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/baab6557-76e3-4a57-90b9-2be3ae117ebd", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/47f0017f-86ba-404f-8b94-8602136e5daa", "blob:http://127.0.0.1:8084/baab6557-76e3-4a57-90b9-2be3ae117ebd" ], "revoked": [ "blob:http://127.0.0.1:8084/baab6557-76e3-4a57-90b9-2be3ae117ebd", "blob:http://127.0.0.1:8084/47f0017f-86ba-404f-8b94-8602136e5daa" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "firefox", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: NetworkError when attempting to fetch resource.", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/514f5125-bcd8-4f42-99a3-8e185ce74d83", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/28f90c0b-324e-4187-8712-fc33f34584a9", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/1adb9657-7fc6-434b-be43-c770612b4640", "blob:http://127.0.0.1:8084/514f5125-bcd8-4f42-99a3-8e185ce74d83", "blob:http://127.0.0.1:8084/28f90c0b-324e-4187-8712-fc33f34584a9" ], "revoked": [ "blob:http://127.0.0.1:8084/514f5125-bcd8-4f42-99a3-8e185ce74d83", "blob:http://127.0.0.1:8084/28f90c0b-324e-4187-8712-fc33f34584a9" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/1adb9657-7fc6-434b-be43-c770612b4640", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/514f5125-bcd8-4f42-99a3-8e185ce74d83", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/28f90c0b-324e-4187-8712-fc33f34584a9", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: NetworkError when attempting to fetch resource." }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "firefox", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "firefox", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "firefox", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "webkit", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c528fc39-c5d8-4f1a-b38a-71415209edee", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/388a252d-70cd-439d-b09d-e82cdb4852f5", "blob:http://127.0.0.1:8084/c528fc39-c5d8-4f1a-b38a-71415209edee" ], "revoked": [ "", "blob:http://127.0.0.1:8084/c528fc39-c5d8-4f1a-b38a-71415209edee", "blob:http://127.0.0.1:8084/388a252d-70cd-439d-b09d-e82cdb4852f5" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (published)", "browser": "webkit", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Load failed", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/e53a0834-d7da-4080-bbfc-419a75ab8f40", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/eaf7d288-0213-4b0f-8dc3-0e2ff84350c8", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/b943a887-24d7-4312-81be-b86588a529b1", "blob:http://127.0.0.1:8084/e53a0834-d7da-4080-bbfc-419a75ab8f40", "blob:http://127.0.0.1:8084/eaf7d288-0213-4b0f-8dc3-0e2ff84350c8" ], "revoked": [ "", "blob:http://127.0.0.1:8084/e53a0834-d7da-4080-bbfc-419a75ab8f40", "blob:http://127.0.0.1:8084/eaf7d288-0213-4b0f-8dc3-0e2ff84350c8" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b943a887-24d7-4312-81be-b86588a529b1", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/e53a0834-d7da-4080-bbfc-419a75ab8f40", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/eaf7d288-0213-4b0f-8dc3-0e2ff84350c8", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Load failed" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (published)", "browser": "webkit", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "published", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (published)", "browser": "webkit", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native Worker startup failure falls back locally (candidate)", "browser": "webkit", "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/0fbc3dec-4fdf-4cc7-b8c7-c49a54edc05b", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/e7e709ee-f227-4665-be3c-fcd3d3e2795e", "blob:http://127.0.0.1:8084/0fbc3dec-4fdf-4cc7-b8c7-c49a54edc05b" ], "revoked": [ "blob:http://127.0.0.1:8084/0fbc3dec-4fdf-4cc7-b8c7-c49a54edc05b", "blob:http://127.0.0.1:8084/e7e709ee-f227-4665-be3c-fcd3d3e2795e" ], "errors": [], "fault": "Test replaces only the newly created native parser Worker script with a thrown startup Error; fetch, fallback parser and error dispatch remain real." } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input native parser cleanup and rejected fetch (candidate)", "browser": "webkit", "name": "danmuku-native-parser", "value": { "parsed": [ { "text": "A & B", "time": 0, "mode": 0, "color": "#ff", "userID": "user", "rowID": 456 }, { "text": "TOP", "time": 2, "mode": 2, "color": "#ffffff", "userID": "u", "rowID": 789 } ], "emptyIdentity": true, "beforeDestroy": 2, "rejection": "TypeError: Load failed", "parserWorkers": [ { "url": "blob:http://127.0.0.1:8084/87feb582-99da-4354-b433-52e291cfceba", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/5fbfe43f-eec5-4691-b030-dc43a638c4d1", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/4b6e3b19-237e-4e96-8a73-c884833b5048", "blob:http://127.0.0.1:8084/87feb582-99da-4354-b433-52e291cfceba", "blob:http://127.0.0.1:8084/5fbfe43f-eec5-4691-b030-dc43a638c4d1" ], "revoked": [ "blob:http://127.0.0.1:8084/87feb582-99da-4354-b433-52e291cfceba", "blob:http://127.0.0.1:8084/5fbfe43f-eec5-4691-b030-dc43a638c4d1" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/4b6e3b19-237e-4e96-8a73-c884833b5048", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/87feb582-99da-4354-b433-52e291cfceba", "terminated": 1, "replies": [ { "danmus": [ { "text": "A & B", "time": 0, "mode": 0, "fontSize": 25, "color": "#ff", "timestamp": 123, "pool": 0, "userID": "user", "rowID": 456, "style": {} }, { "text": "TOP", "time": 2, "mode": 2, "fontSize": 20, "color": "#ffffff", "timestamp": 124, "pool": 0, "userID": "u", "rowID": 789, "style": {} } ], "id": 1 } ] }, { "url": "blob:http://127.0.0.1:8084/5fbfe43f-eec5-4691-b030-dc43a638c4d1", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 2 }, { "name": "error", "error": "TypeError: Load failed" }, { "name": "destroy" } ] } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku input replacement append and destruction (candidate)", "browser": "webkit", "name": "danmuku-native-input-ownership", "value": { "initialEvents": [ "show", "config", "reset", "loaded" ], "latestIdentity": true, "oldIdentity": true, "destroyedIdentity": true, "queue": [ { "text": "new", "time": 0 }, { "text": "append B", "time": 0.5 }, { "text": "append A", "time": 0.5 } ], "finalQueue": [ "new", "append B", "append A" ], "loadedBefore": 4, "loadedAfter": 4, "events": [ { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 0 }, { "name": "show" }, { "name": "config" }, { "name": "show" }, { "name": "config" }, { "name": "reset" }, { "name": "loaded", "count": 1 }, { "name": "loaded", "count": 2 }, { "name": "loaded", "count": 3 }, { "name": "destroy" } ] } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "webkit", "name": "danmuku-input-build", "value": { "core": "candidate", "artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92", "worker": "Native Blob Worker with observation only", "media": "/test/pattern.mp4" } }, { "title": "Danmuku config callback replacement and validation (candidate)", "browser": "webkit", "name": "danmuku-native-config", "value": { "unchangedIdentity": true, "count": 2, "unchangedCount": 2, "unchangedOption": true, "filterIdentity": true, "error": "Error: [Type Error]: 'option.speed' require 'number' type, but got 'string'", "receiver": [ true, true ], "emittedIdentity": true, "input": { "text": "included", "time": 0, "mode": 0, "style": {}, "color": "#FFFFFF" }, "queue": [ { "text": "included", "time": 0 } ] } } ] } ], "prior": [ { "format": "main", "file": "refactor/.cache/danmuku03-candidate-main.log", "sha256": "e01b7d5e20bfa729d4477898956238ddbf40621a16bb3758e99efa65b31451ae", "passed": 41, "failed": 5, "cause": "Parser fault injection ran before factory initialization and affected the runtime-looked-up built inline track Worker. Move only parser fault injection after factory+flush; assertions unchanged; no production change needed for these failures." }, { "format": "legacy", "file": "refactor/.cache/danmuku03-candidate-legacy.log", "sha256": "681cf27c30e09393a025aa938de90ade1b4417fa0156be32c89685de3803f13a", "passed": 41, "failed": 5, "cause": "Parser fault injection ran before factory initialization and affected the runtime-looked-up built inline track Worker. Move only parser fault injection after factory+flush; assertions unchanged; no production change needed for these failures." } ], "checks": [ { "file": "refactor/.cache/danmuku03-build.log", "sha256": "87093054c296fd843e8c701893dd23628cafdee98499f03a76a1d59908c316fe" }, { "file": "refactor/.cache/danmuku03-typecheck.log", "sha256": "33ced90b0fff4881e9a4477aca1e8c51a5715b8170f71c860518bbdff1c4e606" }, { "file": "refactor/.cache/danmuku03-lint-final.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" } ], "inputs": [ { "path": "package.json", "algorithm": "sha256-lf", "sha256": "da413ff9632f9d0ac72c8dcb6ff38966a2b16bad2e2fdb60e6a949be4e5f5ef5" }, { "path": "packages/artplayer-plugin-danmuku/ARCHITECTURE.md", "algorithm": "sha256-lf", "sha256": "72210d9d48124aeb3c73055554677c99aa226cc23c59d629ed5dd5cee60f19fe" }, { "path": "packages/artplayer-plugin-danmuku/README.md", "algorithm": "sha256-lf", "sha256": "af74f34e9a975933954c814bb312473f43606ea1905d5b098232a38597c9b5ee" }, { "path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "algorithm": "sha256-lf", "sha256": "4d4122a3ecbc118a057e47edd4e6653db58232e78d627eabe6c5d3f9f5d8d935" }, { "path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "algorithm": "sha256-lf", "sha256": "92d289cc50477df1a5b0142ca1803dd603cd7bb4deab471eb2e7c0f10a023c92" }, { "path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs", "algorithm": "sha256-lf", "sha256": "8c560f5eab211d5bd11d0259df70a377f863789972f788eaf714e6b455a279ba" }, { "path": "packages/artplayer-plugin-danmuku/src/bilibili-parser.js", "algorithm": "sha256-lf", "sha256": "46720235c8b9f986ecdda436a16b03a8215e4f3dc0151c16df17dca68f0302bc" }, { "path": "packages/artplayer-plugin-danmuku/src/bilibili.js", "algorithm": "sha256-lf", "sha256": "39310fb20dfe5f98a492460d7a9f7d3078367ce8f70e383d89f9dc7029d297cc" }, { "path": "packages/artplayer-plugin-danmuku/src/config.js", "algorithm": "sha256-lf", "sha256": "33b70af031f5a5df0b93bc2dcef74b32ce4674b6a248476dc3a6f65a29deeb1c" }, { "path": "packages/artplayer-plugin-danmuku/src/danmuku.js", "algorithm": "sha256-lf", "sha256": "e2af06376a1365b62d6df8bb02093bb0e9de6657a76bbf0991e8ba82d9cb60c8" }, { "path": "packages/artplayer-plugin-danmuku/src/heatmap.js", "algorithm": "sha256-lf", "sha256": "3cf77ff82f62958728445eaf9c044bc4cbcf04a4ea82e753e7c44e59128c16f4" }, { "path": "packages/artplayer-plugin-danmuku/src/img/check_off.svg", "algorithm": "sha256-lf", "sha256": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf" }, { "path": "packages/artplayer-plugin-danmuku/src/img/check_on.svg", "algorithm": "sha256-lf", "sha256": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84" }, { "path": "packages/artplayer-plugin-danmuku/src/img/config.svg", "algorithm": "sha256-lf", "sha256": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36" }, { "path": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg", "algorithm": "sha256-lf", "sha256": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e" }, { "path": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg", "algorithm": "sha256-lf", "sha256": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138" }, { "path": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg", "algorithm": "sha256-lf", "sha256": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2" }, { "path": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg", "algorithm": "sha256-lf", "sha256": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a" }, { "path": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg", "algorithm": "sha256-lf", "sha256": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d" }, { "path": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg", "algorithm": "sha256-lf", "sha256": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f" }, { "path": "packages/artplayer-plugin-danmuku/src/img/off.svg", "algorithm": "sha256-lf", "sha256": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563" }, { "path": "packages/artplayer-plugin-danmuku/src/img/on.svg", "algorithm": "sha256-lf", "sha256": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7" }, { "path": "packages/artplayer-plugin-danmuku/src/img/style.svg", "algorithm": "sha256-lf", "sha256": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a" }, { "path": "packages/artplayer-plugin-danmuku/src/index.js", "algorithm": "sha256-lf", "sha256": "956e30c857dbb15147506924308c363dcc4a07bcf1bb97ce3fc436afa366cd9c" }, { "path": "packages/artplayer-plugin-danmuku/src/input.js", "algorithm": "sha256-lf", "sha256": "6740c347018290de2a8d90925148f63ec005d294426ed8d3192e69313171b8fc" }, { "path": "packages/artplayer-plugin-danmuku/src/setting.js", "algorithm": "sha256-lf", "sha256": "ffbaa808551410dc015a5f3ffe4e091f5e1b1bb45eee2d9790cf15cbf82eace2" }, { "path": "packages/artplayer-plugin-danmuku/src/style.less", "algorithm": "sha256-lf", "sha256": "7148a1bd32f5d3d743db4a4ae8d39dc0e1406d2bff18df42cbb20e6705d5fed9" }, { "path": "packages/artplayer-plugin-danmuku/src/worker.js", "algorithm": "sha256-lf", "sha256": "05995a16cd728dd5ca513587a777b4be9012b8cc4b77e3a46fed1826e6769c53" }, { "path": "playwright.config.js", "algorithm": "sha256-lf", "sha256": "df2384f5626252ec933725867e400ec22eb92bc5e6f04873059b32decf2f2d56" }, { "path": "test/browser/danmuku-input.spec.js", "algorithm": "sha256-lf", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, { "path": "test/browser/fixtures.js", "algorithm": "sha256-lf", "sha256": "313414b8958eb5b03a2da8595fa0bbf6bfdc01484373898c6cb7179545df175d" }, { "path": "test/browser/server.mjs", "algorithm": "sha256-lf", "sha256": "1406fac75eabc83b987e79ec7b5f97a948b27770bfd5f5290d7cb9155196f08f" }, { "path": "test/danmuku-input.test.js", "algorithm": "sha256-lf", "sha256": "1201198ca091f101a1e97cd9653929a744a5ef44ae33ad35ec73e2e2b4826b53" }, { "path": "test/danmuku-parser.test.js", "algorithm": "sha256-lf", "sha256": "ae2dae43f447c1361662f70e90009c8978e1d96bbb133b7b07baafc9d765d70e" }, { "path": "test/helpers/danmuku-candidate.js", "algorithm": "sha256-lf", "sha256": "215aa631baa36f2434e95fc11f178fd9a4cca71834db0dd5e93d06356674445a" } ], "decisions": [ "Preserve internal instance return identity, synchronous array prefix and sequential await emit.", "Cancel only superseded replacements and all loads on destroy; independent appends survive replacement. Cancelled public loads resolve the internal instance silently.", "Preserve input object normalization and legacy XML fields; correct explicit time zero.", "Commit validated configuration; compare callable/Promise identity and retain ordinary structural equality.", "Observe automatic initial load rejection locally; public load emits original error once and rejects.", "Rollback early destroy subscription on initial configuration or track Worker failure; correct the existing resize callback identity." ], "limitations": [ "This step is JS responsibility separation; full owned TS and installed public declarations are task 06.", "Track scheduling, pending visibility, settings lifecycle, heatmap and long-run native overlap remain open.", "ESM built successfully but is not counted among the three controlled/native runtime variants.", "Native tests use local XML/fault fixtures; no live Bilibili, CSP matrix, physical Safari or npm release acceptance." ], "releaseReady": false }