{ "schemaVersion": 1, "task": "PKG-DANMUKU-05", "status": "done", "capturedAt": "2026-09-13T12:43:51.757Z", "baselineCommit": "12332df221597bacdeafd222fa70716031586e4e", "units": [ { "format": "source", "tests": 159, "implementationDependent": 101, "common": { "internalWorker": 18, "numericHistory": 3, "settingHistory": 18, "directHeatmapWithHistoryComparisons": 14, "directRenderer": 5 }, "file": "refactor/.cache/danmuku05-candidate-source-final.log", "sha256": "310fe7266bc1330d793f798b89c17209988dcf47f1a75d662a38f6dbb5650c75" }, { "format": "main", "tests": 159, "implementationDependent": 101, "common": { "internalWorker": 18, "numericHistory": 3, "settingHistory": 18, "directHeatmapWithHistoryComparisons": 14, "directRenderer": 5 }, "file": "refactor/.cache/danmuku05-candidate-main-final.log", "sha256": "0e14b6c5c1ed7986f9798ea7b5fff615d204f7a71b62ab5eac2a9a9d6e9a42cb" }, { "format": "legacy", "tests": 159, "implementationDependent": 101, "common": { "internalWorker": 18, "numericHistory": 3, "settingHistory": 18, "directHeatmapWithHistoryComparisons": 14, "directRenderer": 5 }, "file": "refactor/.cache/danmuku05-candidate-legacy-final.log", "sha256": "b28abc1227d02bf91db3254e3fcf0f47e96666dc940908a6c772e602b4422b8a" } ], "completeSuite": { "tests": 245, "file": "refactor/.cache/danmuku05-suite-final.log", "sha256": "57e26ae87c9f3cb4171dd181d11f7a8a754b05cfe95fc36ff17efcd686492a92" }, "browsers": [ { "format": "source", "tests": 138, "workers": 2, "file": "refactor/.cache/danmuku05-browser-source-resource-final/report.json", "sha256": "b389088a846451291a921ea094b0d22d16e6a74362febaf24107b26e8f62fb62", "run": { "file": "refactor/.cache/danmuku05-browser-source-resource-final/run.log", "sha256": "9252f9a11a81835b068fb24d21a001202391386f1991f41e29c17237cd473df4" }, "specs": [ { "file": "refactor/.cache/danmuku05-browser-source-resource-final/danmuku-input.spec.js", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, { "file": "refactor/.cache/danmuku05-browser-source-resource-final/danmuku-scheduler.spec.js", "sha256": "ee67bc0f204f1f9090859ed9d1d0cfecc545129fff6278d2f17140b009390519" }, { "file": "refactor/.cache/danmuku05-browser-source-resource-final/danmuku-resources.spec.js", "sha256": "f0d09e962cb422a66bd644c52268aff8f288606ae9c93676fa979539743f9c6b" } ], "archiveResultsRoot": "refactor/.cache/danmuku05-browser-source-resource-final/results", "originalResultsRoot": "refactor/.cache/browser/results", "versions": [ "chromium: 153.0.8010.12", "firefox: 155.0", "webkit: 26.6" ], "cases": [ { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "durationMs": 445, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/ac8b8c16-1427-495a-ba03-0ce7b60d0e0c", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/7015dc70-160c-44ea-842b-a976969f2628", "blob:http://127.0.0.1:8084/ac8b8c16-1427-495a-ba03-0ce7b60d0e0c" ], "revoked": [ "", "blob:http://127.0.0.1:8084/ac8b8c16-1427-495a-ba03-0ce7b60d0e0c", "blob:http://127.0.0.1:8084/7015dc70-160c-44ea-842b-a976969f2628" ], "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", "durationMs": 271, "observations": [ { "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/3281f15b-4fd0-4b40-958d-e76d60af9056", "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/713d0063-371e-4fa7-8eaf-a7fece601d35", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/b3653858-14d5-48ee-847d-488e9dd43a66", "blob:http://127.0.0.1:8084/3281f15b-4fd0-4b40-958d-e76d60af9056", "blob:http://127.0.0.1:8084/713d0063-371e-4fa7-8eaf-a7fece601d35" ], "revoked": [ "", "blob:http://127.0.0.1:8084/3281f15b-4fd0-4b40-958d-e76d60af9056", "blob:http://127.0.0.1:8084/713d0063-371e-4fa7-8eaf-a7fece601d35" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b3653858-14d5-48ee-847d-488e9dd43a66", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/3281f15b-4fd0-4b40-958d-e76d60af9056", "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/713d0063-371e-4fa7-8eaf-a7fece601d35", "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", "durationMs": 310, "observations": [ { "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", "durationMs": 252, "observations": [ { "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", "durationMs": 366, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/80a66902-2bd7-4d54-9638-9b9e44edf34b", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/f1141647-a0ee-4dd9-a678-f577a8d5f0a7", "blob:http://127.0.0.1:8084/80a66902-2bd7-4d54-9638-9b9e44edf34b" ], "revoked": [ "blob:http://127.0.0.1:8084/80a66902-2bd7-4d54-9638-9b9e44edf34b", "blob:http://127.0.0.1:8084/f1141647-a0ee-4dd9-a678-f577a8d5f0a7" ], "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", "durationMs": 322, "observations": [ { "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/3f969185-5cd7-475c-be1c-8a2e34ac6ce5", "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/00df37e2-23dc-4ca0-bde2-88800cf7316c", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/139220c6-868a-45d2-a0e6-c507b2dce7d1", "blob:http://127.0.0.1:8084/3f969185-5cd7-475c-be1c-8a2e34ac6ce5", "blob:http://127.0.0.1:8084/00df37e2-23dc-4ca0-bde2-88800cf7316c" ], "revoked": [ "blob:http://127.0.0.1:8084/3f969185-5cd7-475c-be1c-8a2e34ac6ce5", "blob:http://127.0.0.1:8084/00df37e2-23dc-4ca0-bde2-88800cf7316c" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/139220c6-868a-45d2-a0e6-c507b2dce7d1", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/3f969185-5cd7-475c-be1c-8a2e34ac6ce5", "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/00df37e2-23dc-4ca0-bde2-88800cf7316c", "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", "durationMs": 295, "observations": [ { "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", "durationMs": 293, "observations": [ { "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", "durationMs": 1949, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f9d27a39-5884-4483-9487-2c5870c43e4f", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/81d97485-577f-4efb-add7-6e18f796cadb", "blob:http://127.0.0.1:8084/f9d27a39-5884-4483-9487-2c5870c43e4f" ], "revoked": [ "", "blob:http://127.0.0.1:8084/f9d27a39-5884-4483-9487-2c5870c43e4f", "blob:http://127.0.0.1:8084/81d97485-577f-4efb-add7-6e18f796cadb" ], "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", "durationMs": 669, "observations": [ { "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/8f0977cf-4317-4938-aa01-c405a49d09de", "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/b7e21127-5e68-4b2c-92cd-30abbd5fd125", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/7a6b574b-d7fa-4470-bdd4-bd6c5d44f889", "blob:http://127.0.0.1:8084/8f0977cf-4317-4938-aa01-c405a49d09de", "blob:http://127.0.0.1:8084/b7e21127-5e68-4b2c-92cd-30abbd5fd125" ], "revoked": [ "", "blob:http://127.0.0.1:8084/8f0977cf-4317-4938-aa01-c405a49d09de", "blob:http://127.0.0.1:8084/b7e21127-5e68-4b2c-92cd-30abbd5fd125" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/7a6b574b-d7fa-4470-bdd4-bd6c5d44f889", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/8f0977cf-4317-4938-aa01-c405a49d09de", "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/b7e21127-5e68-4b2c-92cd-30abbd5fd125", "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", "durationMs": 645, "observations": [ { "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", "durationMs": 484, "observations": [ { "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", "durationMs": 2217, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/49e4de27-a694-486e-a755-5c3af2736f28", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/69270c58-7982-45d8-b6e7-911aedf10ede", "blob:http://127.0.0.1:8084/49e4de27-a694-486e-a755-5c3af2736f28" ], "revoked": [ "blob:http://127.0.0.1:8084/49e4de27-a694-486e-a755-5c3af2736f28", "blob:http://127.0.0.1:8084/69270c58-7982-45d8-b6e7-911aedf10ede" ], "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", "durationMs": 538, "observations": [ { "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/5b2e5d2a-e5cc-4386-96a4-08a39f5d6959", "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/9d3addc7-1764-4e31-8f2f-20d8919888dd", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/ef6f4d03-2679-45ff-82f9-b8e43ee5068b", "blob:http://127.0.0.1:8084/5b2e5d2a-e5cc-4386-96a4-08a39f5d6959", "blob:http://127.0.0.1:8084/9d3addc7-1764-4e31-8f2f-20d8919888dd" ], "revoked": [ "blob:http://127.0.0.1:8084/5b2e5d2a-e5cc-4386-96a4-08a39f5d6959", "blob:http://127.0.0.1:8084/9d3addc7-1764-4e31-8f2f-20d8919888dd" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/ef6f4d03-2679-45ff-82f9-b8e43ee5068b", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/5b2e5d2a-e5cc-4386-96a4-08a39f5d6959", "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/9d3addc7-1764-4e31-8f2f-20d8919888dd", "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", "durationMs": 455, "observations": [ { "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", "durationMs": 436, "observations": [ { "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", "durationMs": 1471, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/dc22ab6c-d50f-4b39-939f-38b907489f5f", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/18d77cb7-4759-4d7f-b5a3-81a2695c01f3", "blob:http://127.0.0.1:8084/dc22ab6c-d50f-4b39-939f-38b907489f5f" ], "revoked": [ "", "blob:http://127.0.0.1:8084/dc22ab6c-d50f-4b39-939f-38b907489f5f", "blob:http://127.0.0.1:8084/18d77cb7-4759-4d7f-b5a3-81a2695c01f3" ], "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", "durationMs": 1536, "observations": [ { "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/b3023e13-bd88-4f98-bbf9-e0eab9a228f7", "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/e978d3e9-6e7e-4eba-8445-82947af0b787", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/f1cae22f-6deb-4523-bf4d-39e25fd95fcf", "blob:http://127.0.0.1:8084/b3023e13-bd88-4f98-bbf9-e0eab9a228f7", "blob:http://127.0.0.1:8084/e978d3e9-6e7e-4eba-8445-82947af0b787" ], "revoked": [ "", "blob:http://127.0.0.1:8084/b3023e13-bd88-4f98-bbf9-e0eab9a228f7", "blob:http://127.0.0.1:8084/e978d3e9-6e7e-4eba-8445-82947af0b787" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f1cae22f-6deb-4523-bf4d-39e25fd95fcf", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/b3023e13-bd88-4f98-bbf9-e0eab9a228f7", "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/e978d3e9-6e7e-4eba-8445-82947af0b787", "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", "durationMs": 1446, "observations": [ { "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", "durationMs": 1150, "observations": [ { "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", "durationMs": 1521, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8147e44f-5701-4553-9add-3f1cb73b7215", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/a6b273ae-bf74-45a6-8c36-47d43ec724c4", "blob:http://127.0.0.1:8084/8147e44f-5701-4553-9add-3f1cb73b7215" ], "revoked": [ "blob:http://127.0.0.1:8084/8147e44f-5701-4553-9add-3f1cb73b7215", "blob:http://127.0.0.1:8084/a6b273ae-bf74-45a6-8c36-47d43ec724c4" ], "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", "durationMs": 1521, "observations": [ { "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/43120c61-d17f-4223-bc37-7be96aadc835", "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/8a5c59ed-eb85-4128-8fcd-379d7c449782", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/4b2866a6-ef93-4090-8c12-a8a5b28643d5", "blob:http://127.0.0.1:8084/43120c61-d17f-4223-bc37-7be96aadc835", "blob:http://127.0.0.1:8084/8a5c59ed-eb85-4128-8fcd-379d7c449782" ], "revoked": [ "blob:http://127.0.0.1:8084/43120c61-d17f-4223-bc37-7be96aadc835", "blob:http://127.0.0.1:8084/8a5c59ed-eb85-4128-8fcd-379d7c449782" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/4b2866a6-ef93-4090-8c12-a8a5b28643d5", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/43120c61-d17f-4223-bc37-7be96aadc835", "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/8a5c59ed-eb85-4128-8fcd-379d7c449782", "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", "durationMs": 1345, "observations": [ { "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", "durationMs": 1251, "observations": [ { "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": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "chromium", "durationMs": 298, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "chromium", "durationMs": 327, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "chromium", "durationMs": 372, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "chromium", "durationMs": 444, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "chromium", "durationMs": 393, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "chromium", "durationMs": 477, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "chromium", "durationMs": 458, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "chromium", "durationMs": 544, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "chromium", "durationMs": 306, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "chromium", "durationMs": 340, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "chromium", "durationMs": 389, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "chromium", "durationMs": 463, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "chromium", "durationMs": 424, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "chromium", "durationMs": 472, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "chromium", "durationMs": 511, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "chromium", "durationMs": 541, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "firefox", "durationMs": 490, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "firefox", "durationMs": 604, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "firefox", "durationMs": 775, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "firefox", "durationMs": 955, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "firefox", "durationMs": 598, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "firefox", "durationMs": 1373, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "firefox", "durationMs": 543, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "firefox", "durationMs": 596, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "firefox", "durationMs": 508, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "firefox", "durationMs": 520, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "firefox", "durationMs": 639, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "firefox", "durationMs": 857, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "firefox", "durationMs": 679, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "firefox", "durationMs": 1227, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "firefox", "durationMs": 727, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "firefox", "durationMs": 605, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "webkit", "durationMs": 1624, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "webkit", "durationMs": 1373, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "webkit", "durationMs": 2066, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "webkit", "durationMs": 2559, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "webkit", "durationMs": 2315, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "webkit", "durationMs": 2033, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "webkit", "durationMs": 1968, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "webkit", "durationMs": 2130, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "webkit", "durationMs": 1415, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "webkit", "durationMs": 1439, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "webkit", "durationMs": 1857, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "webkit", "durationMs": 2678, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "webkit", "durationMs": 2245, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "webkit", "durationMs": 2033, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "webkit", "durationMs": 1642, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "webkit", "durationMs": 2118, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "chromium", "durationMs": 2347, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "chromium", "durationMs": 449, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.124351 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/a4da3f5a-a870-4131-96a6-ba330d932d79", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "chromium", "durationMs": 476, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.124243 }, { "index": 0, "event": "stop", "time": 0.124243 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/45bb7a7b-f2a2-43f9-afba-1e9819c0d04a", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2641, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2502, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2406, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2310, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "chromium", "durationMs": 1359, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "chromium", "durationMs": 1443, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "chromium", "durationMs": 2353, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 602.791015625, "next": 602.791015625, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 223.9000000357628, "before": 0.021692, "after": 0.021692, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 241.69999998807907, "before": 0.039631, "after": 0.039631, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 257.4000000357628, "before": 0.055246, "after": 0.055246, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 274.30000001192093, "before": 0.072143, "after": 0.072143, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 290.69999998807907, "before": 0.088697, "after": 0.088697, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 306.9000000357628, "before": 0.104823, "after": 0.104823, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 324.10000002384186, "before": 0.122029, "after": 0.122029, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 339.9000000357628, "before": 0.137853, "after": 0.137853, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 357.19999998807907, "before": 0.15508, "after": 0.15508, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 373.9000000357628, "before": 0.171815, "after": 0.171815, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 390.80000001192093, "before": 0.188798, "after": 0.188798, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 408.30000001192093, "before": 0.206217, "after": 0.206217, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 423.5, "before": 0.221392, "after": 0.221392, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 440.10000002384186, "before": 0.237978, "after": 0.237978, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 457.19999998807907, "before": 0.255039, "after": 0.255039, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 473.9000000357628, "before": 0.271822, "after": 0.271822, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 490.60000002384186, "before": 0.288558, "after": 0.288558, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 507.5, "before": 0.305459, "after": 0.305459, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 524.1000000238419, "before": 0.322004, "after": 0.322004, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 541.1000000238419, "before": 0.338978, "after": 0.338978, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 558.1999999880791, "before": 0.356166, "after": 0.356166, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 573.9000000357628, "before": 0.371822, "after": 0.371822, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 591.4000000357628, "before": 0.38929, "after": 0.38929, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 606.4000000357628, "before": 0.404382, "after": 0.404382, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 624.4000000357628, "before": 0.422287, "after": 0.422287, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 640.8000000119209, "before": 0.438739, "after": 0.438739, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 657.4000000357628, "before": 0.455382, "after": 0.455382, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 673.6000000238419, "before": 0.471561, "after": 0.471561, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 689.9000000357628, "before": 0.487841, "after": 0.487841, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 706.6999999880791, "before": 0.504642, "after": 0.504642, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 724.1000000238419, "before": 0.522021, "after": 0.522021, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 740.5, "before": 0.538502, "after": 0.538502, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 756.6000000238419, "before": 0.554531, "after": 0.554531, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 773.9000000357628, "before": 0.571821, "after": 0.571821, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 790.6000000238419, "before": 0.588509, "after": 0.588509, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 806.5, "before": 0.60442, "after": 0.60442, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 824.4000000357628, "before": 0.622369, "after": 0.622369, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 841.4000000357628, "before": 0.639378, "after": 0.639378, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 856.8000000119209, "before": 0.654673, "after": 0.654673, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 874.5, "before": 0.672475, "after": 0.672475, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 890.1000000238419, "before": 0.688001, "after": 0.688001, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 907.6999999880791, "before": 0.705563, "after": 0.705563, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 924.6000000238419, "before": 0.722561, "after": 0.722561, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 940.6000000238419, "before": 0.738548, "after": 0.738548, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 957.4000000357628, "before": 0.755273, "after": 0.755273, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 973.5, "before": 0.771382, "after": 0.771382, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 990, "before": 0.787952, "after": 0.787952, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1006.9000000357628, "before": 0.804894, "after": 0.804894, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1024.4000000357628, "before": 0.822383, "after": 0.822383, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1040.4000000357628, "before": 0.838344, "after": 0.838344, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1057, "before": 0.854933, "after": 0.854933, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1074.1000000238419, "before": 0.872016, "after": 0.872016, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1091.300000011921, "before": 0.889314, "after": 0.889314, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1106.5, "before": 0.904391, "after": 0.904391, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1123.5, "before": 0.921456, "after": 0.921456, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1357.6000000238419, "before": 2.05937, "after": 2.05937, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1373.699999988079, "before": 2.091658, "after": 2.091658, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1390.4000000357628, "before": 2.12497, "after": 2.12497, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1407.6000000238419, "before": 2.159264, "after": 2.159264, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1424.199999988079, "before": 2.19274, "after": 2.19274, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1440.800000011921, "before": 2.22576, "after": 2.22576, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1457, "before": 2.25811, "after": 2.25811, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1474.300000011921, "before": 2.292782, "after": 2.292782, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1490.800000011921, "before": 2.325772, "after": 2.325772, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1508.4000000357628, "before": 2.361002, "after": 2.361002, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1524.5, "before": 2.393174, "after": 2.393174, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1539.9000000357628, "before": 2.424078, "after": 2.424078, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1558, "before": 2.460196, "after": 2.460196, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1573.9000000357628, "before": 2.491894, "after": 2.491894, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1590, "before": 2.524142, "after": 2.524142, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1607.5, "before": 2.55923, "after": 2.55923, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1624.5, "before": 2.593212, "after": 2.593212, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1640.5, "before": 2.62521, "after": 2.62521, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1657.199999988079, "before": 2.658474, "after": 2.658474, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1673.1000000238419, "before": 2.690416, "after": 2.690416, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1691.300000011921, "before": 2.726734, "after": 2.726734, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1708.300000011921, "before": 2.760734, "after": 2.760734, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1724.5, "before": 2.793064, "after": 2.793064, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1740.699999988079, "before": 2.825582, "after": 2.825582, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1757.4000000357628, "before": 2.858936, "after": 2.858936, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1773.199999988079, "before": 2.890664, "after": 2.890664, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1791.1000000238419, "before": 2.926292, "after": 2.926292, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1807.1000000238419, "before": 2.9583, "after": 2.9583, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1823.6000000238419, "before": 2.991432, "after": 2.991432, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1841.199999988079, "before": 3.026556, "after": 3.026556, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1857.5, "before": 3.059104, "after": 3.059104, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1873.6000000238419, "before": 3.091374, "after": 3.091374, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1890.9000000357628, "before": 3.125938, "after": 3.125938, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1907.699999988079, "before": 3.159566, "after": 3.159566, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1923.6000000238419, "before": 3.191372, "after": 3.191372, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "wait" } ] }, { "wall": 1940.9000000357628, "before": 3.225928, "after": 3.225928, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 1957.4000000357628, "before": 3.258872, "after": 3.258872, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 1973.6000000238419, "before": 3.29145, "after": 3.29145, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 1990.5, "before": 3.325072, "after": 3.325072, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2007.1000000238419, "before": 3.358516, "after": 3.358516, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2023.4000000357628, "before": 3.390952, "after": 3.390952, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2041.300000011921, "before": 3.42659, "after": 3.42659, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2056.800000011921, "before": 3.457752, "after": 3.457752, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2073.400000035763, "before": 3.49095, "after": 3.49095, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2090.400000035763, "before": 3.525042, "after": 3.525042, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2107.199999988079, "before": 3.558702, "after": 3.558702, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] }, { "wall": 2123.5, "before": 3.591142, "after": 3.591142, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.26718, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "chromium", "durationMs": 4044, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "chromium", "durationMs": 2297, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "chromium", "durationMs": 444, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.120575 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8c851538-f223-49ce-9a1d-0c3f6f6e4981", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "chromium", "durationMs": 510, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.120076 }, { "index": 0, "event": "stop", "time": 0.120076 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/cf03d613-9f4c-40bc-8276-2005aef0e622", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2626, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2521, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2474, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2450, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "chromium", "durationMs": 1377, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "chromium", "durationMs": 1495, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "chromium", "durationMs": 2279, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 602.7923583984375, "next": 602.7923583984375, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 218.89999997615814, "before": 0.02796, "after": 0.02796, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 235.30000001192093, "before": 0.044316, "after": 0.044316, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 251.69999998807907, "before": 0.060805, "after": 0.060805, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 267.89999997615814, "before": 0.077026, "after": 0.077026, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 283.80000001192093, "before": 0.092935, "after": 0.092935, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 301.30000001192093, "before": 0.110359, "after": 0.110359, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 317.30000001192093, "before": 0.126403, "after": 0.126403, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 334.5, "before": 0.143688, "after": 0.143688, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 351.30000001192093, "before": 0.160394, "after": 0.160394, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 367.19999998807907, "before": 0.176336, "after": 0.176336, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 385.10000002384186, "before": 0.194238, "after": 0.194238, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 402.10000002384186, "before": 0.211243, "after": 0.211243, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 417.5, "before": 0.226532, "after": 0.226532, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 434.19999998807907, "before": 0.243344, "after": 0.243344, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 450.60000002384186, "before": 0.259779, "after": 0.259779, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 467.5, "before": 0.276565, "after": 0.276565, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 485.30000001192093, "before": 0.294439, "after": 0.294439, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 501.39999997615814, "before": 0.310427, "after": 0.310427, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 517.8999999761581, "before": 0.327069, "after": 0.327069, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 534.1000000238419, "before": 0.343218, "after": 0.343218, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 550.6000000238419, "before": 0.359672, "after": 0.359672, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 567.6000000238419, "before": 0.376694, "after": 0.376694, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 585.1000000238419, "before": 0.394205, "after": 0.394205, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 601.1000000238419, "before": 0.410157, "after": 0.410157, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 618, "before": 0.426972, "after": 0.426972, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 634.8000000119209, "before": 0.443898, "after": 0.443898, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 652.1000000238419, "before": 0.461179, "after": 0.461179, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 668.1000000238419, "before": 0.477222, "after": 0.477222, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 685.1000000238419, "before": 0.49423, "after": 0.49423, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 701.3999999761581, "before": 0.510512, "after": 0.510512, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 717.6000000238419, "before": 0.526692, "after": 0.526692, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 734.8000000119209, "before": 0.543922, "after": 0.543922, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 751.8000000119209, "before": 0.560885, "after": 0.560885, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 768.8999999761581, "before": 0.578016, "after": 0.578016, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 785.3999999761581, "before": 0.594522, "after": 0.594522, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 800.6000000238419, "before": 0.609774, "after": 0.609774, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 818.1999999880791, "before": 0.627307, "after": 0.627307, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 834.3000000119209, "before": 0.643383, "after": 0.643383, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 851.3999999761581, "before": 0.660502, "after": 0.660502, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 867.5, "before": 0.676582, "after": 0.676582, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 883.8000000119209, "before": 0.692936, "after": 0.692936, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 901.3999999761581, "before": 0.710458, "after": 0.710458, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 918.1000000238419, "before": 0.727212, "after": 0.727212, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 934.3999999761581, "before": 0.743553, "after": 0.743553, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 952.1999999880791, "before": 0.761246, "after": 0.761246, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 968.1999999880791, "before": 0.777346, "after": 0.777346, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 985, "before": 0.794089, "after": 0.794089, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1001.6000000238419, "before": 0.810683, "after": 0.810683, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1017.6999999880791, "before": 0.826807, "after": 0.826807, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1035.1000000238419, "before": 0.844138, "after": 0.844138, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1051.5, "before": 0.860605, "after": 0.860605, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1069.1000000238419, "before": 0.87822, "after": 0.87822, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1085.699999988079, "before": 0.894761, "after": 0.894761, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1100.699999988079, "before": 0.909753, "after": 0.909753, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1117.699999988079, "before": 0.926784, "after": 0.926784, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1351.8999999761581, "before": 2.059322, "after": 2.059322, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1367.8999999761581, "before": 2.091146, "after": 2.091146, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1384.300000011921, "before": 2.124118, "after": 2.124118, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1401.8999999761581, "before": 2.159244, "after": 2.159244, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1418.1000000238419, "before": 2.191774, "after": 2.191774, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1434.300000011921, "before": 2.22397, "after": 2.22397, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1450.800000011921, "before": 2.257036, "after": 2.257036, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1468.3999999761581, "before": 2.292188, "after": 2.292188, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1484.300000011921, "before": 2.324058, "after": 2.324058, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1501.3999999761581, "before": 2.358304, "after": 2.358304, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1518.1000000238419, "before": 2.391556, "after": 2.391556, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1534.3999999761581, "before": 2.4242, "after": 2.4242, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1551.300000011921, "before": 2.458112, "after": 2.458112, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1567.8999999761581, "before": 2.491332, "after": 2.491332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1584.199999988079, "before": 2.523668, "after": 2.523668, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1601.8999999761581, "before": 2.559308, "after": 2.559308, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1617.5, "before": 2.590462, "after": 2.590462, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1634.1000000238419, "before": 2.623636, "after": 2.623636, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1650.800000011921, "before": 2.65718, "after": 2.65718, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1668, "before": 2.691388, "after": 2.691388, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1684.1000000238419, "before": 2.723658, "after": 2.723658, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1702.199999988079, "before": 2.759746, "after": 2.759746, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1717.199999988079, "before": 2.789852, "after": 2.789852, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1734.699999988079, "before": 2.82483, "after": 2.82483, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1752, "before": 2.859386, "after": 2.859386, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1768, "before": 2.891578, "after": 2.891578, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1785.199999988079, "before": 2.92586, "after": 2.92586, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1800.8999999761581, "before": 2.957106, "after": 2.957106, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1817.6000000238419, "before": 2.99058, "after": 2.99058, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1834.8999999761581, "before": 3.02507, "after": 3.02507, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1851.699999988079, "before": 3.058874, "after": 3.058874, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1867.800000011921, "before": 3.091132, "after": 3.091132, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1885, "before": 3.125406, "after": 3.125406, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1900.800000011921, "before": 3.157032, "after": 3.157032, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1918.5, "before": 3.192336, "after": 3.192336, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "wait" } ] }, { "wall": 1934.300000011921, "before": 3.224056, "after": 3.224056, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 1951.300000011921, "before": 3.258092, "after": 3.258092, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 1967.699999988079, "before": 3.290726, "after": 3.290726, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 1985.300000011921, "before": 3.325902, "after": 3.325902, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2001.300000011921, "before": 3.358142, "after": 3.358142, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2017, "before": 3.389598, "after": 3.389598, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2034.6000000238419, "before": 3.424698, "after": 3.424698, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2051.199999988079, "before": 3.457782, "after": 3.457782, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2067.399999976158, "before": 3.490304, "after": 3.490304, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2084.199999988079, "before": 3.523726, "after": 3.523726, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] }, { "wall": 2100.399999976158, "before": 3.556328, "after": 3.556328, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.268076, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "chromium", "durationMs": 4069, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "firefox", "durationMs": 2472, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "firefox", "durationMs": 722, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.129164 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/6169f19a-659c-4dd0-ae42-f2047a0be120", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "firefox", "durationMs": 544, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.00569 }, { "index": 0, "event": "stop", "time": 0.00569 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/fc085cfb-251a-4992-9451-d3aba1fa71f1", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2893, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2687, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2679, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2724, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "firefox", "durationMs": 1974, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "firefox", "durationMs": 1567, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "firefox", "durationMs": 2498, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 601.3333129882812, "next": 601.3333129882812, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 252, "before": 0.005665, "after": 0.005665, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 269, "before": 0.005665, "after": 0.005665, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 285, "before": 0.046412, "after": 0.046412, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 302, "before": 0.046412, "after": 0.046412, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 318, "before": 0.087036, "after": 0.087036, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 335, "before": 0.087036, "after": 0.087036, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 351, "before": 0.087036, "after": 0.087036, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 369, "before": 0.127394, "after": 0.127394, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 385, "before": 0.127394, "after": 0.127394, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 402, "before": 0.167948, "after": 0.167948, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 418, "before": 0.167948, "after": 0.167948, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 435, "before": 0.167948, "after": 0.167948, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 451, "before": 0.208332, "after": 0.208332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 468, "before": 0.208332, "after": 0.208332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 485, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 501, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 518, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 535, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 552, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 568, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 585, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 602, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 618, "before": 0.374071, "after": 0.374071, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 635, "before": 0.374071, "after": 0.374071, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 652, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 669, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 686, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 702, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 719, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 736, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 752, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 769, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 786, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 802, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 818, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 835, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 852, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 869, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 885, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 902, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 918, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 935, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 952, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 968, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 985, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1002, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1018, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1035, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1052, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1069, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1085, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1102, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1119, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1140, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1153, "before": 0.916147, "after": 0.916147, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1168, "before": 0.916147, "after": 0.916147, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1186, "before": 0.916147, "after": 0.916147, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1204, "before": 0.958332, "after": 0.958332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1369, "before": 2.00005, "after": 2.00005, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1385, "before": 2.041666, "after": 2.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1402, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1419, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1436, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1452, "before": 2.166666, "after": 2.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1469, "before": 2.208332, "after": 2.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1485, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1502, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1519, "before": 2.291666, "after": 2.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1537, "before": 2.333332, "after": 2.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1552, "before": 2.374999, "after": 2.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1570, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1586, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1602, "before": 2.458332, "after": 2.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1619, "before": 2.499999, "after": 2.499999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1637, "before": 2.541666, "after": 2.541666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1653, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1670, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1686, "before": 2.624999, "after": 2.624999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1702, "before": 2.666666, "after": 2.666666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1720, "before": 2.708332, "after": 2.708332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1736, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1754, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1770, "before": 2.791666, "after": 2.791666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1786, "before": 2.833332, "after": 2.833332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1803, "before": 2.874999, "after": 2.874999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1819, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1836, "before": 2.958332, "after": 2.958332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1853, "before": 2.958332, "after": 2.958332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1869, "before": 2.999999, "after": 2.999999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1886, "before": 3.041666, "after": 3.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1903, "before": 3.083332, "after": 3.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1919, "before": 3.124999, "after": 3.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1936, "before": 3.124999, "after": 3.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1953, "before": 3.166666, "after": 3.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1969, "before": 3.208332, "after": 3.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1986, "before": 3.249999, "after": 3.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2003, "before": 3.291666, "after": 3.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2019, "before": 3.291666, "after": 3.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2037, "before": 3.333332, "after": 3.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2053, "before": 3.374999, "after": 3.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2070, "before": 3.416666, "after": 3.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2087, "before": 3.458332, "after": 3.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2103, "before": 3.458332, "after": 3.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2120, "before": 3.49938, "after": 3.49938, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2137, "before": 3.540511, "after": 3.540511, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2153, "before": 3.581643, "after": 3.581643, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2169, "before": 3.622206, "after": 3.622206, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2186, "before": 3.622206, "after": 3.622206, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2204, "before": 3.666666, "after": 3.666666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "firefox", "durationMs": 4678, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "firefox", "durationMs": 2460, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "firefox", "durationMs": 640, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.127766 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/789193e1-52e9-487c-93b3-c90cb23f8e73", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "firefox", "durationMs": 872, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.088187 }, { "index": 0, "event": "stop", "time": 0.088187 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/e18cc4e8-13a4-4cf4-9ad8-3131112db946", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2790, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2653, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2821, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2534, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "firefox", "durationMs": 2043, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "firefox", "durationMs": 1559, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "firefox", "durationMs": 2512, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 604.25, "next": 604.25, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 276, "before": 0.005669, "after": 0.005669, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 293, "before": 0.005669, "after": 0.005669, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 309, "before": 0.005669, "after": 0.005669, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 327, "before": 0.04641, "after": 0.04641, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 344, "before": 0.04641, "after": 0.04641, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 360, "before": 0.086998, "after": 0.086998, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 377, "before": 0.086998, "after": 0.086998, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 393, "before": 0.127201, "after": 0.127201, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 409, "before": 0.127201, "after": 0.127201, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 426, "before": 0.127201, "after": 0.127201, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 443, "before": 0.167549, "after": 0.167549, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 459, "before": 0.167549, "after": 0.167549, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 476, "before": 0.208332, "after": 0.208332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 494, "before": 0.208332, "after": 0.208332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 509, "before": 0.208332, "after": 0.208332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 526, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 543, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 560, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 576, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 593, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 610, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 626, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 644, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 660, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 676, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 693, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 710, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 726, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 744, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 759, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 776, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 793, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 810, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 827, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 844, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 860, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 876, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 894, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 910, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 927, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 944, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 960, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 976, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 994, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1011, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1027, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1043, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1060, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1077, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1094, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1111, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1127, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1144, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1164, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1177, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1194, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1212, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1377, "before": 2.000044, "after": 2.000044, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1394, "before": 2.041666, "after": 2.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1410, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1427, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1444, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1460, "before": 2.166666, "after": 2.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1477, "before": 2.208332, "after": 2.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1493, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1511, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1527, "before": 2.291666, "after": 2.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1543, "before": 2.333332, "after": 2.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1561, "before": 2.374999, "after": 2.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1577, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1594, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1611, "before": 2.458332, "after": 2.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1627, "before": 2.499999, "after": 2.499999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1644, "before": 2.541666, "after": 2.541666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1661, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1677, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1694, "before": 2.624999, "after": 2.624999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1711, "before": 2.666666, "after": 2.666666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1728, "before": 2.708332, "after": 2.708332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1745, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1760, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1778, "before": 2.791666, "after": 2.791666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1794, "before": 2.833332, "after": 2.833332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1810, "before": 2.874999, "after": 2.874999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1827, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1844, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1861, "before": 2.958332, "after": 2.958332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1877, "before": 2.999999, "after": 2.999999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1894, "before": 3.041666, "after": 3.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1911, "before": 3.083332, "after": 3.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1927, "before": 3.083332, "after": 3.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1944, "before": 3.124999, "after": 3.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1961, "before": 3.166666, "after": 3.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1978, "before": 3.208332, "after": 3.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 1995, "before": 3.249999, "after": 3.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2010, "before": 3.249999, "after": 3.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2027, "before": 3.291666, "after": 3.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2045, "before": 3.333332, "after": 3.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2061, "before": 3.374333, "after": 3.374333, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2078, "before": 3.414857, "after": 3.414857, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2094, "before": 3.456154, "after": 3.456154, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2111, "before": 3.456154, "after": 3.456154, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2127, "before": 3.497422, "after": 3.497422, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2144, "before": 3.538161, "after": 3.538161, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2163, "before": 3.578425, "after": 3.578425, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2178, "before": 3.619302, "after": 3.619302, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2195, "before": 3.619302, "after": 3.619302, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "firefox", "durationMs": 4506, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "webkit", "durationMs": 3855, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "webkit", "durationMs": 1875, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.1509683 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8b6b2da3-6b1d-4ae6-80d3-bc034d0d3379", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "webkit", "durationMs": 1819, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.0621958 }, { "index": 0, "event": "stop", "time": 0.0622303 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c282b5e8-6625-4822-aeae-e08bf0f62ebf", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4682, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4090, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4288, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3588, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "webkit", "durationMs": 3048, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "webkit", "durationMs": 3111, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "webkit", "durationMs": 4123, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 620.6124877929688, "next": 620.6124877929688, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 1022, "before": 0.037198, "after": 0.0372876, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1067, "before": 0.0825133, "after": 0.082529, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1128, "before": 0.1440193, "after": 0.1440325, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1159, "before": 0.1747188, "after": 0.1747298, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1203, "before": 0.2189016, "after": 0.2189157, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1248, "before": 0.2639751, "after": 0.2639833, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1280, "before": 0.2959372, "after": 0.2959794, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1311, "before": 0.3264783, "after": 0.3265161, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1357, "before": 0.3726786, "after": 0.3726881, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1403, "before": 0.4184727, "after": 0.4184974, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1436, "before": 0.4516336, "after": 0.4516421, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1481, "before": 0.4964813, "after": 0.496491, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1528, "before": 0.54333, "after": 0.5433423, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1589, "before": 0.6045261, "after": 0.6045355, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1620, "before": 0.6359789, "after": 0.6359897, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1665, "before": 0.6812487, "after": 0.6812594, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1696, "before": 0.7122088, "after": 0.7122233, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1733, "before": 0.7485995, "after": 0.7486089, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1734, "before": 0.7502078, "after": 0.7502144, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2251, "before": 2.0761874, "after": 2.0762162, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "wait" } ] }, { "wall": 2297, "before": 2.167832, "after": 2.167855, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "wait" } ] }, { "wall": 2328, "before": 2.2296416, "after": 2.2296696, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "wait" } ] }, { "wall": 2359, "before": 2.2920008, "after": 2.2920232, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "wait" } ] }, { "wall": 2404, "before": 2.3823982, "after": 2.3824226, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "wait" } ] }, { "wall": 2436, "before": 2.4459554, "after": 2.445995, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "wait" } ] }, { "wall": 2468, "before": 2.5096784, "after": 2.5096964, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" } ] }, { "wall": 2514, "before": 2.602687, "after": 2.6027166, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" } ] }, { "wall": 2544, "before": 2.662037, "after": 2.6620588, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" } ] }, { "wall": 2590, "before": 2.753648, "after": 2.7536698, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" } ] }, { "wall": 2636, "before": 2.8456046, "after": 2.845671, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" } ] }, { "wall": 2682, "before": 2.939068, "after": 2.9391632, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "wait" } ] }, { "wall": 2745, "before": 3.064804, "after": 3.0648442, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "wait" } ] }, { "wall": 2776, "before": 3.1262278, "after": 3.1262506, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "wait" } ] }, { "wall": 2823, "before": 3.219277, "after": 3.219358, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "wait" } ] }, { "wall": 2868, "before": 3.311081, "after": 3.3111262, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "wait" } ] }, { "wall": 2916, "before": 3.4052488, "after": 3.4053134, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "wait" } ] }, { "wall": 2992, "before": 3.5587164, "after": 3.5587392, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3052, "before": 3.6789606, "after": 3.678987, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3097, "before": 3.7689188, "after": 3.7689394, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3144, "before": 3.8615482, "after": 3.8615668, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3205, "before": 3.9844942, "after": 3.9845156, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3251, "before": 4.0762118, "after": 4.076237, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3299, "before": 4.1713572, "after": 4.1713852, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3360, "before": 4.2941152, "after": 4.294139, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3407, "before": 4.3875544, "after": 4.3875894, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3430, "before": 4.4341858, "after": 4.4342146, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] }, { "wall": 3432, "before": 4.43815, "after": 4.4381792, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5013626, "state": "emit" }, { "id": "appended", "time": 3.4219202, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "webkit", "durationMs": 6358, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "webkit", "durationMs": 3674, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "webkit", "durationMs": 1686, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.2025518 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/230a7331-f14b-4eb9-b646-032aee02ef78", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "webkit", "durationMs": 2046, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.2032197 }, { "index": 0, "event": "stop", "time": 0.203256 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/ade0a364-4dbb-46c3-bc35-91426c354ca8", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4556, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4083, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4278, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3793, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "webkit", "durationMs": 2406, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "webkit", "durationMs": 3129, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "webkit", "durationMs": 4048, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 626.2999877929688, "next": 626.2999877929688, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 1062, "before": 0.0335717, "after": 0.0336291, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1106, "before": 0.0776323, "after": 0.0776485, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1136, "before": 0.1077465, "after": 0.1077615, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1182, "before": 0.1542014, "after": 0.1542094, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1227, "before": 0.1993149, "after": 0.1993281, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1273, "before": 0.2449331, "after": 0.2449434, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1336, "before": 0.3076963, "after": 0.3077176, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1366, "before": 0.3380133, "after": 0.3380252, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1412, "before": 0.3838462, "after": 0.3838585, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1443, "before": 0.4145676, "after": 0.414595, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1489, "before": 0.4609453, "after": 0.4609576, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1520, "before": 0.4915473, "after": 0.4915565, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1565, "before": 0.5373316, "after": 0.5373403, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1609, "before": 0.5811755, "after": 0.5811855, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1640, "before": 0.6114036, "after": 0.6114114, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1671, "before": 0.6429715, "after": 0.6429851, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1718, "before": 0.6896802, "after": 0.6896908, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1720, "before": 0.6923133, "after": 0.6923329, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1722, "before": 0.6941142, "after": 0.6941233, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2226, "before": 2.0994524, "after": 2.0994748, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "wait" } ] }, { "wall": 2271, "before": 2.1890682, "after": 2.1890924, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "wait" } ] }, { "wall": 2301, "before": 2.249769, "after": 2.2498968, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "wait" } ] }, { "wall": 2347, "before": 2.3411312, "after": 2.3411476, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "wait" } ] }, { "wall": 2379, "before": 2.4058632, "after": 2.4058964, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "wait" } ] }, { "wall": 2426, "before": 2.4984908, "after": 2.4985164, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" } ] }, { "wall": 2472, "before": 2.5918974, "after": 2.5919246, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" } ] }, { "wall": 2549, "before": 2.7451686, "after": 2.7451906, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" } ] }, { "wall": 2580, "before": 2.807848, "after": 2.8078686, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" } ] }, { "wall": 2627, "before": 2.9007358, "after": 2.9007578, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" } ] }, { "wall": 2658, "before": 2.9621974, "after": 2.9622744, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "wait" } ] }, { "wall": 2705, "before": 3.0565498, "after": 3.0566472, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "wait" } ] }, { "wall": 2750, "before": 3.1477914, "after": 3.1478124, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "wait" } ] }, { "wall": 2795, "before": 3.2380178, "after": 3.238039, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "wait" } ] }, { "wall": 2859, "before": 3.3645508, "after": 3.3645826, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "wait" } ] }, { "wall": 2891, "before": 3.4289314, "after": 3.4289584, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 2935, "before": 3.5176272, "after": 3.517699, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 2982, "before": 3.610506, "after": 3.6105288, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3027, "before": 3.7011814, "after": 3.701204, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3089, "before": 3.825769, "after": 3.8257924, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3151, "before": 3.9497526, "after": 3.94977, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3183, "before": 4.0131808, "after": 4.0132086, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3229, "before": 4.104923, "after": 4.1049492, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3276, "before": 4.1987698, "after": 4.198796, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3308, "before": 4.2637608, "after": 4.2637916, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3353, "before": 4.3536944, "after": 4.3537232, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3390, "before": 4.426387, "after": 4.426411, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] }, { "wall": 3392, "before": 4.4312084, "after": 4.4312262, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5004447, "state": "emit" }, { "id": "appended", "time": 3.4356514, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "webkit", "durationMs": 6621, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "in-memory source UMD", "sha256": "1423f8ac9de24b15d908761df2e0720123a88a2b05a45628f720adfd01680663", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] } ] }, { "format": "main", "tests": 138, "workers": 2, "file": "refactor/.cache/danmuku05-browser-main-resource-final/report.json", "sha256": "8ecfa06baca57584ab2accff9e98c5d79c71bb8a5b519afdddbc6c91ba9e4501", "run": { "file": "refactor/.cache/danmuku05-browser-main-resource-final/run.log", "sha256": "cafa2144d09e14682f9f5dcbc98faecb7dea4339edf080fef8a724aa621736a0" }, "specs": [ { "file": "refactor/.cache/danmuku05-browser-main-resource-final/danmuku-input.spec.js", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, { "file": "refactor/.cache/danmuku05-browser-main-resource-final/danmuku-scheduler.spec.js", "sha256": "ee67bc0f204f1f9090859ed9d1d0cfecc545129fff6278d2f17140b009390519" }, { "file": "refactor/.cache/danmuku05-browser-main-resource-final/danmuku-resources.spec.js", "sha256": "f0d09e962cb422a66bd644c52268aff8f288606ae9c93676fa979539743f9c6b" } ], "archiveResultsRoot": "refactor/.cache/danmuku05-browser-main-resource-final/results", "originalResultsRoot": "refactor/.cache/browser/results", "versions": [ "chromium: 153.0.8010.12", "firefox: 155.0", "webkit: 26.6" ], "cases": [ { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "durationMs": 640, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/1b1a32b0-69f0-4384-a9cd-50126ef64ce3", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/f9aeb74a-f6c2-48d5-8e77-6e130aeb7e8e", "blob:http://127.0.0.1:8084/1b1a32b0-69f0-4384-a9cd-50126ef64ce3" ], "revoked": [ "", "blob:http://127.0.0.1:8084/1b1a32b0-69f0-4384-a9cd-50126ef64ce3", "blob:http://127.0.0.1:8084/f9aeb74a-f6c2-48d5-8e77-6e130aeb7e8e" ], "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", "durationMs": 293, "observations": [ { "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/88f22f1c-1786-48ca-9bc8-52270c3c2d18", "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/e58d1bed-578a-4045-aa19-71cec466fa21", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/9584ab6c-30f0-4681-bd58-d4f70c327bd5", "blob:http://127.0.0.1:8084/88f22f1c-1786-48ca-9bc8-52270c3c2d18", "blob:http://127.0.0.1:8084/e58d1bed-578a-4045-aa19-71cec466fa21" ], "revoked": [ "", "blob:http://127.0.0.1:8084/88f22f1c-1786-48ca-9bc8-52270c3c2d18", "blob:http://127.0.0.1:8084/e58d1bed-578a-4045-aa19-71cec466fa21" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/9584ab6c-30f0-4681-bd58-d4f70c327bd5", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/88f22f1c-1786-48ca-9bc8-52270c3c2d18", "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/e58d1bed-578a-4045-aa19-71cec466fa21", "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", "durationMs": 242, "observations": [ { "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", "durationMs": 245, "observations": [ { "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", "durationMs": 622, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/5805c35d-b4a4-42b6-a42d-c1cb9d18bc26", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/af3a7b6e-f9ff-49c7-875f-6f14d3869ca9", "blob:http://127.0.0.1:8084/5805c35d-b4a4-42b6-a42d-c1cb9d18bc26" ], "revoked": [ "blob:http://127.0.0.1:8084/5805c35d-b4a4-42b6-a42d-c1cb9d18bc26", "blob:http://127.0.0.1:8084/af3a7b6e-f9ff-49c7-875f-6f14d3869ca9" ], "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", "durationMs": 305, "observations": [ { "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/ff5b5bea-0021-4514-9601-8a8da527fb6c", "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/c5f795af-631b-43fa-8d6d-eca24f336772", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/5d7044c7-4608-43a2-a79c-f7bc621d2f45", "blob:http://127.0.0.1:8084/ff5b5bea-0021-4514-9601-8a8da527fb6c", "blob:http://127.0.0.1:8084/c5f795af-631b-43fa-8d6d-eca24f336772" ], "revoked": [ "blob:http://127.0.0.1:8084/ff5b5bea-0021-4514-9601-8a8da527fb6c", "blob:http://127.0.0.1:8084/c5f795af-631b-43fa-8d6d-eca24f336772" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/5d7044c7-4608-43a2-a79c-f7bc621d2f45", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/ff5b5bea-0021-4514-9601-8a8da527fb6c", "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/c5f795af-631b-43fa-8d6d-eca24f336772", "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", "durationMs": 259, "observations": [ { "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", "durationMs": 275, "observations": [ { "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", "durationMs": 1683, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/768f3b8e-1b6d-4daa-b1ab-05fdad9791fa", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/399b4a12-dc5a-44b6-b182-7916b85b8f78", "blob:http://127.0.0.1:8084/768f3b8e-1b6d-4daa-b1ab-05fdad9791fa" ], "revoked": [ "", "blob:http://127.0.0.1:8084/768f3b8e-1b6d-4daa-b1ab-05fdad9791fa", "blob:http://127.0.0.1:8084/399b4a12-dc5a-44b6-b182-7916b85b8f78" ], "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", "durationMs": 805, "observations": [ { "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/0e1a4b70-2e0c-49f7-9add-520bbd682207", "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/25bf387c-656c-4888-a9f6-7a610cae8ed3", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/5cb46999-5e14-490f-b25e-c04c10e5d875", "blob:http://127.0.0.1:8084/0e1a4b70-2e0c-49f7-9add-520bbd682207", "blob:http://127.0.0.1:8084/25bf387c-656c-4888-a9f6-7a610cae8ed3" ], "revoked": [ "", "blob:http://127.0.0.1:8084/0e1a4b70-2e0c-49f7-9add-520bbd682207", "blob:http://127.0.0.1:8084/25bf387c-656c-4888-a9f6-7a610cae8ed3" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/5cb46999-5e14-490f-b25e-c04c10e5d875", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/0e1a4b70-2e0c-49f7-9add-520bbd682207", "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/25bf387c-656c-4888-a9f6-7a610cae8ed3", "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", "durationMs": 552, "observations": [ { "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", "durationMs": 408, "observations": [ { "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", "durationMs": 1752, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/d00430db-d3b1-4bcb-a041-7d0554b76ce8", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/65175f63-b7fc-415c-9f72-ba55338aac70", "blob:http://127.0.0.1:8084/d00430db-d3b1-4bcb-a041-7d0554b76ce8" ], "revoked": [ "blob:http://127.0.0.1:8084/d00430db-d3b1-4bcb-a041-7d0554b76ce8", "blob:http://127.0.0.1:8084/65175f63-b7fc-415c-9f72-ba55338aac70" ], "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", "durationMs": 658, "observations": [ { "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/b1995d9f-a22e-4e68-b273-dbb5b84651d6", "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/d0d3cf5c-6819-4a33-9b21-0b3b41487e3e", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/5a8d289d-d317-4d3a-b997-d80366783341", "blob:http://127.0.0.1:8084/b1995d9f-a22e-4e68-b273-dbb5b84651d6", "blob:http://127.0.0.1:8084/d0d3cf5c-6819-4a33-9b21-0b3b41487e3e" ], "revoked": [ "blob:http://127.0.0.1:8084/b1995d9f-a22e-4e68-b273-dbb5b84651d6", "blob:http://127.0.0.1:8084/d0d3cf5c-6819-4a33-9b21-0b3b41487e3e" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/5a8d289d-d317-4d3a-b997-d80366783341", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/b1995d9f-a22e-4e68-b273-dbb5b84651d6", "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/d0d3cf5c-6819-4a33-9b21-0b3b41487e3e", "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", "durationMs": 467, "observations": [ { "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", "durationMs": 535, "observations": [ { "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", "durationMs": 1449, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/0f056ea9-2387-4279-a336-e15b4ced0da4", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/ed39801d-c547-40f8-8a4b-e22768b0cc01", "blob:http://127.0.0.1:8084/0f056ea9-2387-4279-a336-e15b4ced0da4" ], "revoked": [ "", "blob:http://127.0.0.1:8084/0f056ea9-2387-4279-a336-e15b4ced0da4", "blob:http://127.0.0.1:8084/ed39801d-c547-40f8-8a4b-e22768b0cc01" ], "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", "durationMs": 1297, "observations": [ { "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/43bdb6e6-5475-4ed7-acb3-ce64492b4a74", "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/2f3f8431-76cf-4c0f-a21e-b0217c8031ba", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/f1fef377-c61b-4afc-bf78-bd842a8960c7", "blob:http://127.0.0.1:8084/43bdb6e6-5475-4ed7-acb3-ce64492b4a74", "blob:http://127.0.0.1:8084/2f3f8431-76cf-4c0f-a21e-b0217c8031ba" ], "revoked": [ "", "blob:http://127.0.0.1:8084/43bdb6e6-5475-4ed7-acb3-ce64492b4a74", "blob:http://127.0.0.1:8084/2f3f8431-76cf-4c0f-a21e-b0217c8031ba" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f1fef377-c61b-4afc-bf78-bd842a8960c7", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/43bdb6e6-5475-4ed7-acb3-ce64492b4a74", "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/2f3f8431-76cf-4c0f-a21e-b0217c8031ba", "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", "durationMs": 1170, "observations": [ { "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", "durationMs": 1113, "observations": [ { "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", "durationMs": 1419, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c17e1bfa-09c5-45c8-be20-2d5cdbfc381d", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/ae9b358f-40fc-431c-a805-2520205c1c1e", "blob:http://127.0.0.1:8084/c17e1bfa-09c5-45c8-be20-2d5cdbfc381d" ], "revoked": [ "blob:http://127.0.0.1:8084/c17e1bfa-09c5-45c8-be20-2d5cdbfc381d", "blob:http://127.0.0.1:8084/ae9b358f-40fc-431c-a805-2520205c1c1e" ], "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", "durationMs": 1418, "observations": [ { "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/0bc3ccd1-3947-467e-9ced-a1f6c9254638", "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/d42f399a-e487-4471-914c-cca106eca47c", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/b27d493a-4642-4f5d-9f11-7ad48a48b218", "blob:http://127.0.0.1:8084/0bc3ccd1-3947-467e-9ced-a1f6c9254638", "blob:http://127.0.0.1:8084/d42f399a-e487-4471-914c-cca106eca47c" ], "revoked": [ "blob:http://127.0.0.1:8084/0bc3ccd1-3947-467e-9ced-a1f6c9254638", "blob:http://127.0.0.1:8084/d42f399a-e487-4471-914c-cca106eca47c" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b27d493a-4642-4f5d-9f11-7ad48a48b218", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/0bc3ccd1-3947-467e-9ced-a1f6c9254638", "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/d42f399a-e487-4471-914c-cca106eca47c", "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", "durationMs": 1084, "observations": [ { "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", "durationMs": 1102, "observations": [ { "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": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "chromium", "durationMs": 291, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "chromium", "durationMs": 335, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "chromium", "durationMs": 493, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "chromium", "durationMs": 495, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "chromium", "durationMs": 424, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "chromium", "durationMs": 443, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "chromium", "durationMs": 442, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "chromium", "durationMs": 742, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "chromium", "durationMs": 296, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "chromium", "durationMs": 335, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "chromium", "durationMs": 392, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "chromium", "durationMs": 596, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "chromium", "durationMs": 402, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "chromium", "durationMs": 459, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "chromium", "durationMs": 462, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "chromium", "durationMs": 470, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "firefox", "durationMs": 435, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "firefox", "durationMs": 606, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "firefox", "durationMs": 615, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "firefox", "durationMs": 934, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "firefox", "durationMs": 652, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "firefox", "durationMs": 1226, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "firefox", "durationMs": 641, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "firefox", "durationMs": 689, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "firefox", "durationMs": 453, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "firefox", "durationMs": 517, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "firefox", "durationMs": 644, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "firefox", "durationMs": 834, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "firefox", "durationMs": 542, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "firefox", "durationMs": 1247, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "firefox", "durationMs": 601, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "firefox", "durationMs": 612, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "webkit", "durationMs": 1478, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "webkit", "durationMs": 1873, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "webkit", "durationMs": 1860, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "webkit", "durationMs": 2784, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "webkit", "durationMs": 1865, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "webkit", "durationMs": 1764, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "webkit", "durationMs": 1797, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "webkit", "durationMs": 1867, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "webkit", "durationMs": 1507, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "webkit", "durationMs": 1586, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "webkit", "durationMs": 2069, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "webkit", "durationMs": 2572, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "webkit", "durationMs": 1799, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "webkit", "durationMs": 1742, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "webkit", "durationMs": 1748, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "webkit", "durationMs": 1956, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "chromium", "durationMs": 2517, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "chromium", "durationMs": 441, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.118284 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/e14dbf56-4dbe-45b3-b3e6-27854614d867", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "chromium", "durationMs": 461, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.120462 }, { "index": 0, "event": "stop", "time": 0.120462 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c44cbe14-b220-4937-9b49-99118e7d1ae6", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2607, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2425, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2426, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2291, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "chromium", "durationMs": 1295, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "chromium", "durationMs": 1507, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "chromium", "durationMs": 2312, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 602.7962036132812, "next": 602.7962036132812, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 203.70000004768372, "before": 0.028186, "after": 0.028186, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 219.80000001192093, "before": 0.044422, "after": 0.044422, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 235.9000000357628, "before": 0.060497, "after": 0.060497, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 252.9000000357628, "before": 0.077532, "after": 0.077532, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 270.4000000357628, "before": 0.094935, "after": 0.094935, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 286.30000001192093, "before": 0.110966, "after": 0.110966, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 302.30000001192093, "before": 0.126972, "after": 0.126972, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 319.2000000476837, "before": 0.143854, "after": 0.143854, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 336.60000002384186, "before": 0.161221, "after": 0.161221, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 352.9000000357628, "before": 0.177506, "after": 0.177506, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 369.30000001192093, "before": 0.193909, "after": 0.193909, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 385.9000000357628, "before": 0.210524, "after": 0.210524, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 402.5, "before": 0.227205, "after": 0.227205, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 419.7000000476837, "before": 0.244326, "after": 0.244326, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 436.80000001192093, "before": 0.261439, "after": 0.261439, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 453.5, "before": 0.278064, "after": 0.278064, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 469.10000002384186, "before": 0.293735, "after": 0.293735, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 487.4000000357628, "before": 0.312015, "after": 0.312015, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 502.9000000357628, "before": 0.327499, "after": 0.327499, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 519.2000000476837, "before": 0.343779, "after": 0.343779, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 535.8000000119209, "before": 0.360446, "after": 0.360446, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 552.5, "before": 0.377149, "after": 0.377149, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 569.1000000238419, "before": 0.393737, "after": 0.393737, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 585.7000000476837, "before": 0.410325, "after": 0.410325, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 603.8000000119209, "before": 0.428428, "after": 0.428428, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 619.2000000476837, "before": 0.443871, "after": 0.443871, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 636.2000000476837, "before": 0.460682, "after": 0.460682, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 652.7000000476837, "before": 0.477322, "after": 0.477322, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 669.6000000238419, "before": 0.494284, "after": 0.494284, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 686, "before": 0.510662, "after": 0.510662, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 702.9000000357628, "before": 0.527608, "after": 0.527608, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 719.7000000476837, "before": 0.544327, "after": 0.544327, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 736.2000000476837, "before": 0.560827, "after": 0.560827, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 752.6000000238419, "before": 0.577186, "after": 0.577186, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 768.9000000357628, "before": 0.593517, "after": 0.593517, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 785.9000000357628, "before": 0.61053, "after": 0.61053, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 803, "before": 0.627671, "after": 0.627671, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 819.1000000238419, "before": 0.643754, "after": 0.643754, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 837.3000000119209, "before": 0.661949, "after": 0.661949, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 853.1000000238419, "before": 0.677737, "after": 0.677737, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 869.9000000357628, "before": 0.694547, "after": 0.694547, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 885.8000000119209, "before": 0.710434, "after": 0.710434, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 902.9000000357628, "before": 0.727583, "after": 0.727583, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 919.8000000119209, "before": 0.744406, "after": 0.744406, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 937.3000000119209, "before": 0.761899, "after": 0.761899, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 952.6000000238419, "before": 0.777291, "after": 0.777291, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 969, "before": 0.793578, "after": 0.793578, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 987, "before": 0.81165, "after": 0.81165, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1002.9000000357628, "before": 0.827557, "after": 0.827557, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1019.7000000476837, "before": 0.844343, "after": 0.844343, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1036.6000000238419, "before": 0.861208, "after": 0.861208, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1052.6000000238419, "before": 0.877284, "after": 0.877284, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1069.5, "before": 0.894034, "after": 0.894034, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1086, "before": 0.910621, "after": 0.910621, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1103.1000000238419, "before": 0.927793, "after": 0.927793, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1336.9000000357628, "before": 2.059276, "after": 2.059276, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1352.800000011921, "before": 2.091068, "after": 2.091068, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1369.2000000476837, "before": 2.123972, "after": 2.123972, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1386.5, "before": 2.158532, "after": 2.158532, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1403.4000000357628, "before": 2.19226, "after": 2.19226, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1419.4000000357628, "before": 2.224356, "after": 2.224356, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1435.6000000238419, "before": 2.2568, "after": 2.2568, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1452.800000011921, "before": 2.291198, "after": 2.291198, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1469.2000000476837, "before": 2.324082, "after": 2.324082, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1486.2000000476837, "before": 2.35805, "after": 2.35805, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1502.2000000476837, "before": 2.390046, "after": 2.390046, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1519.800000011921, "before": 2.425246, "after": 2.425246, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1536.6000000238419, "before": 2.45879, "after": 2.45879, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1552.6000000238419, "before": 2.490734, "after": 2.490734, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1569, "before": 2.523588, "after": 2.523588, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1586.300000011921, "before": 2.558188, "after": 2.558188, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1602.4000000357628, "before": 2.590386, "after": 2.590386, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1618.800000011921, "before": 2.62332, "after": 2.62332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1636.1000000238419, "before": 2.657878, "after": 2.657878, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1653, "before": 2.6914, "after": 2.6914, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1669.6000000238419, "before": 2.724776, "after": 2.724776, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1685.9000000357628, "before": 2.757178, "after": 2.757178, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1702.2000000476837, "before": 2.789946, "after": 2.789946, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1719.9000000357628, "before": 2.825314, "after": 2.825314, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1736.2000000476837, "before": 2.857972, "after": 2.857972, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1753.4000000357628, "before": 2.892254, "after": 2.892254, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1768.9000000357628, "before": 2.92338, "after": 2.92338, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1785.800000011921, "before": 2.957332, "after": 2.957332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1802.9000000357628, "before": 2.99132, "after": 2.99132, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1819.1000000238419, "before": 3.023614, "after": 3.023614, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1835.6000000238419, "before": 3.056734, "after": 3.056734, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1852.4000000357628, "before": 3.090308, "after": 3.090308, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1869.4000000357628, "before": 3.12439, "after": 3.12439, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1885.800000011921, "before": 3.15711, "after": 3.15711, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1903.5, "before": 3.192506, "after": 3.192506, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "wait" } ] }, { "wall": 1920.300000011921, "before": 3.226266, "after": 3.226266, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 1936.5, "before": 3.258534, "after": 3.258534, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 1953, "before": 3.291564, "after": 3.291564, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 1969.300000011921, "before": 3.32412, "after": 3.32412, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 1985.9000000357628, "before": 3.357342, "after": 3.357342, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2003.1000000238419, "before": 3.3918, "after": 3.3918, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2019.1000000238419, "before": 3.423832, "after": 3.423832, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2036.1000000238419, "before": 3.45775, "after": 3.45775, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2052.300000011921, "before": 3.49008, "after": 3.49008, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2069.2000000476837, "before": 3.524058, "after": 3.524058, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2086.800000011921, "before": 3.55918, "after": 3.55918, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] }, { "wall": 2102.5, "before": 3.590568, "after": 3.590568, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.2678, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "chromium", "durationMs": 3994, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "chromium", "durationMs": 2372, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "chromium", "durationMs": 463, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.126499 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/40d92210-3cea-4227-92b0-60af4baf0538", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "chromium", "durationMs": 591, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.123063 }, { "index": 0, "event": "stop", "time": 0.123063 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f60c55f3-c907-466e-880b-bc0f8891356c", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2638, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2343, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2342, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2298, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "chromium", "durationMs": 1371, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "chromium", "durationMs": 1476, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "chromium", "durationMs": 2357, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 601.334228515625, "next": 601.334228515625, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 235.5, "before": 0.028103, "after": 0.028103, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 250.80000001192093, "before": 0.043475, "after": 0.043475, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 267.89999997615814, "before": 0.060577, "after": 0.060577, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 284.5, "before": 0.077118, "after": 0.077118, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 301, "before": 0.093638, "after": 0.093638, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 317.80000001192093, "before": 0.110352, "after": 0.110352, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 334.89999997615814, "before": 0.127479, "after": 0.127479, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 350.89999997615814, "before": 0.143558, "after": 0.143558, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 367.69999998807907, "before": 0.160251, "after": 0.160251, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 385.19999998807907, "before": 0.177867, "after": 0.177867, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 401.39999997615814, "before": 0.194079, "after": 0.194079, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 418.0999999642372, "before": 0.210668, "after": 0.210668, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 434.30000001192093, "before": 0.22695, "after": 0.22695, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 451, "before": 0.243562, "after": 0.243562, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 467.5999999642372, "before": 0.260261, "after": 0.260261, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 484.39999997615814, "before": 0.276963, "after": 0.276963, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 500.89999997615814, "before": 0.293509, "after": 0.293509, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 517.3999999761581, "before": 0.310009, "after": 0.310009, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 534.3000000119209, "before": 0.326905, "after": 0.326905, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 551.8999999761581, "before": 0.344547, "after": 0.344547, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 567.8000000119209, "before": 0.360407, "after": 0.360407, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 584.6999999880791, "before": 0.377333, "after": 0.377333, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 601.0999999642372, "before": 0.393728, "after": 0.393728, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 618, "before": 0.410661, "after": 0.410661, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 635, "before": 0.427514, "after": 0.427514, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 651.3999999761581, "before": 0.444013, "after": 0.444013, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 667.6999999880791, "before": 0.460278, "after": 0.460278, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 684.0999999642372, "before": 0.476706, "after": 0.476706, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 701, "before": 0.493649, "after": 0.493649, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 718.0999999642372, "before": 0.510741, "after": 0.510741, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 734.1999999880791, "before": 0.526869, "after": 0.526869, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 752.5, "before": 0.545114, "after": 0.545114, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 768.3000000119209, "before": 0.560893, "after": 0.560893, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 785, "before": 0.577642, "after": 0.577642, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 801.8999999761581, "before": 0.594541, "after": 0.594541, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 818.0999999642372, "before": 0.610699, "after": 0.610699, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 835.0999999642372, "before": 0.627692, "after": 0.627692, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 852.3999999761581, "before": 0.645015, "after": 0.645015, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 868.6999999880791, "before": 0.661362, "after": 0.661362, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 884, "before": 0.676605, "after": 0.676605, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 900.8999999761581, "before": 0.693551, "after": 0.693551, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 918.0999999642372, "before": 0.710673, "after": 0.710673, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 934.8000000119209, "before": 0.727453, "after": 0.727453, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 951.6999999880791, "before": 0.744348, "after": 0.744348, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 967.8000000119209, "before": 0.760428, "after": 0.760428, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 984.5, "before": 0.777062, "after": 0.777062, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1001, "before": 0.793715, "after": 0.793715, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1018.3000000119209, "before": 0.810909, "after": 0.810909, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1034.800000011921, "before": 0.827374, "after": 0.827374, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1051.300000011921, "before": 0.843944, "after": 0.843944, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1067.800000011921, "before": 0.860372, "after": 0.860372, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1085, "before": 0.877632, "after": 0.877632, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1101, "before": 0.893673, "after": 0.893673, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1118.5, "before": 0.911164, "after": 0.911164, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1134.5999999642372, "before": 0.927241, "after": 0.927241, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1150.8999999761581, "before": 0.943555, "after": 0.943555, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1384.5, "before": 2.057756, "after": 2.057756, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1402.5, "before": 2.093658, "after": 2.093658, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1417.3999999761581, "before": 2.123354, "after": 2.123354, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1434.8999999761581, "before": 2.158492, "after": 2.158492, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1451.5, "before": 2.19167, "after": 2.19167, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1467.5999999642372, "before": 2.22387, "after": 2.22387, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1484.0999999642372, "before": 2.256906, "after": 2.256906, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1501.3999999761581, "before": 2.291334, "after": 2.291334, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1518.300000011921, "before": 2.325188, "after": 2.325188, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1534, "before": 2.356588, "after": 2.356588, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1551.300000011921, "before": 2.39117, "after": 2.39117, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1568, "before": 2.42469, "after": 2.42469, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1584.8999999761581, "before": 2.45846, "after": 2.45846, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1600.8999999761581, "before": 2.490394, "after": 2.490394, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1618.199999988079, "before": 2.525028, "after": 2.525028, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1635, "before": 2.55859, "after": 2.55859, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1651.300000011921, "before": 2.591224, "after": 2.591224, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1668.3999999761581, "before": 2.625514, "after": 2.625514, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1684, "before": 2.65664, "after": 2.65664, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1701, "before": 2.690678, "after": 2.690678, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1718, "before": 2.724634, "after": 2.724634, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1734.199999988079, "before": 2.756894, "after": 2.756894, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1750.699999988079, "before": 2.790004, "after": 2.790004, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1767.3999999761581, "before": 2.823432, "after": 2.823432, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1784.8999999761581, "before": 2.858364, "after": 2.858364, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1800.8999999761581, "before": 2.89037, "after": 2.89037, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1818.5999999642372, "before": 2.925766, "after": 2.925766, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1834.3999999761581, "before": 2.957226, "after": 2.957226, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1851.5999999642372, "before": 2.991816, "after": 2.991816, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1868.0999999642372, "before": 3.024836, "after": 3.024836, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1884.5, "before": 3.057556, "after": 3.057556, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1901, "before": 3.090712, "after": 3.090712, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1918.199999988079, "before": 3.12506, "after": 3.12506, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1934.199999988079, "before": 3.157092, "after": 3.157092, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1951.199999988079, "before": 3.19101, "after": 3.19101, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "wait" } ] }, { "wall": 1968.3999999761581, "before": 3.225452, "after": 3.225452, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 1984.300000011921, "before": 3.25738, "after": 3.25738, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2001.3999999761581, "before": 3.291476, "after": 3.291476, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2017.5, "before": 3.323686, "after": 3.323686, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2034.5999999642372, "before": 3.357788, "after": 3.357788, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2052, "before": 3.392572, "after": 3.392572, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2067.399999976158, "before": 3.423428, "after": 3.423428, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2084.599999964237, "before": 3.45786, "after": 3.45786, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2100.699999988079, "before": 3.49012, "after": 3.49012, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2117.599999964237, "before": 3.523598, "after": 3.523598, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2135.300000011921, "before": 3.559058, "after": 3.559058, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] }, { "wall": 2152.099999964237, "before": 3.592804, "after": 3.592804, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.266574, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "chromium", "durationMs": 4029, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "firefox", "durationMs": 2413, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "firefox", "durationMs": 795, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.135079 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/4a548f44-c472-4ed0-a791-a070f5a4334f", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "firefox", "durationMs": 722, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.125349 }, { "index": 0, "event": "stop", "time": 0.125349 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/93cebef0-5683-4d9c-88dc-b8a7b9e67672", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2700, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2514, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2565, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2473, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "firefox", "durationMs": 2108, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "firefox", "durationMs": 1687, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "firefox", "durationMs": 2631, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 601.3333129882812, "next": 601.3333129882812, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 362, "before": 0.007241, "after": 0.007241, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 380, "before": 0.007241, "after": 0.007241, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 396, "before": 0.048156, "after": 0.048156, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 413, "before": 0.048156, "after": 0.048156, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 430, "before": 0.088465, "after": 0.088465, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 446, "before": 0.088465, "after": 0.088465, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 463, "before": 0.088465, "after": 0.088465, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 479, "before": 0.129111, "after": 0.129111, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 496, "before": 0.129111, "after": 0.129111, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 513, "before": 0.169319, "after": 0.169319, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 530, "before": 0.169319, "after": 0.169319, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 546, "before": 0.169319, "after": 0.169319, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 563, "before": 0.209913, "after": 0.209913, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 580, "before": 0.209913, "after": 0.209913, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 597, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 613, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 629, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 647, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 663, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 680, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 697, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 713, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 730, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 747, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 763, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 780, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 796, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 813, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 830, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 846, "before": 0.498679, "after": 0.498679, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 864, "before": 0.498679, "after": 0.498679, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 879, "before": 0.498679, "after": 0.498679, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 896, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 913, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 929, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 947, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 963, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 980, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 997, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1014, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1030, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1046, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1064, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1080, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1097, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1113, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1131, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1147, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1163, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1180, "before": 0.835297, "after": 0.835297, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1197, "before": 0.835297, "after": 0.835297, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1214, "before": 0.835297, "after": 0.835297, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1230, "before": 0.876264, "after": 0.876264, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1247, "before": 0.876264, "after": 0.876264, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1266, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1281, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1297, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1315, "before": 0.958332, "after": 0.958332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1480, "before": 2.000073, "after": 2.000073, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1497, "before": 2.041666, "after": 2.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1514, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1530, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1547, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1563, "before": 2.166666, "after": 2.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1581, "before": 2.208332, "after": 2.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1596, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1614, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1630, "before": 2.291666, "after": 2.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1647, "before": 2.333332, "after": 2.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1663, "before": 2.374999, "after": 2.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1681, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1697, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1714, "before": 2.458332, "after": 2.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1731, "before": 2.499999, "after": 2.499999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1747, "before": 2.541666, "after": 2.541666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1764, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1781, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1797, "before": 2.624999, "after": 2.624999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1814, "before": 2.666666, "after": 2.666666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1831, "before": 2.708332, "after": 2.708332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1847, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1864, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1880, "before": 2.791666, "after": 2.791666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1897, "before": 2.833332, "after": 2.833332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1914, "before": 2.874999, "after": 2.874999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1931, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1947, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1964, "before": 2.958332, "after": 2.958332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1981, "before": 2.999999, "after": 2.999999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1997, "before": 3.041666, "after": 3.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 2014, "before": 3.083332, "after": 3.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 2031, "before": 3.124999, "after": 3.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 2048, "before": 3.124999, "after": 3.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 2064, "before": 3.166666, "after": 3.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 2081, "before": 3.208332, "after": 3.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 2098, "before": 3.249973, "after": 3.249973, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2115, "before": 3.291075, "after": 3.291075, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2134, "before": 3.291075, "after": 3.291075, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2147, "before": 3.333332, "after": 3.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2164, "before": 3.374999, "after": 3.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2180, "before": 3.416666, "after": 3.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2197, "before": 3.416666, "after": 3.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2214, "before": 3.458332, "after": 3.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2230, "before": 3.499999, "after": 3.499999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2247, "before": 3.540836, "after": 3.540836, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2264, "before": 3.581433, "after": 3.581433, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2281, "before": 3.621838, "after": 3.621838, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2297, "before": 3.621838, "after": 3.621838, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2315, "before": 3.663074, "after": 3.663074, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "firefox", "durationMs": 4548, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "firefox", "durationMs": 2467, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "firefox", "durationMs": 704, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.128048 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/b2b0de47-d8c6-4783-91d3-1c67330ab177", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "firefox", "durationMs": 625, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.005397 }, { "index": 0, "event": "stop", "time": 0.005397 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/15197620-a2d4-414a-ae96-03e09404c394", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2791, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2733, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2537, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2596, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "firefox", "durationMs": 2033, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "firefox", "durationMs": 1657, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "firefox", "durationMs": 2527, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 601.3333129882812, "next": 601.3333129882812, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 261, "before": 0.007219, "after": 0.007219, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 277, "before": 0.007219, "after": 0.007219, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 294, "before": 0.04776, "after": 0.04776, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 311, "before": 0.04776, "after": 0.04776, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 328, "before": 0.088417, "after": 0.088417, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 344, "before": 0.088417, "after": 0.088417, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 361, "before": 0.088417, "after": 0.088417, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 377, "before": 0.128566, "after": 0.128566, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 394, "before": 0.128566, "after": 0.128566, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 411, "before": 0.168722, "after": 0.168722, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 428, "before": 0.168722, "after": 0.168722, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 445, "before": 0.168722, "after": 0.168722, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 461, "before": 0.209164, "after": 0.209164, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 478, "before": 0.209164, "after": 0.209164, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 495, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 511, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 528, "before": 0.249999, "after": 0.249999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 545, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 561, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 577, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 594, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 611, "before": 0.333332, "after": 0.333332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 628, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 644, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 661, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 678, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 694, "before": 0.416666, "after": 0.416666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 711, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 727, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 745, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 761, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 778, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 794, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 812, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 827, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 844, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 861, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 878, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 895, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 911, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 928, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 945, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 962, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 978, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 995, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1011, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1028, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1045, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1061, "before": 0.791666, "after": 0.791666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1078, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1094, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1112, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1128, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1145, "before": 0.874999, "after": 0.874999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1164, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1179, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1194, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1213, "before": 0.958332, "after": 0.958332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1378, "before": 2.000064, "after": 2.000064, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1395, "before": 2.041666, "after": 2.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1412, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1428, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1445, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1461, "before": 2.166666, "after": 2.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1479, "before": 2.208332, "after": 2.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1495, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1512, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1529, "before": 2.291666, "after": 2.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1546, "before": 2.334864, "after": 2.334864, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1562, "before": 2.374999, "after": 2.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1579, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1595, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1612, "before": 2.458332, "after": 2.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1629, "before": 2.499999, "after": 2.499999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1645, "before": 2.541666, "after": 2.541666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1662, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1678, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1695, "before": 2.624999, "after": 2.624999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1712, "before": 2.666666, "after": 2.666666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1729, "before": 2.708332, "after": 2.708332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1745, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1762, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1779, "before": 2.791666, "after": 2.791666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1795, "before": 2.833332, "after": 2.833332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1812, "before": 2.874999, "after": 2.874999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1829, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1846, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1862, "before": 2.959734, "after": 2.959734, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1879, "before": 2.999999, "after": 2.999999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1896, "before": 3.041666, "after": 3.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1912, "before": 3.089442, "after": 3.089442, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1930, "before": 3.089442, "after": 3.089442, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1945, "before": 3.130082, "after": 3.130082, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1962, "before": 3.171009, "after": 3.171009, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1978, "before": 3.21251, "after": 3.21251, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "wait" } ] }, { "wall": 1996, "before": 3.253029, "after": 3.253029, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2012, "before": 3.253029, "after": 3.253029, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2029, "before": 3.294267, "after": 3.294267, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2046, "before": 3.335072, "after": 3.335072, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2062, "before": 3.376918, "after": 3.376918, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2079, "before": 3.420602, "after": 3.420602, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2095, "before": 3.420602, "after": 3.420602, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2112, "before": 3.461041, "after": 3.461041, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2129, "before": 3.501906, "after": 3.501906, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2146, "before": 3.543108, "after": 3.543108, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2163, "before": 3.583332, "after": 3.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2179, "before": 3.583332, "after": 3.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2195, "before": 3.624999, "after": 3.624999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] }, { "wall": 2213, "before": 3.666656, "after": 3.666656, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.291666, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "firefox", "durationMs": 4594, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "webkit", "durationMs": 3769, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "webkit", "durationMs": 1747, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.1416231 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c5143333-bf8e-4ced-aa71-8cc54c89a884", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "webkit", "durationMs": 1648, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.0715572 }, { "index": 0, "event": "stop", "time": 0.0715858 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/2f467548-e4ec-49f3-96bc-889088d432af", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4489, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4090, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4415, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3703, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "webkit", "durationMs": 2928, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "webkit", "durationMs": 3115, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "webkit", "durationMs": 4252, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 615.2750244140625, "next": 615.2750244140625, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 1165, "before": 0.0159348, "after": 0.0160002, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1270, "before": 0.1213008, "after": 0.1213159, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1331, "before": 0.1820146, "after": 0.1820271, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1362, "before": 0.2130061, "after": 0.2130194, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1408, "before": 0.2590538, "after": 0.2590804, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1454, "before": 0.3049925, "after": 0.3050046, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1498, "before": 0.3492606, "after": 0.349291, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1559, "before": 0.4108884, "after": 0.410913, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1590, "before": 0.4416609, "after": 0.4416737, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1636, "before": 0.4874301, "after": 0.4874423, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1667, "before": 0.5187863, "after": 0.5188139, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1714, "before": 0.5652963, "after": 0.5653059, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1744, "before": 0.5959024, "after": 0.5959126, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1808, "before": 0.6592278, "after": 0.6592459, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1882, "before": 0.7333501, "after": 0.7333602, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1928, "before": 0.7798459, "after": 0.7798607, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1963, "before": 0.814367, "after": 0.8143766, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1964, "before": 0.8157498, "after": 0.8157563, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2418, "before": 2.10286, "after": 2.102886, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "wait" } ] }, { "wall": 2447, "before": 2.1616508, "after": 2.1616772, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "wait" } ] }, { "wall": 2493, "before": 2.2537336, "after": 2.2537574, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "wait" } ] }, { "wall": 2524, "before": 2.3164212, "after": 2.316444, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "wait" } ] }, { "wall": 2570, "before": 2.407946, "after": 2.4079758, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "wait" } ] }, { "wall": 2617, "before": 2.5009358, "after": 2.5009586, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" } ] }, { "wall": 2663, "before": 2.5931474, "after": 2.5931726, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" } ] }, { "wall": 2725, "before": 2.7176728, "after": 2.7176968, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" } ] }, { "wall": 2771, "before": 2.8092912, "after": 2.8093206, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" } ] }, { "wall": 2802, "before": 2.872333, "after": 2.872362, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" } ] }, { "wall": 2859, "before": 2.9848032, "after": 2.9848348, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" } ] }, { "wall": 2894, "before": 3.0561996, "after": 3.056223, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "wait" } ] }, { "wall": 2941, "before": 3.1491002, "after": 3.1491274, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "wait" } ] }, { "wall": 2985, "before": 3.2378288, "after": 3.2379482, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "wait" } ] }, { "wall": 3030, "before": 3.3284306, "after": 3.3284786, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "wait" } ] }, { "wall": 3077, "before": 3.420845, "after": 3.4208874, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "wait" } ] }, { "wall": 3124, "before": 3.515504, "after": 3.5155426, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3186, "before": 3.6397388, "after": 3.6398134, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3231, "before": 3.73033, "after": 3.7303538, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3277, "before": 3.8210746, "after": 3.8210958, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3324, "before": 3.914924, "after": 3.914941, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3370, "before": 4.0077072, "after": 4.00773, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3415, "before": 4.098272, "after": 4.0982948, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3476, "before": 4.2200058, "after": 4.2200296, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3522, "before": 4.3117306, "after": 4.311753, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3567, "before": 4.4020572, "after": 4.4020802, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3612, "before": 4.4919984, "after": 4.492021, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3627, "before": 4.522652, "after": 4.5226694, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] }, { "wall": 3629, "before": 4.5261468, "after": 4.5261642, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5019035, "state": "emit" }, { "id": "appended", "time": 3.5100708, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "webkit", "durationMs": 6889, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "webkit", "durationMs": 3771, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "webkit", "durationMs": 1706, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.1392104 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/0c26076e-d8c5-4a38-89b7-bda526378a80", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "webkit", "durationMs": 1734, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.2148273 }, { "index": 0, "event": "stop", "time": 0.2148543 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/095e1914-6a2e-4dca-a296-95fe2057f84b", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4640, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4133, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4163, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3907, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "webkit", "durationMs": 3054, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "webkit", "durationMs": 3072, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "webkit", "durationMs": 4664, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 576.4249877929688, "next": 576.4249877929688, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 1114, "before": 0.0275833, "after": 0.027667, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1161, "before": 0.0743575, "after": 0.0743736, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1191, "before": 0.1047969, "after": 0.1048159, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1242, "before": 0.1552228, "after": 0.1552407, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1284, "before": 0.1980201, "after": 0.1980339, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1344, "before": 0.2575539, "after": 0.2575664, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1390, "before": 0.3036323, "after": 0.3036596, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1435, "before": 0.3489225, "after": 0.3489343, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1497, "before": 0.4105937, "after": 0.4106036, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1529, "before": 0.4424765, "after": 0.4424932, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1573, "before": 0.4868187, "after": 0.4868405, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1620, "before": 0.5338339, "after": 0.5338443, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1650, "before": 0.5639797, "after": 0.5639901, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1681, "before": 0.594222, "after": 0.5942335, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1726, "before": 0.6398355, "after": 0.6398459, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1756, "before": 0.6696594, "after": 0.6696711, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1803, "before": 0.7167381, "after": 0.7167482, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1834, "before": 0.7477257, "after": 0.7477358, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1880, "before": 0.7937526, "after": 0.7937645, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1924, "before": 0.8375983, "after": 0.8376108, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1971, "before": 0.8845255, "after": 0.8845334, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2032, "before": 0.9457481, "after": 0.9457562, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2079, "before": 0.9922146, "after": 0.9922243, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2125, "before": 1.0383257, "after": 1.0383387, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2187, "before": 1.1006115, "after": 1.1006228, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2233, "before": 1.1464477, "after": 1.1464564, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2281, "before": 1.1941408, "after": 1.1941542, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2342, "before": 1.2552398, "after": 1.255262, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2345, "before": 1.2582094, "after": 1.258221, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2346, "before": 1.2599337, "after": 1.2599455, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2817, "before": 2.0395904, "after": 2.039659, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "wait" } ] }, { "wall": 2862, "before": 2.1307784, "after": 2.1308368, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "wait" } ] }, { "wall": 2907, "before": 2.2198808, "after": 2.2199116, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "wait" } ] }, { "wall": 2938, "before": 2.2820778, "after": 2.282107, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "wait" } ] }, { "wall": 2969, "before": 2.3440042, "after": 2.3440482, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "wait" } ] }, { "wall": 3014, "before": 2.4342786, "after": 2.4343938, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "wait" } ] }, { "wall": 3059, "before": 2.5246888, "after": 2.5247134, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" } ] }, { "wall": 3089, "before": 2.5847162, "after": 2.5847382, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" } ] }, { "wall": 3120, "before": 2.6461868, "after": 2.6462078, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" } ] }, { "wall": 3167, "before": 2.7402986, "after": 2.7403186, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" } ] }, { "wall": 3198, "before": 2.8022574, "after": 2.802285, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" } ] }, { "wall": 3237, "before": 2.8796478, "after": 2.8796642, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" } ] }, { "wall": 3273, "before": 2.952094, "after": 2.9521478, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "wait" } ] }, { "wall": 3320, "before": 3.0465276, "after": 3.0465522, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "wait" } ] }, { "wall": 3368, "before": 3.1414532, "after": 3.1414762, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "wait" } ] }, { "wall": 3398, "before": 3.2027528, "after": 3.2027978, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "wait" } ] }, { "wall": 3445, "before": 3.295084, "after": 3.2951464, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "wait" } ] }, { "wall": 3490, "before": 3.3863962, "after": 3.386446, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "wait" } ] }, { "wall": 3552, "before": 3.5096228, "after": 3.5096452, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3598, "before": 3.6021884, "after": 3.602211, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3645, "before": 3.6949332, "after": 3.6949552, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3707, "before": 3.8200626, "after": 3.820086, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3752, "before": 3.9104908, "after": 3.910516, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3797, "before": 3.9998794, "after": 3.999907, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3859, "before": 4.1237156, "after": 4.1237348, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3905, "before": 4.215603, "after": 4.2156254, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3952, "before": 4.3099956, "after": 4.3100146, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3954, "before": 4.3140048, "after": 4.3140216, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] }, { "wall": 3955, "before": 4.3166564, "after": 4.316669, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5014608, "state": "emit" }, { "id": "appended", "time": 3.4101818, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "webkit", "durationMs": 7411, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] } ] }, { "format": "legacy", "tests": 138, "workers": 2, "file": "refactor/.cache/danmuku05-browser-legacy-resource-final/report.json", "sha256": "50ced37e6fe77310ec619e6f0782eecd07eb1666014c6d93580251ca3dc15f68", "run": { "file": "refactor/.cache/danmuku05-browser-legacy-resource-final/run.log", "sha256": "e0a6bdbaec9f12796655145d7be1670224cd9aea8ee6413d0e1a836ddb14b05b" }, "specs": [ { "file": "refactor/.cache/danmuku05-browser-legacy-resource-final/danmuku-input.spec.js", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, { "file": "refactor/.cache/danmuku05-browser-legacy-resource-final/danmuku-scheduler.spec.js", "sha256": "ee67bc0f204f1f9090859ed9d1d0cfecc545129fff6278d2f17140b009390519" }, { "file": "refactor/.cache/danmuku05-browser-legacy-resource-final/danmuku-resources.spec.js", "sha256": "f0d09e962cb422a66bd644c52268aff8f288606ae9c93676fa979539743f9c6b" } ], "archiveResultsRoot": "refactor/.cache/danmuku05-browser-legacy-resource-final/results", "originalResultsRoot": "refactor/.cache/browser/results", "versions": [ "chromium: 153.0.8010.12", "firefox: 155.0", "webkit: 26.6" ], "cases": [ { "title": "Danmuku input native Worker startup failure falls back locally (published)", "browser": "chromium", "durationMs": 386, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/3d88e94a-b248-4b64-b54c-21d6d4a549c5", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/f386f30d-74d6-4814-84e5-e88f3da95fda", "blob:http://127.0.0.1:8084/3d88e94a-b248-4b64-b54c-21d6d4a549c5" ], "revoked": [ "", "blob:http://127.0.0.1:8084/3d88e94a-b248-4b64-b54c-21d6d4a549c5", "blob:http://127.0.0.1:8084/f386f30d-74d6-4814-84e5-e88f3da95fda" ], "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", "durationMs": 273, "observations": [ { "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/643ba9b4-955d-42e4-b0b9-79e7166a875e", "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/acaff2f5-e1b8-4679-8525-84552d4a89a7", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/d24fda1a-1c90-4e25-99cf-fb593d7f0cfe", "blob:http://127.0.0.1:8084/643ba9b4-955d-42e4-b0b9-79e7166a875e", "blob:http://127.0.0.1:8084/acaff2f5-e1b8-4679-8525-84552d4a89a7" ], "revoked": [ "", "blob:http://127.0.0.1:8084/643ba9b4-955d-42e4-b0b9-79e7166a875e", "blob:http://127.0.0.1:8084/acaff2f5-e1b8-4679-8525-84552d4a89a7" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/d24fda1a-1c90-4e25-99cf-fb593d7f0cfe", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/643ba9b4-955d-42e4-b0b9-79e7166a875e", "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/acaff2f5-e1b8-4679-8525-84552d4a89a7", "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", "durationMs": 241, "observations": [ { "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", "durationMs": 223, "observations": [ { "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", "durationMs": 399, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c32baba2-f7a3-4ba2-aa37-8458b0064985", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/e71b6ff5-5dd5-43f7-a8c5-a7bae5401ed5", "blob:http://127.0.0.1:8084/c32baba2-f7a3-4ba2-aa37-8458b0064985" ], "revoked": [ "blob:http://127.0.0.1:8084/c32baba2-f7a3-4ba2-aa37-8458b0064985", "blob:http://127.0.0.1:8084/e71b6ff5-5dd5-43f7-a8c5-a7bae5401ed5" ], "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", "durationMs": 281, "observations": [ { "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/c5241b76-f23a-4eed-9faa-2157f9b391b2", "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/e0a43471-59eb-4ff5-a4b9-c36e14e8d681", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/ddd85100-8ce1-449a-9da5-9044f2d89a20", "blob:http://127.0.0.1:8084/c5241b76-f23a-4eed-9faa-2157f9b391b2", "blob:http://127.0.0.1:8084/e0a43471-59eb-4ff5-a4b9-c36e14e8d681" ], "revoked": [ "blob:http://127.0.0.1:8084/c5241b76-f23a-4eed-9faa-2157f9b391b2", "blob:http://127.0.0.1:8084/e0a43471-59eb-4ff5-a4b9-c36e14e8d681" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/ddd85100-8ce1-449a-9da5-9044f2d89a20", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/c5241b76-f23a-4eed-9faa-2157f9b391b2", "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/e0a43471-59eb-4ff5-a4b9-c36e14e8d681", "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", "durationMs": 259, "observations": [ { "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", "durationMs": 240, "observations": [ { "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", "durationMs": 2036, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/1e85ebc6-4fe0-49da-a379-0e0be3a6d0d5", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/7facd423-b29b-47e5-bb73-b5799c71047a", "blob:http://127.0.0.1:8084/1e85ebc6-4fe0-49da-a379-0e0be3a6d0d5" ], "revoked": [ "", "blob:http://127.0.0.1:8084/1e85ebc6-4fe0-49da-a379-0e0be3a6d0d5", "blob:http://127.0.0.1:8084/7facd423-b29b-47e5-bb73-b5799c71047a" ], "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", "durationMs": 486, "observations": [ { "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/c378306f-f185-4d73-b2a5-c68c6662a842", "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/ca37a1a6-457d-4d40-9e66-5d854ef823a3", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/2a57e037-3ac6-4ba1-8db4-a8b8e7f64bc1", "blob:http://127.0.0.1:8084/c378306f-f185-4d73-b2a5-c68c6662a842", "blob:http://127.0.0.1:8084/ca37a1a6-457d-4d40-9e66-5d854ef823a3" ], "revoked": [ "", "blob:http://127.0.0.1:8084/c378306f-f185-4d73-b2a5-c68c6662a842", "blob:http://127.0.0.1:8084/ca37a1a6-457d-4d40-9e66-5d854ef823a3" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/2a57e037-3ac6-4ba1-8db4-a8b8e7f64bc1", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/c378306f-f185-4d73-b2a5-c68c6662a842", "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/ca37a1a6-457d-4d40-9e66-5d854ef823a3", "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", "durationMs": 574, "observations": [ { "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", "durationMs": 421, "observations": [ { "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", "durationMs": 1890, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/4083df27-c02e-41c8-89c5-27f7af71156d", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/5c60ae55-0471-466e-a74d-6bce0b3bfcee", "blob:http://127.0.0.1:8084/4083df27-c02e-41c8-89c5-27f7af71156d" ], "revoked": [ "blob:http://127.0.0.1:8084/4083df27-c02e-41c8-89c5-27f7af71156d", "blob:http://127.0.0.1:8084/5c60ae55-0471-466e-a74d-6bce0b3bfcee" ], "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", "durationMs": 617, "observations": [ { "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/1b9c05c4-ef91-4a62-a209-1e06e6f0d1c1", "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/35ff1f0f-60b7-4b32-ad05-e93ca5cbe27e", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/2c32276b-9b15-4195-98d7-b7097f6987cf", "blob:http://127.0.0.1:8084/1b9c05c4-ef91-4a62-a209-1e06e6f0d1c1", "blob:http://127.0.0.1:8084/35ff1f0f-60b7-4b32-ad05-e93ca5cbe27e" ], "revoked": [ "blob:http://127.0.0.1:8084/1b9c05c4-ef91-4a62-a209-1e06e6f0d1c1", "blob:http://127.0.0.1:8084/35ff1f0f-60b7-4b32-ad05-e93ca5cbe27e" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/2c32276b-9b15-4195-98d7-b7097f6987cf", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/1b9c05c4-ef91-4a62-a209-1e06e6f0d1c1", "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/35ff1f0f-60b7-4b32-ad05-e93ca5cbe27e", "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", "durationMs": 440, "observations": [ { "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", "durationMs": 570, "observations": [ { "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", "durationMs": 1782, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/e3e62931-e387-4c65-8166-6ffb496729dc", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/954becc1-c45b-4905-a97e-ae0ff3b7a821", "blob:http://127.0.0.1:8084/e3e62931-e387-4c65-8166-6ffb496729dc" ], "revoked": [ "", "blob:http://127.0.0.1:8084/e3e62931-e387-4c65-8166-6ffb496729dc", "blob:http://127.0.0.1:8084/954becc1-c45b-4905-a97e-ae0ff3b7a821" ], "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", "durationMs": 1470, "observations": [ { "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/4979bfc0-3c22-4f92-8afd-8842248c265a", "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/b16334eb-f5b7-4439-b832-fe2460031265", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/c436d1a3-a98c-47b7-97a8-62ef8c943186", "blob:http://127.0.0.1:8084/4979bfc0-3c22-4f92-8afd-8842248c265a", "blob:http://127.0.0.1:8084/b16334eb-f5b7-4439-b832-fe2460031265" ], "revoked": [ "", "blob:http://127.0.0.1:8084/4979bfc0-3c22-4f92-8afd-8842248c265a", "blob:http://127.0.0.1:8084/b16334eb-f5b7-4439-b832-fe2460031265" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c436d1a3-a98c-47b7-97a8-62ef8c943186", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/4979bfc0-3c22-4f92-8afd-8842248c265a", "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/b16334eb-f5b7-4439-b832-fe2460031265", "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", "durationMs": 1333, "observations": [ { "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", "durationMs": 1293, "observations": [ { "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", "durationMs": 1717, "observations": [ { "name": "danmuku-native-worker-fault", "value": { "queue": [ { "text": "FALLBACK", "time": 0, "mode": 1 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/a036e468-7f3a-4272-8d3a-7fa8acf5cbef", "terminated": 1, "replies": [] } ], "urls": [ "blob:http://127.0.0.1:8084/9a41ce02-f5b5-46bf-bade-0b91976bbb1a", "blob:http://127.0.0.1:8084/a036e468-7f3a-4272-8d3a-7fa8acf5cbef" ], "revoked": [ "blob:http://127.0.0.1:8084/a036e468-7f3a-4272-8d3a-7fa8acf5cbef", "blob:http://127.0.0.1:8084/9a41ce02-f5b5-46bf-bade-0b91976bbb1a" ], "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", "durationMs": 1286, "observations": [ { "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/2ae184c9-323e-409d-9bfa-612ee760bd02", "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/33962da8-a6c5-42fa-8bd9-ad02d8a9a0bf", "terminated": 1, "replies": [ { "danmus": [], "id": 2 } ] } ], "urls": [ "blob:http://127.0.0.1:8084/d33f1edb-1560-450c-a1ab-ca08b83b87f9", "blob:http://127.0.0.1:8084/2ae184c9-323e-409d-9bfa-612ee760bd02", "blob:http://127.0.0.1:8084/33962da8-a6c5-42fa-8bd9-ad02d8a9a0bf" ], "revoked": [ "blob:http://127.0.0.1:8084/2ae184c9-323e-409d-9bfa-612ee760bd02", "blob:http://127.0.0.1:8084/33962da8-a6c5-42fa-8bd9-ad02d8a9a0bf" ], "workers": [ { "url": "blob:http://127.0.0.1:8084/d33f1edb-1560-450c-a1ab-ca08b83b87f9", "terminated": 1, "replies": [] }, { "url": "blob:http://127.0.0.1:8084/2ae184c9-323e-409d-9bfa-612ee760bd02", "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/33962da8-a6c5-42fa-8bd9-ad02d8a9a0bf", "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", "durationMs": 1519, "observations": [ { "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", "durationMs": 1321, "observations": [ { "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": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "chromium", "durationMs": 277, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "chromium", "durationMs": 303, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "chromium", "durationMs": 475, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "chromium", "durationMs": 460, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "chromium", "durationMs": 373, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "chromium", "durationMs": 428, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "chromium", "durationMs": 441, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "chromium", "durationMs": 474, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "chromium", "durationMs": 317, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "chromium", "durationMs": 316, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "chromium", "durationMs": 391, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "chromium", "durationMs": 460, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "chromium", "durationMs": 392, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "chromium", "durationMs": 441, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "chromium", "durationMs": 458, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "chromium", "durationMs": 511, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "firefox", "durationMs": 686, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "firefox", "durationMs": 1030, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "firefox", "durationMs": 1008, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "firefox", "durationMs": 965, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "firefox", "durationMs": 708, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "firefox", "durationMs": 1344, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "firefox", "durationMs": 804, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "firefox", "durationMs": 704, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "firefox", "durationMs": 1157, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "firefox", "durationMs": 668, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "firefox", "durationMs": 794, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "firefox", "durationMs": 1098, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "firefox", "durationMs": 625, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "firefox", "durationMs": 1423, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "firefox", "durationMs": 665, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "firefox", "durationMs": 578, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: shared setting mount preserves the surviving instance and later user changes", "browser": "webkit", "durationMs": 1376, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "webkit", "durationMs": 1484, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "webkit", "durationMs": 1663, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy clears active send timer and leaves another mounted instance usable", "browser": "webkit", "durationMs": 2226, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "webkit", "durationMs": 1716, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: destroy false releases actual renderer nodes while retaining the player shell", "browser": "webkit", "durationMs": 1444, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "webkit", "durationMs": 1704, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "webkit", "durationMs": 1955, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "published", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: shared setting mount preserves the surviving instance and later user changes", "browser": "webkit", "durationMs": 1453, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: invalid setting mount rolls back plugin resources while preserving the original error", "browser": "webkit", "durationMs": 1418, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy cancels pending setting send without clearing retained input or starting a lock", "browser": "webkit", "durationMs": 1921, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "pending", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "PENDING", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy clears active send timer and leaves another mounted instance usable", "browser": "webkit", "durationMs": 2326, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [ { "index": 0, "text": "LOCK", "receiver": true }, { "index": 1, "text": "SECOND", "receiver": true } ], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: rejected setting callback retains input and original console error without an unhandled rejection", "browser": "webkit", "durationMs": 1618, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "reject", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [ { "index": 0, "text": "REJECT", "receiver": true } ], "messages": [], "errors": [ [ "Error emitting danmuku:", "controlled setting rejection" ] ], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: destroy false releases actual renderer nodes while retaining the player shell", "browser": "webkit", "durationMs": 1651, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "VISIBLE" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: replacement load removes a moved renderer node and preserves unrelated body content", "browser": "webkit", "durationMs": 1669, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "normal", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 } ], "sends": [], "messages": [ "MOVED" ], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "candidate: narrow heatmap invalid sampling stays responsive and two instances have independent gradients", "browser": "webkit", "durationMs": 2049, "observations": [ { "name": "danmuku-resources-inputs", "value": { "core": "candidate", "scenario": "heatmap", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "native": "video, RAF, DOM, Worker; observe the first one-second timer after beforeEmit in the synchronous send continuation, no fake timer clock" } }, { "name": "danmuku-resources-heatmap", "value": { "ids": [ "heatmap-solids", "heatmap-solids-1" ], "fills": [ "url(#heatmap-solids)", "url(#heatmap-solids-1)" ], "offsets": [ "25%", "75%" ], "validPaths": true } }, { "name": "danmuku-resources-evidence", "value": { "workers": [ { "terminated": 1 }, { "terminated": 1 } ], "sends": [], "messages": [], "errors": [], "retainedSettings": 0, "timers": 0 } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "chromium", "durationMs": 2251, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "chromium", "durationMs": 509, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.127297 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c8dbfeb9-b569-4f9d-8673-c184346c7ca1", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "chromium", "durationMs": 465, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.117584 }, { "index": 0, "event": "stop", "time": 0.117584 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/f075b93a-8ad2-458a-b058-e86770cff0cc", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2806, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2446, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2325, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2304, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "chromium", "durationMs": 1307, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "chromium", "durationMs": 1615, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "chromium", "durationMs": 2285, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 604.256591796875, "next": 604.256591796875, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 202, "before": 0.028137, "after": 0.028137, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 218.10000002384186, "before": 0.044278, "after": 0.044278, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 234.69999998807907, "before": 0.06098, "after": 0.06098, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 251.39999997615814, "before": 0.077651, "after": 0.077651, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 268.39999997615814, "before": 0.094642, "after": 0.094642, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 284.60000002384186, "before": 0.110876, "after": 0.110876, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 301.60000002384186, "before": 0.127934, "after": 0.127934, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 317.80000001192093, "before": 0.144083, "after": 0.144083, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 335.30000001192093, "before": 0.161599, "after": 0.161599, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 351.39999997615814, "before": 0.177664, "after": 0.177664, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 368.10000002384186, "before": 0.19445, "after": 0.19445, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 384.5, "before": 0.210711, "after": 0.210711, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 401.60000002384186, "before": 0.227853, "after": 0.227853, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 418.19999998807907, "before": 0.244469, "after": 0.244469, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 434.69999998807907, "before": 0.261009, "after": 0.261009, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 451.10000002384186, "before": 0.27739, "after": 0.27739, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 468.10000002384186, "before": 0.294431, "after": 0.294431, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 484.60000002384186, "before": 0.310881, "after": 0.310881, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 501.39999997615814, "before": 0.327649, "after": 0.327649, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 517.5, "before": 0.343747, "after": 0.343747, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 534.6999999880791, "before": 0.360918, "after": 0.360918, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 551, "before": 0.377269, "after": 0.377269, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 568.6999999880791, "before": 0.394967, "after": 0.394967, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 585.1999999880791, "before": 0.411443, "after": 0.411443, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 601.3999999761581, "before": 0.427627, "after": 0.427627, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 618.3000000119209, "before": 0.444613, "after": 0.444613, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 634.8000000119209, "before": 0.461067, "after": 0.461067, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 651.6999999880791, "before": 0.477888, "after": 0.477888, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 667.6000000238419, "before": 0.493967, "after": 0.493967, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 684.6000000238419, "before": 0.510902, "after": 0.510902, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 700.8000000119209, "before": 0.527071, "after": 0.527071, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 718, "before": 0.544217, "after": 0.544217, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 734.6999999880791, "before": 0.560952, "after": 0.560952, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 751.3999999761581, "before": 0.577751, "after": 0.577751, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 768, "before": 0.59426, "after": 0.59426, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 784.1999999880791, "before": 0.610559, "after": 0.610559, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 801, "before": 0.627275, "after": 0.627275, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 817.8000000119209, "before": 0.64407, "after": 0.64407, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 835.3000000119209, "before": 0.661569, "after": 0.661569, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 851.3999999761581, "before": 0.677686, "after": 0.677686, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 867.6000000238419, "before": 0.693949, "after": 0.693949, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 884.6999999880791, "before": 0.710978, "after": 0.710978, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 900.8000000119209, "before": 0.727021, "after": 0.727021, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 918.1000000238419, "before": 0.74433, "after": 0.74433, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 935.6999999880791, "before": 0.762034, "after": 0.762034, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 951.8000000119209, "before": 0.778045, "after": 0.778045, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 969.1999999880791, "before": 0.795544, "after": 0.795544, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 985, "before": 0.811225, "after": 0.811225, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1000.6999999880791, "before": 0.827061, "after": 0.827061, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1017.5, "before": 0.843785, "after": 0.843785, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1034.1000000238419, "before": 0.860393, "after": 0.860393, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1050.699999988079, "before": 0.877015, "after": 0.877015, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1067.6000000238419, "before": 0.89376, "after": 0.89376, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1084.1000000238419, "before": 0.910414, "after": 0.910414, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1318.6000000238419, "before": 2.058762, "after": 2.058762, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1334.5, "before": 2.090708, "after": 2.090708, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1351.1000000238419, "before": 2.123908, "after": 2.123908, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1368.3999999761581, "before": 2.158572, "after": 2.158572, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1384.6000000238419, "before": 2.190864, "after": 2.190864, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1401.5, "before": 2.224562, "after": 2.224562, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1418.199999988079, "before": 2.257988, "after": 2.257988, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1435.300000011921, "before": 2.292476, "after": 2.292476, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1450.6000000238419, "before": 2.322988, "after": 2.322988, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1467.6000000238419, "before": 2.356758, "after": 2.356758, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1484.6000000238419, "before": 2.39094, "after": 2.39094, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1501.8999999761581, "before": 2.425532, "after": 2.425532, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1518, "before": 2.457736, "after": 2.457736, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1534.300000011921, "before": 2.490356, "after": 2.490356, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1551.3999999761581, "before": 2.524436, "after": 2.524436, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1567.8999999761581, "before": 2.557588, "after": 2.557588, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1585.300000011921, "before": 2.592278, "after": 2.592278, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1601.300000011921, "before": 2.624364, "after": 2.624364, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1617.699999988079, "before": 2.657112, "after": 2.657112, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1634.5, "before": 2.690686, "after": 2.690686, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1651.1000000238419, "before": 2.723866, "after": 2.723866, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1668.199999988079, "before": 2.758048, "after": 2.758048, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1684.699999988079, "before": 2.790942, "after": 2.790942, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1701.6000000238419, "before": 2.824994, "after": 2.824994, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1717.800000011921, "before": 2.857306, "after": 2.857306, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1734.5, "before": 2.890862, "after": 2.890862, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1751.3999999761581, "before": 2.924516, "after": 2.924516, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1767.8999999761581, "before": 2.957498, "after": 2.957498, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1785, "before": 2.991774, "after": 2.991774, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1801.199999988079, "before": 3.024064, "after": 3.024064, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1817.800000011921, "before": 3.057186, "after": 3.057186, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1834.800000011921, "before": 3.091192, "after": 3.091192, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1851.1000000238419, "before": 3.123786, "after": 3.123786, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1868.1000000238419, "before": 3.157848, "after": 3.157848, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1884.300000011921, "before": 3.19047, "after": 3.19047, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1901, "before": 3.223686, "after": 3.223686, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "wait" } ] }, { "wall": 1918.699999988079, "before": 3.258926, "after": 3.258926, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 1935.1000000238419, "before": 3.29187, "after": 3.29187, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 1951.199999988079, "before": 3.324002, "after": 3.324002, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 1967.5, "before": 3.356732, "after": 3.356732, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 1984.199999988079, "before": 3.39014, "after": 3.39014, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 2000.800000011921, "before": 3.42331, "after": 3.42331, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 2018.5, "before": 3.45869, "after": 3.45869, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 2034.800000011921, "before": 3.491362, "after": 3.491362, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 2051, "before": 3.523772, "after": 3.523772, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 2068.600000023842, "before": 3.5591, "after": 3.5591, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] }, { "wall": 2084.300000011921, "before": 3.590198, "after": 3.590198, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.295942, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "chromium", "durationMs": 4072, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "chromium", "durationMs": 2330, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "chromium", "durationMs": 458, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.126043 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/601dd5f3-19b3-4e8d-9117-c90a52f83c4d", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "chromium", "durationMs": 487, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.121592 }, { "index": 0, "event": "stop", "time": 0.121592 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/9f10d7a4-798f-4a3b-b786-a8fe0b8e3f2b", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2657, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2443, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2341, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "chromium", "durationMs": 2317, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "chromium", "durationMs": 1336, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "chromium", "durationMs": 1435, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "chromium", "durationMs": 2393, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 602.7938842773438, "next": 602.7938842773438, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 235.5, "before": 0.026708, "after": 0.026708, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 250, "before": 0.041245, "after": 0.041245, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 267.10000002384186, "before": 0.058347, "after": 0.058347, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 283.30000001192093, "before": 0.074521, "after": 0.074521, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 300.10000002384186, "before": 0.091309, "after": 0.091309, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 317.80000001192093, "before": 0.109032, "after": 0.109032, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 333.5, "before": 0.124705, "after": 0.124705, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 349.4000000357628, "before": 0.140706, "after": 0.140706, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 366.7000000476837, "before": 0.157951, "after": 0.157951, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 383.80000001192093, "before": 0.174993, "after": 0.174993, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 399.9000000357628, "before": 0.191129, "after": 0.191129, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 417.4000000357628, "before": 0.208663, "after": 0.208663, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 433.4000000357628, "before": 0.224723, "after": 0.224723, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 450.2000000476837, "before": 0.241454, "after": 0.241454, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 466.5, "before": 0.257725, "after": 0.257725, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 483.60000002384186, "before": 0.274945, "after": 0.274945, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 500.4000000357628, "before": 0.29159, "after": 0.29159, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 516.8000000119209, "before": 0.308111, "after": 0.308111, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 533.1000000238419, "before": 0.324415, "after": 0.324415, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 550.2000000476837, "before": 0.341463, "after": 0.341463, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 566.7000000476837, "before": 0.357949, "after": 0.357949, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 583.5, "before": 0.374721, "after": 0.374721, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 599.5, "before": 0.390802, "after": 0.390802, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 616.7000000476837, "before": 0.407993, "after": 0.407993, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 634.4000000357628, "before": 0.425591, "after": 0.425591, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 651, "before": 0.442194, "after": 0.442194, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 667.3000000119209, "before": 0.458565, "after": 0.458565, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 683.3000000119209, "before": 0.474523, "after": 0.474523, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 700.4000000357628, "before": 0.491631, "after": 0.491631, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 717, "before": 0.508166, "after": 0.508166, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 733.8000000119209, "before": 0.524991, "after": 0.524991, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 749.8000000119209, "before": 0.541089, "after": 0.541089, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 767.7000000476837, "before": 0.558902, "after": 0.558902, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 782.9000000357628, "before": 0.574146, "after": 0.574146, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 799.9000000357628, "before": 0.591214, "after": 0.591214, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 817.6000000238419, "before": 0.608833, "after": 0.608833, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 833.5, "before": 0.624826, "after": 0.624826, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 850.1000000238419, "before": 0.641361, "after": 0.641361, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 866.4000000357628, "before": 0.657634, "after": 0.657634, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 883.1000000238419, "before": 0.67435, "after": 0.67435, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 899.9000000357628, "before": 0.691145, "after": 0.691145, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 917.4000000357628, "before": 0.708644, "after": 0.708644, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 933.5, "before": 0.724761, "after": 0.724761, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 949.8000000119209, "before": 0.741035, "after": 0.741035, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 966.8000000119209, "before": 0.758053, "after": 0.758053, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 982.9000000357628, "before": 0.774109, "after": 0.774109, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1000.1000000238419, "before": 0.791404, "after": 0.791404, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1017, "before": 0.808269, "after": 0.808269, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1033.9000000357628, "before": 0.82512, "after": 0.82512, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1051.4000000357628, "before": 0.842619, "after": 0.842619, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1067, "before": 0.8583, "after": 0.8583, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1082.9000000357628, "before": 0.874136, "after": 0.874136, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1100.5, "before": 0.891826, "after": 0.891826, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1116.300000011921, "before": 0.907467, "after": 0.907467, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1132.9000000357628, "before": 0.92409, "after": 0.92409, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1366.6000000238419, "before": 2.058032, "after": 2.058032, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1383.6000000238419, "before": 2.091932, "after": 2.091932, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1400.4000000357628, "before": 2.125586, "after": 2.125586, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1416.6000000238419, "before": 2.15793, "after": 2.15793, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1433.2000000476837, "before": 2.191214, "after": 2.191214, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1450.5, "before": 2.225856, "after": 2.225856, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1466.7000000476837, "before": 2.25814, "after": 2.25814, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1483.6000000238419, "before": 2.291868, "after": 2.291868, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1500.2000000476837, "before": 2.325294, "after": 2.325294, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1517.5, "before": 2.359784, "after": 2.359784, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1533.800000011921, "before": 2.392344, "after": 2.392344, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1550.4000000357628, "before": 2.425586, "after": 2.425586, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1567, "before": 2.458876, "after": 2.458876, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1584, "before": 2.492838, "after": 2.492838, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1600.9000000357628, "before": 2.526638, "after": 2.526638, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1616.5, "before": 2.55769, "after": 2.55769, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1633.4000000357628, "before": 2.5916, "after": 2.5916, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1650, "before": 2.624872, "after": 2.624872, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1667.4000000357628, "before": 2.659554, "after": 2.659554, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1683.4000000357628, "before": 2.691672, "after": 2.691672, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1699.800000011921, "before": 2.72442, "after": 2.72442, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1716.6000000238419, "before": 2.758004, "after": 2.758004, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1733.2000000476837, "before": 2.791104, "after": 2.791104, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1751.2000000476837, "before": 2.827378, "after": 2.827378, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1766.7000000476837, "before": 2.858224, "after": 2.858224, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1783.800000011921, "before": 2.8923, "after": 2.8923, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1800.7000000476837, "before": 2.92638, "after": 2.92638, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1816.7000000476837, "before": 2.958224, "after": 2.958224, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1833.5, "before": 2.991864, "after": 2.991864, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1849.6000000238419, "before": 3.023954, "after": 3.023954, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1867.1000000238419, "before": 3.059088, "after": 3.059088, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1883.300000011921, "before": 3.091478, "after": 3.091478, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1899.800000011921, "before": 3.12441, "after": 3.12441, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1916.9000000357628, "before": 3.158468, "after": 3.158468, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1933.2000000476837, "before": 3.191156, "after": 3.191156, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1950.2000000476837, "before": 3.225154, "after": 3.225154, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "wait" } ] }, { "wall": 1966.7000000476837, "before": 3.25817, "after": 3.25817, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 1983.2000000476837, "before": 3.291098, "after": 3.291098, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 1999.7000000476837, "before": 3.32421, "after": 3.32421, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2017.2000000476837, "before": 3.359176, "after": 3.359176, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2033.300000011921, "before": 3.391276, "after": 3.391276, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2049.600000023842, "before": 3.424038, "after": 3.424038, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2066.400000035763, "before": 3.457494, "after": 3.457494, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2082.900000035763, "before": 3.490616, "after": 3.490616, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2100.5, "before": 3.525968, "after": 3.525968, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2116.900000035763, "before": 3.558646, "after": 3.558646, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2133.100000023842, "before": 3.591178, "after": 3.591178, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] }, { "wall": 2150, "before": 3.62481, "after": 3.62481, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.302252, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "chromium", "durationMs": 4228, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "firefox", "durationMs": 2461, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "firefox", "durationMs": 815, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.091192 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/a1f29cd3-7eb6-46eb-b95f-6fa89cefb32c", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "firefox", "durationMs": 665, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.129594 }, { "index": 0, "event": "stop", "time": 0.129594 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8f0a53df-6b15-411e-8917-37c0190afd78", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2987, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2608, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2750, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2445, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "firefox", "durationMs": 2123, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "firefox", "durationMs": 1637, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "firefox", "durationMs": 2618, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 602.7999877929688, "next": 602.7999877929688, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 394, "before": 0.008572, "after": 0.008572, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 411, "before": 0.008572, "after": 0.008572, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 428, "before": 0.049185, "after": 0.049185, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 445, "before": 0.049185, "after": 0.049185, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 461, "before": 0.049185, "after": 0.049185, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 478, "before": 0.091367, "after": 0.091367, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 494, "before": 0.091367, "after": 0.091367, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 511, "before": 0.131691, "after": 0.131691, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 527, "before": 0.131691, "after": 0.131691, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 545, "before": 0.131691, "after": 0.131691, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 561, "before": 0.172888, "after": 0.172888, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 578, "before": 0.172888, "after": 0.172888, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 594, "before": 0.213061, "after": 0.213061, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 612, "before": 0.213061, "after": 0.213061, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 628, "before": 0.253323, "after": 0.253323, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 644, "before": 0.253323, "after": 0.253323, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 661, "before": 0.253323, "after": 0.253323, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 677, "before": 0.293844, "after": 0.293844, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 694, "before": 0.293844, "after": 0.293844, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 711, "before": 0.334258, "after": 0.334258, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 728, "before": 0.334258, "after": 0.334258, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 744, "before": 0.334258, "after": 0.334258, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 761, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 779, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 795, "before": 0.417383, "after": 0.417383, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 812, "before": 0.417383, "after": 0.417383, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 829, "before": 0.417383, "after": 0.417383, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 844, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 861, "before": 0.458332, "after": 0.458332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 878, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 895, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 911, "before": 0.499999, "after": 0.499999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 928, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 945, "before": 0.541666, "after": 0.541666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 961, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 978, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 995, "before": 0.583332, "after": 0.583332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1012, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1028, "before": 0.624999, "after": 0.624999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1045, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1061, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1078, "before": 0.666666, "after": 0.666666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1094, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1111, "before": 0.708332, "after": 0.708332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1128, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1144, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1161, "before": 0.749999, "after": 0.749999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1178, "before": 0.790551, "after": 0.790551, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1195, "before": 0.790551, "after": 0.790551, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1211, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1228, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1245, "before": 0.833332, "after": 0.833332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1262, "before": 0.874069, "after": 0.874069, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1278, "before": 0.874069, "after": 0.874069, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1295, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1311, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1329, "before": 0.916666, "after": 0.916666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1495, "before": 2.000062, "after": 2.000062, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1512, "before": 2.041666, "after": 2.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1528, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1545, "before": 2.083332, "after": 2.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1562, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1579, "before": 2.166666, "after": 2.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1596, "before": 2.208332, "after": 2.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1612, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1629, "before": 2.249999, "after": 2.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1645, "before": 2.291666, "after": 2.291666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1661, "before": 2.333332, "after": 2.333332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1678, "before": 2.374999, "after": 2.374999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1695, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1711, "before": 2.416666, "after": 2.416666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1728, "before": 2.458332, "after": 2.458332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1745, "before": 2.499999, "after": 2.499999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1762, "before": 2.541666, "after": 2.541666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1779, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1796, "before": 2.583332, "after": 2.583332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1813, "before": 2.624999, "after": 2.624999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1829, "before": 2.666666, "after": 2.666666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1845, "before": 2.708332, "after": 2.708332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1862, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1878, "before": 2.749999, "after": 2.749999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1895, "before": 2.791666, "after": 2.791666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1912, "before": 2.833332, "after": 2.833332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1929, "before": 2.874999, "after": 2.874999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1945, "before": 2.916666, "after": 2.916666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1962, "before": 2.958332, "after": 2.958332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1979, "before": 2.958332, "after": 2.958332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 1995, "before": 2.999999, "after": 2.999999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 2012, "before": 3.041666, "after": 3.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 2029, "before": 3.083332, "after": 3.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 2045, "before": 3.083332, "after": 3.083332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 2062, "before": 3.124999, "after": 3.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 2079, "before": 3.166666, "after": 3.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "wait" } ] }, { "wall": 2095, "before": 3.208332, "after": 3.208332, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2112, "before": 3.249999, "after": 3.249999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2130, "before": 3.291427, "after": 3.291427, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2146, "before": 3.291427, "after": 3.291427, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2162, "before": 3.332417, "after": 3.332417, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2179, "before": 3.372611, "after": 3.372611, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2196, "before": 3.413454, "after": 3.413454, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2212, "before": 3.454571, "after": 3.454571, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2229, "before": 3.454571, "after": 3.454571, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2247, "before": 3.495006, "after": 3.495006, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2262, "before": 3.535452, "after": 3.535452, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2279, "before": 3.576684, "after": 3.576684, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] }, { "wall": 2297, "before": 3.617044, "after": 3.617044, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.249999, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "firefox", "durationMs": 4553, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "firefox", "durationMs": 2536, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "firefox", "durationMs": 635, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.12931 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/bfa91bcd-be2f-4c95-b86a-38fdefe13574", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "firefox", "durationMs": 724, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.127259 }, { "index": 0, "event": "stop", "time": 0.127259 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/baac5548-4832-4c4c-8e35-7b8b06f23f7d", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2981, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2644, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2753, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "firefox", "durationMs": 2488, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "firefox", "durationMs": 2045, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "firefox", "durationMs": 1565, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "firefox", "durationMs": 2652, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 602.7999877929688, "next": 602.7999877929688, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 409, "before": 0.007043, "after": 0.007043, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 426, "before": 0.007043, "after": 0.007043, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 442, "before": 0.047447, "after": 0.047447, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 459, "before": 0.047447, "after": 0.047447, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 475, "before": 0.047447, "after": 0.047447, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 493, "before": 0.088696, "after": 0.088696, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 509, "before": 0.088696, "after": 0.088696, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 526, "before": 0.129415, "after": 0.129415, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 543, "before": 0.129415, "after": 0.129415, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 559, "before": 0.169573, "after": 0.169573, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 576, "before": 0.169573, "after": 0.169573, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 592, "before": 0.169573, "after": 0.169573, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 609, "before": 0.210857, "after": 0.210857, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 626, "before": 0.210857, "after": 0.210857, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 643, "before": 0.251096, "after": 0.251096, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 660, "before": 0.251096, "after": 0.251096, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 676, "before": 0.251096, "after": 0.251096, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 693, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 710, "before": 0.291666, "after": 0.291666, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 726, "before": 0.334332, "after": 0.334332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 744, "before": 0.334332, "after": 0.334332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 759, "before": 0.334332, "after": 0.334332, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 775, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 793, "before": 0.374999, "after": 0.374999, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 809, "before": 0.41594, "after": 0.41594, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 826, "before": 0.41594, "after": 0.41594, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 843, "before": 0.41594, "after": 0.41594, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 859, "before": 0.456108, "after": 0.456108, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 876, "before": 0.456108, "after": 0.456108, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 893, "before": 0.496281, "after": 0.496281, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 909, "before": 0.496281, "after": 0.496281, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 926, "before": 0.536452, "after": 0.536452, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 943, "before": 0.536452, "after": 0.536452, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 960, "before": 0.536452, "after": 0.536452, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 976, "before": 0.576857, "after": 0.576857, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 993, "before": 0.576857, "after": 0.576857, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1009, "before": 0.617363, "after": 0.617363, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1026, "before": 0.617363, "after": 0.617363, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1043, "before": 0.617363, "after": 0.617363, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1059, "before": 0.657748, "after": 0.657748, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1077, "before": 0.657748, "after": 0.657748, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1093, "before": 0.698341, "after": 0.698341, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1109, "before": 0.698341, "after": 0.698341, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1126, "before": 0.698341, "after": 0.698341, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1142, "before": 0.738592, "after": 0.738592, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1159, "before": 0.738592, "after": 0.738592, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1177, "before": 0.778803, "after": 0.778803, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1193, "before": 0.778803, "after": 0.778803, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1209, "before": 0.819264, "after": 0.819264, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1226, "before": 0.819264, "after": 0.819264, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1243, "before": 0.819264, "after": 0.819264, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1259, "before": 0.859615, "after": 0.859615, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1276, "before": 0.859615, "after": 0.859615, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1293, "before": 0.900074, "after": 0.900074, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1309, "before": 0.900074, "after": 0.900074, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1328, "before": 0.900074, "after": 0.900074, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1345, "before": 0.940379, "after": 0.940379, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1510, "before": 2.00006, "after": 2.00006, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1526, "before": 2.041666, "after": 2.041666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1543, "before": 2.082755, "after": 2.082755, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1560, "before": 2.082755, "after": 2.082755, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1577, "before": 2.124999, "after": 2.124999, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1593, "before": 2.166666, "after": 2.166666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1609, "before": 2.207892, "after": 2.207892, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1627, "before": 2.249088, "after": 2.249088, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1644, "before": 2.290002, "after": 2.290002, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1660, "before": 2.290002, "after": 2.290002, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1676, "before": 2.330662, "after": 2.330662, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1694, "before": 2.371182, "after": 2.371182, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1710, "before": 2.411494, "after": 2.411494, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "wait" } ] }, { "wall": 1727, "before": 2.452702, "after": 2.452702, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1743, "before": 2.452702, "after": 2.452702, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1760, "before": 2.493385, "after": 2.493385, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1776, "before": 2.534337, "after": 2.534337, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1794, "before": 2.574772, "after": 2.574772, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1810, "before": 2.615084, "after": 2.615084, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1826, "before": 2.65539, "after": 2.65539, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1843, "before": 2.65539, "after": 2.65539, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1860, "before": 2.696335, "after": 2.696335, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1877, "before": 2.736909, "after": 2.736909, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1895, "before": 2.777629, "after": 2.777629, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" } ] }, { "wall": 1910, "before": 2.81879, "after": 2.81879, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 1927, "before": 2.81879, "after": 2.81879, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 1944, "before": 2.859895, "after": 2.859895, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 1960, "before": 2.900599, "after": 2.900599, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 1977, "before": 2.941677, "after": 2.941677, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 1993, "before": 2.982401, "after": 2.982401, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2011, "before": 3.023225, "after": 3.023225, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2027, "before": 3.023225, "after": 3.023225, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2044, "before": 3.064223, "after": 3.064223, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2060, "before": 3.104946, "after": 3.104946, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2077, "before": 3.145078, "after": 3.145078, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2094, "before": 3.186021, "after": 3.186021, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "wait" } ] }, { "wall": 2110, "before": 3.226477, "after": 3.226477, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2127, "before": 3.226477, "after": 3.226477, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2143, "before": 3.267558, "after": 3.267558, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2160, "before": 3.308393, "after": 3.308393, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2178, "before": 3.349575, "after": 3.349575, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2194, "before": 3.38981, "after": 3.38981, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2211, "before": 3.38981, "after": 3.38981, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2227, "before": 3.430954, "after": 3.430954, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2243, "before": 3.471493, "after": 3.471493, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2260, "before": 3.511971, "after": 3.511971, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2277, "before": 3.553164, "after": 3.553164, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2293, "before": 3.553164, "after": 3.553164, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2310, "before": 3.594176, "after": 3.594176, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] }, { "wall": 2327, "before": 3.634823, "after": 3.634823, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5, "state": "emit" }, { "id": "appended", "time": 3.277629, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "firefox", "durationMs": 4437, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "webkit", "durationMs": 3922, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "webkit", "durationMs": 1738, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.1411414 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/8a9ddc76-60b6-4b13-a290-90d9e1982c81", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "webkit", "durationMs": 1697, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.1457316 }, { "index": 0, "event": "stop", "time": 0.145779 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/cee08f5f-60ee-43d6-9d8b-d2bcc93bd283", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4351, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3854, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4215, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3498, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "webkit", "durationMs": 2408, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "webkit", "durationMs": 3121, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "webkit", "durationMs": 4145, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 617.2000122070312, "next": 617.2000122070312, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 1054, "before": 0.0228873, "after": 0.0229379, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1100, "before": 0.0693917, "after": 0.0694077, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1131, "before": 0.1002055, "after": 0.1002208, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1177, "before": 0.1462612, "after": 0.1462737, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1241, "before": 0.2097266, "after": 0.2097338, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1285, "before": 0.2544607, "after": 0.2544722, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1318, "before": 0.2868073, "after": 0.2868385, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1348, "before": 0.3166545, "after": 0.3166794, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1393, "before": 0.3623165, "after": 0.3623328, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1424, "before": 0.3925826, "after": 0.3926047, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1471, "before": 0.4394969, "after": 0.4395227, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1518, "before": 0.4873621, "after": 0.4873729, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1549, "before": 0.5177579, "after": 0.5177702, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1596, "before": 0.5648463, "after": 0.5648637, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1660, "before": 0.6284954, "after": 0.6285142, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1703, "before": 0.6718221, "after": 0.671831, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1749, "before": 0.7182764, "after": 0.7182861, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1795, "before": 0.7635975, "after": 0.7636117, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1856, "before": 0.8249366, "after": 0.8249459, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1858, "before": 0.8268354, "after": 0.8268454, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1859, "before": 0.8280751, "after": 0.8280813, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2332, "before": 2.0400136, "after": 2.0400314, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "wait" } ] }, { "wall": 2379, "before": 2.1346078, "after": 2.1346342, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "wait" } ] }, { "wall": 2425, "before": 2.226155, "after": 2.2262092, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "wait" } ] }, { "wall": 2471, "before": 2.3174384, "after": 2.3174666, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "wait" } ] }, { "wall": 2516, "before": 2.408291, "after": 2.4083306, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "wait" } ] }, { "wall": 2547, "before": 2.4707746, "after": 2.4708086, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" } ] }, { "wall": 2579, "before": 2.5343928, "after": 2.534417, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" } ] }, { "wall": 2608, "before": 2.592877, "after": 2.5928988, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" } ] }, { "wall": 2640, "before": 2.6564802, "after": 2.6565346, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" } ] }, { "wall": 2685, "before": 2.7468996, "after": 2.7469786, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" } ] }, { "wall": 2731, "before": 2.8381784, "after": 2.8382078, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" } ] }, { "wall": 2777, "before": 2.9304642, "after": 2.930489, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "wait" } ] }, { "wall": 2839, "before": 3.0541652, "after": 3.0542004, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "wait" } ] }, { "wall": 2883, "before": 3.1424126, "after": 3.1424544, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "wait" } ] }, { "wall": 2929, "before": 3.234471, "after": 3.2346206, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "wait" } ] }, { "wall": 2990, "before": 3.3562606, "after": 3.356313, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "wait" } ] }, { "wall": 3037, "before": 3.4504656, "after": 3.4504892, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3068, "before": 3.5121512, "after": 3.5121736, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3114, "before": 3.6049912, "after": 3.6050122, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3162, "before": 3.6996648, "after": 3.699698, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3223, "before": 3.8211644, "after": 3.8211812, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3268, "before": 3.9124788, "after": 3.9125026, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3314, "before": 4.0041666, "after": 4.0041886, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3377, "before": 4.1305742, "after": 4.1305928, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3422, "before": 4.219931, "after": 4.219959, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3467, "before": 4.3107776, "after": 4.3108004, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3529, "before": 4.4336204, "after": 4.4336678, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3531, "before": 4.4389278, "after": 4.4389514, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] }, { "wall": 3533, "before": 4.4423304, "after": 4.4423458, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.5012244, "state": "emit" }, { "id": "appended", "time": 3.4145138, "state": "emit" } ] } ] } ] }, { "title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "webkit", "durationMs": 6333, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "published", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback", "browser": "webkit", "durationMs": 3961, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-numeric-compatibility", "value": { "expected": 0.5, "inputTime": 0.5, "queueTime": 0.5, "isNaN": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener", "browser": "webkit", "durationMs": 1635, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "destroy", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": true, "events": [ { "index": 0, "event": "error", "time": 0.21373 }, { "index": 0, "event": "stop", "time": 0 }, { "index": 0, "event": "destroy", "time": 0 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/c5d5cb5e-6993-41a8-a80d-841e352f1bad", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener", "browser": "webkit", "durationMs": 1855, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-recovery-reentry", "value": { "action": "stop", "sameOwner": true, "rowState": "stop", "isStop": true, "isDestroy": false, "events": [ { "index": 0, "event": "error", "time": 0.2149887 }, { "index": 0, "event": "stop", "time": 0.2150355 } ], "workers": [ { "url": "blob:http://127.0.0.1:8084/eb5b11b0-b297-4d8c-a0b4-f77a2bd67f2c", "requests": [ { "type": "getDanmuTop", "target": { "mode": 1, "height": 23, "speed": 90 }, "visibles": [], "antiOverlap": true, "clientWidth": 640, "clientHeight": 360, "marginBottom": 10, "marginTop": 10, "id": 1 } ], "replies": [ { "id": 1, "result": 10 } ], "terminated": 1, "errors": [ "controlled track failure" ] } ], "fault": "Actual video/DOM/track Worker; dispatch an explicit native ErrorEvent and inject a throwing createWorker recovery seam. This does not claim a real CSP or browser Worker construction failure." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4441, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "pause", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3752, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "reset", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 4229, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "seek", "before": { "requests": [ 1 ], "visible": [ "fresh-after-cancel" ] }, "after": [ "fresh-after-cancel" ], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work", "browser": "webkit", "durationMs": 3748, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-native-cancel", "value": { "action": "destroy", "before": { "requests": [ 0 ], "visible": [] }, "after": [], "cancelledSource": "An unresolved user beforeVisible Promise; native RAF, Worker and media remain active." } } ] }, { "title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible", "browser": "webkit", "durationMs": 2326, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "modes", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] }, { "title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order", "browser": "webkit", "durationMs": 3119, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "density", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-dense-tracks", "value": [ { "id": "dense-0", "mode": "1", "state": "stop", "text": "TRACK 0", "x": 285, "y": 10, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-1", "mode": "1", "state": "stop", "text": "TRACK 1", "x": 285, "y": 33, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-2", "mode": "1", "state": "stop", "text": "TRACK 2", "x": 285, "y": 56, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-3", "mode": "1", "state": "stop", "text": "TRACK 3", "x": 285, "y": 79, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-4", "mode": "1", "state": "stop", "text": "TRACK 4", "x": 285, "y": 102, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" }, { "id": "dense-5", "mode": "1", "state": "stop", "text": "TRACK 5", "x": 285, "y": 125, "width": 70, "height": 22.5, "visibility": "visible", "display": "block", "transition": "", "opacity": "1" } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics", "browser": "webkit", "durationMs": 4584, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "playback", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } }, { "name": "danmuku-pool-and-rate", "value": { "frozen": { "left": 587.1875, "next": 587.1875, "state": "stop" }, "reused": { "poolReused": true, "visibleSameNode": true, "original": { "id": "reused", "state": "emit", "visibility": "visible", "text": "REUSED" }, "extraNodes": [], "transition": "4s", "rate": 2 }, "loadWithoutArgument": "replaces from original empty option; explicit array load appends" } }, { "name": "danmuku-native-eligibility", "value": [ { "wall": 993, "before": 0.0130648, "after": 0.0131173, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1035, "before": 0.0549802, "after": 0.0549962, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1065, "before": 0.0852038, "after": 0.0852179, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1111, "before": 0.1317353, "after": 0.1317466, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1142, "before": 0.1621851, "after": 0.1621957, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1174, "before": 0.1947158, "after": 0.1947303, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1221, "before": 0.2412238, "after": 0.2412594, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1252, "before": 0.2726183, "after": 0.2726269, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1297, "before": 0.3173417, "after": 0.3173531, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1328, "before": 0.3478769, "after": 0.3478974, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1375, "before": 0.3952643, "after": 0.3952887, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1421, "before": 0.4409978, "after": 0.4410155, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [ "moving" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" } ] }, { "wall": 1467, "before": 0.4869792, "after": 0.4869909, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1528, "before": 0.5480809, "after": 0.548092, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1558, "before": 0.5783289, "after": 0.5783385, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1604, "before": 0.6246278, "after": 0.6246348, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1636, "before": 0.6561986, "after": 0.6562097, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1681, "before": 0.7013863, "after": 0.7013971, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1727, "before": 0.7470314, "after": 0.7470497, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1774, "before": 0.7941729, "after": 0.7941857, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1834, "before": 0.8540455, "after": 0.8540573, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1865, "before": 0.8856981, "after": 0.8857096, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1910, "before": 0.9299703, "after": 0.9299837, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1940, "before": 0.9605552, "after": 0.9605703, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 1986, "before": 1.0060919, "after": 1.0061197, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2017, "before": 1.0372431, "after": 1.0372547, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2064, "before": 1.0840408, "after": 1.084052, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2110, "before": 1.130107, "after": 1.1301193, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2142, "before": 1.1619106, "after": 1.1619295, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2144, "before": 1.1647283, "after": 1.1647427, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2146, "before": 1.1663142, "after": 1.1663236, "playing": true, "paused": false, "seeking": false, "rate": 1, "stop": false, "generation": 3, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "emit" } ] }, { "wall": 2663, "before": 2.1330718, "after": 2.1331416, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "wait" } ] }, { "wall": 2723, "before": 2.2532162, "after": 2.253244, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "wait" } ] }, { "wall": 2754, "before": 2.3153652, "after": 2.3154008, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "wait" } ] }, { "wall": 2801, "before": 2.4089448, "after": 2.4090024, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "reused" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "wait" } ] }, { "wall": 2831, "before": 2.470887, "after": 2.470951, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 2878, "before": 2.564194, "after": 2.5642124, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 2909, "before": 2.6264638, "after": 2.6264914, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 2954, "before": 2.716301, "after": 2.7163208, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 2985, "before": 2.7779892, "after": 2.7780118, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 3031, "before": 2.8703986, "after": 2.8704264, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 3076, "before": 2.9598136, "after": 2.959838, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 3107, "before": 3.021565, "after": 3.0215818, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" } ] }, { "wall": 3139, "before": 3.0859154, "after": 3.0859368, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "wait" } ] }, { "wall": 3183, "before": 3.1738206, "after": 3.1738396, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "wait" } ] }, { "wall": 3213, "before": 3.234496, "after": 3.234554, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "wait" } ] }, { "wall": 3259, "before": 3.3260314, "after": 3.3260916, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "wait" } ] }, { "wall": 3289, "before": 3.3864202, "after": 3.3864458, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "wait" } ] }, { "wall": 3335, "before": 3.4788946, "after": 3.4789168, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [ "appended" ], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "wait" } ] }, { "wall": 3382, "before": 3.5711118, "after": 3.5711542, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3428, "before": 3.6634264, "after": 3.6634484, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3474, "before": 3.7565586, "after": 3.756593, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3505, "before": 3.817457, "after": 3.8174768, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3535, "before": 3.8776714, "after": 3.8776856, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3582, "before": 3.9712334, "after": 3.9712518, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3613, "before": 4.0334472, "after": 4.0334672, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3675, "before": 4.15878, "after": 4.1588092, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3736, "before": 4.2795264, "after": 4.2795428, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3835, "before": 4.477656, "after": 4.4777094, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3890, "before": 4.5877412, "after": 4.5877646, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3912, "before": 4.6310494, "after": 4.6310694, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] }, { "wall": 3913, "before": 4.634418, "after": 4.6344324, "playing": true, "paused": false, "seeking": false, "rate": 2, "stop": false, "generation": 6, "fault": false, "ready": [], "queue": [ { "id": "moving", "time": 0.5, "state": "wait" }, { "id": "reused", "time": 2.503317, "state": "emit" }, { "id": "appended", "time": 3.5450142, "state": "emit" } ] } ] } ] }, { "title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction", "browser": "webkit", "durationMs": 6606, "observations": [ { "name": "danmuku-browser-inputs", "value": { "core": "candidate", "plugin": "artplayer-plugin-danmuku", "format": "candidate", "artifact": "D:\\github\\ArtPlayer\\packages\\artplayer-plugin-danmuku\\dist\\artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "media": "/test/pattern.mp4", "scenario": "settings", "worker": "Native Blob Worker, only constructor/message/termination observation; no Worker responses, media clocks, layout or RAF mocked", "heatmap": false } } ] } ] } ], "sizes": [ { "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba", "beforeBytes": 59100, "afterBytes": 64909, "beforeGzipBytes": 16799, "afterGzipBytes": 18728 }, { "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0", "beforeBytes": 60243, "afterBytes": 66169, "beforeGzipBytes": 17160, "afterGzipBytes": 19167 }, { "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs", "sha256": "964870b2f5f5bb282b5aec5fd5a793243c94ec1cfb36dadeb0fa410ce1345457", "beforeBytes": 87065, "afterBytes": 97753, "beforeGzipBytes": 20852, "afterGzipBytes": 23277 } ], "checks": [ { "file": "refactor/.cache/danmuku05-build-final.log", "sha256": "71e8f8b0a553acf7e227b7d0225eb2bece3beeef7d9c3ad2cf36ffd4d8995976" }, { "file": "refactor/.cache/danmuku05-lint-final.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, { "file": "refactor/.cache/danmuku05-frozen-install.log", "sha256": "c7cb9ac14616b0fc30f316ac79623c2a16e66e74bb7eb6d3e13c34c2f9197228" }, { "file": "refactor/.cache/danmuku05-toolchain.log", "sha256": "922a33e7f2330c880fd8fcaeb321618f116f6d048b7202cc977b163915ce94e4" }, { "file": "refactor/.cache/danmuku05-typecheck-complete.log", "sha256": "2b24379004c1f3ecba09c64eea5f02533c572273a5753017fea3be6d96a4878e" } ], "nativeBefore": { "file": "refactor/.cache/danmuku05-browser-before/report.json", "sha256": "4b7c22630144eef4834d316e9175eb05e7faa160973afcd40d351235a4e4fe64", "tests": 6, "failed": 6, "explanation": "Actual task04 main, two cores, Chromium: retained setting DOM, late clearing/lock, active send timer and retained renderer nodes." }, "initialMatrix": { "file": "refactor/.cache/danmuku05-browser-source-initial-matrix/report.json", "sha256": "f11721c3b599ab91c5d55f33ea3599d9da8424d7e6a779dd08cdede8960274e5", "passed": 128, "failed": 4, "explanation": "Two WebKit timer cases counted unrelated one-second timers; observe the send continuation timer instead. Two lifecycle cases did not reach visibility eligibility; now explicitly seed ready only for cancellation/recovery cases. Original native clock/geometry tests remain. LOAD-01 tracks real frame/window evidence for task07." }, "fixtureCorrection": { "file": "refactor/.cache/danmuku05-browser-source-ready-initial/report.json", "sha256": "c4490f9c55e6bd3bb0db82e45841c41e792d86efc0937844a31b876da6b5ec43", "passed": 125, "failed": 7, "explanation": "Seeding the obsolete item as ready changed its post-seek eligibility, reentering the unresolved gate (six failures); restore timestamp-based old item at native 0.25 playbackRate. NaN clock case also uses that real rate. Only recovery/new continuation items seed ready. No production change or timeout increase." }, "targetedFixtureValidation": { "file": "refactor/.cache/danmuku05-browser-fixture-final/report.json", "sha256": "20cd361d46b31577a0c3a607601604f9a6dccab181733ef36873a98057c3a550", "tests": 42 }, "mainParallelAttempt": { "file": "refactor/.cache/danmuku05-browser-main-initial-matrix/report.json", "sha256": "4f2d60e48b2ec7b742e7c7709c9fd39fbf0e809413caad1d73c75a20848e6849", "passed": 131, "failed": 1, "workers": 3, "explanation": "Published-core WebKit pool/rate case never entered beforeVisible for reused, with no corresponding Worker request. The exact main matrix is rerun serially without assertion, timeout or production changes. LOAD-01 remains open: the original failure has no sampled scheduler/media clock proof and a later pass does not establish load stability." }, "mainSerialAttempt": { "file": "refactor/.cache/danmuku05-browser-main-serial-before-clear/report.json", "sha256": "ae1134ea44a7b84a5bd860d84ac43cdeecf1cc10fab0b3954eea65950eb655ef", "passed": 128, "failed": 4, "workers": 1, "explanation": "Both pool/rate cases passed. Four different WebKit failures: two initial media-readiness timeouts, one context teardown timeout, one page fixture setup timeout with null page. These are retained separately from the earlier missed eligibility, without claiming a proven host root cause. This artifact predates the moved-node clear fix." }, "movedNodeClear": { "unitRed": { "file": "refactor/.cache/danmuku05-renderer-clear-red.log", "sha256": "239867dff2572164ebfccd852379f62c3dcb6d02e1cac693c149fb8c2758ac37" }, "unitGreen": { "file": "refactor/.cache/danmuku05-renderer-clear-final.log", "sha256": "16cdb9dd05759047a81dad0d697c4d422d0622abfb560fcfa519b025813a013e" }, "nativeRed": { "file": "refactor/.cache/danmuku05-browser-clear-red/report.json", "sha256": "b5a78d381e47cced94cc1a8f8f5e915fc964513d6838097f5123509d45808c0e" }, "explanation": "Final review reproduced moved owned node lost by clear() before destroy(). Clear now releases owned nodes before retaining old whole-layer clearing. Unit regression also preserves unrelated external nodes. Native replacement regression uses public load() and joins the final three-format matrix." }, "resourceFixtureCorrection": { "file": "refactor/.cache/danmuku05-browser-source-clear-final/report.json", "sha256": "ba15198f2c609084a39ee1ad0627bf7fee5b0f91016d887313d4450bc29ff176", "passed": 137, "failed": 1, "explanation": "New moved-node resource case never observed its initial MOVED row in candidate-core WebKit; no cleanup assertion ran. Both renderer resource cases now explicitly establish eligible state, then require native Worker and visible DOM before public cleanup. Original native timing/rate/track tests remain, with bounded readys getter observation added to rate test." }, "resourceFixtureValidation": { "file": "refactor/.cache/danmuku05-browser-resource-fixture/report.json", "sha256": "2d7448f875c7654d8a1ede2fbdf3e415f895ae2d16d542a9617fd59855825858", "tests": 18, "explanation": "Two renderer cleanup cases and native pause/seek/rate case, both cores and all three engines, no retries." }, "additionalEvidence": [ { "file": "refactor/.cache/danmuku05-heatmap-first.log", "sha256": "a800f5a6b24e5ddca48f6e7088ce2287b9d1e9f402fe7e2d667c7d2320119103" }, { "file": "refactor/.cache/danmuku05-heatmap-cap-red.log", "sha256": "e53c44bbb336fb40f1895064e8ced81f1e1dc466f0e4a9b73353b0f0aaaca9c9" }, { "file": "refactor/.cache/danmuku05-heatmap-final.log", "sha256": "5450b739b0b9b7e8cead9543346b3093326abeb0469f093367fb20f1bd211e05" }, { "file": "refactor/.cache/danmuku05-renderer-initial.log", "sha256": "5b97fb151f5ec1ff495c0fb4a7b047de52a4ef0bdbc30f7cc6cc6db114cb818c" }, { "file": "refactor/.cache/danmuku05-existing-initial.log", "sha256": "926daed6b25518f616088095519656e03798e434216656d0986ec7a26eb930be" }, { "file": "refactor/.cache/danmuku05-setting-source-check.log", "sha256": "bda4206a9e6b3194f754bb53d3c2ec5c2fe54c7dc2d63ec1b8db18a3090b9f92" }, { "file": "refactor/.cache/danmuku05-setting-final-review.log", "sha256": "1f33d21bcb1d2ff1a654deafa9ded7e78e8af71a25810f51d84359b4c55b3480" } ], "initialManualDemo": { "file": "refactor/.cache/danmuku05-iab-demo.json", "sha256": "d5414e26d8de8f9d589faff2f8f80db5de28dd399e693d4281f852228a0858d0", "url": "http://localhost:8082/?libs=./uncompiled/artplayer-plugin-danmuku/index.js&example=danmuku", "browser": "Codex in-app browser", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36", "coreVersion": "5.4.1", "scenario": "Existing docs/assets/example/danmuku.js with local video.mp4 and danmuku.xml, built by yarn dev artplayer-plugin-danmuku --no-open", "observations": [ { "action": "load", "visibleTime": "00:00 / 01:30", "events": [ "loadedmetadata", "loadeddata", "canplay", "canplaythrough" ] }, { "action": "click play", "events": [ "play", "playing" ], "visibleDanmuku": true }, { "action": "read media before pause", "time": 46.89784, "paused": false, "videoWidth": 640 }, { "action": "click pause", "visibleTime": "00:46 / 01:30", "event": "pause" }, { "action": "send local test text", "text": "Danmuku refactor smoke", "beforeEmitLogged": true, "time": 46.911033 }, { "action": "later observation", "time": 46.911033, "paused": true, "videoWidth": 640, "input": "", "send": "发送", "gradient": "heatmap-solids" } ], "limits": [ "Manual developer smoke with actual local media; no device or release-package acceptance.", "Read-only Playwright evaluation could not access navigator. One CDP evaluation had a syntax error, then the corrected read-only command returned the recorded data; these are inspection mistakes, not application errors.", "Lock countdown timing and multi-instance cleanup are asserted in the committed automated browser suite, not inferred from this manual smoke." ], "devArtifact": { "file": "refactor/.cache/danmuku05-iab-demo-artifact-before-clear.js", "sha256": "56ceea16bde2ef07543dca8b5e03c943358c044cc92de72261a7353943185f02" }, "scope": "Initial docs smoke preceded the moved-node clear correction." }, "manualDemo": { "file": "refactor/.cache/danmuku05-iab-demo-final.json", "sha256": "82c141e5f113365bd4987ff84494405e623a4531c6546d7f3628d1853cd488f9", "url": "http://localhost:8082/?libs=./uncompiled/artplayer-plugin-danmuku/index.js&example=danmuku", "browser": "Codex in-app browser", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36", "coreVersion": "5.4.1", "buildLog": "refactor/.cache/danmuku05-dev-clear-final.log", "workflow": "Reloaded after unit tests ended; clicked play, filled actual example input and clicked send, observed native time and comments, clicked pause.", "observations": { "sentText": "Final resource verification", "beforeEmitMediaTime": 0.267138, "playingUiTime": "00:47 / 01:30", "commentsVisible": true, "pausedTime": 53.404841, "laterPausedTime": 53.404841, "paused": true, "videoWidth": 640, "input": "", "sendButton": "发送", "pageWarningAndErrorLogs": [] }, "inspectionLimitations": [ "An earlier accessibility index became stale after development reload; reacquired current page controls.", "A read-only video locator evaluation timed out while the actual page kept playing; used supported CDP read-only Runtime.evaluate for final native media readings.", "Real docs demo smoke is not installed npm package or physical-device acceptance. No external publishing or sending service was involved." ], "devArtifact": { "file": "docs/uncompiled/artplayer-plugin-danmuku/index.js", "sha256": "6a561bee80534cfe7bb532e165a68027aeee17b2fba044ba8b8a09e3ad2e3f0f" } }, "dependency": { "name": "linkedom", "version": "0.18.13", "workspace": "root", "category": "devDependencies", "purpose": "Actual HTML template parsing, DOM selectors and events for controlled Setting/renderer tests; not shipped in player packages.", "source": "https://github.com/WebReflection/linkedom", "limits": "Not a complete browser or layout engine. Controlled rectangles/timers and real published core utils are explicit in helper." }, "inputs": [ { "path": "docs/assets/example/danmuku.js", "algorithm": "sha256-lf", "sha256": "3f91461e2466f13ed4e72e6bd69986461192d8c6a9ca866fa347599f6958e021" }, { "path": "package.json", "algorithm": "sha256-lf", "sha256": "cd3e4cdd96c871bac021883509a4798e8cf0e5cd84cce1a7023a7e6891832ee7" }, { "path": "packages/artplayer-plugin-danmuku/ARCHITECTURE.md", "algorithm": "sha256-lf", "sha256": "6365b0e0303d8b9b614807660d1e8a86445efa826ffddfa0fce7474eca89bbb9" }, { "path": "packages/artplayer-plugin-danmuku/README.md", "algorithm": "sha256-lf", "sha256": "b86a8837ec2d051f0c0526dec3ce38f60151eeb9f952dc004c4de052c3b5759e" }, { "path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js", "algorithm": "sha256-lf", "sha256": "f60047d3ba6a47b7e4e65813e5c26bf7bebcc79addfbb36829d5bba0a57cfeba" }, { "path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js", "algorithm": "sha256-lf", "sha256": "249f576e256457c2e47e945b9eb18f78877b658163b266c1153028d1f46d30b0" }, { "path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs", "algorithm": "sha256-lf", "sha256": "964870b2f5f5bb282b5aec5fd5a793243c94ec1cfb36dadeb0fa410ce1345457" }, { "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": "108fc0002f7dd8f1ebd1773758bcc0f951aa9eed58482f3f205af47babf259af" }, { "path": "packages/artplayer-plugin-danmuku/src/heatmap-geometry.js", "algorithm": "sha256-lf", "sha256": "5713ad838160609f24130120e625db327814eb877fcce32e74638daca1d64361" }, { "path": "packages/artplayer-plugin-danmuku/src/heatmap-sampling.js", "algorithm": "sha256-lf", "sha256": "f78ef3502ea695ff82f2ba7cb4c49e7c517c9d7d86713848700a5a392d7e769a" }, { "path": "packages/artplayer-plugin-danmuku/src/heatmap.js", "algorithm": "sha256-lf", "sha256": "8be1e5c9d1d291500284b422eb9bf3a9c21918e6022317486fb73ac8f28bffa3" }, { "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": "01b12cc2af1df564157348bb1bc53669bd5f01215138a433e4301c2caa632f16" }, { "path": "packages/artplayer-plugin-danmuku/src/input.js", "algorithm": "sha256-lf", "sha256": "6740c347018290de2a8d90925148f63ec005d294426ed8d3192e69313171b8fc" }, { "path": "packages/artplayer-plugin-danmuku/src/queue.js", "algorithm": "sha256-lf", "sha256": "d566e312686fa486daee0c1618766c41cfb074c04bf872b7bf1bb783a7c57595" }, { "path": "packages/artplayer-plugin-danmuku/src/renderer.js", "algorithm": "sha256-lf", "sha256": "db793c1c2bfef3b1efce777ffaa9d4ded04b58a734ff52c1e95eb15ce5517f61" }, { "path": "packages/artplayer-plugin-danmuku/src/scheduler.js", "algorithm": "sha256-lf", "sha256": "2a035ec6869b4cbc8464c6e4dde083c2a5b685f4276c2355580902e46cc60e6b" }, { "path": "packages/artplayer-plugin-danmuku/src/setting-lifecycle.js", "algorithm": "sha256-lf", "sha256": "9f624f5c7922171dc5b81fb68ccd73987ed425204fae64043d06d9d419559a8b" }, { "path": "packages/artplayer-plugin-danmuku/src/setting-send.js", "algorithm": "sha256-lf", "sha256": "7bd281e87c2ceeffd29b8bb392f9581748ba0c0a873bff3d8b0a717f6aecc327" }, { "path": "packages/artplayer-plugin-danmuku/src/setting-slider.js", "algorithm": "sha256-lf", "sha256": "c49d7764a4217c524f5cbf48db907a770e8822188e9ab059dd6b6ea2c0fb8264" }, { "path": "packages/artplayer-plugin-danmuku/src/setting-style.js", "algorithm": "sha256-lf", "sha256": "bffbebd3c88a13808ecb98ba92b736be2691363a3d7e5f7387a6a0a564dd0061" }, { "path": "packages/artplayer-plugin-danmuku/src/setting-template.js", "algorithm": "sha256-lf", "sha256": "e58b86ca973f72db73ac9fc27263f0f90ade76552c9f04a53bd74bdf4f006940" }, { "path": "packages/artplayer-plugin-danmuku/src/setting.js", "algorithm": "sha256-lf", "sha256": "3f103097f3a34493b0f027716aa116db82e5b93b413ed546241eb2f9854225d8" }, { "path": "packages/artplayer-plugin-danmuku/src/style.less", "algorithm": "sha256-lf", "sha256": "7148a1bd32f5d3d743db4a4ae8d39dc0e1406d2bff18df42cbb20e6705d5fed9" }, { "path": "packages/artplayer-plugin-danmuku/src/worker-client.js", "algorithm": "sha256-lf", "sha256": "aca4c442a5722787b28d6b4b0aaa50521fe71c4c0e63e17636dc5e2268cbd925" }, { "path": "packages/artplayer-plugin-danmuku/src/worker.js", "algorithm": "sha256-lf", "sha256": "05995a16cd728dd5ca513587a777b4be9012b8cc4b77e3a46fed1826e6769c53" }, { "path": "test/browser/danmuku-input.spec.js", "algorithm": "sha256-lf", "sha256": "37a96982ea7bf2fb99df5e4d829ce1c3f512145092a440586c2d5ad7d0a2d6f3" }, { "path": "test/browser/danmuku-resources.spec.js", "algorithm": "sha256-lf", "sha256": "f0d09e962cb422a66bd644c52268aff8f288606ae9c93676fa979539743f9c6b" }, { "path": "test/browser/danmuku-scheduler.spec.js", "algorithm": "sha256-lf", "sha256": "c3a7507eff60cdcd5160e46dd3dcc957496bfe35192a7249defe7b5f1c04159d" }, { "path": "test/browser/fixtures.js", "algorithm": "sha256-lf", "sha256": "313414b8958eb5b03a2da8595fa0bbf6bfdc01484373898c6cb7179545df175d" }, { "path": "test/browser/server.mjs", "algorithm": "sha256-lf", "sha256": "1406fac75eabc83b987e79ec7b5f97a948b27770bfd5f5290d7cb9155196f08f" }, { "path": "test/danmuku-heatmap.test.js", "algorithm": "sha256-lf", "sha256": "81c1a04a5a5ab032765893bfed96de8c10fa7ef00769cb8345e1f30fa17b4129" }, { "path": "test/danmuku-input.test.js", "algorithm": "sha256-lf", "sha256": "bccd24096dabd5270ba3624dc071d56a492cf44b3045c78ae261d4510ae6e712" }, { "path": "test/danmuku-parser.test.js", "algorithm": "sha256-lf", "sha256": "ae2dae43f447c1361662f70e90009c8978e1d96bbb133b7b07baafc9d765d70e" }, { "path": "test/danmuku-renderer.test.js", "algorithm": "sha256-lf", "sha256": "2f3eaff3b9e9a849af1dbe85f9eef2399d3d055f6bc24267f5a9da2a0bb98f67" }, { "path": "test/danmuku-scheduler.test.js", "algorithm": "sha256-lf", "sha256": "7c1c3d81c4cc37f1ddcd18f3c35c8825061887ada6e1f395cb4d8efb73f66727" }, { "path": "test/danmuku-setting.test.js", "algorithm": "sha256-lf", "sha256": "4f339b1806900842e9382ba96da6335a26f0ade5b10de2ac01656c476344bfe2" }, { "path": "test/danmuku-worker-client.test.js", "algorithm": "sha256-lf", "sha256": "55d7754224afa5567cafd880c28d923b9ff0e0661ecfb4ea1d9c923ddb84ae3b" }, { "path": "test/helpers/danmuku-candidate.js", "algorithm": "sha256-lf", "sha256": "917e1ca3e8b6ecd9f51055f9a0ce5144870e66a656afd22c3f023b56c8d76ffc" }, { "path": "test/helpers/danmuku-setting.js", "algorithm": "sha256-lf", "sha256": "9263c67c7499d4a60c3a85aad067503e856e0289bf2e3998d817339207fca26a" }, { "path": "yarn.lock", "algorithm": "sha256", "sha256": "3816c6f1602ef76f27ccd2491c3e34e2fcb630eb9b1baac726c84cf01eca0d11" } ], "limitations": [ "Owned JS responsibilities separated; TS and installed declaration contracts remain task06.", "Long-run real workload and heap/device acceptance remain task07.", "Browser recovery errors are explicit fixture faults, not actual CSP or SDK failures.", "ESM built and copied byte-identically; not counted as a fourth runtime matrix.", "Initial arbitrary 100000 point cap was rejected during review. Its two tests failed (one generated an oversized assertion diff); final valid >100000 sampling/points pass. Final protection covers invalid/unrepresentable/non-progressing numeric inputs, not arbitrary CPU cost.", "An early renderer check failed because the old fake Element lacked removeChild; only the candidate helper gained deletion semantics. Frozen helper remains unchanged.", "Interrupted earlier typecheck log is incomplete and not counted; only typecheck-complete is final.", "No npm publication, remote CI run or physical Safari claimed." ], "releaseReady": false }