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 erlaubt es, die ES-Modul-URLs, die in den Import-Maps referenziert werden, anhand ihrer Integritätsmetadaten zu überprüfen. Dadurch sind diese Module jetzt kompatibel mit CSP-Direktiven, die Subresource-Integrität (SRI) erfordern. (Firefox Bug 1945540).

CSS

Keine bemerkenswerten Änderungen

JavaScript

  • Die Error.captureStackTrace()-statische Methode wird jetzt unterstützt. Diese installiert Stack-Trace-Informationen auf einem bereitgestellten Objekt als die Error.stack-Eigenschaft. Der Hauptanwendungsfall ist es, einen Stack-Trace 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 prü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 mithilfe des with-Attributs.

HTTP

  • Der Clear-Site-Data-Header kann mit der cache-(und *)-Direktive verwendet werden, um den Browser-Netzwerkcache zu löschen. Dies gibt Websites mehr Kontrolle über die für ihre Benutzer gespeicherten Daten, sodass sie beispielsweise das Risiko von Datenschutzverletzungen mindern können, indem sie den Cache beim Abmelden löschen. (Firefox Bug 1942272).
  • Der HTTP Origin-Agent-Cluster Antwort-Header kann jetzt von einer Website verwendet werden, um anzudeuten, dass das zugehörige Dokument in einem ursprungsbezogenen Agent-Cluster platziert werden sollte. In einem solchen Cluster werden vom Dokument genutzte Betriebssystemprozesse und/oder andere OS-Ressourcen 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 einem ursprungsbezogenen 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 jetzt eine Präferenz zum Priorisieren von Bildrate oder Auflösung festlegen, wenn beides aufgrund von Netzwerkverschlechterung nicht auf den konfigurierten Ebenen gehalten werden kann. Der Wert wird mithilfe der degradationPreference-Eigenschaft im Parameterobjekt, das an die setParameters()-Methode der RTCRtpSender-Schnittstelle übergeben wird, festgelegt. 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 Remote-Protokolle aktivieren jetzt die Präferenzen, die erforderlich sind, 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 das Interagieren mit Browsing Contexts im übergeordneten Prozess (z. B. Browser-Benutzeroberfläche) oder die Verwendung privilegierter APIs in Inhaltsprozessen. Dies wird in den nächsten Veröffentlichungen für WebDriver BiDi-Funktionen verwendet werden und kann bereits mit Marionette verwendet werden (siehe Marionette-Abschnitt unten) (Firefox Bug 1944565).

WebDriver BiDi

  • Der webExtension.install-Befehl installiert jetzt Web-Erweiterungen standardmäßig temporär, sodass er mit nicht signierten Erweiterungen verwendet werden kann - entweder als XPI-Datei oder als entpackter Ordner. Ein neuer Firefox-spezifischer Parameter, moz:permanent, wurde hinzugefügt, um die Installation 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 diesen Benutzerkontexten gehören, sowie auf alle zukünftigen Kontexte, die innerhalb dieser erstellt werden. 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, das den Browsing Context besitzt. Es wird typischerweise von browsingContext.getTree zurückgegeben oder in der Nutzlast von Ereignissen wie browsingContext.contextCreated enthalten (Firefox Bug 1920952).

Marionette

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

Änderungen für Add-on-Entwickler

Experimentelle Web-Features

Diese Funktionen sind neu in Firefox 138 und gelten als experimentell. Sie sind möglicherweise standardmäßig deaktiviert oder standardmäßig aktiviert, aber nur im Nightly-Build verfügbar. Für Funktionen, die standardmäßig deaktiviert sind, suchen Sie auf der about:config-Seite nach der entsprechenden Einstellung und setzen Sie diese auf true. Sie finden weitere solche Funktionen auf der Seite Experimentelle Funktionen.

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

    Die <h1>-Überschrift wird 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> innerhalb von Gliederungselementen sind nicht mehr relevant, seit der Outline-Algorithmus aus der HTML-Spezifikation entfernt wurde. (Firefox Bug 1883896).

    Im Rahmen einer gestaffelten Einführung dieser Entfernung wird bei 5 % der Benutzer von Firefox 138 und 50 % der Benutzer 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 Einstellung für diese Funktion funktioniert umgekehrt: Im Nightly-Build ist sie auf false gesetzt, wodurch die UA-Stile für Überschriften, die in Gliederungselementen verschachtelt sind, entfernt werden. In allen anderen Kanälen ist sie auf true gesetzt, wodurch die vorhandenen UA-Stile für die verschachtelten Überschriften beibehalten werden.

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

    Das CSS ::details-content-Pseudo-Element ermöglicht das Stylen des Inhalts des <details>-Elements (Firefox Bug 1901037).

  • Erlauben von Pseudo-Elementen nach elementenunterstützten Pseudo-Elementen

    Die Arbeiten haben begonnen, um Pseudo-Elemente zu erlauben, wie ::first-letter und ::before, die an elementenunterstützte Pseudo-Elemente angehängt werden, wie ::details-content und ::file-selector-button. (Firefox Bug 1953557).

    Hinweis: Die Einstellung für diese Funktion hängt vom anvisierten elementenunterstützten Pseudo-Element ab, zum Beispiel: ::details-content.

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

    MutationEvent und seine zugehörigen Ereignisse (DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMCharacterDataModified, DOMAttrModified) sind jetzt standardmäßig im 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 die Latenzzeit 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 Entwicklern, nicht vertrauenswürdige HTML-Strings zu nehmen und sie für die sichere Einfügung in das DOM eines Dokuments zu bereinigen. (Firefox Bug 1950605), (Firefox Bug 1952250).