Fix #582: MKV files saving as TXT on browsers that cannot infer Matroska's MIME type from the disk-backed export. Download URLs now use the muxer's declared type, preserving the file's name, timestamp, and bytes without reading the media into JavaScript memory.
Reproduced before fixing
- Installed the original v5.5.0 no-blocklist build and the v5.5.6 no-blocklist build in an isolated Linux Chrome 128 browser.
- Using the extension UI and Chrome's normal download handling, both saved
master.txtwithtext/plain, although the bytes contained valid Matroska video and audio. - Default current macOS browsers did not reproduce the rename. Newer Chromium's Matroska mapping can mask the missing MIME assignment.
Verified before release
- The repaired standard and no-blocklist builds save actual
master.mkvfiles with the correct Matroska type in the same Chrome 128 setup. - Passed ten end-to-end actual-file cases across Chrome 128, current Brave, and Firefox, including MP4 controls, TS/fMP4 inputs, and subtitle exports.
- Verified the real saved filename, browser MIME, file header, every one of the 200 source video frames, complete decoded audio hashes, and subtitle text/timing. The source media is retained intact; the fix changes download metadata.
- Added four regression cases for blank, incorrect, and already correct filesystem MIME types, including preservation of file metadata and bytes.
- All 327 automated tests, workspace typechecking, the security gate, and six release archive checks pass. Firefox lint reports zero errors and six existing warnings.
- Added
pnpm test:e2e:mkvto reproduce and validate the issue locally with retained JSON evidence and saved media.
Firefox installation
GitHub Firefox XPIs are unsigned builds for temporary installation through about:debugging. Firefox Add-ons availability depends on a separate Mozilla signing and review process.