mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-26 00:31:20 -08:00
test(mediabunny): [PKG-MB-02] checkpoint native playback and late load failures
This commit is contained in:
1 parent
1cfd2e17f3
commit
63c8938dd7
10 files changed
+908
-10
No files matched your search
@@ -0,0 +1,713 @@
|
||||
{
|
||||
"task": "PKG-MB-02",
|
||||
"status": "doing",
|
||||
"parentCommit": "1cfd2e17f319749ba5f2e73f4c54c21d858e9d7e",
|
||||
"node": {
|
||||
"tests": 22,
|
||||
"historicalFailuresReproduced": 3,
|
||||
"scope": "19 existing contracts plus actual historical load/destroy with controlled pending performLoad and timers. Does not model full core destroy or real decode."
|
||||
},
|
||||
"browser": {
|
||||
"report": "refactor/.cache/mb02-first-results/report.json",
|
||||
"results": "refactor/.cache/mb02-first-results/results",
|
||||
"tests": 6,
|
||||
"nativePlaybackSuccesses": 4,
|
||||
"verifiedCapabilityFailures": 2,
|
||||
"skipped": 0,
|
||||
"records": [
|
||||
{
|
||||
"project": "chromium",
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"implementation": "published-1.2.0",
|
||||
"sha256": "7d088c0abe2f3c1e2857cb0547405ce1e5588630f28e484a64211fc675322bbd",
|
||||
"capabilities": {
|
||||
"secure": true,
|
||||
"VideoDecoder": "function",
|
||||
"AudioDecoder": "function",
|
||||
"AudioContext": "function",
|
||||
"webkitAudioContext": "undefined",
|
||||
"coreVersion": "5.4.0"
|
||||
},
|
||||
"outcome": "native-mp4-playback-observed",
|
||||
"state": {
|
||||
"events": [
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 97.90000000596046,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 98,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 98.09999999403954,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 98.09999999403954,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadedmetadata",
|
||||
"time": 157.80000001192093,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "durationchange",
|
||||
"time": 157.80000001192093,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 157.90000000596046,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "loadeddata",
|
||||
"time": 171.09999999403954,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplay",
|
||||
"time": 171.09999999403954,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplaythrough",
|
||||
"time": 171.09999999403954,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 171.09999999403954,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "play",
|
||||
"time": 256.30000001192093,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "playing",
|
||||
"time": 256.30000001192093,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 265.90000000596046,
|
||||
"currentTime": 0.010666666666666665,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 531,
|
||||
"currentTime": 0.28,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "pause",
|
||||
"time": 655.3000000119209,
|
||||
"currentTime": 0.4,
|
||||
"readyState": 4
|
||||
}
|
||||
],
|
||||
"actions": [],
|
||||
"ready": true,
|
||||
"dimensions": [
|
||||
320,
|
||||
180,
|
||||
320,
|
||||
180
|
||||
],
|
||||
"paused": true,
|
||||
"currentTime": 0.4,
|
||||
"error": null,
|
||||
"readyState": 4,
|
||||
"audioState": "running"
|
||||
},
|
||||
"scope": "Two actual published proxies with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No candidate, HLS or AV-sync acceptance."
|
||||
},
|
||||
{
|
||||
"project": "chromium",
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"implementation": "published-1.0.0",
|
||||
"sha256": "7331465d8c7a6575505b9d3fd45986c5d3d9cb3839b2620ad5a52c581199562b",
|
||||
"capabilities": {
|
||||
"secure": true,
|
||||
"VideoDecoder": "function",
|
||||
"AudioDecoder": "function",
|
||||
"AudioContext": "function",
|
||||
"webkitAudioContext": "undefined",
|
||||
"coreVersion": "5.4.0"
|
||||
},
|
||||
"outcome": "native-mp4-playback-observed",
|
||||
"state": {
|
||||
"events": [
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 103.19999998807907,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 103.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 103.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 103.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadedmetadata",
|
||||
"time": 167.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "durationchange",
|
||||
"time": 167.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 167.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "loadeddata",
|
||||
"time": 176.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "loadeddata",
|
||||
"time": 176.39999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplay",
|
||||
"time": 176.5,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplaythrough",
|
||||
"time": 176.5,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 176.5,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "play",
|
||||
"time": 260.7999999821186,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "playing",
|
||||
"time": 260.89999997615814,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 270.2999999821186,
|
||||
"currentTime": 0.010666666666666665,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 536,
|
||||
"currentTime": 0.2693333333333333,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "pause",
|
||||
"time": 661.0999999940395,
|
||||
"currentTime": 0.4,
|
||||
"readyState": 4
|
||||
}
|
||||
],
|
||||
"actions": [],
|
||||
"ready": true,
|
||||
"dimensions": [
|
||||
320,
|
||||
180,
|
||||
320,
|
||||
180
|
||||
],
|
||||
"paused": true,
|
||||
"currentTime": 0.4,
|
||||
"error": null,
|
||||
"readyState": 4,
|
||||
"audioState": "running"
|
||||
},
|
||||
"scope": "Two actual published proxies with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No candidate, HLS or AV-sync acceptance."
|
||||
},
|
||||
{
|
||||
"project": "firefox",
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"implementation": "published-1.2.0",
|
||||
"sha256": "7d088c0abe2f3c1e2857cb0547405ce1e5588630f28e484a64211fc675322bbd",
|
||||
"capabilities": {
|
||||
"secure": true,
|
||||
"VideoDecoder": "function",
|
||||
"AudioDecoder": "function",
|
||||
"AudioContext": "function",
|
||||
"webkitAudioContext": "undefined",
|
||||
"coreVersion": "5.4.0"
|
||||
},
|
||||
"outcome": "native-mp4-playback-observed",
|
||||
"state": {
|
||||
"events": [
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 408,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 408,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 408,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 408,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadedmetadata",
|
||||
"time": 432,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "durationchange",
|
||||
"time": 432,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 432,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "loadeddata",
|
||||
"time": 448,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplay",
|
||||
"time": 449,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplaythrough",
|
||||
"time": 449,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 449,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "play",
|
||||
"time": 606,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "playing",
|
||||
"time": 606,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 613,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 862,
|
||||
"currentTime": 0.2506666666666667,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "pause",
|
||||
"time": 1017,
|
||||
"currentTime": 0.41066666666666674,
|
||||
"readyState": 4
|
||||
}
|
||||
],
|
||||
"actions": [],
|
||||
"ready": true,
|
||||
"dimensions": [
|
||||
320,
|
||||
180,
|
||||
320,
|
||||
180
|
||||
],
|
||||
"paused": true,
|
||||
"currentTime": 0.41066666666666674,
|
||||
"error": null,
|
||||
"readyState": 4,
|
||||
"audioState": "running"
|
||||
},
|
||||
"scope": "Two actual published proxies with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No candidate, HLS or AV-sync acceptance."
|
||||
},
|
||||
{
|
||||
"project": "firefox",
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"implementation": "published-1.0.0",
|
||||
"sha256": "7331465d8c7a6575505b9d3fd45986c5d3d9cb3839b2620ad5a52c581199562b",
|
||||
"capabilities": {
|
||||
"secure": true,
|
||||
"VideoDecoder": "function",
|
||||
"AudioDecoder": "function",
|
||||
"AudioContext": "function",
|
||||
"webkitAudioContext": "undefined",
|
||||
"coreVersion": "5.4.0"
|
||||
},
|
||||
"outcome": "native-mp4-playback-observed",
|
||||
"state": {
|
||||
"events": [
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 339,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 339,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 339,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 339,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadedmetadata",
|
||||
"time": 369,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "durationchange",
|
||||
"time": 369,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 369,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "loadeddata",
|
||||
"time": 384,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "loadeddata",
|
||||
"time": 385,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplay",
|
||||
"time": 385,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "canplaythrough",
|
||||
"time": 385,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 385,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "play",
|
||||
"time": 535,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "playing",
|
||||
"time": 535,
|
||||
"currentTime": 0,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 542,
|
||||
"currentTime": 0.010666666666666658,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "timeupdate",
|
||||
"time": 808,
|
||||
"currentTime": 0.28,
|
||||
"readyState": 4
|
||||
},
|
||||
{
|
||||
"name": "pause",
|
||||
"time": 937,
|
||||
"currentTime": 0.41066666666666674,
|
||||
"readyState": 4
|
||||
}
|
||||
],
|
||||
"actions": [],
|
||||
"ready": true,
|
||||
"dimensions": [
|
||||
320,
|
||||
180,
|
||||
320,
|
||||
180
|
||||
],
|
||||
"paused": true,
|
||||
"currentTime": 0.41066666666666674,
|
||||
"error": null,
|
||||
"readyState": 4,
|
||||
"audioState": "running"
|
||||
},
|
||||
"scope": "Two actual published proxies with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No candidate, HLS or AV-sync acceptance."
|
||||
},
|
||||
{
|
||||
"project": "webkit",
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"implementation": "published-1.2.0",
|
||||
"sha256": "7d088c0abe2f3c1e2857cb0547405ce1e5588630f28e484a64211fc675322bbd",
|
||||
"capabilities": {
|
||||
"secure": true,
|
||||
"VideoDecoder": "undefined",
|
||||
"AudioDecoder": "undefined",
|
||||
"AudioContext": "undefined",
|
||||
"webkitAudioContext": "undefined",
|
||||
"coreVersion": "5.4.0"
|
||||
},
|
||||
"outcome": "verified-unsupported-capability-control",
|
||||
"state": {
|
||||
"events": [
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 158,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 158,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 165,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 165,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"time": 229,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadedmetadata",
|
||||
"time": 232,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "durationchange",
|
||||
"time": 232,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
},
|
||||
{
|
||||
"name": "progress",
|
||||
"time": 232,
|
||||
"currentTime": 0,
|
||||
"readyState": 1
|
||||
}
|
||||
],
|
||||
"actions": [],
|
||||
"ready": false,
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"paused": true,
|
||||
"currentTime": 0,
|
||||
"error": {
|
||||
"code": 4,
|
||||
"message": "undefined is not a constructor (evaluating 'new t')"
|
||||
},
|
||||
"readyState": 1
|
||||
},
|
||||
"scope": "Two actual published proxies with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No candidate, HLS or AV-sync acceptance."
|
||||
},
|
||||
{
|
||||
"project": "webkit",
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"implementation": "published-1.0.0",
|
||||
"sha256": "7331465d8c7a6575505b9d3fd45986c5d3d9cb3839b2620ad5a52c581199562b",
|
||||
"capabilities": {
|
||||
"secure": true,
|
||||
"VideoDecoder": "undefined",
|
||||
"AudioDecoder": "undefined",
|
||||
"AudioContext": "undefined",
|
||||
"webkitAudioContext": "undefined",
|
||||
"coreVersion": "5.4.0"
|
||||
},
|
||||
"outcome": "verified-unsupported-capability-control",
|
||||
"state": {
|
||||
"events": [
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 149,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 149,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "waiting",
|
||||
"time": 151,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "loadstart",
|
||||
"time": 151,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
},
|
||||
{
|
||||
"name": "error",
|
||||
"time": 200,
|
||||
"currentTime": 0,
|
||||
"readyState": 0
|
||||
}
|
||||
],
|
||||
"actions": [],
|
||||
"ready": false,
|
||||
"dimensions": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"paused": true,
|
||||
"currentTime": 0,
|
||||
"error": {
|
||||
"code": 4,
|
||||
"message": "undefined is not a constructor (evaluating 'new t')"
|
||||
},
|
||||
"readyState": 0
|
||||
},
|
||||
"scope": "Two actual published proxies with actual core5.4.0; native MP4 pixels/clock or explicitly unsupported Windows WebKit APIs. No candidate, HLS or AV-sync acceptance."
|
||||
}
|
||||
]
|
||||
},
|
||||
"fixtureSha256": {
|
||||
"test/browser/mediabunny.spec.js": "0d9af2fc2c47a9a78953e8c1fd69148ba553dc3b5e3f5ff0c141f537597ae9fe",
|
||||
"test/mediabunny.test.js": "bc740a32d88cfb1291785d6ba20737d1e53276e9d43a3fc99ecc5423e5fa6a77",
|
||||
"test/helpers/mediabunny.js": "3e25bd5274d58be4d0bb85cd5fb2a825848cae1bfdbfaf5c91177a0c2b03a87a"
|
||||
},
|
||||
"limitations": [
|
||||
"No full CI rerun claimed for this checkpoint; MB-01 CI evidence belongs to its preceding completion commit.",
|
||||
"WebM/HLS/Blob/Stream, seek and exact readiness/AV-sync/cleanup coverage still pending.",
|
||||
"Windows WebKit missing APIs is an explicit negative control, not successful playback or a general Safari support verdict.",
|
||||
"Candidate code has not yet been migrated or fixed."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
# PKG-MB-02 首批媒体与销毁负例检查点
|
||||
|
||||
本任务进行中,不计为完成。MB-01完成提交为1cfd2e17,完整CI1161项属于该提交;
|
||||
本检查点新增测试按影响范围执行22项Node(19基线+3历史缺陷)及6项浏览器,不将旧CI计为本步完整CI。
|
||||
|
||||
## 已复现的历史缺陷
|
||||
|
||||
两份真实npm主产物及冻结工作区均使用实际engine.load/destroy,替换performLoad为受控未完成请求。
|
||||
destroy没有推进loadSeq,waiting/loadstart两个timer继续保留;晚到失败先发error并写networkState=3,
|
||||
之后仍能执行waiting/loadstart。三个精确负例通过;它们证明旧问题存在,不代表候选已修复。
|
||||
宿主为受控ArtPlayer事件对象,不能据此断言完整核心销毁后外部监听器仍收到事件。
|
||||
|
||||
## 真实浏览器结果
|
||||
|
||||
实际npm核心5.4.0 × proxy 1.0.0/1.2.0 × 三引擎,共6项:
|
||||
|
||||
- Chromium、Firefox的4项:真实MP4加载,播放时钟>0.15秒,320×180 Canvas,红/蓝采样像素及alpha,暂停状态通过。
|
||||
- 当前Windows WebKit的2项:VideoDecoder、AudioDecoder、AudioContext和webkitAudioContext均不存在;
|
||||
实际旧proxy出现code=4和构造器错误、未ready、尺寸0。测试验证此精确能力失败,没有skip,
|
||||
但不能把这两项称为播放通过,不能扩大为所有Safari不支持。
|
||||
- 所有项保留实际proxy字节哈希、核心资源manifest、浏览器版本/平台、媒体状态/事件、页面错误和请求诊断。
|
||||
|
||||
第一次探索等待ready时使用了Playwright默认30秒超时,保留6个截图与trace;正式测试已使用
|
||||
expect.poll和明确的能力失败断言,不再靠超时或catch任意错误判通过。
|
||||
正式报告与整个results目录归档于`.cache/mb02-first-results`;探索报告位于`.cache/mb02-native-probe-3ZcV99`。
|
||||
|
||||
## 复跑与剩余范围
|
||||
|
||||
```sh
|
||||
node --test test/mediabunny.test.js refactor/scripts/mb-contract.test.mjs
|
||||
yarn test:browser test/browser/mediabunny.spec.js
|
||||
```
|
||||
|
||||
还缺:WebM、HLS、Blob/Stream、真实seek、无音轨/无视频/无轨道、超时和取消、并发选轨与
|
||||
就绪事件次数、音画同步及资源释放。原生DPiP、长播放、新旧核心完整组合留MB-09。
|
||||
MPL来源/通知仍MB-10,Canvas/Ambilight类型取舍仍未决定。
|
||||
|
||||
实现和用例影响由[机器记录](../baselines/mb-media-checkpoint.json)描述,当前PKG-MB-02保持doing。
|
||||
+3
-2
@@ -4,7 +4,7 @@
|
||||
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 222 项,范围 22 个包及工作区/示例。
|
||||
|
||||
状态:todo 117 / doing 7 / blocked 0 / done 98 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
状态:todo 116 / doing 8 / blocked 0 / done 98 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
|
||||
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
|
||||
|
||||
@@ -330,7 +330,7 @@
|
||||
| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| PKG-MB-01 | artplayer-proxy-mediabunny<br>核对 shim 与媒体契约 | BASE-05 | 全部 option、art.mediabunny、canvas/shim 属性及事件表 | 公开暴露成员和实际发布依赖/资源范围明确;核实 third-party.json 所记录依赖 MPL-2.0 元数据与实际 bundle 的许可/通知范围,不从根 MIT 推断 | H | done |
|
||||
| PKG-MB-02 | artplayer-proxy-mediabunny<br>建立真实媒体与事件基线 | PKG-MB-01, ENG-05, ENG-08 | MP4/WebM/HLS/Blob/Stream、seek/错误/轨道切换样本 | ready 事件顺序、音画同步、超时和释放可重跑 | H | todo |
|
||||
| PKG-MB-02 | artplayer-proxy-mediabunny<br>建立真实媒体与事件基线 | PKG-MB-01, ENG-05, ENG-08 | MP4/WebM/HLS/Blob/Stream、seek/错误/轨道切换样本 | ready 事件顺序、音画同步、超时和释放可重跑 | H | doing |
|
||||
| PKG-MB-03 | artplayer-proxy-mediabunny<br>整理 input 与加载取消 | PKG-MB-02, CORE-09 | input.js 源检测、输入资源、Range 与取消 | HLS 检测在 input 边界,旧来源类型和超时保持 | H | todo |
|
||||
| PKG-MB-04 | artplayer-proxy-mediabunny<br>整理 VideoShim/EventTarget/Engine 协调 | PKG-MB-03, CORE-06, CORE-11 | shim 描述符、事件桥、加载状态和操作隔离 | 公开属性/同步异步返回与事件重入顺序保持 | H | todo |
|
||||
| PKG-MB-05 | artplayer-proxy-mediabunny<br>整理视频解码、seek 和帧释放 | PKG-MB-04 | VideoEngine 调度、队列、晚帧处理和资源释放 | 暂停/seek/切源无旧帧覆盖,默认丢帧策略不变 | H | todo |
|
||||
@@ -521,4 +521,5 @@
|
||||
- PKG-CANVAS-03: [记录](changes/2026-09-12-PKG-CANVAS-03-lifecycle.md) [记录](baselines/canvas-lifecycle-validation.json) [记录](canvas-validation.md)
|
||||
- PKG-CANVAS-04: [记录](changes/2026-09-12-PKG-CANVAS-04-types.md) [记录](baselines/canvas-types-validation.json) [记录](canvas-validation.md)
|
||||
- PKG-MB-01: [记录](baselines/mb-release.json) [记录](baselines/mb-surface.json) [记录](baselines/mb-contract.md) [记录](baselines/mb-contract-validation.json) [记录](mb-validation.md) [记录](changes/2026-09-12-PKG-MB-01-contract.md)
|
||||
- PKG-MB-02: [记录](changes/2026-09-12-PKG-MB-02-checkpoint.md) [记录](baselines/mb-media-checkpoint.json) [记录](mb-validation.md)
|
||||
- PKG-FACTORY-01: [记录](baselines/factory-assignment-gaps.json) [记录](baselines/factory-compatibility-proposals.json) [记录](factory-compatibility-decision.md) [记录](changes/2026-09-12-PKG-FACTORY-01-decision.md)
|
||||
@@ -1,5 +1,13 @@
|
||||
# 进度与证据
|
||||
|
||||
## 当前检查点:PKG-MB-02 真实MP4与销毁负例
|
||||
|
||||
22项Node(含3个销毁后晚加载历史缺陷)通过;6项浏览器检查中,4项Chromium/Firefox
|
||||
真实MP4像素/时钟/暂停成功,2项Windows WebKit明确能力失败对照。六项不是六次播放成功。
|
||||
见[检查点](changes/2026-09-12-PKG-MB-02-checkpoint.md)和[证据](baselines/mb-media-checkpoint.json)。
|
||||
MB-02仍doing,剩余WebM/HLS/Blob/Stream、seek、时序与释放;98 done、8 doing、116 todo。
|
||||
本步没有修改生产源码。Canvas/Ambilight类型取舍仍待确认。
|
||||
|
||||
## 最新完成:PKG-MB-01 MediaBunny proxy 契约基线
|
||||
|
||||
冻结实际npm1.0.0/1.2.0共12成员、17个Git输入、3份产物接口表面与25条配置路径;
|
||||
|
||||
@@ -169,5 +169,6 @@
|
||||
| DPIP-RESOLVE-01 | resolved / 已复现 | Historical Document PiP exports hide declarations or infer an uncallable CommonJS namespace in modern resolution | PKG-DPIP-04, PKG-DPIP-06 |
|
||||
| FACTORY-TYPE-01 | open / 已复现 | Canvas and Ambilight default self property narrows assignability of historical factory replacements | PKG-FACTORY-01 |
|
||||
| MB-LICENSE-01 | open / 已复现 | Historical MediaBunny proxy bundles embed SDK code without MPL notice markers or separate license/source provenance | PKG-MB-10 |
|
||||
| MB-LIFE-01 | open / 源码/产物事实 | MediaBunny load, track replacement, timeout, RAF and audio callbacks lack one shared terminal owner | PKG-MB-02, PKG-MB-03, PKG-MB-04, PKG-MB-05, PKG-MB-06, PKG-MB-07, PKG-MB-09 |
|
||||
| MB-LIFE-01 | open / 已复现 | MediaBunny load, track replacement, timeout, RAF and audio callbacks lack one shared terminal owner | PKG-MB-02, PKG-MB-03, PKG-MB-04, PKG-MB-05, PKG-MB-06, PKG-MB-07, PKG-MB-09 |
|
||||
| MB-TYPE-01 | open / 已复现 | MediaBunny proxy declares only Canvas while exposing a shim and changes CommonJS export generation between releases | PKG-MB-08, PKG-MB-10 |
|
||||
| MB-CAP-01 | open / 已复现 | Current Windows WebKit lacks WebCodecs and Web Audio constructors needed by historical MediaBunny proxies | PKG-MB-02, PKG-MB-09 |
|
||||
+21
-3
@@ -3638,7 +3638,7 @@
|
||||
{
|
||||
"id": "MB-LIFE-01",
|
||||
"title": "MediaBunny load, track replacement, timeout, RAF and audio callbacks lack one shared terminal owner",
|
||||
"confirmation": "source-observed",
|
||||
"confirmation": "reproduced",
|
||||
"owners": [
|
||||
"PKG-MB-02",
|
||||
"PKG-MB-03",
|
||||
@@ -3648,13 +3648,15 @@
|
||||
"PKG-MB-07",
|
||||
"PKG-MB-09"
|
||||
],
|
||||
"compatibleResolution": "Reproduce pending operations and destroy/source-switch races before migrating each owner; preserve public event and promise behavior while preventing stale resource use.",
|
||||
"compatibleResolution": "Reproduce pending operations and destroy/source-switch races before migrating each owner; preserve public event and promise behavior while preventing stale resource use. MB-02 now reproduces late load rejection and uncancelled waiting/loadstart timers after destroy in all three historical implementations using a controlled host. Other interleavings and full-core native behavior are not yet verified.",
|
||||
"closureCriteria": "Historical failing interleavings and candidate cancellation/cleanup pass with real media and event evidence, including long playback and track topology.",
|
||||
"status": "open",
|
||||
"evidence": [
|
||||
"refactor/baselines/mb-release.json",
|
||||
"refactor/baselines/mb-contract.md",
|
||||
"refactor/changes/2026-09-12-PKG-MB-01-contract.md"
|
||||
"refactor/changes/2026-09-12-PKG-MB-01-contract.md",
|
||||
"refactor/changes/2026-09-12-PKG-MB-02-checkpoint.md",
|
||||
"refactor/baselines/mb-media-checkpoint.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -3673,6 +3675,22 @@
|
||||
"refactor/baselines/mb-contract.md",
|
||||
"refactor/changes/2026-09-12-PKG-MB-01-contract.md"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "MB-CAP-01",
|
||||
"title": "Current Windows WebKit lacks WebCodecs and Web Audio constructors needed by historical MediaBunny proxies",
|
||||
"status": "open",
|
||||
"confirmation": "reproduced",
|
||||
"owners": [
|
||||
"PKG-MB-02",
|
||||
"PKG-MB-09"
|
||||
],
|
||||
"compatibleResolution": "Keep exact capability negative controls and validate usable browsers/codecs separately; improve unsupported-capability reporting during migration without fabricating decoder support.",
|
||||
"closureCriteria": "Per-browser native media/support matrix and predictable unsupported-capability behavior verified, including target Safari evidence where support is claimed.",
|
||||
"evidence": [
|
||||
"refactor/changes/2026-09-12-PKG-MB-02-checkpoint.md",
|
||||
"refactor/baselines/mb-media-checkpoint.json"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+6
-2
@@ -3416,11 +3416,15 @@
|
||||
"ENG-05",
|
||||
"ENG-08"
|
||||
],
|
||||
"status": "todo",
|
||||
"status": "doing",
|
||||
"risk": "H",
|
||||
"deliverable": "MP4/WebM/HLS/Blob/Stream、seek/错误/轨道切换样本",
|
||||
"acceptance": "ready 事件顺序、音画同步、超时和释放可重跑",
|
||||
"evidence": []
|
||||
"evidence": [
|
||||
"changes/2026-09-12-PKG-MB-02-checkpoint.md",
|
||||
"baselines/mb-media-checkpoint.json",
|
||||
"mb-validation.md"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "PKG-MB-03",
|
||||
|
||||
Reference in new issue
Block a user