mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 10:56:15 -08:00
20615 lines
710 KiB
JSON
20615 lines
710 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"task": "PKG-DANMUKU-04",
|
|
"status": "done",
|
|
"capturedAt": "2026-09-13T11:18:49.542Z",
|
|
"baselineCommit": "0b2efb07f",
|
|
"units": [
|
|
{
|
|
"format": "source",
|
|
"tests": 104,
|
|
"implementationDependent": 83,
|
|
"commonSourceWorkerTests": 18,
|
|
"commonFrozenNumericTests": 3,
|
|
"file": "refactor/.cache/danmuku04-candidate-source-complete.log",
|
|
"sha256": "f05f78034322803aa28e5eedadbf31e86de97ff8af96155158336bc68d341953"
|
|
},
|
|
{
|
|
"format": "main",
|
|
"tests": 104,
|
|
"implementationDependent": 83,
|
|
"commonSourceWorkerTests": 18,
|
|
"commonFrozenNumericTests": 3,
|
|
"file": "refactor/.cache/danmuku04-candidate-main-complete.log",
|
|
"sha256": "58f27d6d25e2f70a626b442494be833e14ca232b435b0f9d9b783a44926e3a8c"
|
|
},
|
|
{
|
|
"format": "legacy",
|
|
"tests": 104,
|
|
"implementationDependent": 83,
|
|
"commonSourceWorkerTests": 18,
|
|
"commonFrozenNumericTests": 3,
|
|
"file": "refactor/.cache/danmuku04-candidate-legacy-complete.log",
|
|
"sha256": "b626d2a2069dfa7f9a608c7e2c83c8b910236df2ec4586117d68892ac97d6204"
|
|
}
|
|
],
|
|
"browsers": [
|
|
{
|
|
"format": "source",
|
|
"tests": 66,
|
|
"file": "refactor/.cache/danmuku04-browser-source-numeric-final/report.json",
|
|
"sha256": "e31066f57d89fa987012e06db83112a0ad0b3a47e668402ec877321832b9c89a",
|
|
"run": {
|
|
"file": "refactor/.cache/danmuku04-browser-source-numeric-final/run.log",
|
|
"sha256": "2e0a30a909fd07daf08bb532739b85c6635b5fa5dc39c53fac302cf989f942e1"
|
|
},
|
|
"spec": {
|
|
"file": "refactor/.cache/danmuku04-browser-source-numeric-final/danmuku-scheduler.spec.js",
|
|
"sha256": "57a4791dba05ab8a0d5ddd2bf38730e10a70a5cd5c32b3ef4ec82440b5911e4e"
|
|
},
|
|
"archiveResultsRoot": "refactor/.cache/danmuku04-browser-source-numeric-final/results",
|
|
"originalResultsRoot": "refactor/.cache/browser/results",
|
|
"versions": [
|
|
"chromium: 153.0.8010.12",
|
|
"firefox: 155.0",
|
|
"webkit: 26.6"
|
|
],
|
|
"cases": [
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "chromium",
|
|
"durationMs": 1594,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1331,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.907252
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/31792b31-5dc6-454d-a9e4-5c8b37ccfac0",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1306,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.898323
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.898323
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/7871692b-932d-4d8e-b806-fca0b9362426",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2385,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2369,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2252,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1307,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "chromium",
|
|
"durationMs": 1389,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1662,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "chromium",
|
|
"durationMs": 2290,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.7918090820312,
|
|
"next": 602.7918090820312,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "chromium",
|
|
"durationMs": 4241,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "chromium",
|
|
"durationMs": 1301,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1313,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.908902
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/09c0a843-b399-472c-9aa6-50c11c27a0ff",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1303,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.89769
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.89769
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/fd03c655-a488-4c87-bcec-fc044f33771f",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2506,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1808,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2524,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1345,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "chromium",
|
|
"durationMs": 1373,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1576,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "chromium",
|
|
"durationMs": 2437,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.788818359375,
|
|
"next": 602.788818359375,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "chromium",
|
|
"durationMs": 4210,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "firefox",
|
|
"durationMs": 3172,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1888,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.905723
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/e8b3fd31-4ba6-4a93-b5e9-f241eb4f6582",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1686,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.874999
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.874999
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/7b7739a5-842b-44b3-acdb-38bce3ef999d",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2670,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2044,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2636,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 1792,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "firefox",
|
|
"durationMs": 1703,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2878,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "firefox",
|
|
"durationMs": 2923,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "firefox",
|
|
"durationMs": 4910,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "firefox",
|
|
"durationMs": 1806,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1871,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.901248
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/d3ccaf64-24f7-412d-95f4-1f046a39eed1",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1561,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.874999
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.874999
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/fb84e1d6-1169-49e9-9a95-4248cef05bf3",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2900,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2247,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 3923,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 1570,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "firefox",
|
|
"durationMs": 1764,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 1708,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "firefox",
|
|
"durationMs": 2967,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.2999877929688,
|
|
"next": 601.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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "firefox",
|
|
"durationMs": 4996,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "webkit",
|
|
"durationMs": 2506,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2816,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.5477604
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/8887345c-74d7-4df2-9db3-33ad1b6b63ed",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2744,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.4936346
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.4937073
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/8abdf89e-4053-43e1-b126-18156c22a4e3",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3964,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3803,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3585,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2973,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "webkit",
|
|
"durationMs": 3650,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4195,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "webkit",
|
|
"durationMs": 5271,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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": 609.4124755859375,
|
|
"next": 609.4124755859375,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "webkit",
|
|
"durationMs": 8351,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "webkit",
|
|
"durationMs": 2581,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2693,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.5058696
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/377e84c9-5640-420c-9ebc-bcebd222cf0a",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2799,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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.5110266
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.5111032
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/63387ef8-4a3a-4793-af0f-16188ec8be58",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3630,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2881,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3943,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2839,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "webkit",
|
|
"durationMs": 3184,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3994,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "webkit",
|
|
"durationMs": 5486,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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": 613.9625244140625,
|
|
"next": 613.9625244140625,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "webkit",
|
|
"durationMs": 8337,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "in-memory source UMD",
|
|
"sha256": "e6658f5fa5a4fe4a81b1552731d7450262989d4f934a1ec26f260a3dcd722d61",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"format": "main",
|
|
"tests": 66,
|
|
"file": "refactor/.cache/danmuku04-browser-main-numeric-final/report.json",
|
|
"sha256": "5a77e4c6e59c7f78702b120c04b64ce3740c653a7751d55ada373646ea103533",
|
|
"run": {
|
|
"file": "refactor/.cache/danmuku04-browser-main-numeric-final/run.log",
|
|
"sha256": "dffddff7b686591aac8902cdd2e8d8b5ac3c1e1c907ddecadcb5cee6a9fa5477"
|
|
},
|
|
"spec": {
|
|
"file": "refactor/.cache/danmuku04-browser-main-numeric-final/danmuku-scheduler.spec.js",
|
|
"sha256": "57a4791dba05ab8a0d5ddd2bf38730e10a70a5cd5c32b3ef4ec82440b5911e4e"
|
|
},
|
|
"archiveResultsRoot": "refactor/.cache/danmuku04-browser-main-numeric-final/results",
|
|
"originalResultsRoot": "refactor/.cache/browser/results",
|
|
"versions": [
|
|
"chromium: 153.0.8010.12",
|
|
"firefox: 155.0",
|
|
"webkit: 26.6"
|
|
],
|
|
"cases": [
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "chromium",
|
|
"durationMs": 1409,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1303,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.899133
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/6c9706bb-601b-42de-9d19-a9863257d58a",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1347,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.899634
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.899634
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/4cf3e456-5043-4049-9fdc-542c77e91532",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2336,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2264,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2225,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1295,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "chromium",
|
|
"durationMs": 1364,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1511,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "chromium",
|
|
"durationMs": 2418,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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": 599.8820190429688,
|
|
"next": 599.8820190429688,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "chromium",
|
|
"durationMs": 4146,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "chromium",
|
|
"durationMs": 1290,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1270,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.897016
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/a28799c8-5f27-420f-8a8d-2c50ff8a8e95",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1307,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.907498
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.907498
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/23a88b13-af5c-4769-a3ab-29df34b9738b",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2424,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2361,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2438,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1325,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "chromium",
|
|
"durationMs": 1349,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "chromium",
|
|
"durationMs": 2377,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.33740234375,
|
|
"next": 601.33740234375,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "chromium",
|
|
"durationMs": 4140,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "firefox",
|
|
"durationMs": 2349,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1681,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.90678
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/92bd0b6a-c128-420f-91b8-d107541e3357",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1632,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.872461
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.872461
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/f2c7a295-89ef-4802-877e-099982efdac9",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2740,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2088,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2658,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 1205,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "firefox",
|
|
"durationMs": 1903,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3024,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "firefox",
|
|
"durationMs": 2654,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "firefox",
|
|
"durationMs": 4660,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "firefox",
|
|
"durationMs": 1697,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1796,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.919782
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/7f9fadf7-14b3-4712-921f-57c4968893f1",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1772,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.874999
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.874999
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/fd38ba4c-7a2d-48a5-b0d0-65c28e092b5c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2838,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2126,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 3733,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 1563,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "firefox",
|
|
"durationMs": 1622,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 1769,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "firefox",
|
|
"durationMs": 2992,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.75,
|
|
"next": 602.75,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "firefox",
|
|
"durationMs": 4773,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "webkit",
|
|
"durationMs": 2516,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2160,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.5270586
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/f6a43b1c-f948-44ac-9f8c-034aac7d3a57",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2483,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.5209417
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.5210177
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/bba3ffdd-5710-4bd8-b5be-fd9cbd514a34",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3801,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2857,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3446,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2259,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "webkit",
|
|
"durationMs": 3023,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3108,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "webkit",
|
|
"durationMs": 5045,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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": 574.0625,
|
|
"next": 574.0625,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "webkit",
|
|
"durationMs": 7930,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "webkit",
|
|
"durationMs": 2282,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2565,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.9559543
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/8c0e38c5-06cb-4041-b2d3-b93322009b72",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2040,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.4843741
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.4844099
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/3ccfde56-4324-4b8b-8f99-36f1667ba9a5",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 4025,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3258,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3269,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2932,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "webkit",
|
|
"durationMs": 3063,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3197,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "webkit",
|
|
"durationMs": 4512,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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.9000244140625,
|
|
"next": 617.9000244140625,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "webkit",
|
|
"durationMs": 7496,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"format": "legacy",
|
|
"tests": 66,
|
|
"file": "refactor/.cache/danmuku04-browser-legacy-numeric-final/report.json",
|
|
"sha256": "ee02ab34e771542ba228a958b8052a1df5f2c0e54bf7468915332b1a9d833b50",
|
|
"run": {
|
|
"file": "refactor/.cache/danmuku04-browser-legacy-numeric-final/run.log",
|
|
"sha256": "41ba9761a9f953a4905c53cf1f04f5f9e1a5f900eb2f354d052c81ecd8bd58e9"
|
|
},
|
|
"spec": {
|
|
"file": "refactor/.cache/danmuku04-browser-legacy-numeric-final/danmuku-scheduler.spec.js",
|
|
"sha256": "57a4791dba05ab8a0d5ddd2bf38730e10a70a5cd5c32b3ef4ec82440b5911e4e"
|
|
},
|
|
"archiveResultsRoot": "refactor/.cache/danmuku04-browser-legacy-numeric-final/results",
|
|
"originalResultsRoot": "refactor/.cache/browser/results",
|
|
"versions": [
|
|
"chromium: 153.0.8010.12",
|
|
"firefox: 155.0",
|
|
"webkit: 26.6"
|
|
],
|
|
"cases": [
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "chromium",
|
|
"durationMs": 1442,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1312,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.910342
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/f95625d3-da3c-43cd-bd5e-44485457b5c8",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1288,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.900038
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.900038
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/6c1db542-01cf-4aba-91bb-0d59a367a38f",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2447,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2256,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2224,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1275,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "chromium",
|
|
"durationMs": 1341,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1605,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "chromium",
|
|
"durationMs": 2419,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.7915649414062,
|
|
"next": 602.7915649414062,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "chromium",
|
|
"durationMs": 4165,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "chromium",
|
|
"durationMs": 1267,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1243,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.893598
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/019300e7-47a5-4891-a112-1bd126940bec",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "chromium",
|
|
"durationMs": 1289,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.904498
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.904498
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/53f97fbd-4b03-443f-b2b0-4808abd97a28",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2405,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2320,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 2436,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "chromium",
|
|
"durationMs": 1289,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "chromium",
|
|
"durationMs": 1343,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1522,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "chromium",
|
|
"durationMs": 2245,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.7899780273438,
|
|
"next": 602.7899780273438,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "chromium",
|
|
"durationMs": 4116,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "firefox",
|
|
"durationMs": 2506,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1743,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.874999
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/e61312b7-89bc-4e2b-acf2-de1a93430333",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1610,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.875433
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.875433
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/f54b5650-4ad7-4e5e-a9be-38ed500e72b4",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2632,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2612,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2662,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 1548,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "firefox",
|
|
"durationMs": 1646,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2685,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "firefox",
|
|
"durationMs": 2657,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "firefox",
|
|
"durationMs": 4784,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "firefox",
|
|
"durationMs": 1654,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1510,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.872581
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/43f7405f-e3b1-44d7-a839-608da97ba808",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "firefox",
|
|
"durationMs": 1566,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.916666
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.916666
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/07c5a8d4-40f8-411c-8309-ac7f3feb3375",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2299,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 2645,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 3635,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "firefox",
|
|
"durationMs": 1638,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "firefox",
|
|
"durationMs": 1578,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 1643,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "firefox",
|
|
"durationMs": 2696,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "firefox",
|
|
"durationMs": 4769,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "webkit",
|
|
"durationMs": 2279,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2510,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.5531477
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/3fb921b4-0608-4f22-9250-eb324ffb5b34",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2413,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.5130193
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.5130772
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/afc7addf-b473-4964-9e75-b0b9b697c06f",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3917,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3696,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3504,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2188,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "webkit",
|
|
"durationMs": 2488,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3636,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "webkit",
|
|
"durationMs": 5298,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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": 572.4874877929688,
|
|
"next": 572.4874877929688,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "webkit",
|
|
"durationMs": 7204,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: accepted NaN timestamp keeps the historical current-time fallback",
|
|
"browser": "webkit",
|
|
"durationMs": 2215,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous destroy from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2325,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.4766665
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "destroy",
|
|
"time": 0
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/4486a410-7b34-430f-8464-ff4b20cd45bf",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: failed recovery respects synchronous stop from the error listener",
|
|
"browser": "webkit",
|
|
"durationMs": 2206,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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.5243332
|
|
},
|
|
{
|
|
"index": 0,
|
|
"event": "stop",
|
|
"time": 0.5243703
|
|
}
|
|
],
|
|
"workers": [
|
|
{
|
|
"url": "blob:http://127.0.0.1:8084/4939d7b4-cfac-466a-b775-d95f1411d6e7",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": [
|
|
"controlled track failure"
|
|
]
|
|
}
|
|
],
|
|
"failures": [
|
|
"Error: controlled track failure",
|
|
"Error: controlled track reconstruction failure"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3896,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native reset cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2629,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native seek cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 3577,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native destroy cancels pending visibility without blocking later work",
|
|
"browser": "webkit",
|
|
"durationMs": 2440,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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."
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native Worker renders three modes with synchronous filter and asynchronous beforeVisible",
|
|
"browser": "webkit",
|
|
"durationMs": 2818,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 4,
|
|
"replies": 4,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3670,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: native pause seek rate and public reset/load retain historical pool semantics",
|
|
"browser": "webkit",
|
|
"durationMs": 5009,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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": 578,
|
|
"next": 578,
|
|
"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-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 3,
|
|
"replies": 3,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: actual settings, asynchronous send lock, external fullscreen mount and two-player destruction",
|
|
"browser": "webkit",
|
|
"durationMs": 7436,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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
|
|
}
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 0,
|
|
"replies": 0,
|
|
"terminated": 1,
|
|
"errors": []
|
|
},
|
|
{
|
|
"requests": 1,
|
|
"replies": 1,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"format": "dense-main",
|
|
"tests": 30,
|
|
"file": "refactor/.cache/danmuku04-browser-dense-main-numeric-final/report.json",
|
|
"sha256": "5fdf278fac810a7abf22970932a9f140316b77af23d74b8e92606bbcfe290976",
|
|
"run": {
|
|
"file": "refactor/.cache/danmuku04-browser-dense-main-numeric-final/run.log",
|
|
"sha256": "9dd7c9bcbb94ce6f1139907b88336c2b5ce01b1c1870807aa8c7fbb14f86cb0b"
|
|
},
|
|
"spec": {
|
|
"file": "refactor/.cache/danmuku04-browser-dense-main-numeric-final/danmuku-scheduler.spec.js",
|
|
"sha256": "57a4791dba05ab8a0d5ddd2bf38730e10a70a5cd5c32b3ef4ec82440b5911e4e"
|
|
},
|
|
"archiveResultsRoot": "refactor/.cache/danmuku04-browser-dense-main-numeric-final/results",
|
|
"originalResultsRoot": "refactor/.cache/browser/results",
|
|
"versions": [
|
|
"chromium: 153.0.8010.12",
|
|
"firefox: 155.0",
|
|
"webkit: 26.6"
|
|
],
|
|
"cases": [
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1627,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1641,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1643,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1660,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1542,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1588,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1650,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1665,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1542,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1629,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2351,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3003,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3303,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3321,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3018,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2207,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3000,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2978,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2915,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3148,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3719,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3767,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3589,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4284,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3704,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4218,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3659,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3778,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3691,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"format": "dense-legacy",
|
|
"tests": 30,
|
|
"file": "refactor/.cache/danmuku04-browser-dense-legacy-numeric-final/report.json",
|
|
"sha256": "ddd9e5d8a986e96f50bb6607444c5f50376aa746fd70bf64d010aafb96a3fba7",
|
|
"run": {
|
|
"file": "refactor/.cache/danmuku04-browser-dense-legacy-numeric-final/run.log",
|
|
"sha256": "68f6e7895933021f2f63458803f40affb282ec3493f50b0fcf157aaee9ab7301"
|
|
},
|
|
"spec": {
|
|
"file": "refactor/.cache/danmuku04-browser-dense-legacy-numeric-final/danmuku-scheduler.spec.js",
|
|
"sha256": "57a4791dba05ab8a0d5ddd2bf38730e10a70a5cd5c32b3ef4ec82440b5911e4e"
|
|
},
|
|
"archiveResultsRoot": "refactor/.cache/danmuku04-browser-dense-legacy-numeric-final/results",
|
|
"originalResultsRoot": "refactor/.cache/browser/results",
|
|
"versions": [
|
|
"chromium: 153.0.8010.12",
|
|
"firefox: 155.0",
|
|
"webkit: 26.6"
|
|
],
|
|
"cases": [
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1785,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1829,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1819,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1693,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1698,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1684,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1679,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1738,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1963,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "chromium",
|
|
"durationMs": 1758,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2987,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3089,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2928,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3068,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3033,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3241,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2783,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2963,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 2982,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "firefox",
|
|
"durationMs": 3477,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4208,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4244,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4385,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4070,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3820,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4302,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4235,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3945,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "published / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 3990,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "published",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": "candidate / Candidate Danmuku candidate: six simultaneous fixed comments preserve usable track geometry and input order",
|
|
"browser": "webkit",
|
|
"durationMs": 4023,
|
|
"observations": [
|
|
{
|
|
"name": "danmuku-browser-inputs",
|
|
"value": {
|
|
"core": "candidate",
|
|
"plugin": "artplayer-plugin-danmuku",
|
|
"format": "candidate",
|
|
"artifact": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "danmuku-worker-and-lifecycle",
|
|
"value": {
|
|
"workers": [
|
|
{
|
|
"requests": 6,
|
|
"replies": 6,
|
|
"terminated": 1,
|
|
"errors": []
|
|
}
|
|
],
|
|
"failures": []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"regressions": [
|
|
{
|
|
"file": "refactor/.cache/danmuku04-scheduler-initial.log",
|
|
"sha256": "5c85015ab899f73f514e83b881005c4d002bdc9c5418ad0ab9fbf1bbaa85cbb3",
|
|
"tests": 18,
|
|
"passed": 6,
|
|
"failed": 12,
|
|
"cause": "Initial candidate scheduler ownership, cancellation and request regression tests before implementation."
|
|
},
|
|
{
|
|
"file": "refactor/.cache/danmuku04-scheduler-reentry-all-red.log",
|
|
"sha256": "37194aa46c183f67a0bcda9e50394766971e1c8c2f66301a5e07a1839b8cffaf",
|
|
"tests": 32,
|
|
"passed": 27,
|
|
"failed": 5,
|
|
"cause": "Saved actual pre-guard main artifact: synchronous error listener destroy/stop/reset/hide/nested start leaves obsolete start continuation."
|
|
},
|
|
{
|
|
"file": "refactor/.cache/danmuku04-time-nan-red.log",
|
|
"sha256": "4492a27bbe61b2718ab586a11c7617ae572a2043c8e9aeb741d145a1b1d74ed8",
|
|
"tests": 24,
|
|
"passed": 23,
|
|
"failed": 1,
|
|
"cause": "Frozen source/main/legacy preserve accepted NaN fallback. Intermediate task03 candidate regressed NaN while fixing explicit zero."
|
|
}
|
|
],
|
|
"nativeBefore": {
|
|
"file": "refactor/.cache/danmuku04-browser-before/report.json",
|
|
"sha256": "ef2b218f71737d379a5fbc9d93d2c0e11f38a556f1e3221efa5164535e80c0e0",
|
|
"tests": 8,
|
|
"passed": 4,
|
|
"failed": 4,
|
|
"source": "Task03 actual main, Chromium, two cores; extra same-ID requests and unused duplicate DOM. This snapshot did not itself overlap; task02 had separate actual overlap evidence."
|
|
},
|
|
"checks": [
|
|
{
|
|
"file": "refactor/.cache/danmuku04-build-numeric-final.log",
|
|
"sha256": "f679e4dd9e03605ecfefb68e8b973acb05a0b891f0cedd9000b73f9e6fe4e8f7"
|
|
},
|
|
{
|
|
"file": "refactor/.cache/danmuku04-lint-complete.log",
|
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
}
|
|
],
|
|
"typecheck": {
|
|
"file": "refactor/.cache/danmuku03-typecheck.log",
|
|
"sha256": "33ced90b0fff4881e9a4477aca1e8c51a5715b8170f71c860518bbdff1c4e606",
|
|
"reusedFromTask": "PKG-DANMUKU-03",
|
|
"explanation": "No production TS or public declaration changes in task04. Previous complete check covers 366 migrated TS source files and consumers, not the remaining JS."
|
|
},
|
|
"buildRetry": {
|
|
"failure": {
|
|
"file": "refactor/.cache/danmuku04-build-copy-failure.log",
|
|
"sha256": "9cf9f9b99ce59ba7521b67d4bafcc3163e2a931ea29a79a4a8013facec8d6a1f"
|
|
},
|
|
"serialRetry": {
|
|
"file": "refactor/.cache/danmuku04-build-final.log",
|
|
"sha256": "a4ad0ed8d61452d5af294359c5afcb5866227e28a490946ab91b3f2f8da0dc69"
|
|
},
|
|
"identity": {
|
|
"file": "refactor/.cache/danmuku04-build-identity.log",
|
|
"sha256": "904d45eb95129f13f0ccce541fea75496be37291a2caa66cf9c2ec06f9b72cc3"
|
|
},
|
|
"explanation": "Windows UNKNOWN copy error during a browser run; serial retry succeeded and matched already-tested main/legacy bytes. Later numeric fix received another complete normal build and its own final matrices."
|
|
},
|
|
"sizes": [
|
|
{
|
|
"file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c",
|
|
"beforeBytes": 55126,
|
|
"afterBytes": 59100,
|
|
"deltaBytes": 3974,
|
|
"beforeGzipBytes": 15687,
|
|
"afterGzipBytes": 16799
|
|
},
|
|
{
|
|
"file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368",
|
|
"beforeBytes": 56172,
|
|
"afterBytes": 60243,
|
|
"deltaBytes": 4071,
|
|
"beforeGzipBytes": 16050,
|
|
"afterGzipBytes": 17160
|
|
},
|
|
{
|
|
"file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs",
|
|
"sha256": "bb96eb930c4ed9910cf4eca65b3a0fcb85cf6c6a49429f5c9c437490a4680ce3",
|
|
"beforeBytes": 80876,
|
|
"afterBytes": 87065,
|
|
"deltaBytes": 6189,
|
|
"beforeGzipBytes": 19534,
|
|
"afterGzipBytes": 20852
|
|
}
|
|
],
|
|
"inputs": [
|
|
{
|
|
"path": "package.json",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "b85c8ca62eaab7b400f613620908274c6e02551f2987752220443a00c9de703c"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/ARCHITECTURE.md",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "5a6111ec42c5e930786b9a01369f4c1a63e43e8d536f818f23869fd05f3765cf"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/README.md",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "6111a8d52b68ee86e43383ee8686ba0676f57741d5da733a400b29a596dba8d7"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "cb5c475202ab0770682a0395223f7248ffde7854e3b14c39fb6110d152a4d60c"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "e6a4b144a4b83a8c6a100444ad0ed5f6dbf7157abef8d23c187b4ffa79c23368"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "bb96eb930c4ed9910cf4eca65b3a0fcb85cf6c6a49429f5c9c437490a4680ce3"
|
|
},
|
|
{
|
|
"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": "8e1d22d382ca6ec14945e77384e78f6ff8bd01506736222d747c077788ac888b"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/heatmap.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "3cf77ff82f62958728445eaf9c044bc4cbcf04a4ea82e753e7c44e59128c16f4"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/config.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/off.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/on.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/img/style.svg",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/index.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "956e30c857dbb15147506924308c363dcc4a07bcf1bb97ce3fc436afa366cd9c"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/input.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "6740c347018290de2a8d90925148f63ec005d294426ed8d3192e69313171b8fc"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/queue.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "d566e312686fa486daee0c1618766c41cfb074c04bf872b7bf1bb783a7c57595"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/scheduler.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "cc158ab266c96323d99230183c47e60f162087daa15c8374a73b8d619e305cb6"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/setting.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "ffbaa808551410dc015a5f3ffe4e091f5e1b1bb45eee2d9790cf15cbf82eace2"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/style.less",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "7148a1bd32f5d3d743db4a4ae8d39dc0e1406d2bff18df42cbb20e6705d5fed9"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/worker-client.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "aca4c442a5722787b28d6b4b0aaa50521fe71c4c0e63e17636dc5e2268cbd925"
|
|
},
|
|
{
|
|
"path": "packages/artplayer-plugin-danmuku/src/worker.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "05995a16cd728dd5ca513587a777b4be9012b8cc4b77e3a46fed1826e6769c53"
|
|
},
|
|
{
|
|
"path": "playwright.config.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "df2384f5626252ec933725867e400ec22eb92bc5e6f04873059b32decf2f2d56"
|
|
},
|
|
{
|
|
"path": "test/browser/danmuku-scheduler.spec.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "506cc9dc75be822ea79d51c7e8fe6a68d526b41f26af626401d1d60329cbb724"
|
|
},
|
|
{
|
|
"path": "test/browser/fixtures.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "313414b8958eb5b03a2da8595fa0bbf6bfdc01484373898c6cb7179545df175d"
|
|
},
|
|
{
|
|
"path": "test/browser/server.mjs",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "1406fac75eabc83b987e79ec7b5f97a948b27770bfd5f5290d7cb9155196f08f"
|
|
},
|
|
{
|
|
"path": "test/danmuku-input.test.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "bccd24096dabd5270ba3624dc071d56a492cf44b3045c78ae261d4510ae6e712"
|
|
},
|
|
{
|
|
"path": "test/danmuku-parser.test.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "ae2dae43f447c1361662f70e90009c8978e1d96bbb133b7b07baafc9d765d70e"
|
|
},
|
|
{
|
|
"path": "test/danmuku-scheduler.test.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "7c1c3d81c4cc37f1ddcd18f3c35c8825061887ada6e1f395cb4d8efb73f66727"
|
|
},
|
|
{
|
|
"path": "test/danmuku-worker-client.test.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "55d7754224afa5567cafd880c28d923b9ff0e0661ecfb4ea1d9c923ddb84ae3b"
|
|
},
|
|
{
|
|
"path": "test/helpers/danmuku-candidate.js",
|
|
"algorithm": "sha256-lf",
|
|
"sha256": "215aa631baa36f2434e95fc11f178fd9a4cca71834db0dd5e93d06356674445a"
|
|
}
|
|
],
|
|
"decisions": [
|
|
"Single pending RAF or async frame, generation and node ownership after awaits/callbacks.",
|
|
"Unique correlated Worker IDs and pending settlement on cancellation/failure/disposal; unchanged actual track algorithm.",
|
|
"Preserve public facade and ordinary repeated start/stop events, timing, pool order, callback receiver and configuration semantics.",
|
|
"Guard recovery reentry using generation and start-attempt identity as well as lifecycle/fault state.",
|
|
"Restore legacy NaN currentTime+0.5 fallback while retaining corrected zero and old positive/negative Infinity behavior."
|
|
],
|
|
"limitations": [
|
|
"JS responsibility separation; full owned TS and root/runtime installed declarations remain task06.",
|
|
"Synthetic long-clock regression is not an hours-long native workload or heap benchmark; package stability acceptance remains task07.",
|
|
"Native recovery fault events and constructor failure use explicit seams; not real CSP/SDK constructor-failure coverage.",
|
|
"ESM built and dist/docs bytes match; ESM is not counted as an additional runtime-tested format.",
|
|
"Settings external DOM/timer/late-send and heatmap issues remain open for task05.",
|
|
"Windows WebKit is not physical Safari. Local fixture video does not establish arbitrary remote content compatibility.",
|
|
"Intermediate 48/60 native matrices passed before later edge-case discoveries; final acceptance is only the five numeric-final archives listed above."
|
|
],
|
|
"releaseReady": false
|
|
}
|