Firefox 121 für Entwickler

Dieser Artikel enthält Informationen über Ä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, sodass Entwickler angeben können, dass bestimmte <iframe>-Elemente nur geladen werden sollten, wenn sie sichtbar werden. Dies kann die anfängliche Ladezeit verkürzen, indem der Abruf von Ressourcen beim Seitenaufbau reduziert wird (einige <iframe>-Elemente müssen möglicherweise überhaupt nicht abgerufen werden). Der Hinweis kann über das loading-Attribut im <iframe>-Element angegeben werden oder in JavaScript mit HTMLIFrameElement.loading. (Firefox Bug 1622090).

CSS

  • Die text-wrap-Eigenschaft wurde mit Unterstützung für die Werte balance und stable aktualisiert. Der Wert balance wird für kurze Inhaltsblöcke, wie Überschriften, verwendet und stellt sicher, dass der Inhalt ausgewogen und leicht lesbar ist, wenn er über mehrere Zeilen verteilt ist. Der Wert stable stellt sicher, dass sich editierbarer Inhalt nicht neu anordnet, während der Nutzer ihn bearbeitet (Firefox Bug 1731541).
  • Der :has()-Selektor, allgemein als Elternselektor bezeichnet, wird jetzt unterstützt. Er ermöglicht es Entwicklern, Stile auf ein Element basierend auf verwandten Elementen anzuwenden, z.B. li:has(ul) passt auf eine Liste, die eine Unterliste enthält, oder h1:has(+ p) passt auf eine Überschrift mit einem direkt darauf folgenden Absatz.
  • Die text-indent-CSS-Eigenschaft unterstützt jetzt die Werte each-line und hanging (Firefox Bug 784648), wodurch Entwickler bestimmte Text-Einzugstile einfacher spezifizieren können. Zudem können Entwickler nun mehrere text-indent-Eigenschaftswerte für mehr Kreativität kombinieren, z.B. text-indent: 3em hanging each-line.

JavaScript

  • Die statische Methode Promise.withResolvers() wird jetzt unterstützt. Diese Methode gibt die resolve- und reject-Callback-Funktionen im gleichen Geltungsbereich wie das zurückgegebene Promise frei, was es ermöglicht, Code, der das Promise auflöst oder ablehnt, nach dessen Erstellung zu definieren (Firefox Bug 1845586).

  • Date.parse() akzeptiert jetzt mehrere zusätzliche Datumsformate:

    • Jahr > 9999 für das Format YYYY-MMM-DD (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 abgelehnt wurden, wie:

      • Wed, 1970-01-01
      • Wed, 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-DD und YYYY-MM-D werden nicht mehr als GMT angenommen wie es ein ISO-Datum YYYY-MM-DD wäre (Firefox Bug 1783731).
    • Millisekunden für alle Formate werden nach 3 Ziffern abgeschnitten, statt gerundet (Firefox Bug 746529).

APIs

DOM

WebAssembly

  • WebAssembly unterstützt jetzt Tail-Call-Optimierung über neue return_call und return_call_indirect Alternativen zur call-Anweisung. Dies verbessert die Leistung, reduziert den Stapelspeicherplatzverbrauch und erhöht die Kompatibilität mit Programmiersprachen, die Tail-Calls verwenden. (Firefox Bug 1858855).

WebDriver-Konformität (WebDriver BiDi, Marionette)

WebDriver BiDi

Marionette

  • Unterstützung für das Serialisieren und Deserialisieren von Window- und Frame-Objekten hinzugefügt (Firefox Bug 1274251).

Experimentelle Web-Features

Diese Funktionen sind neu in Firefox 121 eingeführt, aber standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie die entsprechende Einstellung auf der about:config-Seite und setzen Sie sie auf true. Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.

Pseudoklasse für den Zustand benutzerdefinierter Elemente: dom.element.customstateset.enabled

Benutzerdefinierte Elemente können ihren internen Zustand über die states-Eigenschaft als CustomStateSet offenlegen. Eine CSS-Pseudoklasse für den benutzerdefinierten Zustand wie :--some-state kann auf den Zustand dieses Elements passen. (Firefox Bug 1861466)

showPicker()-Methode für HTML-Select-Elemente: dom.select.showPicker.enabled

Die HTMLSelectElement.showPicker()-Methode startet programmgesteuert den Browser-Auswahl-Dialog für ein <select>-Element, ausgelöst durch Benutzerinteraktion. (Firefox Bug 1854112)

Änderungen für Add-on-Entwickler

  • Ein Fehler wurde behoben, der dazu führte, dass Hintergrundseiten nicht gestartet wurden, wenn ein manifest.json-Schlüssel background sowohl service_worker- als auch scripts-Deklarationen enthält (Firefox Bug 1860304).

    Hinweis: Zufällig sieht eine Änderung in Chrome 121 vor, dass die scripts-Eigenschaft ignoriert wird, wenn sie mit der service_worker-Eigenschaft angegeben wird. Zuvor weigerte sich Chrome, Erweiterungen zu laden, die beide Eigenschaften enthalten (Chromium Bug 1418934). Für weitere Informationen siehe Browser-Support des background-Manifest-Schlüssels.

Ältere Versionen