Firefox 138 für Entwickler

Dieser Artikel bietet Informationen über die Änderungen in Firefox 138, die Entwickler betreffen. Firefox 138 wurde am 29. April 2025 veröffentlicht.

Änderungen für Webentwickler

HTML

  • Der importmap Wert des type Attributs des <script> Elements unterstützt jetzt den integrity-Schlüssel. Dies ermöglicht es, die ES-Modul-URLs, die in den Import-Maps referenziert werden, mit ihren Integritätsmetadaten abzugleichen. Dadurch sind diese Module jetzt mit CSP-Direktiven kompatibel, die Subresource Integrity (SRI) erfordern. (Firefox Bug 1945540).

CSS

Keine bemerkenswerten Änderungen

JavaScript

  • Die Error.captureStackTrace() statische Methode wird jetzt unterstützt. Diese installiert Stapelverfolgungsinformationen auf einem bereitgestellten Objekt als Error.stack-Eigenschaft. Der Hauptanwendungsfall besteht darin, eine Stapelverfolgung auf einem benutzerdefinierten Fehlerobjekt zu installieren, das nicht von der Error-Schnittstelle abgeleitet ist. (Firefox Bug 1950508).
  • Die Error.isError() statische Methode kann jetzt verwendet werden, um zu überprüfen, ob ein Objekt eine Instanz eines Error oder einer DOMException ist. Dies ist zuverlässiger als die Verwendung von instanceof für denselben Zweck. (Firefox Bug 1952249).
  • Die import Deklaration unterstützt jetzt das Importieren von JSON-Modulen mit dem with Attribut.

HTTP

  • Der Clear-Site-Data Header kann mit der cache (und *) Direktive verwendet werden, um den Netzwerkcache des Browsers zu löschen. Dies gibt Websites mehr Kontrolle über die für ihre Benutzer gespeicherten Daten, sodass sie z. B. das Risiko von Datenschutzverletzungen mindern können, indem sie den Cache während des Abmeldens löschen. (Firefox Bug 1942272).
  • Der HTTP Origin-Agent-Cluster Antwort-Header kann jetzt von einer Site verwendet werden, um anzuzeigen, dass das zugehörige Dokument in einem ursprungsbasierten Agenten-Cluster platziert werden sollte. In einem solchen Cluster werden der Betriebssystemprozess und/oder andere vom Dokument verwendete Betriebssystemressourcen nur mit anderen Dokumenten desselben Ursprungs geteilt. Dies verringert die Wahrscheinlichkeit, dass ein ressourcenintensives Dokument die Leistung von Dokumenten aus anderen Ursprüngen beeinträchtigt. Entwickler können testen, ob der Browser das Dokument in einen ursprungsbasierten Agent-Cluster platziert hat, indem sie die window.originAgentCluster Eigenschaft verwenden. (Firefox Bug 1665474)

APIs

DOM

Medien, WebRTC und Web Audio

  • WebRTC Anwendungen können nun eine Präferenz für die Priorisierung von Bildrate oder Auflösung setzen, wenn beides aufgrund von Netzwerkverschlechterungen nicht auf den konfigurierten Ebenen gehalten werden kann. Der Wert wird mit der degradationPreference Eigenschaft im Parameterobjekt gesetzt, das an die setParameters() Methode der RTCRtpSender Schnittstelle übergeben wird. Er kann auch aus dem Objekt gelesen werden, das von der getParameters() Methode zurückgegeben wird. (Firefox Bug 1329847).

WebDriver-Konformität (WebDriver BiDi, Marionette)

Allgemein

  • Alle Fernprotokolle aktivieren nun die erforderlichen Präferenzen, um Protokolle ordnungsgemäß an stdout zu leiten (Firefox Bug 1947740).
  • Ein neues Firefox-Argument, --remote-enable-system-access, wurde hinzugefügt, um sensible Funktionen zu aktivieren, wie beispielsweise das Interagieren mit Browsing-Kontexten im übergeordneten Prozess (z. B. Browser-UI) oder die Verwendung privilegierter APIs in Inhaltsprozessen. Dies wird in den nächsten Versionen für WebDriver BiDi-Funktionen verwendet und kann bereits mit Marionette verwendet werden (siehe unten stehenden Marionette-Abschnitt) (Firefox Bug 1944565).

