Firefox 121 Versionshinweise für Entwickler
Dieser Artikel bietet Informationen zu den Änderungen in Firefox 121, die Entwickler betreffen. Firefox 121 wurde am 19. Dezember 2023 veröffentlicht.
Änderungen für Webentwickler
>HTML
- Lazy Loading von
<iframe>-Elementen wird jetzt unterstützt und ermöglicht es Entwicklern, darauf hinzuweisen, dass bestimmte<iframe>-Elemente nur geladen werden sollten, wenn (und falls) sie sichtbar werden. Dies kann die initiale Ladezeit beschleunigen, indem die Ressourcen reduziert werden, die beim Laden der Seite abgerufen werden müssen (einige<iframe>-Elemente müssen möglicherweise überhaupt nicht abgerufen werden). Der Hinweis kann über dasloading-Attribut auf dem<iframe>-Element oder in JavaScript mitHTMLIFrameElement.loadingangegeben werden. (Firefox-Bug 1622090).
CSS
- Die
text-wrap-Eigenschaft wurde mit Unterstützung für die Wertebalanceundstableaktualisiert. Der Wertbalancewird für kurze Inhaltsblöcke, wie Überschriften, verwendet und stellt sicher, dass der Inhalt bei mehreren Zeilen ausbalanciert und leicht lesbar ist. Der Wertstablesorgt dafür, dass bearbeitbarer Inhalt nicht umbricht, während der Benutzer diesen bearbeitet (Firefox-Bug 1731541). - Der
:has()-Selektor, allgemein als Parent-Selektor bezeichnet, wird jetzt unterstützt. Er ermöglicht es Entwicklern, Stile auf ein Element basierend auf verwandten Elementen anzuwenden, z.B.li:has(ul)wird eine Liste mit einer Unterliste erkennen oderh1:has(+ p)wird eine Überschrift mit einem direkt dahinterstehenden Absatz erkennen. - Die
text-indent-CSS-Eigenschaft unterstützt jetzt dieeach-lineundhangingEigenschaftswerte (Firefox-Bug 784648), was es Entwicklern erleichtert, bestimmte Texteinrückungsstile anzugeben. Außerdem können Entwickler jetzt mehreretext-indent-Eigenschaftswerte kombinieren, um kreativer zu sein, z.B.:text-indent: 3em hanging each-line.
JavaScript
-
Die
Promise.withResolvers()-statische Methode wird jetzt unterstützt. Diese gibt dieresolve- undreject-Callback-Funktionen im selben Bereich wie das zurückgegebenePromise-Objekt frei, sodass der Code, der das Promise auflöst oder ablehnt, nach dessen Erstellung definiert werden kann (Firefox-Bug 1845586). -
Date.parse()akzeptiert jetzt mehrere zusätzliche Datumsformate:-
Jahr > 9999 für das
YYYY-MMM-DDFormat (z.B.19999-Jan-01) (Firefox-Bug 1858851) -
MMM-DD-YYYY(z.B.Jan-01-1970) (Firefox-Bug 1863489) -
Millisekunden für nicht-ISO-Datumsformate (z.B.
Jan 1 1970 10:00:00.050) (Firefox-Bug 1863125) -
Wochentag am Anfang von Formaten, die zuvor abgelehnt wurden, wie:
Wed, 1970-01-01Wed, 1970-Jan-01
Der Wochentag muss nicht korrekt sein oder überhaupt ein Wochentag; zum Beispiel funktioniert
foo 1970-01-01(Firefox-Bug 1617562).
-
-
Weitere
Date.parse()-Korrekturen:YYYY-M-DDundYYYY-MM-Dwerden nicht mehr als GMT angenommen, wie es ein ISO-DatumYYYY-MM-DDwäre (Firefox-Bug 1783731).- Millisekunden für alle Formate werden nach 3 Stellen abgeschnitten, anstatt gerundet zu werden (Firefox-Bug 746529).
APIs
- Die
sendOrder-Eigenschaft derWebTransportSendStream-Schnittstelle wird jetzt unterstützt und ermöglicht es, die relative Priorität ausgehender WebTransport API bidirektionaler Streams zu lesen und zu ändern, nachdem der Stream erstellt wurde. Beachten Sie, dass dies nicht benutzt werden kann, um die Priorität unidirektionaler Streams zu ändern, da Firefox diese alsWritableStreamanstattWebTransportSendStreamimplementiert. (Weitere Informationen finden Sie im Firefox-Bug 1853444.)
DOM
HTMLInputElement.showPicker()funktioniert jetzt für<input type="week">und<input type="month">Elemente auf Android (Firefox-Bug 1853797).
WebAssembly
- WebAssembly unterstützt jetzt Tail Call Optimization über neue
return_callundreturn_call_indirectAlternativen zurcall-Instruktion. Dies verbessert die Leistung, reduziert den Stapelspeicherverbrauch und verbessert die Kompatibilität mit Programmiersprachen, die Tail Calls verwenden. (Firefox-Bug 1846789).
WebDriver-Konformität (WebDriver BiDi, Marionette)
WebDriver BiDi
- Das
browsingContext.contextDestroyedEreignis wurde hinzugefügt, das ausgelöst wird, wenn ein Browsing-Kontext verworfen wird (Firefox-Bug 1694390). - Unterstützung für den Parameter
userActivationfür diescript.callFunctionundscript.evaluateBefehle wurde hinzugefügt, was die Auswertung von JavaScript unter Emulation der Benutzeraktion ermöglicht (Firefox-Bug 1845488). - Unterstützung für das Feld
defaultValuefür dasbrowsingContext.userPromptOpenedEreignis wurde hinzugefügt, das es Benutzern ermöglicht, den Standardwert von Aufforderungen abzurufen (Firefox-Bug 1851761). - Der Parameter
viewportOptionsfür denbrowsingContext.captureScreenshotBefehl wurde inboxOptionsumbenannt (Firefox-Bug 1859258). - Der Parameter
scrollIntoViewfür denbrowsingContext.captureScreenshotBefehl wurde entfernt, zugunsten des darunter befindlichen Parametersorigin(Firefox-Bug 1862649). - Unterstützung für den
originParameter für denbrowsingContext.captureScreenshotBefehl wurde hinzugefügt, der es ermöglicht, den Ursprung und die Grenzen des Screenshots zu definieren. Die akzeptierten Werte sind"document"und"viewport"(Firefox-Bug 1840999). - Beim Serialisieren von
Window-Objekten enthält der serialisierte Wert jetzt einecontext-Eigenschaft, die auf die Kontext-ID für dasWindow-Objekt gesetzt ist, welche auch mit Marionette ausgetauscht werden kann, um spezifische Fenster und Frames zu referenzieren (Firefox-Bug 1841049). - Es wurde ein Fehler behoben, bei dem die Serialisierung eines Knotens, der in einer Datenstruktur (Array, Map, etc.) verschachtelt ist, fehlschlug (Firefox-Bug 1861000).
- Es wurde ein Fehler behoben, bei dem der
browsingContext.navigateBefehl eine falsche Navigations-ID zurückgeben konnte (Firefox-Bug 1861655).
Marionette
- Unterstützung für die Serialisierung und Deserialisierung von
WindowundFrameObjekten wurde hinzugefügt (Firefox-Bug 1274251).
Experimentelle Web-Funktionen
Diese Funktionen sind neu in Firefox 121 eingeführt, aber standardmäßig deaktiviert. Um sie auszuprobieren, suchen Sie die entsprechende Voreinstellung auf der about:config-Seite und setzen Sie sie auf true. Weitere solcher Funktionen finden Sie auf der Seite für experimentelle Funktionen.
- Pseudo-Klasse für benutzerdefinierte Elementzustände:
dom.element.customstateset.enabled -
Benutzerdefinierte Elemente können ihren internen Zustand über die
states-Eigenschaft alsCustomStateSetoffenlegen. Eine CSS-Pseudoklasse für benutzerdefinierte Zustände wie:--some-statekann den Zustand dieses Elements erkennen. (Firefox-Bug 1861466) showPicker()-Methode für HTML-Auswahlelemente:dom.select.showPicker.enabled-
Die
HTMLSelectElement.showPicker()-Methode startet programmgesteuert den Browser-Picker für ein<select>-Element, ausgelöst durch Benutzerinteraktion. (Firefox-Bug 1854112)
Änderungen für Add-on-Entwickler
-
Es wurde ein Fehler behoben, der dazu führte, dass Hintergrundseiten nicht starteten, wenn ein
background-Schlüssel in der manifest.json die Angabenservice_workerundscriptsenthielt (Firefox-Bug 1860304).Hinweis: Übrigens führt eine Änderung in Chrome 121 dazu, dass die
scripts-Eigenschaft ignoriert wird, wenn sie zusammen mit derservice_worker-Eigenschaft angegeben ist. Zuvor weigerte sich Chrome, Erweiterungen zu laden, die beide Eigenschaften enthalten (Chromium-Bug 1418934). Weitere Informationen finden Sie unter Browser-Unterstützung desbackgroundManifest-Schlüssels.