Firefox 132 für Entwickler

Dieser Artikel bietet 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

Entfernung

JavaScript

HTTP

  • Der Standardwert des HTTP-Headers Accept wurde auf text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 geändert. Dadurch werden MIME-Typen für Bilder entfernt, die gelegentlich Kompatibilitätsprobleme verursachten, und es wird mit der Fetch-Spezifikation und Safari in Einklang gebracht. (Firefox-Bug 1917177).

Entfernung

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

Datenschutz

APIs

Medien, WebRTC und Web Audio

  • Die Methoden requestVideoFrameCallback() und cancelVideoFrameCallback() der Schnittstelle HTMLVideoElement werden jetzt unterstützt. Die Methode requestVideoFrameCallback() registriert eine Rückruffunktion, die ausgeführt wird, wenn ein neuer Videoframe an den Kompositor gesendet wird. Entwickler können diese Funktion nutzen, um Operationen auf jedem Videoframe durchzuführen und so effizienteres Malen auf eine Leinwand, Videoanalysen, Synchronisation mit externen Audioquellen usw. zu ermöglichen. Die Methode gibt eine Rückruf-Handle zurück, das an cancelVideoFrameCallback() übergeben werden kann, um den noch ausstehenden Rückrufe 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 den Wertebereich für jede einschränkbare Eigenschaft des zugehörigen MediaStreamTrack angibt (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 schlugen Befehle wie browsingContext.setViewport wahrscheinlich aufgrund eines AbortError fehl, sie werden jetzt ein paar Mal wiederholt, um solche Probleme zu vermeiden. (Firefox-Bug 1854942, Firefox-Bug 1918287, Firefox-Bug 1918672, Firefox-Bug 1921756)
  • Das browsingContext.contextCreated-Ereignis wird jetzt korrekt für lazy-geladene Frames ausgelöst. Zuvor wurde das Ereignis nur ausgelöst, wenn das iframe tatsächlich begonnen hatte, seinen Inhalt zu laden. (Firefox-Bug 1878166)
  • Netzwerkevents werden jetzt korrekt für zwischengespeicherte Stylesheet-Anfragen ausgelöst. (Firefox-Bug 1879438)
  • Netzwerk-Ereignistimings verwendeten früher die falsche Einheit und wurden in Mikrosekunden angegeben. Sie sind jetzt korrekt auf Millisekunden eingestellt. (Firefox-Bug 1916685)
  • Die requestTime aus den Netzwerk-Ereignistimings sollte jetzt genauer sein und wirklich die Zeit entsprechen, zu der die Anfrage tatsächlich begonnen hat. (Firefox-Bug 1922390)

Experimentelle Web-Funktionen

Diese Funktionen sind neu in Firefox 132 ausgeliefert, aber standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie nach der entsprechenden Einstellung auf der about:config-Seite und setzen Sie sie auf true. Mehr solcher Funktionen finden Sie auf der Seite Experimentelle Funktionen.

  • 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 für Service Workers verfügbar gemacht werden). Ab Firefox 132 wurde ein Teil der Cookie Store API implementiert. (Firefox-Bug 1800882). Dies umfasst:

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

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

    Dies ermöglicht es einem Fetch-Request, als Alternative zu Navigator.sendBeacon() zu fungieren, wenn Analysematerial am Ende einer Sitzung gesendet wird, was einige Vorteile hat (Sie können HTTP-Methoden verwenden, die nicht POST sind, Anforderungseigenschaften anpassen und auf die Serverantwort über die Fetch-Promise-Erfüllung zugreifen). Es ist auch in Service Workers 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 dieselbe Weise wie integrierte Komponenten. Beispielsweise können Sie auf Android einen Dialog mit der Zurück-Taste schließen: Diese Schnittstelle ermöglicht es Ihnen, auf ähnliche Weise eine benutzerdefinierte Seitenleiste zu schließen. (Firefox-Bug 1888729).

  • Promise.try(): javascript.options.experimental.promise_try. Promise.try() ist eine Komfortmethode, die einen Rückruf jeglicher Art (gibt zurück oder wirft, synchron oder asynchron) entgegennimmt und ihr Ergebnis in einem Promise umschließt, sodass Promise-Semantiken (z.B. .then(), .catch()) zur Handhabung verwendet werden können (Firefox-Bug 1905364).

  • JSON.parse mit Quelle: javascript.options.experimental.json_parse_with_source. Der Vorschlag für Zugriff auf JSON.parse-Quelldaten erweitert das Verhalten von JSON.parse, um Merkmale bereitzustellen, die Probleme im Zusammenhang mit Verlust von Präzision beim Konvertieren von Werten wie großen Fließkommazahlen und Datumswerten zwischen JavaScript-Werten und JSON-Text mindern können (Firefox-Bug 1913085, Firefox-Bug 1925334). Genauer gesagt sind die folgenden Merkmale 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 von JSON.rawJSON() zurückgegebenes Objekt ist.
    • JSON.rawJSON(): Erstellt ein "rohes JSON"-Objekt, das ein Stück JSON-Text enthält, der dann in einem Objekt enthalten sein kann, um den angegebenen Wert beim Serialisieren des Objekts zu erhalten.

Ältere Versionen