Entwicklerwerkzeuge

Chrome 155 bringt JPEG XL mit einem Rust-basierten Decoder für Sicherheit und Geschwindigkeit

Chrome 155 unterstützt das Entschlüsseln des Bildformats JPEG XL. Das Team hat den Decoder in Rust neu entwickelt, um Speicher-Sicherheitsfehler zu beseitigen und gleichzeitig hohe Leistung beizubehalten.

A metallic shield made of rust-colored gears protecting a digital photo.
Für diesen Artikel generierte Illustration

Automatisch aus dem englischen Original übersetzt.

Ab Chrome 155 unterstützt der Browser nun das Entschlüsseln des Bildformats JPEG XL. Dieses Update kommt nach Jahren von Entwickleranfragen und umfangreicher Ingenieursarbeit, um sicherzustellen, dass der neue Codec sowohl sicher als auch schnell ist. Der Schritt markiert eine bedeutende Veränderung darin, wie Chrome komplexe Medienverarbeitung handhabt, wobei die Speichersicherheit priorisiert wird, ohne die Rendering-Geschwindigkeit zu opfern.

Was passiert ist

Das Chrome-Team hat offiziell die Unterstützung für das Entschlüsseln von JPEG XL integriert, erkennbar an der Dateiendung .jxl. Dieses Format der nächsten Generation ist darauf ausgelegt, modernen Web-Anforderungen gerecht zu werden, und bietet eine Komprimierung, die 30–50 % effizienter ist als bei Standard-JPEG. Neben der einfachen Größenreduzierung unterstützt das Format verlustfreie Komprimierung, integrierte High-Dynamic-Range-(HDR)-Funktionen und verlustfreies Transkodieren bestehender JPEG-Dateien. Während AVIF ein starker Konkurrent bleibt, empfiehlt das Team, beide Formate zu testen, um festzustellen, welches für spezifische Anwendungsfälle die besten Ergebnisse liefert. JPEG XL eignet sich besonders für hochauflösende fotografische Bilder und Szenarien, die feingranulares progressives Entschlüsseln erfordern.

Diese Veröffentlichung ist nicht nur die Hinzufügung eines neuen Dateityps; sie stellt eine grundlegende Änderung in der Sicherheitsarchitektur des Browsers für die Medienverarbeitung dar. Bilddecoder sind ein primäres Ziel für Angreifer, da sie nicht vertrauenswürdige Binärdaten direkt aus dem Netzwerk innerhalb des Renderer-Prozesses verarbeiten. Historisch wurden diese Komponenten in C++ geschrieben, einer Sprache, die anfällig für Speicher-Sicherheitslücken wie Heap-Überläufe und Use-after-Free-Fehler ist. Um dies anzugehen, ersetzte Chrome den traditionellen C++-Ansatz durch jxl-rs, eine reine Rust-Implementierung des JPEG-XL-Decoders. Diese Entscheidung eliminiert ganze Klassen von Sicherheitsrisiken auf Quellcode-Ebene, anstatt sich ausschließlich auf Sandboxing als sekundäre Verteidigung zu verlassen.

Wie es funktioniert

Um hohe Leistung in einer speichersicheren Sprache wie Rust zu erzielen, waren spezifische technische Fortschritte erforderlich. Moderne Codecs verlassen sich stark auf SIMD-Hardwarebefehle (Single Instruction, Multiple Data), um Pixel schnell zu verarbeiten. Früher erforderte die Verwendung dieser Befehle in Rust oft unsafe-Codeblöcke, was Speicher-Sicherheitsrisiken wieder einführen konnte. Das Chrome-Team nutzte die stabilisierte Funktion target_feature_11 in Rust, die die Verwendung von SIMD-Befehlen ermöglicht, ohne den Code als unsicher zu kennzeichnen. Sie bauten auch eine SIMD-Abstraktionsschicht namens jxl_simd, inspiriert von der C++-Highway-Bibliothek, die in der Referenzimplementierung libjxl verwendet wird. Diese Architektur beschränkt unsichere Operationen auf einen kleinen, streng geprüften Bereich, während der Rest des Decoders speichersicher bleibt.

