Chrome 開發者團隊宣布,從 Chrome 155 版本開始,瀏覽器將原生支援 JPEG XL (.jxl) 圖片格式的解碼功能。JPEG XL 被設計為下一代圖片格式,旨在滿足現代網頁開發者和攝影師的需求,提供比 JPEG 高出 30-50% 的壓縮效率,並支援無損壓縮、內建 HDR 支援以及無損 JPEG 轉碼等功能。Chrome 團隊建議開發者同時嘗試 AVIF 和 JPEG XL 以獲得最佳結果,並指出 JPEG XL 特別適合高保真或無損壓縮場景,尤其是針對攝影圖片或需要細粒度漸進式解碼的情況。
為了確保安全性,Chrome 整合了名為 jxl-rs 的純 Rust 語言 JPEG XL 解碼器實作。圖片解碼器是瀏覽器中關鍵的攻擊面,過去使用 C++ 等記憶體不安全語言編寫的解碼器容易出現越界讀取、堆積溢位和使用後釋放等漏洞。透過使用 Rust 實作,Chrome 旨在從源頭消除這些安全風險,同時利用已穩定的 target_feature_11 Rust 特性及受 Highway 庫啟發的 SIMD 抽象層 (jxl_simd),在無需大量 unsafe 程式碼的情況下實現與 C++ 參考實作 (libjxl) 相當的效能。該實作經過模糊測試和 AI 程式碼審查驗證,在整個開發歷史中未發現記憶體安全錯誤。
Chrome 團隊表示,決定推出 JPEG XL 是基於來自網頁開發者的持續回饋與請求,這在 Interop Project 中表現明顯,該格式在 2026 年及之前幾年都是熱門提案。為了確保跨瀏覽器的互通性,Chrome 參與了 Interop 2026 JPEG XL 調查,以確保瀏覽器對 JPEG XL 所有功能的測試覆蓋率,並確保這些測試在 Chrome 中通過。
事件背景
圖片解碼器處理来自网络的不受信任的二進位結構,並在渲染器進程中運行,因此是現代瀏覽器中關鍵的安全攻擊面。Chrome 的安全模型依賴於沙箱化和深度防禦,但沙箱化僅作為第二層防禦。為了從源頭消除記憶體不安全語言帶來的漏洞風險,Chrome 選擇了 Rust 語言進行重寫。
在技術實現上,jxl-rs 的性能優化基於 libjxl 的基礎,包括用於處理跨越區域邊界步驟的通用處理流程,同時最小化數據複製以最大化硬體性能。開發團隊在 jxl-rs 性能儀表板上追蹤不同硬體平台上的性能表現。此外,為了確保格式互通性,Chrome 團隊通過 Bug 報告、調查、Developer Signals 專案以及 Interop Project 等多種渠道收集開發者回饋。
社群觀察
社群討論顯示,用戶對 Chrome 重新引入 JPEG XL 支援感到興奮,並指出該格式過去因缺乏主流瀏覽器支援而受限。有評論提到,雖然 AVIF 在某些高損耗壓縮場景中可能略佔優勢,但 JPEG XL 因其極端的通用性而被視為一種「全能」圖片格式,除非在 CPU 資源極度受限的情況下,否則選擇 JPEG XL 不會是錯誤的決定。部分用戶回顧了 Google 曾在 Chrome 110 版本中移除 JPEG XL 支援的歷史,認為這次重新引入是對開發者強烈需求的回應。另有觀點指出,儘管生態系統支援正在改善(如 Safari 和 Firefox 的進展),但根據 caniuse 數據,目前 JPEG XL 的支援率仍遠低於 WebP。



