Firefox 156: Versionshinweise für Entwickler
Dieser Artikel informiert über Änderungen in Firefox 156, die für Entwickler relevant sind. Firefox 156 wurde am 15. September 2026 veröffentlicht.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Die Anzeige der Viewport-Größe im Highlighter des Inspectors rundet Breite und Höhe nicht mehr. Zuvor wurde dadurch bei gebrochenen Zoomstufen oder auf hochauflösenden Bildschirmen eine irreführende Größe angezeigt. (Firefox-Bug 2055445).
- DevTools können sich jetzt mit einem Debugger-Server verbinden, dessen Version bis zu drei Versionen älter ist als die des Clients. Damit wurde die bisherige Grenze erweitert. Dies ist beim Remote-Debugging älterer Firefox- oder GeckoView-Builds relevant. (Firefox-Bug 2064221).
HTML
Keine nennenswerten Änderungen.
SVG
MouseEvent.offsetXundMouseEvent.offsetYwerden bei Events, deren Ziel ein<tspan>ist, jetzt vom Ursprung des äußersten<svg>-Elements aus gemessen. Zuvor wurde der falsche Ursprung verwendet. (Firefox-Bug 2066045).- Der Setter von
SVGSVGElement.currentScalehat bei einem verschachtelten<svg>-Element jetzt keine Wirkung mehr, wie es die Spezifikation verlangt. Beim äußersten<svg>-Element funktioniert er weiterhin. (Firefox-Bug 2063188).
CSS
- Das nicht standardisierte Pseudoelement
::-webkit-scrollbarwird in@supports-Bedingungen jetzt auf allen Websites als nicht unterstützt gemeldet. Daher gibt@supports selector(::-webkit-scrollbar)falsezurück und@supports not (selector(::-webkit-scrollbar))true. Dies gilt auch für die Websites, die in der mit Firefox 155 eingeführten Einstellunglayout.css.fake-webkit-scrollbar.enabled-domainsaufgeführt sind. Firefox wendet Regeln für::-webkit-scrollbarauf diesen Websites weiterhin an, meldet das Pseudoelement aber nicht mehr als unterstützt. Websites verwenden diese Prüfung als Hinweis darauf, dass die gesamte::-webkit-scrollbar-*-Familie unterstützt wird. Firefox unterstützt die anderen Pseudoelemente dieser Familie jedoch nicht. Websites, die ihre standardisierten Scrollbar-Stile nur bei@supports not (selector(::-webkit-scrollbar))anwenden, erhalten diese Stile nun auch in Firefox. (Firefox-Bug 2062782). - Die Eigenschaften
text-box-trimundtext-box-edgebeschneiden Textboxen jetzt in mehreren Fällen korrekt, in denen zuvor falsche Ergebnisse entstanden: Wenn das Pseudoelement::first-lineverwendet wird, erfolgt die Beschneidung anhand seiner Schriftmetriken (Firefox-Bug 2063835); wenn eine Inline-Box in der letzten Zeile fragmentiert ist, wird die richtige Zeile beschnitten (Firefox-Bug 2063909); und beim Beschneiden einer Inline-Box werden deren Rahmen und Innenabstand nicht mehr entfernt (Firefox-Bug 2064596). Beachten Sie, dasstext-box-trimin Kombination mitline-clampweiterhin keine Wirkung hat.
JavaScript
Promise.try()verarbeitet den Rückgabewert des Callbacks jetzt auf dieselbe Weise wiePromise.resolve(). Ein vom Callback zurückgegebenes Promise wird daher unverändert übernommen, statt in ein neues Promise verpackt zu werden.Promise.try(() => p)ist jetzt dasselbe Promise wiep, wennpein natives Promise ist. Dies folgt einer normativen Änderung der Spezifikation. (Firefox-Bug 2062293).using-Deklarationen können nicht mehr neu zugewiesen werden. Dies entspricht der von der Spezifikation geforderten,const-ähnlichen Semantik. Zuvor konnte eine solche Bindung ohne Fehlermeldung verändert werden. (Firefox-Bug 2040286).
Sicherheit
- Die Finite-Field-Diffie-Hellman-Gruppen
ffdhe2048undffdhe3072werden bei TLS-Handshakes standardmäßig nicht mehr angeboten. Bei Servern, die ausschließlich diese Gruppen unterstützen, kann keine Verbindung ausgehandelt werden. Nahezu alle Server unterstützen stattdessen den ECDHE-Schlüsselaustausch. (Firefox-Bug 1992340).
APIs
SubtleCrypto.deriveBits()löst jetzt einenTypeErroraus, wenn der übergebene ParameterlengthNaN,Infinity, negativ oder größer als 232−1 ist. Zuvor wurden diese Werte entweder akzeptiert oder das zurückgegebene Promise wurde mit einemOperationErrorabgelehnt. (Firefox-Bug 2065212).Scheduler.yield()übernimmt jetzt die Priorität und das Abbruchsignal des umschließenden Tasks auch über einawaithinweg, das synchron abgeschlossen wird. Beispiele dafür sind ein bereits erfülltes Promise, ein Wert, der kein Promise ist, oder einthen()-Callback bei einem bereits abgewickelten Promise. Zuvor gingen diese übernommenen Werte bei der Fortsetzung in solchen Fällen verloren und die Priorität fiel ohne Hinweis auf den Standardwertuser-visiblezurück.
DOM
Range.deleteContents()undRange.extractContents()arbeiten jetzt mit dem DOM-Baum statt mit dem flachen Baum. Dadurch werden bei einem Range, der die Grenze einer Shadow-Root überschreitet, nun die von der Spezifikation vorgesehenen Nodes gelöscht beziehungsweise extrahiert – auch wenn der Range innerhalb eines Shadow-Baums beginnt oder endet. Zuvor konnte ein solcher Range Inhalte innerhalb des Shadow-Baums entfernen, während nicht zugewiesene Kinder des Hosts erhalten blieben. Außerdem konnteRange.extractContents()eine Ausnahme auslösen, statt ein Fragment zurückzugeben. Die gleiche Korrektur gilt fürSelection.deleteFromDocument(). (Firefox-Bug 2053997).
Medien, WebRTC und Web Audio
- Das Mitglied
alwaysNegotiateDataChannelsdes Konfigurationsobjekts, das an den KonstruktorRTCPeerConnection()übergeben wird, wird jetzt unterstützt. Ist es auftruegesetzt, enthält das von der Verbindung erzeugte SDP immer eine m-Zeile für einen Datenkanal. Dadurch kannRTCPeerConnection.createDataChannel()später aufgerufen werden, ohne dass eine erneute Aushandlung erforderlich ist. Der Standardwert des Mitglieds istfalse. Es wird vonRTCPeerConnection.getConfiguration()zurückgegeben und kann nicht mitRTCPeerConnection.setConfiguration()geändert werden. (Firefox-Bug 2062561).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemeines
- Marionette und RemoteAgent verwenden jetzt beide einen eigenen Exit-Code (69), wenn ihr Server nicht gestartet werden kann. (Firefox-Bug 2040974).
- Das Timing von Zwischenereignissen bei Aktionen mit einer Dauer von mehr als 0 wurde verbessert. Die Ereignisse liegen nun näher an einem Intervall von 16 ms, ohne die Gesamtdauer zu verlängern, selbst wenn der Content-Prozess überlastet ist. (Firefox-Bug 2054442).
WebDriver BiDi
browsingContext.startScreencastwählt jetzt zuverlässig einen gültigen Download-Ordner aus und sollte keine Ausnahme mehr auslösen, wenn der Standard-Download-Ordner (DfltDwnld) nicht verfügbar ist. (Firefox-Bug 2066782).- Das Mozilla-spezifische Modul
moz:debuggingwurde korrigiert, sodass es verschachtelte Pausen richtig verarbeitet. (Firefox-Bug 2060460).
Marionette
- Der Befehl
WebDriver:GetElementTagNamewurde an die neuesten Änderungen der Spezifikation angepasst und gibt jetzt den qualifizierten Namen des DOM-Elements zurück. Zuvor wurde der Rückgabewert durch diesen Befehl immer in Kleinbuchstaben umgewandelt. Bei HTML-Elementen ist diese Änderung in der Praxis abwärtskompatibel. Für Elemente mit einem qualifizierten Namen, bei dem die Groß- und Kleinschreibung relevant ist, etwa SVG-Elemente, ist sie dagegen nicht abwärtskompatibel. (Firefox-Bug 2026697).
Änderungen für Add-on-Entwickler
- Der Manifest-Schlüssel
themeerhält die Eigenschaftbackgrounds_area. Damit kann ein Theme festlegen, wo seine Hintergrundbilder und Farbverläufe gezeichnet werden. Bei"window"erstrecken sie sich über das gesamte Browserfenster, während"top_toolbars"sie auf die horizontalen Symbolleisten am oberen Fensterrand beschränkt. Wennbackgrounds_areaweggelassen oder auf"auto"gesetzt wird, wählt Firefox den Bereich anhand vonproperties.additional_backgrounds_alignment. (Firefox-Bug 2059526)
Experimentelle Webfunktionen
Diese Funktionen sind in Firefox 156 enthalten, aber standardmäßig deaktiviert.
Um sie auszuprobieren, suchen Sie auf der Seite about:config nach der jeweiligen Einstellung und setzen Sie sie auf true.
Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.
-
Registries für benutzerdefinierte Elemente mit begrenztem Gültigkeitsbereich (Nightly):
dom.scoped-custom-element-registries.enabledRegistries für benutzerdefinierte Elemente mit begrenztem Gültigkeitsbereich werden jetzt unterstützt. Dadurch kann eine Shadow-Root benutzerdefinierte Elemente definieren, die nicht mit den im globalen Registry definierten Elementen in Konflikt geraten. In dieser Version ist die Funktion in Nightly-Builds standardmäßig aktiviert. (Firefox-Bug 2064333).
-
Unterstützungsabfragen mit
named-feature():layout.css.anchor-positioning.follows-transforms.enabledMit der Funktion
named-feature()in der@supports-At-Regel können Sie prüfen, ob der Browser eine Funktion unterstützt, für die es keine andere erkennbare Syntax gibt, beispielsweise@supports named-feature(anchor-position-follows-transforms). (Firefox-Bug 2042977 und Firefox-Bug 2055354). -
Container Timing API:
dom.enable_container_timingDie Container Timing API meldet, wann der Inhalt eines Container-Elements gezeichnet wird. So können Sie die Renderzeit eines Seitenbereichs statt des gesamten Viewports messen. (Firefox-Bug 1940240).
-
Benutzerdefinierte Webformate in der Async Clipboard API (Nightly):
dom.clipboard.customFormatSupport.enabledDie Clipboard API unterstützt jetzt auf Android benutzerdefinierte Webformate. Dadurch können
ClipboardItem-Objekte benutzerdefinierte MIME-Typen mit dem Präfix"web "enthalten, beispielsweise"web text/foo". Die Unterstützung für andere Plattformen wurde in Firefox 154 hinzugefügt. (Firefox-Bug 2048545).