{ "task": "CORE-SUBTITLE-OFFSET-01", "baselineCommit": "b5dee252d461f91389c282a47401c5f8fd9a4483", "recordedAt": "2026-09-14T04:47:39.758Z", "node": "v24.21.0", "yarn": "1.22.22", "sources": [ { "path": "packages/artplayer/src/subtitle/timing.ts", "sha256": "f2c1dbb63697a51c200371127da4fb8ea6e90a5b4de888bb1c2d7eae4007a5f8" }, { "path": "packages/artplayer/src/subtitle/types.ts", "sha256": "c7fd0568c71611fe44f0a7d2735a246250c8a63daefd15c63091e37d38bf1edb" }, { "path": "packages/artplayer/src/player/subtitleOffsetMix.ts", "sha256": "cf9834711842c8a31c3143ab3028f0cf9ba541fafe6f0a3076067daa9d4c750a" }, { "path": "test/subtitle.test.js", "sha256": "c996b0b4b9f812d04bfe6d255c339682bb28b2999ab850ff3f65bcc4e15c2154" }, { "path": "test/browser/subtitle-offset-native.spec.js", "sha256": "8a8da0caef69390febcb759e9fbcd6237bbef25ea8558eb2709b0a57afd350e5" }, { "path": "test/browser/subtitle-offset.spec.js", "sha256": "fe7c88dff0dffe138ee4d560eda9a18c7df3c4c14093bbb61e0f96807815d4c1" }, { "path": "test/browser/multiple-subtitles-combinations.spec.js", "sha256": "cceb482b3d399eede226b21dabb99fb85326ba2671712e44a3195a2bf4fd87ee" } ], "runs": [ { "name": "native-initial", "report": { "path": "refactor/.cache/subtitle-offset-native-initial/report.json", "sha256": "d1aedfd3fb38ad808079f4b8ea7eaae31fc5b7b82eeb5297a6d46f57b805e4a5" }, "log": { "path": "refactor/.cache/subtitle-offset-native.log", "sha256": "122252094b25de82ceb3752837ad07b16ac3c7c98ced738bfe6d89da3b9878bd" }, "stats": { "startTime": "2026-09-14T04:32:08.808Z", "duration": 21241.967, "expected": 6, "skipped": 0, "unexpected": 3, "flaky": 0 }, "inputs": [ { "browser": "153.0.8010.12", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "26.6", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "Native paused cue timing probe: time-only", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 0.0011137 } }, { "title": "Native paused cue timing probe: remove-add", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 0.00134 } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 0.001406 } } ] }, { "name": "before", "report": { "path": "refactor/.cache/subtitle-offset-before-browser/report.json", "sha256": "e2ed942a5831b3eddcbb423761b816ccc146fabafdd5ebcbdfe48aca855f07c6" }, "log": { "path": "refactor/.cache/subtitle-offset-before.log", "sha256": "a2a618e31abfff3ac96e37eca79922dea8c66b3588ce73412ba717279a2a20b4" }, "stats": { "startTime": "2026-09-14T04:33:59.505Z", "duration": 23311.836, "expected": 8, "skipped": 0, "unexpected": 7, "flaky": 0 }, "inputs": [ { "browser": "153.0.8010.12", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "26.6", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "d9aeee649395b78eb30b38dcaefb3c19c731c21b08e356485bac7cda08ead242", "bytes": 378117 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "Native paused cue timing probe: time-only", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 0.0016001 } }, { "title": "Native paused cue timing probe: remove-add", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 0.00112 } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32m1\u001b[39m\nReceived: \u001b[31m0\u001b[39m\n\nCall Log:\n- Timeout 7000ms exceeded while waiting on the predicate", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 0.0024469 } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ] } } } }, { "title": "published: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ] } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 3\u001b[39m\n\u001b[31m+ Received + 12\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[2m \"mode\": \"hidden\",\u001b[22m\n\u001b[32m- \"native\": Array [],\u001b[39m\n\u001b[31m+ \"native\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"offset\": 1,\u001b[22m\n\u001b[2m \"paused\": true,\u001b[22m\n\u001b[32m- \"public\": Array [],\u001b[39m\n\u001b[32m- \"rendered\": Array [],\u001b[39m\n\u001b[31m+ \"public\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[31m+ \"rendered\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"sameCues\": true,\u001b[22m\n\u001b[2m \"time\": 1.5,\u001b[22m\n\u001b[2m }\u001b[22m", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ] } } }, "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 1.5 } }, { "title": "published: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 3\u001b[39m\n\u001b[31m+ Received + 12\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[2m \"mode\": \"hidden\",\u001b[22m\n\u001b[32m- \"native\": Array [],\u001b[39m\n\u001b[31m+ \"native\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"offset\": 1,\u001b[22m\n\u001b[2m \"paused\": true,\u001b[22m\n\u001b[32m- \"public\": Array [],\u001b[39m\n\u001b[32m- \"rendered\": Array [],\u001b[39m\n\u001b[31m+ \"public\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[31m+ \"rendered\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"sameCues\": true,\u001b[22m\n\u001b[2m \"time\": 1.5,\u001b[22m\n\u001b[2m }\u001b[22m", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ] } } }, "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 1.5 } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 1\u001b[39m\n\n\u001b[33m@@ -4,7 +4,7 @@\u001b[39m\n\u001b[2m \"offset\": 1,\u001b[22m\n\u001b[2m \"paused\": true,\u001b[22m\n\u001b[2m \"public\": Array [],\u001b[22m\n\u001b[2m \"rendered\": Array [],\u001b[22m\n\u001b[2m \"sameCues\": true,\u001b[22m\n\u001b[32m- \"time\": 1.5,\u001b[39m\n\u001b[31m+ \"time\": 1.5013538,\u001b[39m\n\u001b[2m }\u001b[22m", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5013538, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5013538, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5013538, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5013538, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5013538, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ] } } }, "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 640, "height": 360, "duration": 8, "currentTime": 1.5013538 } }, { "title": "published: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 1\u001b[39m\n\u001b[31m+ Received + 1\u001b[39m\n\n\u001b[33m@@ -4,7 +4,7 @@\u001b[39m\n\u001b[2m \"offset\": 1,\u001b[22m\n\u001b[2m \"paused\": true,\u001b[22m\n\u001b[2m \"public\": Array [],\u001b[22m\n\u001b[2m \"rendered\": Array [],\u001b[22m\n\u001b[2m \"sameCues\": true,\u001b[22m\n\u001b[32m- \"time\": 1.5,\u001b[39m\n\u001b[31m+ \"time\": 1.5019551,\u001b[39m\n\u001b[2m }\u001b[22m", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5019551, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5019551, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5019551, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5019551, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5019551, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ] } } }, "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 640, "height": 360, "duration": 8, "currentTime": 1.5019551 } } ] }, { "name": "rejected-mode-toggle", "report": { "path": "refactor/.cache/subtitle-offset-mode-browser/report.json", "sha256": "bef407552b00d336f1d2ecd6f395c53ff6f7f563717584082bb9cea36c0705f2" }, "log": { "path": "refactor/.cache/subtitle-offset-after.log", "sha256": "fc7284f287bcb5f85772b286ccbe70740e9cac2e8288a17451af736cccf6dcf6" }, "stats": { "startTime": "2026-09-14T04:35:33.675Z", "duration": 16983.221, "expected": 13, "skipped": 0, "unexpected": 2, "flaky": 0 }, "inputs": [ { "browser": "153.0.8010.12", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "7e56e5372d21e156e1d63206627eed0f49890d25006519d5835a8f74215cb0c3", "bytes": 378735 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "7e56e5372d21e156e1d63206627eed0f49890d25006519d5835a8f74215cb0c3", "bytes": 378735 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "26.6", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "7e56e5372d21e156e1d63206627eed0f49890d25006519d5835a8f74215cb0c3", "bytes": 378735 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "Native paused cue timing probe: time-only", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "26.6", "state": { "before": { "time": 1.5022134, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5022134, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5022134, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5022134, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "26.6", "state": { "before": { "time": 1.5019224, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5019224, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5019224, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5019224, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "26.6", "state": { "before": { "time": 1.5022801, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5022801, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5022801, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5022801, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "published: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 3\u001b[39m\n\u001b[31m+ Received + 3\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[2m \"mode\": \"hidden\",\u001b[22m\n\u001b[2m \"native\": Array [\u001b[22m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[2m \"First\",\u001b[22m\n\u001b[32m- \"Overlap\",\u001b[39m\n\u001b[2m ],\u001b[22m\n\u001b[2m \"offset\": -1,\u001b[22m\n\u001b[2m \"paused\": true,\u001b[22m\n\u001b[2m \"public\": Array [\u001b[22m\n\u001b[32m- \"First\",\u001b[39m\n\u001b[2m \"Overlap\",\u001b[22m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[2m ],\u001b[22m\n\u001b[2m \"rendered\": Array [\u001b[22m\n\u001b[32m- \"First\",\u001b[39m\n\u001b[2m \"Overlap\",\u001b[22m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[2m ],\u001b[22m\n\u001b[2m \"sameCues\": true,\u001b[22m\n\u001b[2m \"time\": 1.5,\u001b[22m\n\u001b[2m }\u001b[22m", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "Overlap", "First" ], "public": [ "Overlap", "First" ], "rendered": [ "Overlap", "First" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "Overlap", "First" ], "public": [ "Overlap", "First" ], "rendered": [ "Overlap", "First" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } }, "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 1.5 } }, { "title": "published: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoEqual\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\n\u001b[32m- Expected - 3\u001b[39m\n\u001b[31m+ Received + 12\u001b[39m\n\n\u001b[2m Object {\u001b[22m\n\u001b[2m \"mode\": \"hidden\",\u001b[22m\n\u001b[32m- \"native\": Array [],\u001b[39m\n\u001b[31m+ \"native\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"offset\": 1,\u001b[22m\n\u001b[2m \"paused\": true,\u001b[22m\n\u001b[32m- \"public\": Array [],\u001b[39m\n\u001b[32m- \"rendered\": Array [],\u001b[39m\n\u001b[31m+ \"public\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[31m+ \"rendered\": Array [\u001b[39m\n\u001b[31m+ \"First\",\u001b[39m\n\u001b[31m+ \"Overlap\",\u001b[39m\n\u001b[31m+ ],\u001b[39m\n\u001b[2m \"sameCues\": true,\u001b[22m\n\u001b[2m \"time\": 1.5,\u001b[22m\n\u001b[2m }\u001b[22m", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } }, "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4", "width": 320, "height": 180, "duration": 8, "currentTime": 1.5 } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5022505, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5022505, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5022505, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5022505, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5022505, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5022505 } } } }, { "title": "published: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5021119, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5021119, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5021119, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5021119, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5021119, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5021119 } } } } ] }, { "name": "reindex-firefox", "report": { "path": "refactor/.cache/subtitle-offset-reindex-browser/report.json", "sha256": "f0b7947073fef9011912dca38b02c35a40b4b66058eb40f230ff78e3ad225e14" }, "log": { "path": "refactor/.cache/subtitle-offset-reindex.log", "sha256": "78b841386d5ed196ff11cc7aa6f3f9ba3187e1764dba03c42dc97c1d348d0b14" }, "stats": { "startTime": "2026-09-14T04:37:32.181Z", "duration": 5483.955, "expected": 1, "skipped": 0, "unexpected": 0, "flaky": 0 }, "inputs": [ { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "2b99c7fe675a0aa73b32ec955455db86e33d560c31882b146a30e6510b5690cc", "bytes": 378769 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } } ] }, { "name": "expanded-source", "report": { "path": "refactor/.cache/subtitle-offset-expanded-browser/report.json", "sha256": "079d57446a1aebae309956151f7131a753885f0abdbff55856263ca1de5549cc" }, "log": { "path": "refactor/.cache/subtitle-offset-browser.log", "sha256": "fba8560051d769245d5c9eee7b4250419002f557a1a0bffde2dd3bfd375a1853" }, "stats": { "startTime": "2026-09-14T04:38:46.970Z", "duration": 106666.296, "expected": 150, "skipped": 0, "unexpected": 3, "flaky": 0 }, "inputs": [ { "browser": "153.0.8010.12", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "2b99c7fe675a0aa73b32ec955455db86e33d560c31882b146a30e6510b5690cc", "bytes": 378769 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "2b99c7fe675a0aa73b32ec955455db86e33d560c31882b146a30e6510b5690cc", "bytes": 378769 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "26.6", "platform": "win32", "candidate": { "source": { "kind": "workspace-build", "entry": "packages\\artplayer\\src\\index.ts" }, "sha256": "2b99c7fe675a0aa73b32ec955455db86e33d560c31882b146a30e6510b5690cc", "bytes": 378769 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "Multiple subtitles candidate / published-5.3.0: timed VTT and SRT, offsets, fullscreen and source change", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published: timed VTT and SRT, offsets, fullscreen and source change", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / candidate: timed VTT and SRT, offsets, fullscreen and source change", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.2: destroying one player preserves another player's captions and URLs", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.7: destroying one player preserves another player's captions and URLs", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.3.0: destroying one player preserves another player's captions and URLs", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published: destroying one player preserves another player's captions and URLs", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / candidate: destroying one player preserves another player's captions and URLs", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.2: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.7: record single-active-cue overlap boundary", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / candidate core: unchanged old factory and selection calls", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / candidate core: unchanged old factory and selection calls", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / candidate core: unchanged old factory and selection calls", "project": "chromium", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.3.0: timed VTT and SRT, offsets, fullscreen and source change", "project": "firefox", "status": "passed", "observations": { "historical-paused-offset-defect": { "core": "published-5.3.0", "browser": "155.0", "acceptedAsCorrect": false, "observation": "Published core keeps a stale active caption after paused offsets; candidate must clear it. Dedicated native/offset probes retain exact state." } } }, { "title": "Multiple subtitles candidate / published: timed VTT and SRT, offsets, fullscreen and source change", "project": "firefox", "status": "passed", "observations": { "historical-paused-offset-defect": { "core": "published", "browser": "155.0", "acceptedAsCorrect": false, "observation": "Published core keeps a stale active caption after paused offsets; candidate must clear it. Dedicated native/offset probes retain exact state." } } }, { "title": "Multiple subtitles candidate / candidate: timed VTT and SRT, offsets, fullscreen and source change", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.2: destroying one player preserves another player's captions and URLs", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.7: destroying one player preserves another player's captions and URLs", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.3.0: destroying one player preserves another player's captions and URLs", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published: destroying one player preserves another player's captions and URLs", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / candidate: destroying one player preserves another player's captions and URLs", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.2: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.7: record single-active-cue overlap boundary", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / candidate core: unchanged old factory and selection calls", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / candidate core: unchanged old factory and selection calls", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / candidate core: unchanged old factory and selection calls", "project": "firefox", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.3.0: timed VTT and SRT, offsets, fullscreen and source change", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-subtitle-b')\nExpected: \u001b[32m\"Translation\"\u001b[39m\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toHaveText\" locator('.art-subtitle-b') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-subtitle-b')\u001b[22m\n", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4?subtitles-combination", "width": 640, "height": 360, "duration": 8, "currentTime": 0.0017538 } }, { "title": "Multiple subtitles candidate / published: timed VTT and SRT, offsets, fullscreen and source change", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveText\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-subtitle-b')\nExpected: \u001b[32m\"Translation\"\u001b[39m\nTimeout: 7000ms\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toHaveText\" locator('.art-subtitle-b') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-subtitle-b')\u001b[22m\n", "mediaAtFailure": { "source": "http://127.0.0.1:8084/test/pattern.mp4?subtitles-combination", "width": 640, "height": 360, "duration": 8, "currentTime": 0.0021423 } }, { "title": "Multiple subtitles candidate / candidate: timed VTT and SRT, offsets, fullscreen and source change", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.2: destroying one player preserves another player's captions and URLs", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.7: destroying one player preserves another player's captions and URLs", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.3.0: destroying one player preserves another player's captions and URLs", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / published: destroying one player preserves another player's captions and URLs", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / candidate: destroying one player preserves another player's captions and URLs", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / published-5.1.2: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.2: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / published-5.1.7: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles candidate / published-5.1.7: record single-active-cue overlap boundary", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.2.0-main / candidate core: unchanged old factory and selection calls", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.1.0-main / candidate core: unchanged old factory and selection calls", "project": "webkit", "status": "passed" }, { "title": "Multiple subtitles published-1.0.0-main / candidate core: unchanged old factory and selection calls", "project": "webkit", "status": "passed" }, { "title": "published: srt conversion reaches native cues with original callback binding", "project": "chromium", "status": "passed" }, { "title": "published: ass conversion reaches native cues with original callback binding", "project": "chromium", "status": "passed" }, { "title": "published: video fullscreen signal rebuilds track kind while retaining its URL", "project": "chromium", "status": "passed" }, { "title": "published: subtitle remains visible through real native fullscreen", "project": "chromium", "status": "passed" }, { "title": "published: native subtitle cues, offset, styles and show contracts", "project": "chromium", "status": "passed" }, { "title": "published: subtitle latest request wins and cancelled calls settle", "project": "chromium", "status": "passed" }, { "title": "published: subtitle pending completion cannot replace track after destroy", "project": "chromium", "status": "passed" }, { "title": "published: subtitle owns generated URLs and leaves caller URLs alive", "project": "chromium", "status": "passed" }, { "title": "candidate: srt conversion reaches native cues with original callback binding", "project": "chromium", "status": "passed" }, { "title": "candidate: ass conversion reaches native cues with original callback binding", "project": "chromium", "status": "passed" }, { "title": "candidate: video fullscreen signal rebuilds track kind while retaining its URL", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle remains visible through real native fullscreen", "project": "chromium", "status": "passed" }, { "title": "candidate: native subtitle cues, offset, styles and show contracts", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle latest request wins and cancelled calls settle", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle pending completion cannot replace track after destroy", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle owns generated URLs and leaves caller URLs alive", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle cancellation settles before an ignored request or body finishes", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle conversion reentry preserves the newer operation and notice", "project": "chromium", "status": "passed" }, { "title": "candidate: active subtitle errors reject, preserve track and allow a later retry", "project": "chromium", "status": "passed" }, { "title": "candidate: subtitle HTTP failures do not become usable tracks", "project": "chromium", "status": "passed" }, { "title": "candidate: disabled native tracks expose empty cue arrays without throwing", "project": "chromium", "status": "passed" }, { "title": "candidate: native subtitle track failure is reported and obsolete callbacks are removed", "project": "chromium", "status": "passed" }, { "title": "candidate: constructor and URL setter failures notify without unhandled promises", "project": "chromium", "status": "passed" }, { "title": "candidate: reentrant track replacement keeps the winner when outer throws=false", "project": "chromium", "status": "passed" }, { "title": "candidate: reentrant track replacement keeps the winner when outer throws=true", "project": "chromium", "status": "passed" }, { "title": "candidate: failed track insertion restores the old live track and releases the attempted URL", "project": "chromium", "status": "passed" }, { "title": "candidate: cleanup failure after track commit does not revoke the committed URL", "project": "chromium", "status": "passed" }, { "title": "published: srt conversion reaches native cues with original callback binding", "project": "firefox", "status": "passed" }, { "title": "published: ass conversion reaches native cues with original callback binding", "project": "firefox", "status": "passed" }, { "title": "published: video fullscreen signal rebuilds track kind while retaining its URL", "project": "firefox", "status": "passed" }, { "title": "published: subtitle remains visible through real native fullscreen", "project": "firefox", "status": "passed" }, { "title": "published: native subtitle cues, offset, styles and show contracts", "project": "firefox", "status": "passed" }, { "title": "published: subtitle latest request wins and cancelled calls settle", "project": "firefox", "status": "passed" }, { "title": "published: subtitle pending completion cannot replace track after destroy", "project": "firefox", "status": "passed" }, { "title": "published: subtitle owns generated URLs and leaves caller URLs alive", "project": "firefox", "status": "passed" }, { "title": "candidate: srt conversion reaches native cues with original callback binding", "project": "firefox", "status": "passed" }, { "title": "candidate: ass conversion reaches native cues with original callback binding", "project": "firefox", "status": "passed" }, { "title": "candidate: video fullscreen signal rebuilds track kind while retaining its URL", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle remains visible through real native fullscreen", "project": "firefox", "status": "passed" }, { "title": "candidate: native subtitle cues, offset, styles and show contracts", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle latest request wins and cancelled calls settle", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle pending completion cannot replace track after destroy", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle owns generated URLs and leaves caller URLs alive", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle cancellation settles before an ignored request or body finishes", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle conversion reentry preserves the newer operation and notice", "project": "firefox", "status": "passed" }, { "title": "candidate: active subtitle errors reject, preserve track and allow a later retry", "project": "firefox", "status": "passed" }, { "title": "candidate: subtitle HTTP failures do not become usable tracks", "project": "firefox", "status": "passed" }, { "title": "candidate: disabled native tracks expose empty cue arrays without throwing", "project": "firefox", "status": "passed" }, { "title": "candidate: native subtitle track failure is reported and obsolete callbacks are removed", "project": "firefox", "status": "passed" }, { "title": "candidate: constructor and URL setter failures notify without unhandled promises", "project": "firefox", "status": "passed" }, { "title": "candidate: reentrant track replacement keeps the winner when outer throws=false", "project": "firefox", "status": "passed" }, { "title": "candidate: reentrant track replacement keeps the winner when outer throws=true", "project": "firefox", "status": "passed" }, { "title": "candidate: failed track insertion restores the old live track and releases the attempted URL", "project": "firefox", "status": "passed" }, { "title": "candidate: cleanup failure after track commit does not revoke the committed URL", "project": "firefox", "status": "passed" }, { "title": "published: srt conversion reaches native cues with original callback binding", "project": "webkit", "status": "passed" }, { "title": "published: ass conversion reaches native cues with original callback binding", "project": "webkit", "status": "passed" }, { "title": "published: video fullscreen signal rebuilds track kind while retaining its URL", "project": "webkit", "status": "passed" }, { "title": "published: subtitle remains visible through real native fullscreen", "project": "webkit", "status": "passed" }, { "title": "published: native subtitle cues, offset, styles and show contracts", "project": "webkit", "status": "passed" }, { "title": "published: subtitle latest request wins and cancelled calls settle", "project": "webkit", "status": "passed" }, { "title": "published: subtitle pending completion cannot replace track after destroy", "project": "webkit", "status": "passed" }, { "title": "published: subtitle owns generated URLs and leaves caller URLs alive", "project": "webkit", "status": "passed" }, { "title": "candidate: srt conversion reaches native cues with original callback binding", "project": "webkit", "status": "passed" }, { "title": "candidate: ass conversion reaches native cues with original callback binding", "project": "webkit", "status": "passed" }, { "title": "candidate: video fullscreen signal rebuilds track kind while retaining its URL", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle remains visible through real native fullscreen", "project": "webkit", "status": "passed" }, { "title": "candidate: native subtitle cues, offset, styles and show contracts", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle latest request wins and cancelled calls settle", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle pending completion cannot replace track after destroy", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle owns generated URLs and leaves caller URLs alive", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle cancellation settles before an ignored request or body finishes", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle conversion reentry preserves the newer operation and notice", "project": "webkit", "status": "passed" }, { "title": "candidate: active subtitle errors reject, preserve track and allow a later retry", "project": "webkit", "status": "passed" }, { "title": "candidate: subtitle HTTP failures do not become usable tracks", "project": "webkit", "status": "passed" }, { "title": "candidate: disabled native tracks expose empty cue arrays without throwing", "project": "webkit", "status": "passed" }, { "title": "candidate: native subtitle track failure is reported and obsolete callbacks are removed", "project": "webkit", "status": "passed" }, { "title": "candidate: constructor and URL setter failures notify without unhandled promises", "project": "webkit", "status": "passed" }, { "title": "candidate: reentrant track replacement keeps the winner when outer throws=false", "project": "webkit", "status": "passed" }, { "title": "candidate: reentrant track replacement keeps the winner when outer throws=true", "project": "webkit", "status": "passed" }, { "title": "candidate: failed track insertion restores the old live track and releases the attempted URL", "project": "webkit", "status": "passed" }, { "title": "candidate: cleanup failure after track commit does not revoke the committed URL", "project": "webkit", "status": "passed" }, { "title": "Native paused cue timing probe: time-only", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "26.6", "state": { "before": { "time": 1.500572, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.500572, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.500572, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.500572, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "26.6", "state": { "before": { "time": 1.5026637, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5026637, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5026637, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5026637, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "webkit", "status": "failed", "error": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBeCloseTo\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m, \u001b[22mprecision\u001b[2m)\u001b[22m\n\nExpected: \u001b[32m1.5\u001b[39m\nReceived: \u001b[31m1.5054564\u001b[39m\n\nExpected precision: 2\nExpected difference: < \u001b[32m0.005\u001b[39m\nReceived difference: \u001b[31m0.005456399999999917\u001b[39m", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "26.6", "state": { "before": { "time": 1.5054564, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5054564, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5054564, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5054564, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } }, "mediaAtFailure": null }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "published: historical paused subtitle offset behavior", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "published: historical paused subtitle offset behavior", "project": "firefox", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5010502, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5010502, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5010502, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5010502, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5010502, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5010502 } } } }, { "title": "published: historical paused subtitle offset behavior", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5015706, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5015706, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5015706, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5015706, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5015706, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5015706 } } } } ] }, { "name": "actual-main", "report": { "path": "refactor/.cache/subtitle-offset-main-browser/report.json", "sha256": "5cddf385557b9afdaeb17d0a59efa7162cfd422da06bf5683f2f78da5c36eb60" }, "log": { "path": "refactor/.cache/subtitle-offset-main.log", "sha256": "c6da7e02b73b013b0ca96d0e17fceb629f8b206b1007a7c2bdc948e068866780" }, "stats": { "startTime": "2026-09-14T04:42:25.310Z", "duration": 14391.498, "expected": 15, "skipped": 0, "unexpected": 0, "flaky": 0 }, "inputs": [ { "browser": "153.0.8010.12", "platform": "win32", "candidate": { "source": { "kind": "artifact", "file": "D:\\github\\ArtPlayer\\packages\\artplayer\\dist\\artplayer.js" }, "sha256": "cab41b4a6b47dfacfc2d99b923273043b48f0ad93c3e808af0bfa84ffe1cf26e", "bytes": 208931 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "artifact", "file": "D:\\github\\ArtPlayer\\packages\\artplayer\\dist\\artplayer.js" }, "sha256": "cab41b4a6b47dfacfc2d99b923273043b48f0ad93c3e808af0bfa84ffe1cf26e", "bytes": 208931 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "26.6", "platform": "win32", "candidate": { "source": { "kind": "artifact", "file": "D:\\github\\ArtPlayer\\packages\\artplayer\\dist\\artplayer.js" }, "sha256": "cab41b4a6b47dfacfc2d99b923273043b48f0ad93c3e808af0bfa84ffe1cf26e", "bytes": 208931 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "Native paused cue timing probe: time-only", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "chromium", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "153.0.8010.12", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "firefox", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "155.0", "state": { "before": { "time": 1.5, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5, "paused": true, "active": [ [ 2, 4 ] ], "sameCue": true }, "immediate": { "time": 1.5, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: time-only", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "time-only", "browser": "26.6", "state": { "before": { "time": 1.5021046, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5021046, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5021046, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5021046, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: remove-add", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "remove-add", "browser": "26.6", "state": { "before": { "time": 1.501127, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.501127, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.501127, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.501127, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "Native paused cue timing probe: mode-toggle", "project": "webkit", "status": "passed", "observations": { "native-offset-probe": { "invalidation": "mode-toggle", "browser": "26.6", "state": { "before": { "time": 1.5006316, "paused": true, "active": [ [ 1, 3 ] ], "sameCue": true }, "changed": { "time": 1.5006316, "paused": true, "active": [], "sameCue": true }, "immediate": { "time": 1.5006316, "paused": true, "active": [], "sameCue": true }, "painted": { "time": 1.5006316, "paused": true, "active": [], "sameCue": true } }, "scope": "Native video/TextTrack only, no Artplayer instance; two paint callbacks observe invalidation without moving playback time" } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "published: historical paused subtitle offset behavior", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "published: historical paused subtitle offset behavior", "project": "firefox", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap", "Later" ], "public": [ "First", "Overlap", "Later" ], "rendered": [ "First", "Overlap", "Later" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5012423, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5012423, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5012423, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5012423, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5012423, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5012423 } } } }, { "title": "published: historical paused subtitle offset behavior", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "published", "records": { "states": [ { "offset": 1, "time": 1.5004091, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5004091, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5004091, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5004091, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5004091, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5004091 } } } } ] }, { "name": "actual-legacy", "report": { "path": "refactor/.cache/subtitle-offset-legacy-browser/report.json", "sha256": "44d9c986c79fbcbb8ce87372c7cd4cd47bba27183142fbea790656b8cbadd954" }, "log": { "path": "refactor/.cache/subtitle-offset-legacy.log", "sha256": "7ccaa212439e11bf408f39d0887f4562126f1c87d3e8f9ea5dafa51e6ff00c69" }, "stats": { "startTime": "2026-09-14T04:43:36.525Z", "duration": 7784.359, "expected": 3, "skipped": 0, "unexpected": 0, "flaky": 0 }, "inputs": [ { "browser": "153.0.8010.12", "platform": "win32", "candidate": { "source": { "kind": "artifact", "file": "D:\\github\\ArtPlayer\\packages\\artplayer\\dist\\artplayer.legacy.js" }, "sha256": "86c38e41d611cc48195db72f41ade863de3b13f4fba66e3fd2a335dfc3094c87", "bytes": 213200 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "155.0", "platform": "win32", "candidate": { "source": { "kind": "artifact", "file": "D:\\github\\ArtPlayer\\packages\\artplayer\\dist\\artplayer.legacy.js" }, "sha256": "86c38e41d611cc48195db72f41ade863de3b13f4fba66e3fd2a335dfc3094c87", "bytes": 213200 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } }, { "browser": "26.6", "platform": "win32", "candidate": { "source": { "kind": "artifact", "file": "D:\\github\\ArtPlayer\\packages\\artplayer\\dist\\artplayer.legacy.js" }, "sha256": "86c38e41d611cc48195db72f41ade863de3b13f4fba66e3fd2a335dfc3094c87", "bytes": 213200 }, "media": { "source": { "kind": "generated-media", "file": "test/browser/media/pattern.mp4" }, "sha256": "0ad1d7ad286aec6e0fa9e27fc1e487e7277df2e603e30040fb942365763d0233", "bytes": 251538 } } ], "tests": [ { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "chromium", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "firefox", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.5, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.5, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.5, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.5 } } } }, { "title": "candidate: paused subtitle offsets refresh native membership without moving media", "project": "webkit", "status": "passed", "observations": { "paused-offset": { "core": "candidate", "records": { "states": [ { "offset": 1, "time": 1.500509, "paused": true, "native": [], "public": [], "rendered": [], "sameCues": true, "mode": "hidden" }, { "offset": -1, "time": 1.500509, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.500509, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" }, { "offset": -3, "time": 1.500509, "paused": true, "native": [ "Later" ], "public": [ "Later" ], "rendered": [ "Later" ], "sameCues": true, "mode": "hidden" }, { "offset": 0, "time": 1.500509, "paused": true, "native": [ "First", "Overlap" ], "public": [ "First", "Overlap" ], "rendered": [ "First", "Overlap" ], "sameCues": true, "mode": "hidden" } ], "events": [ 1, -1, 0, -3, 0 ], "time": 1.500509 } } } } ] } ], "artifacts": [ { "path": "packages/artplayer/dist/artplayer.js", "sha256": "cab41b4a6b47dfacfc2d99b923273043b48f0ad93c3e808af0bfa84ffe1cf26e", "docs": { "path": "docs/compiled/artplayer.js", "sha256": "cab41b4a6b47dfacfc2d99b923273043b48f0ad93c3e808af0bfa84ffe1cf26e" }, "bytes": 208931, "gzip9": 58746, "beforeBytes": 208598, "beforeGzip9": 58637 }, { "path": "packages/artplayer/dist/artplayer.legacy.js", "sha256": "86c38e41d611cc48195db72f41ade863de3b13f4fba66e3fd2a335dfc3094c87", "docs": { "path": "docs/compiled/artplayer.legacy.js", "sha256": "86c38e41d611cc48195db72f41ade863de3b13f4fba66e3fd2a335dfc3094c87" }, "bytes": 213200, "gzip9": 59984, "beforeBytes": 212851, "beforeGzip9": 59873 }, { "path": "packages/artplayer/dist/artplayer.mjs", "sha256": "f339a244d523618dac84248103cd0c629411629ee460e0e21eab1484d44fd418", "docs": { "path": "docs/compiled/artplayer.mjs", "sha256": "f339a244d523618dac84248103cd0c629411629ee460e0e21eab1484d44fd418" }, "bytes": 363421, "gzip9": 77611, "beforeBytes": 362797, "beforeGzip9": 77420 } ], "checks": [ { "path": "refactor/.cache/subtitle-offset-node-final.log", "sha256": "98f2978f7803145ed686847eb58861a2b000d6cfee5441c6554ab18a2b7076da", "passed": 58, "failed": 0, "skipped": 0 }, { "path": "refactor/.cache/subtitle-offset-imports-verified.log", "sha256": "d131b8b3531492a13e9ddbd29dde394da4f6ab611014acaaa298c5e55cda70b0", "passed": 5, "failed": 0, "skipped": 0 }, { "path": "refactor/.cache/subtitle-offset-ci-verified.log", "sha256": "b757ebaf2b20c124cbfbc9e576cfb558029a0318c4fe09e3f915bc01e40eeebb", "passed": 50, "failed": 0, "skipped": 0 } ], "otherChecks": [ { "path": "refactor/.cache/subtitle-offset-types.log", "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "exitCode": 0 }, { "path": "refactor/.cache/subtitle-offset-types-drift-final.log", "sha256": "a7a66a4e637158b6338c9a007dd22ab50a50580bc70a6ccde3964032d8c1a26b", "exitCode": 0 }, { "path": "refactor/.cache/subtitle-offset-lint-verified.log", "sha256": "bc4888e5552e2d0a9a5f3a9ba6de1924a7d7eb370d25e1aa7ffa7a5d91401a1d", "exitCode": 0 }, { "path": "refactor/.cache/subtitle-offset-build.log", "sha256": "e27382dcda4bcb077df8bffc03477962d9b3af6a1199e597d2678815bc937cf6", "exitCode": 0 }, { "path": "refactor/.cache/subtitle-offset-i18n-build.log", "sha256": "91ace22dceffe68d878025c92ead50cb04c5415ee6bb769c2d382537853fef7b", "exitCode": 0 } ], "limits": [ "Published native Firefox defects are recorded explicitly, not fixed in immutable historical bytes", "Old-core WebKit source switching remains open under PKG-MULTI-SUB-05", "Main15 comprises9 native observations,3 published behavior observations,3 candidate acceptance cases; legacy3 are candidate acceptance", "Expanded153 run has150 passing assertions and3 failures:2 old-WebKit source switches and1 diagnostic seek precision assumption; final main corrects the diagnostic fixture", "No public declaration, dependency, version, lockfile or entrypoint change; no physical-device or remote-run claim" ], "i18nRegeneratedWithoutDiff": true, "finalChecks": { "path": "refactor/.cache/subtitle-offset-final-checks.log", "sha256": "71ff38a53b5d2f08bd60a6a3705c24549fb4a0dab4f60869905a65ee4d1d197b", "exitCode": 0 } }