You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Duplication: inChrome, clickToolbar, suspendBackground, tabMode/modeOfTab, expectMode, hasOverlayPlayer and the "open the extension page, find the handle, set options, find the site handle" prologue are copied into eight classic specs; openExtensionPage exists four times; serveFile/range parsing is reimplemented in source-length, mp4-files, mp4-loading and mp4-fragmented-end (source-length's throws synchronously on bytes=5-2 via createReadStream ERR_OUT_OF_RANGE, which takes the worker down). A tests/e2e/classic-helpers.mjs and reuse of serveFile.mjs would make the next "found by URL, not last handle" fix land once.
Speed: the extension suites start a fresh Firefox and reinstall the add-on per spec file (18 + 10 + 1 files, twice for the two builds). Grouping the short, state-free ext specs (background-log, capabilities, extension, download-names, download-blob-lifetime, header-rules, keybinds-storage, options-mpv) into one file, or raising maxInstances to 2 once the ports are unique, would cut the ext job noticeably; the web suite's per-spec servers could all live in onPrepare on one port with path routing.
Clearer failures: playback.e2e.mjs and mp4-files.e2e.mjs log state, but expectEveryHlsSegmentListed's wait swallows its timeout (.catch(() => {})) and the following toEqual prints two arrays with no "audio playlist never arrived" reason; hls-live.e2e.mjs and mp4-loading.e2e.mjs have waitUntils without timeoutMsg; subtitle-search.e2e.mjs has waits with no timeout or message.
logs/retried.jsonl is never truncated at the start of a local run, so a developer's summary accumulates every retry since the last rm -rf logs; clear it in each config's onPrepare or key it by run id.
Uncovered risky paths named in CLAUDE.md: a saved profile in the real extension's chrome.storage for the keybind migration, the native host surviving the kill-on-close job object (hand-checked), and the OPFS 30 s "crashed worker" fall-through (storage.e2e.mjs stubs setup() but never a worker that stops answering).
Confidence: high.
From a line-by-line code review of the tree at 41363fd (2026-10-02). Each claim above was checked against the source before filing; the reproduction steps and line references are as of that commit.
Activity
Merge pull request #334 from Nawid3333/claude/group-4-test-infra