Firefox-155-Release-Notes für Entwickler (Stable)
Dieser Artikel enthält Informationen zu den Änderungen in Firefox 155, die sich auf Entwickler auswirken. Firefox 155 wurde am 1. September 2026 veröffentlicht.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Die Schaltflächen zur Emulation von Medienmerkmalen in der Regelansicht sind nun in einem speziellen Emulationsbereich zusammengefasst, der über die Schaltfläche
@geöffnet wird. Der Bereich fügt außerdem die Emulation des Medienmerkmalsprefers-reduced-motionhinzu. (Firefox-Bug 1692434 und Firefox-Bug 1477920). - Der JSON Viewer öffnet nun JSON Lines-Dokumente (NDJSON), die als
application/jsonl,application/jsonlines,application/x-ndjsonodertext/jsonlbereitgestellt werden oder die Dateierweiterung.jsonlhaben. Jede Zeile wird separat in einen eigenen auf- und zuklappbaren Eintrag analysiert, der mit der Zeilennummer gekennzeichnet ist, aus der sie stammt. Eine Zeile, die nicht analysiert werden kann, wird inline gemeldet, ohne den Rest des Dokuments zu beeinträchtigen. (Firefox-Bug 2055774, Firefox-Bug 2060972 und Firefox-Bug 2060529). - Ein Tastaturkürzel zum Deaktivieren von Breakpoints im Debugger wurde hinzugefügt. (Firefox-Bug 1642578).
HTML
Keine nennenswerten Änderungen.
CSS
- Die CSS-Funktion
attr()kann nun in jeder CSS-Eigenschaft verwendet werden, statt nur incontent. Dadurch können Sie das Styling anhand von HTML-Attributen steuern, etwa mitwidth: attr(data-size px), ohne JavaScript zu verwenden. Werte von<attr-type>(einschließlich Einheitenbezeichnern wiepxunds), Fallback-Werte und namensraumbezogene Attribute werden nun unterstützt. Sie könnenattr()nun auch innerhalb von Container-Style-Queries verwenden. (Firefox-Bug 2038940). - Die CSS-Funktion
progress()wird nun unterstützt. Sie gibt eine<number>zurück, die darstellt, wie weit ein Wert zwischen einem Start- und einem Endwert fortgeschritten ist. Das Ergebnis kann anschließend zur Berechnung anderer Werte verwendet werden, beispielsweiseopacity: calc(0.4 + progress(100cqw, 300px, 900px) * 0.6). (Firefox-Bug 2047345). - Die CSS-Funktion
alpha()wird nun unterstützt. Sie ermöglicht es Ihnen, eine Farbe zu übergeben und diese Farbe mit einem anderen Alpha-Wert (Transparenz) zurückzuerhalten, während die übrigen Komponenten der Farbe unverändert bleiben. Innerhalb der Funktion können Sie das Schlüsselwortalphaverwenden, um auf den Alpha-Kanal der ursprünglichen Farbe zu verweisen, beispielsweisealpha(from var(--brand) / calc(alpha * 0.5)). (Firefox-Bug 2059738 und Firefox-Bug 2059988). - Die CSS-Eigenschaft
font-widthwird nun unterstützt, zusammen mit demfont-width-Deskriptor von@font-faceund der EigenschaftCSSStyleDeclaration.fontWidth. Dies ist der neue Name für die Eigenschaftfont-stretch, die weiterhin als Legacy-Alias funktioniert. Beachten Sie, dass die Aufzählung berechneter Stile nunfont-widthstattfont-stretchzurückgibt. (Firefox-Bug 1911075).
JavaScript
- Die statischen Methoden
Promise.allKeyed()undPromise.allSettledKeyed()werden nun unterstützt, wie im TC39-Vorschlag await dictionary definiert. Sie verhalten sich wiePromise.all()beziehungsweisePromise.allSettled(), nehmen jedoch ein Objekt von Promises statt eines Iterables entgegen. Sie werden mit einem Objekt erfüllt, das dieselben Schlüssel besitzt, sodass Ergebnisse anhand ihres Namens statt ihrer Position gelesen werden können. (Firefox-Bug 2057270). - Ein Modul, das aufgrund eines Netzwerkfehlers oder eines falschen MIME-Typs nicht geladen werden kann, wird nicht länger als Fehlschlag zwischengespeichert. Daher kann das erneute Importieren desselben Modulspezifizierers erfolgreich sein, sobald der Server wieder verfügbar ist.
Dies gilt für JavaScript-, JSON-, CSS- und Text-Module, die entweder statisch oder mit dynamischem Import geladen werden, sowohl in Fenstern als auch in Workern.
Darüber hinaus löst
<link rel="modulepreload">nun das Ereignisloadstatterrorfür Module aus, die bereits abgerufen wurden oder noch abgerufen werden. Außerdem wird ein Modulskript nun geladen, selbst wenn ein früheresmodulepreloadderselben URL seine Integritätsprüfung nicht bestanden hat. (Firefox-Bug 2055211 und Firefox-Bug 2052949).
HTTP
- Firefox verwendet nun Happy Eyeballs Version 3, wenn Verbindungen hergestellt werden. IPv6- und IPv4-Adressen werden parallel ausprobiert, damit der Verbindungsaufbau nicht durch eine nicht erreichbare Adressfamilie verzögert wird. Beachten Sie, dass dies derzeit nur auf einigen Plattformen unterstützt wird. (Firefox-Bug 2062892).
- Die Versionsaushandlung von QUIC wird nun unterstützt, wodurch HTTP/3-Verbindungen QUIC-Version 2 aushandeln können. (Firefox-Bug 2059947).
APIs
- Mehrere Funktionen der WebTransport API werden nun unterstützt:
- Send-Gruppen ermöglichen es Ihnen, Streams zu gruppieren, die Bandbreite teilen sollen, und Streams innerhalb einer Gruppe relativ zueinander zu priorisieren.
Sie können eine solche Gruppe mit
WebTransport.createSendGroup()erstellen. Übergeben Sie anschließend die zurückgegebeneWebTransportSendGroupin der OptionsendGroupvonWebTransport.createBidirectionalStream()oderWebTransport.createUnidirectionalStream(). (Firefox-Bug 2007165). - Die Methode
WebTransport.exportKeyingMaterial()leitet Schlüsselmaterial aus der zugrunde liegenden TLS-Verbindung für ein bestimmtes Label und einen Kontext ab, sodass beide Endpunkte dasselbe gemeinsame Geheimnis erhalten können. Dies ermöglicht beispielsweise, dass ein Handshake auf Anwendungsebene MITM-Angriffe erkennt, wenn eine Anwendung eine Verbindung mit einem Peer herstellt, der nur über ein selbstsigniertes Zertifikat verfügt. (Firefox-Bug 2007200). - Die Methode
WebTransportDatagramDuplexStream.createWritable()gibt einenWebTransportDatagramsWritable-Stream zum Senden von Datagrammen zurück, mit den EigenschaftensendGroupundsendOrder, um ihn gegenüber anderen Sendern zu priorisieren. (Firefox-Bug 2007174). - Der Konstruktor
WebTransport()akzeptiert eine Optionprotocols, die die vom Client unterstützten Anwendungsprotokolle auflistet. Das vom Server ausgewählte Protokoll wird, falls vorhanden, in der EigenschaftWebTransport.protocolzurückgegeben, wenn die Verbindung hergestellt wird und das PromiseWebTransport.readyerfüllt wird. (Firefox-Bug 2007150). - Die Eigenschaft
WebTransport.draininggibt an, wann der Server den Client aufgefordert hat, ein geordnetes Herunterfahren der Sitzung zu beginnen. (Firefox-Bug 2007160).
- Send-Gruppen ermöglichen es Ihnen, Streams zu gruppieren, die Bandbreite teilen sollen, und Streams innerhalb einer Gruppe relativ zueinander zu priorisieren.
Sie können eine solche Gruppe mit
- Die WebGPU API unterstützt nun die Funktion
dual-source-blendingauf Desktop-Systemen, die inGPUAdapter.requestDevice()angefordert werden kann. Dadurch könnensrc1,one-minus-src1,src1-alphaundone-minus-src1-alphain den EigenschaftensrcFactorunddstFactorvoncreateRenderPipeline()undcreateRenderPipelineAsync()angegeben werden. Die WGSL-Erweiterungdual_source_blendingwird ebenfalls unterstützt. (Firefox-Bug 1924328).
DOM
- Die Schnittstelle
SVGAElementimplementiert nun das MixinHyperlinkElementUtils. Dadurch stellen SVG-<a>-Elemente dieselben URL-Komponenteneigenschaften wie HTML-<a>-Elemente bereit:protocol,username,password,host,hostname,port,pathname,searchundhash. Die schreibgeschützte Eigenschaftoriginwird ebenfalls bereitgestellt. (Firefox-Bug 2058578). - Die Schnittstellen
SVGNumberList,SVGPointList,SVGStringListundSVGTransformListunterstützen nun indexierte Setter. Das bedeutet, dass Sie ein Element in der Liste mittels Klammernotation ersetzen können, etwatransformList[0] = newTransform, stattreplaceItem()aufzurufen. Die SchnittstelleSVGLengthListunterstützt indexierte Setter bereits. (Firefox-Bug 2059426). - Die Methode
SVGGraphicsElement.getBBox()berücksichtigt nun ihr Argumentoptionsmit den Eigenschaftenfill,stroke,markersundclipped. Dadurch können Sie eine Bounding Box abrufen, die den auf ein Element angewendeten Strich, Marker und Beschnitt berücksichtigt, statt nur dessen Füllgeometrie. (Firefox-Bug 2060873). - Nicht gerenderte Elemente, etwa solche innerhalb von
<mask>,<clipPath>,<marker>,<symbol>und<defs>, geben nun ein leeres Rechteck vonElement.getBoundingClientRect()und eine leere Liste vonElement.getClientRects()zurück, statt eine Box zu melden, die nie gezeichnet wurde. (Firefox-Bug 2061646).
Medien, WebRTC und Web Audio
- Das Ereignis
error, das für einRTCDataChannel-Objekt ausgelöst wird, kann nunsctp-failurein seiner Eigenschafterror.errorDetailmelden, wenn der Transport aufgrund eines Fehlers geschlossen wird. Zusätzlich sindRTCErrorundRTCErrorEventnun in dedizierten Workern verfügbar. Diese Bereitstellung ist noch nicht in der Spezifikation enthalten. (Firefox-Bug 1814460). - Die Eigenschaft
RTCPeerConnection.sctpgibt nun zu den von der Spezifikation geforderten Zeitpunkten einenRTCSctpTransportzurück, einschließlich im Signalisierungsstatushave-remote-offer, in dem sie zuvornullwar. Der Transport erreicht nun außerdem die Statusconnectedundclosed, und seine EigenschaftenmaxChannelsundmaxMessageSizewerden korrekt befüllt. (Firefox-Bug 2019361 und Firefox-Bug 2056412). - RTP-Header-Erweiterungen mit zwei Bytes werden nun unterstützt, sodass Header-Erweiterungen mit einer ID von 15 oder höher ausgehandelt werden können, statt einen
OperationErrorauszulösen. (Firefox-Bug 2014357). - Die Eigenschaft
selectedCandidatePairChangeswird nun inRTCTransportStatsgemeldet. (Firefox-Bug 2055911). - Die von
RTCPeerConnection.getStats()zurückgegebenentransport-Statistiken sind nun vor der Aushandlung korrekt, also nachsetLocalDescription(), aber bevor eine Remote-Beschreibung festgelegt wurde. Die EigenschaftdtlsRolewird nun alsunknowngemeldet, bis der DTLS-Handshake eine Rolle auswählt, während sie zuvor gar nicht gemeldet wurde (Firefox-Bug 2053296). Die EigenschafticeStatebeginnt nun mitnewstatt mitchecking, was zuvor fälschlicherweise anzeigte, dass Konnektivitätsprüfungen bereits liefen (Firefox-Bug 2053297).
WebAssembly
- Die Binärformat-Erweiterung compact import section wird nun unterstützt. Sie reduziert die Größe von Modulen mit vielen
import-Anweisungen. (Firefox-Bug 2062344). - Der Vorschlag wide arithmetic wird nun unterstützt und fügt die Anweisungen
i64.add128,i64.sub128,i64.mul_wide_sundi64.mul_wide_uhinzu. Diese erzeugen 128-Bit-Ergebnisse aus 64-Bit-Operanden, die zuvor in zu WebAssembly kompiliertem Code emuliert werden mussten, etwa in Bignum- und Kryptografie-Bibliotheken. (Firefox-Bug 2062374).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Das Download-Panel wurde deaktiviert, damit das aktuelle Dokument beim Beginn eines Downloads nicht den Fokus verliert. (Firefox-Bug 2035439).
- Die Actions API wurde korrigiert, sodass das Ereignis
dblclickausgelöst wird, wenn auf Nicht-macOS-Plattformen ein Doppelklick ausgeführt wird, während die TasteCtrlgedrückt gehalten wird. (Firefox-Bug 2058556).
WebDriver BiDi
- Das Mozilla-spezifische Modul
moz:debuggingwurde aktualisiert, sodass es nicht länger auf dieselbe API für verschachtelte Ereignisschleifen wie DevTools angewiesen ist. Dies verhindert Konflikte, wenn WebDriver BiDi und DevTools parallel verwendet werden. (Firefox-Bug 2041335). - Der Fehler wurde behoben, dass der Befehl
browsingContext.reloadbei Verwendung für Frames fehlschlug. (Firefox-Bug 2030909). - Die Unterstützung für das Argument
contextsim Befehlsession.unsubscribewurde entfernt. Von nun an können Clients nur anhand des Ereignisnamens oder der Abonnement-ID abbestellen. (Firefox-Bug 1988723).
Experimentelle Webfunktionen
Diese Funktionen werden mit Firefox 155 ausgeliefert, sind jedoch standardmäßig deaktiviert.
Um mit ihnen zu experimentieren, suchen Sie auf der Seite about:config nach der entsprechenden Einstellung und setzen Sie sie auf true.
Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.
-
Scroll-gesteuerte Animationen:
layout.css.scroll-driven-animations.enabledScroll-gesteuerte Animationen ermöglichen es einer Animation, mit der Scrollposition eines Scroll-Containers oder mit der Position eines Elements innerhalb seines Scroll-Containers fortzuschreiten, statt mit der Zeit. Diese Einstellung umfasst die Eigenschaften
scroll-timelineundview-timelinesowie deren Longhands, einschließlich der Eigenschaftview-timeline-inset, zusammen mit den funktionalen Notationenscroll()undview(). In dieser Version wurde das Longhandview-timeline-insetzum Shorthandview-timelinehinzugefügt. (Firefox-Bug 2046602). -
CSS Typed Object Model Level 1:
layout.css.typed-om.enabledDie CSS Typed Object Model API stellt CSS-Werte als typisierte JavaScript-Objekte statt als Zeichenfolgen bereit, was die Manipulation von CSS durch Skripte vereinfacht. (Firefox-Bug 1278697).
-
at-rule()-Support-Queries:layout.css.supports.at-rule.enabledDie Funktion
at-rule()in der At-Regel@supportsermöglicht es Ihnen zu testen, ob der Browser eine bestimmte CSS-At-Regel unterstützt, beispielsweise@supports at-rule(@scope). (Firefox-Bug 2060754). -
Audio Session API:
dom.audio_session.enabledDie Audio Session API ermöglicht es einer Website zu deklarieren, wie sich ihr Audio im Verhältnis zu anderem auf dem Gerät abgespieltem Audio verhalten soll, etwa ob es mit anderem Audio gemischt, abgesenkt oder dieses unterbrochen werden soll. (Firefox-Bug 2055710).
-
CSS-Grundformen erlauben die Schlüsselwörter
farthest-cornerundclosest-corner:layout.css.ellipse-corners.enabledDie Schlüsselwörter
farthest-cornerundclosest-cornerkönnen zur Angabe der Radiuswerte der CSS-Grundformenellipse()undcircle()verwendet werden. (Firefox-Bug 2037673). -
Inhalte mit
line-clampkürzen:layout.css.line-clamp.enabledDie CSS-Eigenschaft
line-clampfunktioniert ohne das Vendor-Präfix-webkit-und unterstützt nun auch das Schlüsselwortno-ellipsissowie<string>-Werte zur Auswahl dessen, was an der Stelle angezeigt wird, an der der Text abgeschnitten wird. (Firefox-Bug 2042999 und Firefox-Bug 2043000). -
Bereichsbezogene Registrierungen benutzerdefinierter Elemente:
dom.scoped-custom-element-registries.enabledEine
CustomElementRegistrykann erstellt und anElement.attachShadow()übergeben werden, sodass eine Shadow Root benutzerdefinierte Elemente definieren kann, die nicht mit den in der globalen Registrierung definierten Elementen kollidieren. (Firefox-Bug 2018900). Diese Version fügt außerdem das globale Attributcustomelementregistryhinzu, um aus dem Markup die Registrierung auszuwählen, mit der ein Element verbunden ist. (Firefox-Bug 2029965). -
Assertions für Puffergrenzen in regulären Ausdrücken: (nur Nightly)
javascript.options.experimental.regexp_buffer_boundariesDer TC39-Vorschlag RegExp buffer boundaries fügt regulären Ausdrücken die Assertions
\A,\zund\Zhinzu. Diese entsprechen dem Anfang oder Ende der gesamten Eingabe, unabhängig davon, ob das Flagmgesetzt ist. (Firefox-Bug 2047706). -
Wert
border-areafürbackground-clip:layout.css.background-clip.border-area.enabledDer Wert
border-areader CSS-Eigenschaftbackground-clipbeschneidet den Hintergrund auf den Bereich, der durch den Rahmen des Elements gezeichnet wird. Dadurch ist es möglich, einen Farbverlauf oder ein Bild als Rahmen zu verwenden. (Firefox-Bug 2045230). -
view-timelineumfasstview-timeline-inset:layout.css.scroll-driven-animations.enabledDie Shorthand-Eigenschaft
view-timelineunterstützt nun die Eigenschaftview-timeline-inset. Mit dem Shorthand können Sie Anfangs- und/oder End-Inset-Werte (oder Outset-Werte) angeben, um die Position der View-Progress-Timeline anzupassen. (Firefox-Bug 2046602). -
Die Schnittstelle
MathMLAnchorElement:mathml.a.element.enabledDas MathML-Element
<a>wird im DOM nun korrekt durch die SchnittstelleMathMLAnchorElementstatt durch die generische SchnittstelleMathMLElementdargestellt. (Firefox-Bug 2059312).