Browser releases

Chrome 155 decodes JPEG XL, and the decoder is written in Rust

Chrome 155 decodes JPEG XL, and the decoder is written in Rust

Your image pipeline already spits out three files per photo plus a fallback for the fallback. Bad news: there's a new contender for a slot. Good news: this one might actually earn it.

Chrome is shipping decoding support for JPEG XL (.jxl) starting from Chrome 155, according to an October 6 post on Chrome for Developers by Luca Versari, Moritz Firsching and Philip Jägenstedt. The pitch in the post is short: 30-50% better compression than JPEG, lossless compression, built-in HDR support and lossless JPEG transcoding. That last item is the sleeper. If your CMS is sitting on a decade of old JPEGs, transcoding them without losing a single pixel is a very different conversation from re-encoding and squinting at the artifacts.

And no, nobody is telling you to bin AVIF. The authors recommend "trying both AVIF and JPEG XL to get the best results," and expect JPEG XL to help most with high-fidelity or lossless compression, especially of photographic images, or where fine-grained progressive decoding is preferred. So it's a tool for a job, not a replacement for everything.

The bit that actually got me

Image decoders chew on untrusted binary straight off the network, inside the renderer process. The post calls them one of the most targeted attack surfaces in a browser, and C++ decoders have a long history of out-of-bounds reads, heap overflows and use-after-free bugs. So Chrome integrated jxl-rs, a pure Rust implementation of the JPEG XL decoder.

Speed didn't get traded away for it, either. The Rust target_feature_11 feature had to be stabilized so SIMD instructions could run without unsafe code, and the team built a SIMD abstraction layer, jxl_simd, inspired by the C++ Highway library. The post says fuzzing and AI review of the code found no memory safety bugs across the implementation's entire history. I've read enough image-codec security advisories to find that genuinely moving. A new format lands in a browser and the story isn't a CVE.

(Quick detour: the post credits the Interop Project, where JPEG XL was a popular proposal in 2026 and for several years before. Chrome also joined the Interop 2026 JPEG XL Investigation to get test coverage for all of the format's features in browsers. OK, back.)

The post covers Chrome only and says nothing about other engines. So .jxl goes in a <picture> element as one <source> among several, with a format every browser you support already decodes as the fallback. The browser takes the first source it can handle and skips the rest, which is exactly the job <picture> was built for.

Verdict: a 7 for the format news until more engines weigh in, and a 9 for shipping a decoder in a memory-safe language.

Source: Chrome for Developers (developer.chrome.com)

Related
CSS & layout

September's Baseline haul gives CSS progress(), alpha() and revert-rule in every engine

Rachel Andrew's September roundup on web.dev lists a large batch of features reaching Baseline Newly available, among them the progress() function, the alpha() relative color function, the revert-rule keyword, <image> values in light-dark() and scroll anchoring with overflow-anchor.

October 13, 2026
Accessibility & semantics

The decorative image you are about to hide probably should not be there at all

Adrian Roselli argues that decorative images in narrative content are not a thing as far as people are concerned, and extends the WAI alt text decision tree with two blunt tests: would readers miss it, and would the author care if it were swapped out.

October 10, 2026
Web platform

Chrome 154 ships responsively-sized iframes with a two-side opt-in

Chrome 154 lands a `frame-sizing` CSS property on the iframe and a matching `responsive-embedded-sizing` meta tag on the embed, so a page can size a frame to its content without a postMessage dance. Only Chromium ships it so far.

September 23, 2026