Die Leistung von jxl-rs basiert auf Optimierungen der ursprünglichen C++-Referenzimplementierung. Es verwendet eine generische Verarbeitungspipeline, die Datenkopien beim Handling von Regionsgrenzen minimiert und so die Hardware-Effizienz maximiert. Das Team überprüfte die Robustheit dieses neuen Decoders durch rigoroses Fuzzing und KI-gestützte Code-Reviews. Während der gesamten Entwicklungsgeschichte von jxl-rs wurden keine Speicher-Sicherheitsfehler gefunden, was die Wirksamkeit der Nutzung von Rust für kritische Infrastrukturkomponenten bestätigt. Leistungsmetriken werden kontinuierlich auf einem dedizierten Dashboard über verschiedene Hardwareplattformen hinweg verfolgt, um sicherzustellen, dass die Rust-Version die Geschwindigkeit von nicht-speichersicheren Alternativen erreicht oder übertrifft.

Wichtige Details

  • Chrome 155 führt native Unterstützung für das Entschlüsseln des Bildformats JPEG XL (.jxl) ein.
  • JPEG XL bietet eine 30–50 % bessere Komprimierung im Vergleich zu Standard-JPEG-Dateien.
  • Der Decoder ist in Rust (jxl-rs) implementiert, um Speicher-Sicherheitslücken wie Buffer-Overflows zu eliminieren.
  • Die Leistung wird unter Verwendung der Rust-Funktion target_feature_11 und einer benutzerdefinierten jxl_simd-Abstraktionsschicht aufrechterhalten.
  • Die Entscheidung zur Auslieferung wurde durch konsistentes Feedback von Entwicklern über das Interop Project und Developer Signals vorangetrieben.
  • Bei der Entwicklung von jxl-rs wurden keine Speicher-Sicherheitsfehler gefunden, bestätigt durch Fuzzing und KI-Code-Review.

Warum es wichtig ist

Für Software-Ingenieure und technische Leiter unterstreicht dieses Update ein reifendes Ökosystem, in dem Speichersicherheit zunehmend eine Standardanforderung statt einer optionalen Erweiterung wird. Durch die Verlagerung kritischer Parsing-Logik zu Rust reduziert Chrome die Angriffsfläche des Browsers erheblich. Dies setzt einen Präzedenzfall für andere Browser und Softwareprojekte, die nicht vertrauenswürdige Eingaben verarbeiten. Es zeigt, dass Hochleistungssysteme nicht bei der Sicherheit Kompromisse eingehen müssen, wenn die richtigen Tools und Abstraktionen verfügbar sind. Für Teams, die Web-Anwendungen entwickeln, bedeutet dies eine stabilere und sicherere Umgebung für die Bereitstellung reichhaltiger Medieninhalte.

Aus praktischer Sicht haben Entwickler nun ein leistungsstarkes neues Tool zur Optimierung der Web-Leistung. Die Möglichkeit, Bilder bereitzustellen, die deutlich kleiner als JPEGs sind, während gleichzeitig eine höhere Qualität erhalten bleibt, kann Bandbreitenkosten senken und Ladezeiten verbessern. Die Unterstützung für verlustfreies JPEG-Transkodieren ist besonders nützlich für die Migration von Legacy-Inhalten, da Websites ihre Bildassets aktualisieren können, ohne sie komplett neu kodieren zu müssen. Wenn Interoperabilitätstests in verschiedenen Browsern bestanden werden, wird die Adoption von .jxl zu einer tragfähigen Strategie zur Verbesserung der Core Web Vitals und der Benutzererfahrung.

Was Sie tun können

  • Aktualisieren Sie Ihre Entwicklungsumgebung, um Tests mit Chrome 155 oder neuer durchzuführen und die JPEG-XL-Wiedergabe zu überprüfen.
  • Konvertieren Sie wichtige fotografische Assets in das .jxl-Format und vergleichen Sie sie mit AVIF, um die optimale Balance zwischen Größe und Qualität zu finden.
  • Implementieren Sie responsive Bildstrategien, die .jxl-Quellen für Browser enthalten, die das Format unterstützen.
  • Überwachen Sie die Ergebnisse der Interop 2026 JPEG XL Investigation, um den Fortschritt der browserübergreifenden Kompatibilität zu verfolgen.
  • Achten Sie auf Updates zum Status der JPEG-XL-Unterstützung in anderen großen Browsern.

Tools aus dem Bytechap-Shop

Weiterlesen

Alle Artikel