Es wurde die Webbrowser-Version Firefox 147 veröffentlicht, und Updates für die älteren Long-Term-Support-Versionen 140.7.0 und 115.32.0 wurden bereitgestellt. Die Beta-Testphase für Firefox 148 hat begonnen, dessen Veröffentlichung für den 24. Februar geplant ist.
Die wichtigsten Neuerungen in Firefox 147 (1, 2, 3):
- Unterstützung für die Spezifikation Freedesktop.org XDG Base Directory wurde hinzugefügt, was die Nutzung des Verzeichnisses «~/.config/mozilla» zum Speichern von Profilen, Erweiterungen, Einstellungen und internen Datenbanken ermöglicht. Die Unterstützung für die Speicherung von Daten im alten Verzeichnis «~/.mozilla» bleibt als Option erhalten, die bei der Ausführung mit der Umgebungsvariable «MOZ_LEGACY_HOME=1» aktiviert werden kann.
- Es wurde Unterstützung für den Mechanismus «Compression Dictionary Transport» (RFC 9842) hinzugefügt, der die Datenmenge reduziert, die zwischen Client und сервером, durch die Verwendung von Zstandard-Kompressionsalgorithmen (Content-Encoding: dcz) und Brotli (Content-Encoding: dcb) in Kombination mit der Kompression gängiger Strukturen unter Verwendung von Wörterbüchern. Es stehen zwei Nutzungsszenarien für Compression Dictionary Transport zur Verfügung — die Kompression von Inhalten basierend auf zuvor vom Server übermittelten Wörterbüchern und die Verwendung bereits übermittelter Inhalte als Wörterbuch zur Kompression einer neuen Version (Delta-Kompression, bei der nur die Änderungen im Vergleich zur bestehenden Version übertragen werden).
Zum Beispiel kann der Server bei einer Anfrage ‘GET /index.html’ Informationen über die Verfügbarkeit eines Wörterbuchs bereitstellen, indem er den Pfad zu diesem im Header ‘Link: ; rel=»compression-dictionary»‘ zurückgibt. Wenn der Client das Wörterbuch ‘…/dict’ herunterlädt, gibt der Server Informationen zu seiner Anwendung auf HTML-Dateien zurück, indem er den Header ‘Use-As-Dictionary: match=»/*html»‘ ausstellt. Bei der nächsten Anfrage nach einer HTML-Ressource, zum Beispiel ‘GET /index2.html’, wird der Client die Verfügbarkeit des Wörterbuchs über den Header ‘Available-Dictionary: hash_wörterbuch’ angeben. Wenn der Server ein Wörterbuch mit diesem Hash auf seiner Seite hat, wird der Inhalt von index2.html zurückgegeben, komprimiert mit dem entsprechenden Wörterbuch.
Für die Delta-Komprimierung verschiedener Versionen von JavaScript-Dateien kann der Server beim GET-Anruf "/app.v1.js" den Header ‚Use-As-Dictionary: match=\"/app*js\"‘ setzen. Dies signalisiert, dass der zurückgegebene Inhalt später als Wörterbuch für die Pfade ‚/app*js‘ verwendet werden kann. Bei einem späteren Abruf einer Datei, die diesem Muster entspricht, zum Beispiel ‚GET /app.v2.js‘, überträgt der Client den Hash des vorhandenen Wörterbuchs über den Header ‚Available-Dictionary:‘ und der Server gibt nur die Änderungen zwischen den Dateien app.v1.js und app.v2.js zurück.
- Eine Seite about:keyboard wurde hinzugefügt, um Tastenkombinationen einzustellen und vorhandene Hotkeys zu überschreiben. Dies ermöglicht es beispielsweise, Ihnen vertrautere Optionen festzulegen oder Konflikte mit anderen Programmen zu vermeiden.

- Die Videowiedergabe wurde durch die Nutzung der hardwarebeschleunigten Dekodierung auf AMD-GPUs optimiert. Auf Systemen mit AMD-GPU wird jetzt hardwarebeschleunigtes Video ohne zusätzliches Kopieren von Daten (Zero-Copy-Modus) wiedergegeben, ähnlich wie es zuvor für Systeme mit Intel- und NVIDIA-GPUs implementiert wurde.
- Für die Version 5 wurde die Implementierung des Safe Browsing-Protokolls aktualisiert, das zur Überprüfung von URLs auf Vorhandensein in Listen unsicherer Ressourcen (Phishing-Seiten, Seiten mit Malware usw.) von Google verwendet wird. Die neue Protokollversion ermöglicht das Herunterladen von Sperrlisten zur Nutzung auf dem lokalen System (Datenbank mit SHA256-Hash-Präfixen problematischer URLs), die jetzt in Firefox Anwendung finden.
- Eine Option wurde hinzugefügt, um die automatische Fortsetzung der Video-Wiedergabe im „Bild-in-Bild“-Modus beim Wechseln des Tabs zu ermöglichen.
- Im Modus für verstärkten Schutz vor Verfolgung von Bewegungen (ETP, Enhanced Tracking Protection => Strict) ist standardmäßig die Anwendung der LNA-Spezifikation (Local Network Access) aktiviert. Diese limitieren Zugriffe auf die lokale Systemumgebung (Loopback, 127.0.0.0/8) oder interne Netzwerke (192.168.0.0/16, 10.0.0.0/8 usw.) beim Arbeiten mit öffentlichen Webseiten. Angriffe auf interne Ressourcen werden von Cyberkriminellen genutzt, um CSRF-Angriffe auf Router, Access Points, Drucker, Unternehmens-Webschnittstellen und andere Geräte und Dienste durchzuführen, die nur lokale Anfragen akzeptieren. Darüber hinaus kann das Scannen interner Ressourcen zur indirekten Identifizierung oder zur Informationssammlung über das lokale Netzwerk verwendet werden.
- Bei Linux-Systemen mit GNOME und dem Kompositserver Mutter wurde das Problem mit der unscharfen Darstellung von Inhalten bei Verwendung einer fractional scaling Lösung behoben.
- Auf Apple-Computern mit Apple Silicon-Chips und macOS ist die Unterstützung für die WebGPU-API aktiviert.
- Die im HTTP-Header Accept-Language angegebenen Sprachprioritäten (q-Parameter) wurden mit den Werten anderer Browser synchronisiert, was einige Portabilitätsprobleme gelöst hat. Zum Beispiel wird für die zweite Sprache jetzt eine Priorität von q=0,9 anstelle von q=0,5 gesetzt, und für jede nachfolgende Sprache verringert sich die Priorität um 0,1.
- Die ICU-Bibliothek wurde auf Version 78 aktualisiert, die Unicode 17 unterstützt und Daten für lokale Einstellungen aktualisiert.
- In Service Workern ist die Verwendung von ESM-JavaScript-Modulen (ECMAScript Module), die über die import- und export-Anweisungen importiert und exportiert werden, jetzt erlaubt.
- Die Unterstützung für die Spezifikation CSS Module Scripts wurde hinzugefügt, die es ermöglicht, ein Modulsystem für JavaScript zum Import von CSS-Ressourcen zu verwenden. Zum Beispiel: import styles from './styles.css' with { type: 'css' };
- Im Pseudo-Element '::marker', das die Anpassung von Zahlen und Punkten für Aufzählungen in
- und
- ermöglicht, ist die Verwendung der CSS-Eigenschaften 'counter-*' und 'quotes' jetzt erlaubt.
- Die APIs CompressionStream und DecompressionStream haben Unterstützung für das Brotli-Komprimierungsformat hinzugefügt.
- In der API View Transitions, die zur Erstellung von Animationseffekten beim Wechsel zwischen verschiedenen Zuständen des DOM verwendet wird, wurde die Eigenschaft „type“ hinzugefügt, die ein Array mit Übergangstypen enthält. Außerdem wurde der entsprechende CSS-Selektor „:active-view-transition-type“ und die Eigenschaft document.activeViewTransition eingeführt, die eine Instanz des für das Dokument aktiven ViewTransition-Objekts zurückgibt.
- Ein Satz von CSS-Eigenschaften zur Steuerung der Anzeige von Elementen, die an der Position anderer Elemente (CSS Anchor Positioning) gebunden sind, wurde aktiviert, ohne JavaScript zu verwenden, beispielsweise um Popup-Elemente (Popover) an anderen Elementen anzuhängen, ähnlich wie bei Tooltips.
- Die Spezifikation „Storage Access Headers“ wurde implementiert, die den Anfrage-Header „Sec-Fetch-Storage-Access“ und den Antwort-Header „Activate-Storage-Access“ definiert, um den Zugriff auf Drittanbieter-Cookies zu ermöglichen, ohne die Methode document.requestStorageAccess() aufzurufen. Der Server kann den Zugriff auf Cookies über den Header „Activate-Storage-Access“ anfordern, und dieser wird vom Client gesendet, wenn der Benutzer zuvor die Bereitstellung des Zugriffs auf den Cookie-Speicher über die API Storage Access bestätigt hat.
- Im CSS-Eigenschaft „root-font-relative“ wurde die Unterstützung für relative Maßeinheiten rcap, rch, rex und ric hinzugefügt.
- Die API-Navigation wurde implementiert, die es Webanwendungen ermöglicht, Navigationsoperationen im Fenster abzufangen, Übergänge einzuleiten und die Historie der Interaktionen mit der Anwendung zu analysieren. Die API bietet eine Alternative zu den Eigenschaften window.history und window.location, die für Single-Page-Webanwendungen optimiert ist.
- In den Entwicklertools für das Web wurde die Unterstützung für die Bearbeitung und das Hinzufügen von Pseudo-Element-Selektoren im CSS-Regelbereich implementiert. Darüber hinaus wurde im JSON-Datenansichtsinterface eine Schaltfläche zum Importieren von Ressourcen in das Profilsystem (Firefox Profiler) hinzugefügt, um Informationen über deren Größe zu erhalten. In den HTML-Elementinspektions- und Animations-Panels wird die Anzeige von Pseudo-Elementen bei View-Transitions unterstützt. Zudem wird im CSS-Regelbereich die Darstellung der Regeln @position-try ermöglicht, die zur Steuerung der Anzeige von Elementen verwendet werden, die an den Positionen anderer Elemente verankert sind (CSS Anchor Positioning).
- In der Firefox-Version für Android wurde hinzugefügt Schutz vor Angriffen über Drittanbieter-Kanäle wie Spectre, die verwendet werden, um die Isolation zwischen Websites zu umgehen. Zuvor war solch ein Schutz nur in Versionen für Desktop-Systeme verfügbar.
Neben Neuerungen und Bugfixes wurden in Firefox 147 insgesamt 23 Sicherheitsanfälligkeiten behoben. 10 dieser Schwachstellen resultieren aus Problemen mit dem Arbeitsspeicher, wie z.B. Bufferüberläufen und dem Zugriff auf bereits freigegebene Speicherbereiche. Diese Probleme könnten potenziell zur Ausführung von schadhafter Software führen, wenn speziell gestaltete Seiten geöffnet werden. 3 Schwachstellen ermöglichen das Umgehen der Sandbox-Isolation aufgrund unzureichender Grenzkontrollen und ganzzahliger Überläufe im Grafikkomponentenbereich.
Quelle: opennet.ru

