Firefox version 157 will enable JPEG XL decoding by default on all platforms. This feature has been developed under the image.jxl.enabled setting, which is currently active by default only on the Nightly version of Firefox. The JPEG XL decoder, known as jxl-rs, is built using the Rust programming language. A bug report to enable this feature by default can be found on Mozilla's Bugzilla platform.
JPEG XL is standardized under ISO/IEC 18181. Mozilla's standards position regarding JPEG XL can be reviewed on their GitHub page, and the TAG review indicates that concerns have been satisfied. There is an intent to prototype this feature, as discussed in Mozilla's developer platform group.
Other web browsers have also begun to adopt JPEG XL; for instance, Safari included it in version 17.0 released in 2023, while Chrome has it available behind a flag but has not yet committed to a full release.
Performance concerns regarding JPEG XL were raised during the prototyping discussions. The latest release of jxl-rs (version 0.6.0) includes support for multithreaded decoding, with patches to enable this feature expected to be integrated soon. Benchmark tests show that JPEG XL decoding performance is slightly better than Safari's implementation on certain machines, particularly for larger images, although there is a noticeable performance gap for smaller images.
JPEG XL supports features comparable to other image formats and to Blink's implementation, including animation and progressive display. However, HDR images will display as SDR, although the tone mapping for JPEG XL is reported to be superior to that of other formats. Safari's implementation lacks both progressive rendering and animation capabilities.
The Web Platform Tests (wpt) for JPEG XL cover decoding accuracy across various attributes, including bit depths, alpha channels, grayscale, CMYK, color management, orientation, and coding tools. Additional Gecko tests have been added to ensure comprehensive coverage, including tests for chunked and incremental decoding, animation frame counts, downscaling during decoding, and handling of corrupt files. The fuzzing team has already conducted tests on JPEG XL before its Nightly activation and will perform further fuzz testing on the decoder before the preference is switched on by default.