Die Veröffentlichung des Webbrowsers Firefox 148 ist erfolgt, und es wurden Updates für die vorherigen Versionen mit langfristigem Support — 140.8.0 und 115.33.0 (letzte in der Reihe 115.x) — erstellt. In den nächsten Stunden wird der Beta-Test für die Version Firefox 149 starten, deren Veröffentlichung für den 24. März geplant ist.
Hauptneuerungen in Firefox 148 (1, 2, 3):
- Die zuvor angekündigte Sektion „AI Controls“ wurde zu den Einstellungen hinzugefügt, um die Nutzung von KI zu verwalten. Benutzer können alle KI-Funktionen auf einmal deaktivieren oder gezielt nur die benötigte Funktionalität aktivieren. Für die gezielte Deaktivierung stehen KI-bezogene Möglichkeiten zur Verfügung, wie Sprachübersetzung, Texterkennung in Bildern und gescannten PDF-Dokumenten, Empfehlungen und Tags beim Gruppieren von Tabs, Generierung einer kurzen Zusammenfassung der Seite bei der Vorschau von Links und eine Schnittstelle zur Kontaktaufnahme mit Chatbots. Jede dieser Funktionen kann aktiviert, deaktiviert oder blockiert werden. Bei Blockierung werden lokal installierte KI-Modelle entfernt und die Interface-Elemente verborgen.

- In die Einstellungen wurde eine separate Option aufgenommen, um die außerplanmäßige remote Anwendung von Patches und Änderungen zwischen den Releases zu aktivieren. Zuvor war diese Funktion an die Aktivierung der Telemetrie und die Teilnahme an der Erprobung experimenteller Funktionen gebunden (Datenschutz & Sicherheit » Firefox-Datensammlung » Studien installieren und ausführen), kann jedoch seit 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 nun sowohl für neue Tabs standardmäßig als auch für neue Containertabs.
- Für Windows 10 und 11-Nutzer wurde die Funktion Firefox Backup hinzugefügt, mit der Sicherungskopien der vom Browser gespeicherten Daten, wie Lesezeichen, Einstellungen und Passwörter, erstellt werden können. Die Sicherung enthält keine Daten, die der Benutzer zur Bereinigung beim Schließen des Browsers ausgewählt hat. Die erstellte Sicherung kann verwendet werden, um den Zustand nach einer Neuinstallation des Betriebssystems oder auf einem anderen Computer wiederherzustellen.
- Die Web-Kompatibilität des Ausgangsdokuments «about:blank» wurde gewährleistet, das jetzt 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 dieser Ersetzung kam es zu einem Zustand der Konkurrenz, der manchmal zu einem Verlust von Änderungen führte, die direkt nach dem Aufruf von window.open() über JavaScript vorgenommen wurden).
- Die Unterstützung für die WebGPU-API wurde in den Service Worker-Mechanismus integriert, was die Ausführung von WebGPU-Operationen im Hintergrund ermöglicht, beispielsweise in Erweiterungen oder bei der Durchführung gemeinsamer Arbeiten für verschiedene Tabs einer Website.
- In JavaScript wurden die Methoden Iterator.zip() und Iterator.zipKeyed() hinzugefügt, um mehrere Arrays zu kombinieren. Diese Methoden ermöglichen es, basierend auf mehreren Iteratoren einen neuen Iterator zu erstellen, wobei jedes Element ein Array oder ein Objekt mit den Werten der Iteratoren an derselben 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 API Trusted Types wurde implementiert und entwickelt, um vor DOM-Manipulationen zu schützen, die zu Cross-Site-Scripting (DOM XSS) führen können. Beispielsweise kann eine unsachgemäße Verarbeitung von Benutzereingaben in eval()-Blöcken oder in „.innerHTML“-Einfügungen dazu führen, dass JavaScript-Code im Kontext einer bestimmten Seite ausgeführt wird. Trusted Types erfordern die Verwendung spezieller TrustedHTML-Objekte anstelle von rohen Zeichenfolgen in gefährlichen Aufrufen wie element.innerHTML, document.write() und setTimeout(). TrustedHTML-Objekte werden von vom Entwickler geschriebenen Funktionen erstellt, die Daten prüfen und bereinigen.
- Die API Sanitizer wurde hinzugefügt, die Methoden zur Manipulation von HTML bereitstellt und HTML-Elemente aus dem Inhalt entfernt, die die Anzeige und Ausführung beeinflussen. Für das sichere Einfügen von HTML-Inhalten wurde die Methode element.setHTML() vorgeschlagen, die ähnlich wie element.innerHTML ist, jedoch vor Cross-Site-Scripting (XSS) schützt. Für das sichere Parsen von HTML wurde die Methode document.parseHTML() implementiert. Die API kann nützlich sein, um eingehende Daten zu bereinigen und HTML-Tags zu entfernen, die für XSS-Angriffe verwendet werden können. 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 der Ursprünge (origin) aller übergeordneten Elemente des Dokuments enthält, die mit dem angegebenen Standort-Objekt verbunden sind. Praktisch kann diese Eigenschaft beispielsweise verwendet werden, um festzustellen, ob das Dokument über ein Iframe auf einer anderen Website geladen wurde.
- Die API-Navigation hat das Objekt NavigationPrecommitController mit der Methode addHandler() hinzugefügt, die es ermöglicht, einen Handler zu verbinden, der bei der Navigation in der Phase "post-commit" ausgelöst wird, wenn die neue URL bereits in der Adressleiste angezeigt wird.
- Das CSS-Property position-try-order wurde hinzugefügt, um die Priorität der Auswahl von Ersatzpositionen festzulegen, wenn ein Element mit Anker-Positionierung nicht auf den Bildschirm passt. Dieses Property ist Teil des CSS Anchor Positioning-Sets, das die Anzeige von Elementen steuert, die an der Position anderer Elemente verankert sind, ohne JavaScript zu verwenden, beispielsweise um an Elementen von Pop-ups (Popover) anzuhängen, die ähnlich wie Tooltips erscheinen.
- In CSS wurde die Funktion shape() hinzugefügt, die es ermöglicht, Formen mithilfe der CSS-Eigenschaften clip-path und offset-path zu erstellen. Die Funktion shape() unterstützt Formbefehle, die der Funktion path() entsprechen, erlaubt jedoch die Verwendung der Standard-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 hinzugefügt, ohne die Seite zu öffnen.
Neben neuen Funktionen und Fehlerbehebungen in Firefox 148 wurden 60 Sicherheitsanfälligkeiten behoben (sechsmal mehr als in der vorherigen Version). 48 dieser Anfälligkeiten sind auf Probleme mit dem Speicher zurückzuführen, wie Pufferüberläufe und den Zugriff auf bereits freigegebenen Speicher. Diese Probleme könnten potenziell zur Ausführung von Code durch Angreifer führen, wenn speziell gestaltete Seiten geöffnet werden. 5 Anfälligkeiten ermöglichen es, die Sandbox-Isolierung aufgrund unzureichender Grenzkontrollen und integerüberläufen im Grafikbearbeitungsmodul zu umgehen.
Quelle: opennet.ru


