Firefox 132 für Entwickler

Dieser Artikel bietet Informationen über die Veränderungen in Firefox 132, die Entwickler betreffen. Firefox 132 wurde am 29. Oktober 2024 veröffentlicht.

Änderungen für Webentwickler

HTML

Keine bemerkenswerten Änderungen

CSS

Entfernungen

JavaScript

HTTP

  • Der Default-Wert/Dokumentenwert des HTTP-Accept-Headers wurde auf text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 geändert. Diese Änderung entfernt MIME-Typen für Bilder, die manchmal Kompatibilitätsprobleme verursachten, und stimmt mit der Fetch-Spezifikation und Safari überein. (Firefox-Bug 1917177).

Entfernungen

  • HTTP/2 Server Push ist standardmäßig deaktiviert mit der Einstellung network.http.http2.allow-push, die jetzt auf false gesetzt ist. Dieses Feature wird von keinem anderen wichtigen Browser mehr unterstützt und die Implementierung wird möglicherweise in einer zukünftigen Version vollständig entfernt. (Firefox-Bug 1915848).

Datenschutz

APIs

Medien, WebRTC und Web Audio

  • Die Methoden requestVideoFrameCallback() und cancelVideoFrameCallback() der Schnittstelle HTMLVideoElement werden jetzt unterstützt. Die requestVideoFrameCallback()-Methode registriert eine Callback-Funktion, die ausgeführt wird, wenn ein neues Videoframe an den Kompositor gesendet wird. Entwickler können diese Funktion nutzen, um Operationen auf jedem Videoframe auszuführen, was eine effizientere Bearbeitung auf einer Zeichenfläche, Videoanalyse, Synchronisation mit externen Audioquellen und vieles mehr ermöglicht. Die Methode gibt einen Callback-Handle zurück, der an cancelVideoFrameCallback() übergeben werden kann, um die ausstehende Callback-Anforderung abzubrechen. (Firefox-Bug 1919367, Firefox-Bug 1800882).
  • Die Methode MediaStreamTrack.getCapabilities() wird jetzt unterstützt. Diese gibt ein Objekt zurück, das die akzeptierten Werte oder den Wertebereich für jede einschränkbare Eigenschaft des zugehörigen MediaStreamTrack detailliert beschreibt (Firefox-Bug 1179084).

WebDriver-Konformität (WebDriver BiDi, Marionette)

WebDriver BiDi

  • Es wurden mehrere Verbesserungen implementiert, um WebDriver BiDi-Befehle zuverlässiger zu machen, wenn sie während der Navigation oder mit neu erstellten Tabs verwendet werden. Zuvor waren Befehle wie browsingContext.setViewport wahrscheinlich mit einem AbortError fehlgeschlagen, sie werden jetzt einige Male wiederholt, um solche Probleme zu vermeiden. (Firefox-Bug 1854942, Firefox-Bug 1918287, Firefox-Bug 1918672, Firefox-Bug 1921756)
  • Das Ereignis browsingContext.contextCreated wird jetzt korrekt für lazy-geladene Frames ausgelöst. Zuvor wurde das Ereignis nur ausgelöst, wenn das iframe tatsächlich mit dem Laden seines Inhalts begann. (Firefox-Bug 1878166)
  • Netzwerkevents werden jetzt korrekt für zwischengespeicherte Stylesheet-Anfragen ausgelöst. (Firefox-Bug 1879438)
  • Netzwerk-Ereignis-Timings verwendeten zuvor die falsche Einheit und wurden in Mikrosekunden angegeben. Diese werden jetzt korrekt in Millisekunden gesetzt. (Firefox-Bug 1916685)
  • Die requestTime aus den Netzwerkereignis-Timings sollte jetzt genauer sein und wirklich der Zeit entsprechen, in der die Anfrage tatsächlich begann. (Firefox-Bug 1922390)

Experimentelle Webfunktionen

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

  • Cookie Store API: dom.cookieStore.enabled.

    Die Cookie Store API ist eine moderne, auf Promise basierende Methode zur Verwaltung von Cookies, die den Event-Loop nicht blockiert und nicht auf Document angewiesen ist (sie kann daher für Service Worker verfügbar gemacht werden). Ab Firefox 132 wurde ein Teil der Cookie Store API implementiert. (Firefox-Bug 1800882). Dies umfasst:

  • Die fetch() keepalive-Option: dom.fetchKeepalive.enabled.

    Die globale Methode fetch() hat eine Initialisierungsoption keepalive. Wenn keepalive auf true gesetzt ist, wird der Browser die zugehörige Anfrage nicht abbrechen, wenn die Seite, die sie initiiert hat, vor Abschluss der Anfrage entladen wird.

    Dies ermöglicht es, eine Fetch-Anfrage als Alternative zu Navigator.sendBeacon() zu nutzen, um Analysedaten am Ende einer Sitzung zu senden, was einige Vorteile hat (Sie können HTTP-Methoden andere als POST verwenden, Anforderungseigenschaften anpassen und auf die Serverantwort über die Erfüllung des Fetch-Promise zugreifen). Es ist auch in Service Workern verfügbar. (Firefox-Bug 1906952).

  • CloseWatcher: dom.closewatcher.enabled. Die Schnittstelle CloseWatcher ermöglicht es Entwicklern, Komponenten zu implementieren, die mit gerätenativen Mechanismen geschlossen werden können, auf die gleiche Weise wie eingebaute Komponenten. Auf Android können Sie beispielsweise ein Dialogfeld mit der Zurück-Taste schließen: Diese Schnittstelle ermöglicht es Ihnen, ähnlich eine benutzerdefinierte Seitenleiste zu schließen. (Firefox-Bug 1888729).

  • Promise.try(): javascript.options.experimental.promise_try. Promise.try() ist eine bequeme Methode, die einen Callback jeglicher Art (gibt zurück oder löst aus, synchron oder asynchron) nimmt und das Ergebnis in einem Promise umhüllt, sodass Promisesemantiken (z.B. .then(), .catch()) verwendet werden können, um dieses zu behandeln (Firefox-Bug 1905364).

  • JSON.parse mit Quelle: javascript.options.experimental.json_parse_with_source. Der Vorschlag JSON.parse-Quelltextzugriff erweitert das Verhalten von JSON.parse, um Funktionen bereitzustellen, die Probleme im Zusammenhang mit dem Verlust von Genauigkeit beim Konvertieren von Werten wie großen Fließkommazahlen und Datumswerten zwischen JavaScript-Werten und JSON-Text zu mildern (Firefox-Bug 1913085, Firefox-Bug 1925334). Insbesondere sind die folgenden Funktionen jetzt verfügbar:

    • Der reviver-Parameter context-Argument von JSON.parse() bietet Zugang zum ursprünglichen JSON-Quelltext, der geparst wurde.
    • JSON.isRawJSON(): Prüft, ob ein Wert ein von JSON.rawJSON() zurückgegebenes Objekt ist.
    • JSON.rawJSON(): Erstellt ein "raw JSON"-Objekt, das ein Stück JSON-Text enthält, das dann in ein Objekt aufgenommen werden kann, um den angegebenen Wert zu bewahren, wenn dieses Objekt serialisiert wird.

Ältere Versionen