Die Veröffentlichung des Web-Browsers Firefox 148 ist erfolgt, und es wurden Aktualisierungen der vorherigen stabilen Versionen mit langfristigem Support – 140.8.0 und 115.33.0 (letztmals in der Serie 115.x) – erstellt. In den nächsten Stunden wird die Version Firefox 149 in die Beta-Testphase überführt, deren Veröffentlichung für den 24. März geplant ist.
Die wichtigsten Neuerungen in Firefox 148 (1, 2, 3):
- Zu den Einstellungen wurde der zuvor versprochene Abschnitt „AI Controls“ hinzugefügt, um die Nutzung von KI zu steuern. Benutzer können alle KI-Funktionen auf einmal deaktivieren oder gezielt nur die benötigte Funktionalität aktivieren. Zu den gezielt deaktivierbaren, KI-gestützten Funktionen gehören Sprachübersetzung, Texterkennung in Bildern und gescannten PDF-Dokumenten, Empfehlungen und Tags beim Gruppieren von Tabs, die Generierung von Kurzinhalt für Seitenvorschauen sowie die Benutzeroberfläche für den Kontakt mit Chatbots. Jede Funktion kann aktiviert, deaktiviert oder blockiert werden. Bei einer Blockierung werden lokal installierte KI-Modelle entfernt und die Benutzeroberflächen-Elemente ausgeblendet.

- In den Einstellungen wurde eine separate Option hinzugefügt, um die außerplanmäßige, remote Anwendung von Patches und Änderungen zwischen den Versionen zu aktivieren. Bisher war diese Funktion an die Aktivierung von Telemetrie und die Teilnahme an Tests von experimentellen Funktionen gebunden (Datenschutz & Sicherheit > Firefox-Datensammlung > Studien installieren und ausführen), kann jedoch ab Firefox 148 unabhängig davon aktiviert werden.

