Skip to content
Webstrong signalverifiedsupport checked August 25, 2026

Firefox will ship JPEG XL, and the decoder had to be rewritten in Rust first

Mozilla posted its intent to ship on August 24. The condition it set five years ago was met: Google Research rebuilt the decoder in Rust, because 100,000 lines of multithreaded C++ was too much attack surface to accept.

By Redakcija WebAiRadarPublished 2 min readwritten by a model
Image: Mozilla Hacks

Source

Intent to Ship: JPEG XL

Mozilla Hacks · Original published August 24, 2026

Firefox has had JPEG XL behind a flag since 2021 and has not shipped it in all that time. The reason was never the format. It was the decoder: 100,000 lines of multithreaded C++, parsing untrusted files from the open web, inside the browser process. Mozilla's answer was a challenge rather than a refusal — build a safe, performant, compact and compatible decoder in Rust, and we will ship it. Google Research built jxl-rs, and it is now the core of JPEG XL support in Firefox.

What is actually shipping

An intent to ship is a public commitment, not a release. Mozilla says Chrome also intends to ship, and that Safari already carries a partial implementation — it shipped JPEG XL in 2023, but without progressive rendering. On that basis Mozilla expects the format to be supported across browsers before the end of the year.

Alongside the decoder, Mozilla pushed for integration tests as an Interop 2026 investigation area. That matters more than it sounds: an image format that decodes differently in three browsers is a format nobody can use in production.

Checked against webstatus.dev on August 25, 2026: JPEG XL is Baseline limited. Safari and Safari on iOS have shipped it since September 18, 2023; Chrome and Firefox have not. AVIF, by contrast, has been Baseline widely available since January 25, 2024. Today the two formats are not interchangeable in production, whatever the intent notices say.

AVIF or JPEG XL: the numbers say it depends

For the first time the web has two modern formats that are both worth using, and the honest answer to which one is that they win in different places. Mozilla published measurements on a photographic image, scored with SSIMULACRA 2.

At medium-high quality (score 62.8) the AVIF is 116 kB and the JPEG XL is 134 kB. At very high quality (score 80) it is 227 kB against 264 kB. Lossless flips it: 1.76 MB for AVIF, 1.45 MB for JPEG XL, and 1.55 MB for lossless WebP. On a screenshot the gap is wider still — at score 78, AVIF is 11.6 kB and JPEG XL 23.8 kB, but lossless it is 164 kB against 92 kB.

  • JPEG XL: lossless imagery, progressive rendering, and recompressing existing JPEGs without quality loss.
  • AVIF: photographic images at web quality, and images mixing sharp edges with flat surfaces.

Progressive rendering is the part you can see

Progressive rendering means the image starts drawing while it is still downloading. In Mozilla's demo the full image is 135 kB, and a few kilobytes in, a reader can already tell what the picture is of. AVIF has only basic support for this, which is why Mozilla pushed for it in the Rust implementation.

For large images that difference can outweigh the file size. The advice from the post is not to pick a winner but to test with a representative set of your own images, at the quality your readers actually get, and to optimize for high pixel density.

„Build a safe, performant, compact, and compatible JPEG XL decoder in Rust, and we'll ship it.“
Mozilla's challenge to the JPEG XL team at Google Research

Related

An iPad, desktop, and an iPhone each displaying a browser showing an image of a 3D hiking boot model.
Webstrong signal

Safari 27.0 ships an MCP server, so a coding agent can drive the browser itself

WebKit published the feature list on September 17, 2026, and it is the longest the team has written: 83 features, up from 58 at the first beta in June, and 844 quality fixes against the 525 announced at WWDC. The headline for anyone who builds with a coding agent is the Safari MCP server, which hands the agent the DOM, network requests, screenshots and console output from a real Safari window. Customizable Select turns the real select element into something you can fully restyle, and scroll anchoring stops the page from jumping when content loads in above what you are reading.

WebKit Blogverified

WEBKIT252eleven new features in the preview build
Webmedium signal

Safari Technology Preview 252 adds named-feature() and lets SVG reach a filter in another file

The preview build came out on September 11, 2026 and covers WebKit changes between 319252@main and 320112@main. Eleven features are new, and two of them extend the same job: how a stylesheet, and then a script, finds out what the engine underneath can do. The named-feature() function asks about a behavior that has no syntax of its own, and the registry behind it holds exactly two entries today. SVG also gained external resources, so the url() reference can finally point at a filter, mask or gradient stored in another document.

WebKitverified

INTEROP 2027Sept 23twenty days to file a proposal
Webmedium signal

Interop 2027 proposals close on September 23, and untested ideas do not qualify

The call for Interop 2027 Focus Area proposals opened on September 3, 2026 and closes on September 23, 2026. Proposals are filed as issues on the web-platform-tests/interop repository, and two conditions decide almost everything: the technology must already have a mature standard, and it must be testable, because the test results are what the dashboard scores. Anything that fails the second condition is steered toward an Interop Investigation instead. Twenty days is the whole window, and the evidence a good proposal needs takes longer than an evening to assemble.

WebKitverified