Firefox 138 für Entwickler

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

Änderungen für Webentwickler

HTML

  • Der Wert importmap des Attributs type des <script>-Elements unterstützt jetzt den Schlüssel integrity. Dies ermöglicht es, dass die in den Import-Maps referenzierten ES-Modul-URLs mit ihren Integritätsmetadaten abgeglichen werden. Dadurch sind diese Module jetzt mit CSP-Directives 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 Stacktrace-Informationen auf einem bereitgestellten Objekt als Eigenschaft Error.stack. Der Hauptanwendungsfall ist das Installieren eines Stacktraces auf einem benutzerdefinierten Fehlerobjekt, 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 von 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 Netzwerk-Cache des Browsers zu leeren. Dies gibt Websites mehr Kontrolle über gespeicherte Daten ihrer Benutzer und ermöglicht es ihnen beispielsweise, das Risiko von Datenschutzlecks zu mindern, indem der Cache beim Logout geleert wird. (Firefox-Bug 1942272).
  • Der HTTP Origin-Agent-Cluster-Antwort-Header kann jetzt von einer Site verwendet werden, um anzudeuten, dass das zugehörige Dokument in einem herkunftsbezogenen Agenten-Cluster platziert werden sollte. In einem solchen Cluster werden der vom Betriebssystem verwendete Prozess und/oder andere OS-Ressourcen, die vom Dokument verwendet werden, nur mit anderen Dokumenten von derselben Herkunft geteilt. Dies reduziert die Wahrscheinlichkeit, dass ein ressourcenintensives Dokument die Leistung von Dokumenten aus anderen Herkünften beeinträchtigt. Entwickler können testen, ob der Browser das Dokument in einen herkunftsbezogenen Agenten-Cluster gestellt hat, indem sie die Eigenschaft window.originAgentCluster verwenden. (Firefox-Bug 1665474)

APIs

DOM

Media, WebRTC und Web Audio

  • WebRTC-Anwendungen können jetzt eine Präferenz dafür einstellen, ob Framerate oder Auflösung priorisiert werden sollen, wenn beides aufgrund von Netzwerkverschlechterung nicht auf den konfigurierten Levels gehalten werden kann. Der Wert wird mit der degradationPreference-Eigenschaft im Parameterobjekt gesetzt, das an die Methode setParameters() der RTCRtpSender-Schnittstelle übergeben wird. Es kann auch aus dem Objekt gelesen werden, das von der Methode getParameters() zurückgegeben wird. (Firefox-Bug 1329847).

WebDriver-Konformität (WebDriver BiDi, Marionette)

Allgemein

  • Alle Remote-Protokolle aktivieren jetzt die erforderlichen Präferenzen, um Protokolle ordnungsgemäß zu 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-Kontexten 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 Befehl webExtension.install 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, Firefox-spezifischer Parameter, moz:permanent, wurde hinzugefügt, um die Installation als reguläre Erweiterung zu erzwingen (Firefox-Bug 1947678).
  • Der Befehl browsingContext.setViewport unterstützt jetzt einen userContexts-Parameter, der ein Array von Benutzerkontexten (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 vorhandenen context-Parameter verwendet werden (Firefox-Bug 1940952).
  • Der Typ browsingContext.Info enthält jetzt eine clientWindow-Eigenschaft, die der ID des Fensters entspricht, dem der Browsing-Kontext gehört. Es 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 (Elternprozess)-Kontext mit Marionette erfordert jetzt die Verwendung des --remote-enable-system-access-Befehlszeilenflags beim Starten von Firefox (Firefox-Bug 1710425).

Änderungen für Add-on-Entwickler

Experimentelle Web-Features

Diese Funktionen sind neu in Firefox 138 enthalten und werden als experimentell betrachtet. Sie können standardmäßig deaktiviert oder aktiviert sein, jedoch nur im Nightly-Build verfügbar sein. Für Funktionen, die standardmäßig deaktiviert sind, suchen Sie auf der Seite about:config nach der entsprechenden Präferenz und setzen Sie sie auf true. Weitere Informationen zu solchen Funktionen finden Sie auf der Seite Experimentelle Funktionen.

  • UA-Stile für <h1>, die in verschachtelte Abschnitte eingefügt sind: layout.css.h1-in-section-ua-styles.enabled.

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

    Im Rahmen einer schrittweisen 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: In der Nightly-Version ist sie auf false gesetzt, was die UA-Styling für Überschriften, die in Abschnittselementen verschachtelt sind, entfernt. In allen anderen Kanälen ist sie auf true gesetzt, was die bestehenden 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).

  • Pseudoelemente nach Element-gestützten Pseudoelementen

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

    Hinweis: Die Präferenz für diese Funktion hängt vom betriebenen Element-gestützten Pseudoelement ab, zum Beispiel: ::details-content.

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

    MutationEvent und die damit verbundenen 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 verknüpften Aktionen abrufen, wie sie mit ServiceWorkerRegistration.showNotification() gesetzt 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 es Entwicklern, ungesicherte HTML-Strings zu nehmen und sie zu reinigen, damit sie sicher in das DOM eines Dokuments eingefügt werden können. (Firefox-Bug 1950605), (Firefox-Bug 1952250).

Ältere Versionen