Versionshinweise zu Firefox 155 für Entwickler
Dieser Artikel enthält Informationen zu den Änderungen in Firefox 155, die Entwickler betreffen. Firefox 155 wurde am 1. September 2026 veröffentlicht.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Die Schaltflächen zur Emulation von Medien-Features in der Regelansicht sind nun in einem eigenen Emulationsbereich zusammengefasst, der über die Schaltfläche
@geöffnet wird. Der Bereich fügt außerdem die Emulation des Medien-Featuresprefers-reduced-motionhinzu. (Firefox-Bug 1692434 und Firefox-Bug 1477920). - Der JSON Viewer öffnet jetzt 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 einklappbaren Eintrag geparst, der mit der jeweiligen Zeilennummer beschriftet ist. Eine Zeile, die nicht geparst 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 die Gestaltung anhand von HTML-Attributen steuern, etwa mitwidth: attr(data-size px), ohne JavaScript zu verwenden. Werte für<attr-type>(einschließlich Einheitenbezeichnern wiepxunds), Fallback-Werte und Attribute mit Namespace 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 angibt, wie weit ein Wert zwischen einem Start- und einem Endwert fortgeschritten ist. Das Ergebnis kann dann zur Berechnung anderer Werte verwendet werden, etwaopacity: 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 dieselbe Farbe mit einem anderen Alpha-Wert (Transparenz) zurückzuerhalten, wobei die anderen Farbkomponenten unverändert bleiben. Innerhalb der Funktion können Sie das Schlüsselwortalphaverwenden, um auf den Alpha-Kanal der ursprünglichen Farbe zu verweisen, etwaalpha(from var(--brand) / calc(alpha * 0.5)). (Firefox-Bug 2059738 und Firefox-Bug 2059988). -
Die CSS-Eigenschaft
font-widthwird nun unterstützt, ebenso wie der Deskriptorfont-widthvon@font-faceund die 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). -
Die teilweise Unterstützung für das nicht standardisierte Pseudo-Element
::-webkit-scrollbar, die in Firefox 153 hinzugefügt wurde, ist nun auf eine kleine Liste von Websites beschränkt und gilt nicht mehr für das gesamte Web. Firefox verwaltet diese Liste in der Einstellunglayout.css.fake-webkit-scrollbar.enabled-domains. Die Domain des Dokuments wird mit den Einträgen in der Liste abgeglichen; stimmt sie mit keinem Eintrag überein, gibt@supports selector(::-webkit-scrollbar)falsezurück.Diese Einschränkung macht die Änderung aus Firefox 153 rückgängig, die eine teilweise Unterstützung für
::-webkit-scrollbarauf allen Websites eingeführt und auf einigen Websites fehlerhafte Scrollbars verursacht hatte. Diese Websites verwendeten Styling mit anderen::-webkit-scrollbar-*-Pseudo-Elementen, die Firefox nicht unterstützt. Die einzigen Deklarationen, auf die Firefox reagiert, sinddisplay: none, wodurch die Scrollbar ausgeblendet wird, sowie ein von null verschiedener Wert fürwidthoderheight, wodurch Overlay-Scrollbars für diesen Scroll-Container deaktiviert werden.Verwenden Sie die Standard-Eigenschaften
scrollbar-colorundscrollbar-width, um Scrollbars in Firefox zu gestalten. (Firefox-Bug 2061547).
JavaScript
- Die statischen Methoden
Promise.allKeyed()undPromise.allSettledKeyed()werden nun unterstützt, wie im TC39-Vorschlag await dictionary definiert. Sie verhalten sich jeweils wiePromise.all()undPromise.allSettled(), nehmen jedoch ein Objekt von Promises statt eines Iterables entgegen. Sie werden mit einem Objekt erfüllt, das dieselben Schlüssel hat, 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 Fehler 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 Windows als auch in Workern.
Damit verbunden löst
<link rel="modulepreload">nun das Ereignisloadstatterrorfür Module aus, die bereits abgerufen werden 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 beim Herstellen von Verbindungen und lässt IPv6- und IPv4-Adressen gegeneinander antreten, sodass 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, sodass 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 Ihnen, Streams zu gruppieren, die sich Bandbreite teilen sollen, und Streams innerhalb einer Gruppe relativ zueinander zu priorisieren.
Sie können eine 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 bestimmten Kontext ab, sodass beide Endpunkte dasselbe gemeinsame Geheimnis erhalten können. Dies ermöglicht beispielsweise einem Handshake auf Anwendungsebene, MITM-Angriffe zu erkennen, 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 ist und das PromiseWebTransport.readyerfüllt wird. (Firefox-Bug 2007150). - Die Eigenschaft
WebTransport.drainingzeigt an, wenn der Server den Client aufgefordert hat, ein ordnungsgemäßes Herunterfahren der Sitzung zu beginnen. (Firefox-Bug 2007160).
- Send-Gruppen ermöglichen Ihnen, Streams zu gruppieren, die sich Bandbreite teilen sollen, und Streams innerhalb einer Gruppe relativ zueinander zu priorisieren.
Sie können eine mit
- Die WebGPU API unterstützt nun auf Desktop-Systemen die Funktion
dual-source-blending, die inGPUAdapter.requestDevice()angefordert werden kann. Dies ermöglicht die Angabe vonsrc1,one-minus-src1,src1-alphaundone-minus-src1-alphain den EigenschaftensrcFactorunddstFactorvoncreateRenderPipeline()undcreateRenderPipelineAsync(). 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 bereit wie HTML-<a>-Elemente: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 mit der 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 erhalten, die den auf ein Element angewendeten Stroke, Marker und Clipping berücksichtigt, statt nur dessen Fill-Geometrie. (Firefox-Bug 2060873). - Elemente, die nicht gerendert werden, beispielsweise 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 niemals gezeichnet wurde. (Firefox-Bug 2061646).
Medien, WebRTC und Web Audio
- Das Ereignis
error, das für einRTCDataChannel-Objekt ausgelöst wird, kann nun in seiner Eigenschafterror.errorDetailsctp-failuremelden, 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 Signalisierungszustandhave-remote-offer, in dem sie zuvornullwar. Der Transport erreicht nun auch die Zuständeconnectedundclosed, und seine EigenschaftenmaxChannelsundmaxMessageSizewerden korrekt befüllt. (Firefox-Bug 2019361 und Firefox-Bug 2056412). - Zwei Byte lange RTP-Header-Erweiterungen werden nun unterstützt, sodass Header-Erweiterungen mit einer ID von 15 oder höher ausgehandelt werden können, statt einen
OperationErrorzu verursachen. (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; zuvor wurde sie überhaupt nicht gemeldet (Firefox-Bug 2053296). Die EigenschafticeStatebeginnt nun mitnewstatt mitchecking, was fälschlicherweise angezeigt hatte, dass Konnektivitätsprüfungen bereits liefen (Firefox-Bug 2053297).
WebAssembly
- Die binäre Formaterweiterung compact import section wird nun unterstützt. Sie reduziert die Größe von Modulen, die viele
import-Anweisungen enthalten. (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, beispielsweise in Bignum- und Kryptografie-Bibliotheken. (Firefox-Bug 2062374).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Der Download-Bereich wurde deaktiviert, um zu verhindern, dass das aktuelle Dokument den Fokus verliert, wenn ein Download beginnt. (Firefox-Bug 2035439).
- Die Actions API wurde korrigiert, sodass das Ereignis
dblclickausgelöst wird, wenn auf Nicht-macOS-Plattformen bei gedrückterCtrl-Taste ein Doppelklick ausgeführt wird. (Firefox-Bug 2058556).
WebDriver BiDi
- Das Mozilla-spezifische Modul
moz:debuggingwurde aktualisiert, sodass es nicht mehr auf derselben verschachtelten Event-Loop-API wie DevTools basiert. Dies verhindert Konflikte, wenn WebDriver BiDi und DevTools parallel verwendet werden. (Firefox-Bug 2041335). - Ein Fehler wurde behoben, durch den der Befehl
browsingContext.reloadbei der Verwendung für Frames fehlschlug. (Firefox-Bug 2030909). - Die Unterstützung für das Argument
contextsim Befehlsession.unsubscribewurde entfernt. Clients können sich künftig nur anhand des Ereignisnamens oder der Abonnement-ID abmelden. (Firefox-Bug 1988723).
Experimentelle Web-Features
Diese Features 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 Features finden Sie auf der Seite Experimentelle Features.
-
Scrollgesteuerte Animationen:
layout.css.scroll-driven-animations.enabledScrollgesteuerte Animationen ermöglichen es, den Fortschritt einer Animation an die Scrollposition eines Scrollers oder an die Position eines Elements innerhalb seines Scrollers zu koppeln, statt an die 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 Strings bereit, was die Bearbeitung von CSS aus Skripten 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 prüfen, ob der Browser eine bestimmte CSS-At-Regel unterstützt, etwa@supports at-rule(@scope). (Firefox-Bug 2060754). -
Audio Session API:
dom.audio_session.enabledMit der Audio Session API kann eine Website festlegen, wie sich ihr Audio im Verhältnis zu anderen auf dem Gerät wiedergegebenen Audios verhalten soll, beispielsweise ob es mit anderem Audio gemischt, gegenüber diesem 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 verwendet werden, um die Radiuswerte der CSS-Grundformenellipse()undcircle()festzulegen. (Firefox-Bug 2037673). -
Inhalte mit
line-clampkürzen:layout.css.line-clamp.enabledDie CSS-Eigenschaft
line-clampfunktioniert ohne das Herstellerpräfix-webkit-und unterstützt nun auch das Schlüsselwortno-ellipsissowie<string>-Werte, um auszuwählen, was dort angezeigt wird, wo der Text abgeschnitten wird. (Firefox-Bug 2042999 und Firefox-Bug 2043000). -
Bereichsbezogene Custom-Element-Registries:
dom.scoped-custom-element-registries.enabledEine
CustomElementRegistrykann erstellt und anElement.attachShadow()übergeben werden, sodass ein Shadow Root Custom Elements definieren kann, die nicht mit denjenigen in der globalen Registry kollidieren. (Firefox-Bug 2018900). Diese Version fügt außerdem das globale Attributcustomelementregistryhinzu, um im Markup die Registry auszuwählen, der ein Element zugeordnet ist. (Firefox-Bug 2029965). -
Assertions für Puffergrenzen in regulären Ausdrücken: (nur Nightly)
javascript.options.experimental.regexp_buffer_boundariesDer TC39-Vorschlag für RegExp-Puffergrenzen fügt regulären Ausdrücken die
\A-,\z- und\Z-Assertions hinzu. 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 kann ein Farbverlauf oder Bild als Rahmen verwendet werden. (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 Inset- (oder Outset-)Werte für den Start und/oder das Ende angeben, um die Position der View-Progress-Timeline anzupassen. (Firefox-Bug 2046602). -
Die Schnittstelle
MathMLAnchorElement:mathml.a.element.enabledDas MathML-Element
<a>wird nun im DOM korrekt durch die SchnittstelleMathMLAnchorElementstatt durch die generische SchnittstelleMathMLElementdargestellt. (Firefox-Bug 2059312). -
timeline-scope-Namen sind nun standardmäßig global:layout.css.scroll-driven-animations.enabledDas Standardverhalten für den Gültigkeitsbereich benannter Timelines wurde auf global aktualisiert. Dies kann mithilfe der CSS-Eigenschaft
timeline-scopesowie des Werts von entwederscroll-timeline-nameoderview-timeline-nameauf Elemente und deren Unterbaum beschränkt werden (Firefox-Bug 2024012).