WebDriver BiDi

  • Der webExtension.install Befehl installiert jetzt standardmäßig Web-Erweiterungen temporär, sodass er mit unsignierten Erweiterungen verwendet werden kann - entweder als XPI-Datei oder als entpackter Ordner. Ein neuer, spezifischer Firefox-Parameter, moz:permanent, wurde hinzugefügt, um die Installation stattdessen als reguläre Erweiterung zu erzwingen (Firefox Bug 1947678).
  • Der browsingContext.setViewport Befehl unterstützt jetzt einen userContexts Parameter, der ein Array von Benutzerkontext- (Firefox-Container-) IDs sein muss. Wenn angegeben, wird die Viewport-Konfiguration auf alle Browsing-Kontexte angewendet, die zu diesen Benutzerkontexten gehören, sowie auf alle zukünftig innerhalb dieser erstellten Kontexte. Dieser Parameter kann nicht zusammen mit dem bestehenden context Parameter verwendet werden (Firefox Bug 1940952).
  • Der browsingContext.Info Typ enthält jetzt eine clientWindow Eigenschaft, die der ID des Fensters entspricht, dem der Browsing-Kontext gehört. Diese wird typischerweise von browsingContext.getTree zurückgegeben oder im Payload von Ereignissen wie browsingContext.contextCreated enthalten (Firefox Bug 1920952).

Marionette

  • Der Wechsel zum chrome (übergeordneter Prozess) Kontext mit Marionette erfordert jetzt die Verwendung des --remote-enable-system-access Befehlszeilen-Flags beim Starten von Firefox (Firefox Bug 1710425).

Änderungen für Add-on-Entwickler

Experimentelle Web-Funktionen

Diese Funktionen sind neu in Firefox 138 verfügbar und gelten als experimentell. Sie können standardmäßig deaktiviert sein oder standardmäßig aktiviert, aber nur in der Nightly Version verfügbar sein. Für Funktionen, die standardmäßig deaktiviert sind, suchen Sie die entsprechende Präferenz auf der about:config Seite und setzen Sie sie auf true. Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.

  • UA-Stile für <h1>, das in Gliederungselementen verschachtelt ist: layout.css.h1-in-section-ua-styles.enabled.

    Die <h1>-Überschrift wird jetzt nicht mehr in der Schriftgröße verringert, wenn sie innerhalb von Gliederungselementen <article>, <aside>, <nav> und <section> verschachtelt ist. Die UA-Stile für <h1>, die in Gliederungselementen verschachtelt ist, sind nicht mehr relevant, da der Outline-Algorithmus aus der HTML-Spezifikation entfernt wurde. (Firefox Bug 1883896).

    Im Rahmen einer gestaffelten Einführung dieser Entfernung wird bei 5% der Nutzer von Firefox 138 und 50% der Nutzer von Firefox Beta 138 der Wert von layout.css.h1-in-section-ua-styles.enabled auf false gesetzt (Intent to unship: UA styles for h1 in article, aside, nav, section).

    Hinweis: Die Präferenz für diese Funktion funktioniert umgekehrt: Sie ist in der Nightly Version auf false gesetzt, was die UA-Stile für Überschriften, die in Gliederungselementen verschachtelt sind, entfernt. Sie ist in allen anderen Kanälen auf true gesetzt, was die bestehenden UA-Stile für die verschachtelten Überschriften beibehält.

  • ::details-content CSS Pseudo-Element: layout.css.details-content.enabled.

    Das CSS ::details-content Pseudo-Element ermöglicht es Ihnen, den Inhalt des <details> Elements zu stylen (Firefox Bug 1901037).

  • Erlauben von Pseudo-Elementen nach Element-gestützten Pseudo-Elementen

    Es wurde damit begonnen, Pseudo-Elemente wie ::first-letter und ::before zu erlauben, nach Element-gestützten Pseudo-Elementen wie ::details-content und ::file-selector-button angefügt zu werden. (Firefox Bug 1953557).

    Hinweis: Die Präferenz für diese Funktion hängt von dem element-gestützten Pseudo-Element ab, das anvisiert wird, zum Beispiel: ::details-content.

  • MutationEvent auf dem Weg zur Entfernung: dom.mutation_events.enabled

    MutationEvent und die zugehörigen Ereignisse (DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMCharacterDataModified, DOMAttrModified) sind jetzt standardmäßig in Firefox Nightly deaktiviert. (Firefox Bug 1951772).

  • Notification.actions (Nightly): dom.webnotifications.actions.enabled

    Die Notification.actions Eigenschaft kann die mit einer Notification verbundenen Aktionen abrufen, wie sie mit ServiceWorkerRegistration.showNotification() festgelegt wurden. (Firefox Bug 1225110).

  • PerformanceEventTiming.interactionId: dom.performance.event_timing.enable_interactionid

    PerformanceEventTiming.interactionId kann verwendet werden, um Latenzzeiten für Ereignisse zu messen, die durch eine bestimmte Benutzerinteraktion ausgelöst werden. (Firefox Bug 1934683).

  • HTML Sanitizer API: dom.security.sanitizer.enabled

    Die HTML Sanitizer API erlaubt es Entwicklern, nicht vertrauenswürdige HTML-Strings zu übernehmen und sie für eine sichere Einfügung in das DOM eines Dokuments zu bereinigen. (Firefox Bug 1950605), (Firefox Bug 1952250).

Ältere Versionen