Firefox 132 für Entwickler

Dieser Artikel enthält Informationen über die Ä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 Standard-/Dokumentwert des HTTP-Accept-Headers wurde auf text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 geändert. Dadurch werden Bild-MIME-Typen entfernt, die manchmal Kompatibilitätsprobleme verursachten, und es wird mit der Fetch-Spezifikation und Safari in Einklang gebracht. (Firefox Bug 1917177).

Entfernungen

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

Datenschutz

APIs

Medien, WebRTC und Web Audio

  • Die Methoden requestVideoFrameCallback() und cancelVideoFrameCallback() der HTMLVideoElement-Schnittstelle werden jetzt unterstützt. Die Methode requestVideoFrameCallback() registriert eine Callback-Funktion, die ausgeführt wird, wenn ein neues Videoframe an den Kompositor gesendet wird. Entwickler können diese Funktion verwenden, um Operationen auf jedem Videoframe auszuführen, was effizienteres Zeichnen auf einer Leinwand, Videoanalyse, Synchronisierung mit externen Audioquellen usw. ermöglicht. Die Methode gibt einen Callback-Handle zurück, der an cancelVideoFrameCallback() übergeben werden kann, um die ausstehende Callback-Anforderung zu stornieren. (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 Wertbereiche für jede einschränkbare Eigenschaft des zugehörigen MediaStreamTrack im Detail beschreibt (Firefox Bug 1179084).

WebDriver-Konformität (WebDriver BiDi, Marionette)

WebDriver BiDi

  • Mehrere Verbesserungen wurden implementiert, um WebDriver BiDi-Befehle zuverlässiger zu machen, wenn sie während der Navigation oder mit neu erstellten Registerkarten verwendet werden. Bisher scheiterten Befehle wie browsingContext.setViewport wahrscheinlich an einem AbortError, sie werden nun 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. Bisher 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)
  • Die Zeiteinheit der Netzwerkevent-Timings wurde bisher falsch verwendet und in Mikrosekunden angegeben. Sie sind jetzt korrekt in Millisekunden gesetzt. (Firefox Bug 1916685)
  • Die requestTime aus den Netzwerkevent-Timings sollte jetzt genauer sein und wirklich dem Zeitpunkt entsprechen, zu dem die Anfrage tatsächlich gestartet wurde. (Firefox Bug 1922390)

Experimentelle Web-Funktionen

Diese Funktionen sind neu in Firefox 132 enthalten, aber standardmäßig deaktiviert. Um sie auszuprobieren, suchen Sie auf der about:config-Seite nach der entsprechenden Einstellung und setzen Sie sie auf true. Weitere solche Funktionen finden Sie auf der Experimentelle Funktionen-Seite.

  • Cookie Store API: dom.cookieStore.enabled.

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

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

    Die globale fetch()-Methode hat eine keepalive Initialisierungsoption. Wenn keepalive auf true gesetzt ist, wird der zugehörige Request nicht abgebrochen, wenn die Seite, die ihn initiiert hat, entladen wird, bevor der Request abgeschlossen ist.

    Dies ermöglicht eine Fetch-Anfrage als Alternative zu Navigator.sendBeacon() beim Senden von Analysedaten am Ende einer Sitzung zu fungieren, was einige Vorteile hat (Sie können HTTP-Methoden außer POST verwenden, Anforderungseigenschaften anpassen und auf die Serverantwort über die Fetch Promise-Erfüllung zugreifen). Sie ist auch in Service Workers verfügbar. (Firefox Bug 1906952).

  • CloseWatcher: dom.closewatcher.enabled. Die CloseWatcher-Schnittstelle ermöglicht es Entwicklern, Komponenten zu implementieren, die mit gerätenativen Mechanismen geschlossen werden können, so wie eingebaute Komponenten. Zum Beispiel können Sie auf Android einen Dialog 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 praktische Methode, die eine Callback-Funktion jeglicher Art (Rückgabe oder Fehler, synchron oder asynchron) nimmt und ihr Ergebnis in ein Promise einwickelt, sodass Promise-Semantiken (z.B. .then(), .catch()) zur Behandlung verwendet werden können (Firefox Bug 1905364).

  • JSON.parse mit Quelle: javascript.options.experimental.json_parse_with_source. Der JSON.parse source text access proposal erweitert das Verhalten von JSON.parse, um Funktionen bereitzustellen, die Probleme im Zusammenhang mit dem Präzisionsverlust beim Konvertieren von Werten wie großen Gleitkommazahlen und Datumswerten zwischen JavaScript-Werten und JSON-Text abmildern sollen (Firefox Bug 1913085, Firefox Bug 1925334). Insbesondere sind die folgenden Funktionen jetzt verfügbar:

    • Der JSON.parse() reviver Parameter context Argument: Bietet Zugriff auf den ursprünglichen JSON-Quelltext, der geparst wurde.
    • JSON.isRawJSON(): Testet, ob ein Wert ein Objekt ist, das von JSON.rawJSON() zurückgegeben wird.
    • JSON.rawJSON(): Erstellt ein "rohes JSON"-Objekt, das ein Stück JSON-Text enthält, das dann in ein Objekt eingebunden werden kann, um den angegebenen Wert zu erhalten, wenn das Objekt als Zeichenkette formatiert wird.

Ältere Versionen