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 destype
-Attributs des<script>
-Elements unterstützt jetzt denintegrity
-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 dieError.stack
-Eigenschaft. Der Hauptanwendungsfall besteht darin, eine Stapelverfolgung auf einem benutzerdefinierten Fehlerobjekt zu installieren, das nicht von derError
-Schnittstelle abgeleitet ist. (Firefox Bug 1950508). - Die statische Methode
Error.isError()
kann jetzt verwendet werden, um zu überprüfen, ob ein Objekt eine Instanz einesError
oder einesDOMException
ist. Dies ist zuverlässiger als die Verwendung voninstanceof
für denselben Zweck. (Firefox Bug 1952249). - Die
import
-Deklaration unterstützt jetzt das Importieren von JSON-Modulen mithilfe deswith
-Attributs.
HTTP
- Der
Clear-Site-Data
-Header kann mit dercache
- (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 diewindow.originAgentCluster
-Eigenschaft verwenden. (Firefox Bug 1665474)
APIs
- Die Login Status API wird jetzt bei der Verwendung der Federated Credential Management (FedCM) API unterstützt. Sie kann verwendet werden, um festzustellen und zu überprüfen, ob ein Browserbenutzer bei einem Identitätsanbieter eingeloggt ist.
Dies umfasst die Unterstützung für die
NavigatorLogin
-Schnittstelle, dienavigator.login
-Eigenschaft und denSet-Login
HTTP-Response-Header. (Firefox Bug 1945576 und Firefox Bug 1945573). - Die Web Audio API unterstützt jetzt bidirektionale Nachrichtenübermittlung auf einem
AudioWorklet.port
und einemAudioWorkletGlobalScope.port
. Dies ermöglicht eine benutzerdefinierte, asynchrone Kommunikation zwischen Code im Hauptthread und dem globalen Umfang eines Audio-Worklet, etwa um Steuerungsdaten oder globale Einstellungen zu empfangen. (Firefox Bug 1951240) - Die
getFingerprints()
-Methode derRTCCertificate
-Schnittstelle wird nun unterstützt. Eine Anwendung kann diese Methode verwenden, um Fingerabdrücke für ein Zertifikat zu erhalten, die möglicherweise außerhalb des Bandes geteilt werden, um einen bestimmten Benutzer oder Browser über WebRTC-Sitzungen hinweg zu identifizieren. (Firefox Bug 1525241).
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 diesetParameters()
-Methode derRTCRtpSender
-Schnittstelle übergeben wird. Es kann auch aus dem Objekt gelesen werden, das von dergetParameters()
-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 einenuserContexts
-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 vorhandenencontext
-Parameter verwendet werden (Firefox Bug 1940952). - Der
browsingContext.Info
-Typ umfasst jetzt eineclientWindow
-Eigenschaft, die der ID des Fensters entspricht, das den Browsing Context besitzt. Er wird typischerweise vonbrowsingContext.getTree
zurückgegeben oder im Payload von Ereignissen wiebrowsingContext.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
- Unterstützung für
page_action
alsmenus.ContextType
in dermenus
API für Manifest V3-Erweiterungen. Dies bietet Manifest V3-Erweiterungen die gleiche Fähigkeit wie Manifest V2-Erweiterungen, um Menüelemente zupage_action
hinzuzufügen. (Firefox Bug 1951166) - Die
contextualIdentities
API ist in Firefox für Android nicht mehr definiert. Zuvor war sie definiert, aber funktionsunfähig. (Firefox Bug 1659500) - Die
contextualIdentities
-Berechtigung wird in Firefox für Android nicht mehr erkannt. Zuvor aktivierte sie eine defekte Version der "Containers"-Funktion. (Firefox Bug 1659500) - Die neue Manifest V3-Version der
userScripts
API ist jetzt in Firefox für Android verfügbar. (Firefox Bug 1949955) - Die
webRequest.handlerBehaviorChanged
API wird implementiert. In früheren Versionen wurde diese Methode angezeigt, tat jedoch nichts. (Firefox Bug 1657575) - Die
alarms.create
API gibt jetzt ein Promise zurück, anstatt undefined. (Firefox Bug 1869171) - Es wurde Unterstützung hinzugefügt, um die Manipulation von Tabs innerhalb von Tab-Gruppen zu ermöglichen, einschließlich der folgenden Ergänzungen:
tabs.group()
undtabs.ungroup()
. (Firefox Bug 1959714)groupId
zutabs.Tab
. (Firefox Bug 1959713)groupId
zutabs.query
. (Firefox Bug 1959715)groupId
zutabs.onUpdated
. (Firefox Bug 1959716)
- Der
json
-Ressourcentyp wird jetzt sowohl inwebRequest.ResourceType
als auch indeclarativeNetRequest.ResourceType
in Firefox unterstützt, wobei Importattribute standardmäßig aktiviert sind. Zuvor wurde er alsscript
gemeldet. (Firefox Bug 1858078 und Firefox Bug 1950836)
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
auffalse
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 auftrue
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 derlayout.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 einerNotification
verbunden sind, wie sie mithilfe vonServiceWorkerRegistration.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).