Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Firefox 138 für Entwickler

Dieser Artikel informiert ü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 nun mit CSP-Direktiven kompatibel, die Subresource Integrity (SRI) erfordern. (Firefox Bug 1945540).

CSS

Keine bemerkenswerten Änderungen

JavaScript

  • Die statische Methode Error.captureStackTrace() wird jetzt unterstützt. Diese installiert Stapelverfolgungsinformationen auf einem bereitgestellten Objekt als die 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 statische Methode Error.isError() kann jetzt verwendet werden, um zu überprüfen, ob ein Objekt eine Instanz eines Error oder eines 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 Netzwerk-Cache des Browsers zu löschen. Dadurch erhalten Websites mehr Kontrolle über die für ihre Benutzer gespeicherten Daten, was es ihnen beispielsweise ermöglicht, Risiken von Datenschutzverletzungen zu mindern, indem der Cache während des Abmeldens geleert wird. (Firefox Bug 1942272).
  • Der HTTP-Response-Header Origin-Agent-Cluster kann jetzt von einer Website verwendet werden, um darauf hinzuweisen, dass das zugehörige Dokument in einem origin-spezifischen Agenten-Cluster platziert werden sollte. In einem solchen Cluster werden die vom Dokument genutzten Betriebssystemprozesse und/oder andere Betriebssystemressourcen nur mit anderen Dokumenten desselben Ursprungs geteilt. Dies macht es weniger wahrscheinlich, 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 origin-spezifischen Agenten-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 festlegen, ob die Bildfrequenz oder die Auflösung priorisiert werden soll, wenn beide aufgrund von Netzwerkverschlechterungen nicht auf den konfigurierten Ebenen gehalten werden können. Der Wert wird mit der degradationPreference-Eigenschaft im Parameterobjekt festgelegt, das an die setParameters()-Methode der RTCRtpSender-Schnittstelle übergeben wird. Es 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 Präferenzen, die erforderlich sind, um Protokolldaten ordnungsgemäß an stdout weiterzuleiten. (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-UI) oder die Verwendung von privilegierten APIs in Inhaltsprozessen. Dies wird in den nächsten Versionen für WebDriver BiDi-Funktionen verwendet und kann bereits mit Marionette verwendet werden (siehe den Abschnitt Marionette unten) (Firefox Bug 1944565).

WebDriver BiDi

  • Der webExtension.install-Befehl installiert nun Web-Erweiterungen standardmäßig temporär, wodurch er mit unsignierten Erweiterungen verwendet werden kann - entweder als XPI-Datei oder als ungepackter 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 Contexts angewendet, die diesen Benutzerkontexten gehören, sowie auf alle zukünftigen Kontexte, die innerhalb dieser erstellt werden. Dieser Parameter kann nicht zusammen mit dem vorhandenen context-Parameter verwendet werden (Firefox Bug 1940952).
  • Der browsingContext.Info-Typ umfasst jetzt eine clientWindow-Eigenschaft, die der ID des Fensters entspricht, das den Browsing Context besitzt. Er wird typischerweise von browsingContext.getTree zurückgegeben oder im Payload von Ereignissen wie browsingContext.contextCreated enthalten (Firefox Bug 1920952).

Marionette

  • Der Wechsel in den 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 Erweiterungsentwickler

Experimentelle Web-Features

Diese Features sind neu in Firefox 138 und gelten als experimentell. Sie können standardmäßig deaktiviert oder standardmäßig aktiviert sein, aber nur in der Nightly-Version verfügbar sein. Bei Features, die standardmäßig deaktiviert sind, suchen Sie nach der entsprechenden Präferenz auf der about:config-Seite und setzen Sie sie auf true. Weitere solche Features finden Sie auf der Experimental features-Seite.

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

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

    Im Rahmen eines gestaffelten Rollouts 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 dieses Feature funktioniert umgekehrt: Sie ist in der Nightly-Version auf false gesetzt, wodurch das UA-Styling für verschachtelte Überschriften entfernt wird. In allen anderen Kanälen ist sie auf true gesetzt, was das bestehende UA-Styling für die verschachtelten Überschriften beibehält.

  • ::details-content CSS-Pseudoelement: layout.css.details-content.enabled.

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

  • Erlauben von Pseudoelementen nach elementgestützten Pseudoelementen

    Es wurde begonnen, die Möglichkeit zu schaffen, Pseudoelemente wie ::first-letter und ::before an elementgestützte Pseudoelemente wie ::details-content und ::file-selector-button anzuhängen. (Firefox Bug 1953557).

    Hinweis: Dieses Feature hängt von der Unterstützung für das anvisierte elementgestützte Pseudoelement ab, beispielsweise: ::details-content, das sich hinter der layout.css.details-content.enabled-Präferenz befindet.

  • 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 in Firefox Nightly deaktiviert. (Firefox Bug 1951772).

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

    Die Notification.actions-Eigenschaft kann die Aktionen abrufen, die mit einer Notification verbunden sind, wie sie mithilfe von ServiceWorkerRegistration.showNotification() festgelegt wurden. (Firefox Bug 1225110).

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

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

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

    Die HTML Sanitizer API ermöglicht es Entwicklern, unzuverlässige HTML-Strings zu nehmen und sie zu bereinigen, um sie sicher in das DOM eines Dokuments einzufügen. (Firefox Bug 1950605, Firefox Bug 1952250).