- Die Hintergrundbilder, die für die Seite ausgewählt wurden, die beim Öffnen eines neuen Tabs angezeigt wird, gelten jetzt sowohl für neue Standard-Tabs als auch für die neuen Container-Tabs.
- Für Windows 10 und 11-Benutzer wurde die Funktion Firefox Backup hinzugefügt, die es ermöglicht, Sicherungskopien von im Browser gespeicherten Daten wie Lesezeichen, Einstellungen und Passwörtern zu erstellen. In das Backup sind keine Daten eingeschlossen, die der Benutzer beim Schließen des Browsers zur Löschung ausgewählt hat. Das erstellte Backup kann verwendet werden, um den Zustand nach einer Neuinstallation des Betriebssystems oder auf einem anderen Computer wiederherzustellen.
- Die Web-Kompatibilität des ursprünglichen Dokuments „about:blank“ wurde sichergestellt, das nun synchron erstellt wird und beim Start der Navigation auf der Seite nicht asynchron durch ein zweites leeres Dokument ersetzt wird, das vom Parser generiert wird (aufgrund einer solchen Umstellung trat ein Rennen auf, das manchmal zum Verlust von Änderungen führte, die über JavaScript sofort nach dem Aufruf von window.open() gespeichert wurden).
- Der Service Worker-Mechanismus hat die Unterstützung für die WebGPU-API erhalten, die es ermöglicht, WebGPU-Operationen im Hintergrund auszuführen, beispielsweise in Add-ons oder bei der Ausführung gemeinsamer Arbeiten für verschiedene Tabs einer Website.
- In JavaScript wurden die Methoden Iterator.zip() und Iterator.zipKeyed() zum Kombinieren mehrerer Arrays hinzugefügt. Die Methoden ermöglichen es, auf der Grundlage mehrerer Iteratoren einen neuen Iterator zu erstellen, dessen jedes Element ein Array oder Objekt mit Werten der Iteratoren an der gleichen Position darstellt. const str1 = "abc"; const str2 = "1234"; const it = Iterator.zip([Iterator.from(str1), Iterator.from(str2)]); for (const [char1, char2] of it) { console.log(`${char1} — ${char2}`); } // Gibt aus: // a — 1 // b — 2 // c — 3 const table = { name: ["Caroline", "Danielle", "Evelyn"], age: [30, 25, 35], city: ["New York", "London", "Hong Kong"], }; for (const { name, age, city } of Iterator.zipKeyed(table)) { console.log(`${name}, aged ${age}, lives in ${city}.`); } // Gibt aus: // Caroline, aged 30, lives in New York. // Danielle, aged 25, lives in London. // Evelyn, aged 35, lives in Hong Kong.
- Die Trusted Types-API wurde implementiert, die zum Schutz vor DOM-Manipulationen entwickelt wurde, die zu Cross-Site-Scripting (DOM XSS) führen können. Beispielsweise kann eine fehlerhafte Verarbeitung von Benutzereingaben in eval()-Blöcken oder in .innerHTML-Einfügungen zur Ausführung von JavaScript-Code im Kontext einer bestimmten Seite führen. Trusted Types erfordert die Verwendung spezieller TrustedHTML-Objekte anstelle von rohen Strings in gefährlichen Aufrufen wie element.innerHTML, document.write() und setTimeout(). Im Gegenzug werden TrustedHTML-Objekte von vom Entwickler geschriebenen Funktionen erstellt, die Eingabedaten überprüfen und bereinigen.
- Die API Sanitizer wurde hinzugefügt, die Methoden zur Manipulation von HTML und zum Ausschneiden von HTML-Elementen aus dem Inhalt bereitstellt, die die Darstellung und Ausführung beeinflussen. Für das sichere Einfügen von HTML-Inhalten wird die Methode element.setHTML() vorgeschlagen, die ähnlich wie element.innerHTML funktioniert, aber vor Cross-Site-Scripting (XSS) schützt. Zur sicheren Analyse von HTML wurde die Methode document.parseHTML() implementiert. Die API kann nützlich sein, um eingehende externe Daten zu bereinigen und HTML-Tags zu entfernen, die für XSS-Angriffe verwendet werden könnten. const unsanitizedString = "abc alert(1)"> def"; const sanitizer1 = new Sanitizer({ elements: ["div", "p", "button", "script"], }); const target = document.getElementById("target"); target.setHTML(unsanitizedString, { sanitizer: sanitizer1 });
- Die Unterstützung für die Eigenschaft „location.ancestorOrigins“ wurde hinzugefügt, die eine Liste von Quellen (origin) aller übergeordneten Elemente des Dokuments enthält, die mit dem angegebenen Objekt Location verbunden sind. In der Praxis kann diese Eigenschaft beispielsweise verwendet werden, um zu bestimmen, ob das Dokument über ein iframe auf einer anderen Website geladen wurde.
- In der API Navigation wurde das Objekt NavigationPrecommitController mit der Methode addHandler() hinzugefügt, die es ermöglicht, einen Handler anzuschließen, der bei der Navigation in der Phase „post-commit“ aktiviert wird, wenn die neue URL bereits in der Adresszeile angezeigt wird.
- Die CSS-Eigenschaft position-try-order wurde hinzugefügt, die die Auswahl von Backup-Positionen priorisiert, wenn ein Element mit Anker-Positionierung nicht auf den Bildschirm passt. Die Eigenschaft ist Teil des CSS Anchor Positioning-Sets, das die Anzeige von Elementen steuert, die an den Positionen anderer Elemente verankert sind, ohne JavaScript zu verwenden, beispielsweise zum Anheften von Popup-Elementen (Popover), die analog zu Tooltips erscheinen.
- In CSS wurde die Funktion shape() hinzugefügt, die es ermöglicht, Formen mit den CSS-Eigenschaften clip-path und offset-path zu erstellen. Die Funktion shape() unterstützt die Formbildungsbefehle, die äquivalent zur Funktion path() sind, ermöglicht jedoch die Verwendung der standardisierten CSS-Syntax.
- In der Firefox-Version für Android wurde das Design der Werkzeugleiste geändert, die Anpassung des Inhalts der Werkzeugleiste verbessert und eine Option zum schnellen Kopieren des sichtbaren Texts eines Links ohne das Öffnen der Seite hinzugefügt.
Neben Neuerungen und Fehlerbehebungen wurden in Firefox 148 60 Sicherheitsanfälligkeiten behoben (6 Mal mehr als in der vorherigen Version). 48 Sicherheitsanfälligkeiten wurden durch Speicherprobleme verursacht, wie z.B. Pufferüberläufe und Zugriffe auf bereits freigegebene Speicherbereiche. Diese Probleme könnten möglicherweise zur Ausführung von Angreifer-Code beim Öffnen speziell gestalteter Seiten führen. 5 Sicherheitsanfälligkeiten ermöglichen es, die Sandbox-Isolation aufgrund fehlerhafter Grenzprüfungen und ganzzahliger Überläufe im Grafik-Handling-Komponenten zu umgehen.
Quelle: opennet.ru


