Firefox 128 Versionshinweise für Entwickler
Dieser Artikel bietet Informationen über die Änderungen in Firefox 128, die Entwickler betreffen. Firefox 128 wurde am 9. Juli 2024 veröffentlicht.
Änderungen für Webentwickler
>HTML
- Das
target-Attribut des<base>Elements verhindert nun ASCII-Zeilenumbrüche, Tabs oder das<-Zeichen und ändert den Wert in_blank, wenn eines dieser Zeichen vorhanden ist. Dies verhindert hängende Markup-Injektionsangriffe, die ein offenestarget-Attribut nutzen (Firefox-Bug 1835157).
CSS
- Relative Farbsyntax ist jetzt standardmäßig aktiviert. Die relative Farbsyntax ermöglicht es, einen Farbwert relativ zu einer Ursprungsfarbe zu erstellen und eine Farbe in einem anderen Farbraum zu ändern, indem Farbfunktionen verwendet werden (Firefox-Bug 1900251).
- Die
content-Eigenschaft unterstützt jetzt Alternativtext für Inhalte, die ein Bild enthalten. Der Alternativtext wird dann im Barrierefreiheitsbaum des Browsers angezeigt. (Siehe Firefox-Bug 1281158 und Firefox-Bug 1896047). - Der
syntax-Deskriptor der@property-At-Regel unterstützt jetzt den<string>-Syntax-Komponentennamen. (Siehe Firefox-Bug 1846635).
Entfernungen
- Die Mauerwerk-Layouteigenschaften
align-tracksundjustify-trackswurden entfernt. Diese Eigenschaften waren nur in Firefox implementiert und wurden kürzlich aus der Spezifikation entfernt (Firefox-Bug 1900195).
JavaScript
- Resizable
ArrayBufferund growableSharedArrayBufferwerden nun unterstützt, sodass die Größe von Buffern geändert werden kann, ohne einen neuen Buffer zuzuweisen und Daten hineinzukopieren (Firefox-Bug 1884150). Die relevanten Methoden und Eigenschaften sind:- Grow
SharedArrayBuffermit der MethodeSharedArrayBuffer.prototype.grow(). Die maximal erlaubte Größe des Buffers wird mit dem Parameteroptions.maxByteLengthimSharedArrayBuffer()-Konstruktor angegeben. Die EigenschaftenSharedArrayBuffer.prototype.growableundSharedArrayBuffer.prototype.maxByteLengthzeigen an, ob der Buffer wachsen kann und seine maximal erlaubte Größe. - Resize
ArrayBuffermit der MethodeArrayBuffer.prototype.resize(). Die maximal erlaubte Größe des Buffers wird mit dem Parameteroptions.maxByteLengthimArrayBuffer()-Konstruktor angegeben. Die EigenschaftenArrayBuffer.prototype.resizableundArrayBuffer.prototype.maxByteLengthzeigen an, ob der Buffer geändert werden kann und seine maximal erlaubte Größe.
- Grow
HTTP
- Der HTTP-Header
Acceptin Standardanforderungen und Bildanforderungen enthält jetzt den MIME-Typimage/svg+xml(Firefox-Bug 1711622). - Das RFC 9218: Extensible Prioritization Scheme for HTTP wird jetzt unterstützt, einschließlich des HTTP-Request- und -Response-Headers
Priority, der es Clients ermöglicht, die erwartete relative Priorität für über eine Verbindung gesendete Ressourcen anzugeben, sowie der HTTP/2- und HTTP/3-FramesPRIORITY_UPDATE, die es ermöglichen, die Priorität nach dem Senden des Headers zu ändern (Firefox-Bug 1865040).
APIs
RTCRtpReceiver.getParameters()undRTCRtpSender.getParameters()werden jetzt unterstützt und geben ein Objekt zurück, das die aktuellen Codecs beschreibt, die für die Kodierung und Übertragung von Medien auf den Empfänger- bzw. Sender-Spuren verwendet werden. (Firefox-Bug 1534687).Request.bytes()undResponse.bytes()werden jetzt als bequemer Weg unterstützt, um einUint8Arrayvon einerRequestundResponsezu erhalten. (Firefox-Bug 1896475).PushMessageData.bytes()wird jetzt unterstützt, um die Daten einer Push-Nachricht als Byte-Array in einemUint8Array-Objekt zurückzugeben. (Firefox-Bug 1897871).Blob.bytes()wird unterstützt, um die Daten einesBlobals Byte-Array in einemUint8Array-Objekt zurückzugeben. (Firefox-Bug 1896509).MediaKeys.getStatusForPolicy()wird jetzt unterstützt, um zu überprüfen, ob das CDM-Modul, das zur Entschlüsselung von DRM-geschützten Inhalten verwendet wird, die Präsentation von verschlüsselten Mediendaten für einen "hypothetischen" Schlüssel basierend auf angegebenen Richtlinienanforderungen wie der High-bandwidth Digital Content Protection (HDCP)-Version erlaubt, die vom System unterstützt wird. Dies bietet einer Anwendung einen einfachen Mechanismus, um im Voraus zu wissen, ob die Wiedergabe in optimaler Auflösung erlaubt ist, ohne eine Medienkey-Sitzung erstellen oder eine echte Lizenz abrufen zu müssen. (Firefox-Bug 1878714).RTCRtpTransceiver.setCodecPreferences()wird jetzt unterstützt, um die Codecs festzulegen, die ein WebRTC-Lokaler Peer zum Dekodieren empfangener Daten in seiner bevorzugten Codec-Reihenfolge verwenden kann. Webanwendungen können dies nutzen, um den Remote-Peer dazu zu bringen, einen bevorzugten Codec auszuwählen und die Aushandlung bestimmter Codecs zu deaktivieren — einschließlich der für Retransmission, Redundanz und Forward Error Correction verwendeten. (Firefox-Bug 1396922).- Serialisierung des deklarativen Shadow DOM, einschließlich der Methoden
ShadowRoot.getHTML()undElement.getHTML(), und der zugehörigen EigenschaftenShadowRoot.serializableundHTMLTemplateElement.shadowRootSerializable. - Das Interface
CSSPropertyRulewird jetzt standardmäßig unterstützt und repräsentiert eine CSS-@property-At-Regel. Das Interface ermöglicht es, die Werte, einschließlichname,syntax,inheritsundinitialValue, von CSS-Custom-Eigenschaften abzurufen, die mit der@property-At-Regel definiert wurden (Firefox-Bug 1864818). - Die Methode
registerProperty()wird jetzt standardmäßig unterstützt. Sie ermöglicht das Definieren von CSS-Custom-Eigenschaften über JavaScript, ähnlich wie die Verwendung der@property-At-Regel in CSS (Firefox-Bug 1864818).
Medien, WebRTC und Web Audio
Entfernungen
- Die nicht standardisierte Methode
HTMLMediaElement.seekToNextFrame()wurde entfernt und wird jetzt von keinem Browser mehr unterstützt. (Firefox-Bug 1336404).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Wir unterstützen jetzt die erweiterte Fähigkeit "unhandledPromptBehavior", die entweder ein String (WebDriver klassisch) oder ein JSON-Objekt (WebDriver BiDi) sein kann. Der Objekttyp bietet mehr Fähigkeiten für WebDriver BiDi wie die Behandlung von "beforeunload"-Prompts. (Firefox-Bug 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Sitzung hinzugefügt, um sich an die WebDriver BiDi-Spezifikation anzupassen. Dies ermöglicht die Identifizierung von Sitzungen, die für WebDriver BiDi erstellt oder darauf aktualisiert wurden. (Firefox-Bug 1898719)
- Unterstützung für mehrere Argumente für den Befehl
network.continueRequesthinzugefügt, der es jetzt erlaubt, Header, Cookies, Methode und Body einer Anfrage zu ändern, bevor sie über das Netzwerk gesendet wird. (Firefox-Bug 1850680) - Unterstützung für das Argument
userContextim Befehlpermissions.setPermissionhinzugefügt, das es ermöglicht, eine Erlaubnis zu isolieren, um sie auf einen bestimmten Benutzerkontext zu beschränken (in Firefox als Container implementiert). (Firefox-Bug 1894217) - Ein Fehler im
browsingContext.navigateBefehl behoben, bei dem ein Navigationsfehler eine Fehlerseite geladen hat und nachfolgende Befehle nicht ausgeführt wurden. (Firefox-Bug 1878690) - Wir haben die Reihenfolge der
network.responseCompleted-Ereignisse für Redirects korrigiert. DieresponseCompleteddes Originalrequests wird jetzt immer vor den Ereignissen für das Redirect ausgegeben. (Firefox-Bug 1879580) - Um sich dem aktuellen Verhalten von Firefox anzupassen, haben wir eine Lösung eingeführt, um Cookies, die mit dem Befehl "storage.setCookie" für dieselbe Domain wie die in den Zielkontext geladene Seite hinzugefügt wurden, nicht zu partionieren. (Firefox-Bug 1898222)
- Der Befehl
input.setFileswurde aktualisiert, um einenUnsupportedOperation-Fehler auszugeben, wenn die angegebene Datei nicht existiert. (Firefox-Bug 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Sitzung hinzugefügt, um sich an die WebDriver Klassische Spezifikation anzupassen. Dies ermöglicht die Identifizierung von Sitzungen, die für WebDriver klassisch erstellt wurden. (Firefox-Bug 1884090)
- Unterstützung für die Permissions API in WebDriver Klassisch hinzugefügt. (Firefox-Bug 1524074)
Änderungen für Add-on-Entwickler
- Ermöglicht das Aktivieren und Deaktivieren von Regeln in statischen deklarativen Netzanforderungsregelsets mit
declarativeNetRequest.updateStaticRulesund das Auflisten von deaktivierten Regeln für ein statisches Regelset mitdeclarativeNetRequest.getDisabledRuleIds(Firefox-Bug 1810762). - Eine statische deklarative Netzanforderungsregel, die durch den
declarative_net_requestmanifest key definiert wird, wird jetzt geladen, wenn sie nicht erkannte Eigenschaften enthält, aber ansonsten gültig ist (Firefox-Bug 1886608). - Führt
MAX_NUMBER_OF_DYNAMIC_RULESundMAX_NUMBER_OF_SESSION_RULESindeclarativeNetRequestein. Diese Eigenschaften repräsentieren die maximale Anzahl an dynamischen und sitzungsbezogenen Regeln, die eine Erweiterung hinzufügen kann. Sie ersetzenMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES, die jetzt veraltet ist (Firefox-Bug 1894128). - Der Standardwert der
proxy.settings-EigenschaftproxyDNSist jetztfalsebei Verwendung von SOCKS4 undtruebei Verwendung von SOCKS5. Zuvor war der Standardwertfalsefür SOCKS4 und SOCKS5 (Firefox-Bug 1741375). - Unterstützung wird jetzt für
webRequest.onAuthRequiredgeboten, um Authentifizierungsanforderungen asynchron zu verarbeiten, indem"asyncBlocking"imaddListener-ParameterextraInfoSpecangegeben wird (Firefox-Bug 1889897). - Der Manifest-Schlüssel optional_host_permissions wurde hinzugefügt. Dieser Schlüssel ermöglicht Laufzeitanfragen nach Zugriff (Zugriff, der vom Benutzer nach der Installation einer Erweiterung gewährt wird) für die APIs in der Erweiterung, die Host-Daten lesen oder ändern (Firefox-Bug 1766026).
- Die nicht standardisierten Web API-Ereignisse
overflowundunderflowsind veraltet. Die Verwendung dieser Ereignisse sollte vor der Veröffentlichung von Firefox 131 aus den Erweiterung-Dokumenten entfernt werden (Firefox-Bug 1898445). - Unterstützung wird jetzt für Skripte geboten, die in der Ausführungsumgebung der Webseite ausgeführt werden. Dies wird durch Unterstützung für
MAINinExecutionWorldfür diescripting-API, die Hinzufügung vonworldzurcontentScripts.register()-API, und durch Unterstützung fürworldimcontent_scriptsManifest-Schlüssel gewährleistet (Firefox-Bug 1736575). - Die
scripting-API kann jetzt Skripte und CSS in sandboxed Seiten mitabout:blank,about:srcdocunddata:URLs injizieren. Dies wurde in Firefox-Bug 1475831 fürscripting.executeScript,scripting.insertCSSundscripting.removeCSSimplementiert und in Firefox-Bug 1853411 fürscripting.registerContentScriptsundscripting.updateContentScriptsdurch die Einführung vonmatchOriginAsFallbackinscripting.RegisteredContentScript. - Inhaltsskripte laufen jetzt auf sandboxed
http,httpsundfile:URLs (Firefox-Bug 1411641). - Der Manifest-Schlüssel
content_scriptsunterstützt jetztmatch_origin_as_fallbackundcontentScripts.registermatchOriginAsFallback, was es ermöglicht, Skripte inabout:,data:undblob:Seiten zu injizieren, wenn der Dokumentursprung aufgrund der Verwendung von CSP oder iframe-Sandbox undurchsichtig ist (Firefox-Bug 1475831 und Firefox-Bug 1896669). Außerdem können Skripte, die mit demcontent_scriptsManifest-Schlüssel registriert sind, jetzt nur dann inblob:Seiten ausgeführt werden, wennmatch_origin_as_fallbacktrueist (Firefox-Bug 1897113). - Unterstützung hinzugefügt für die
declarativeNetRequest.RuleCondition-EigenschaftdomainType(Firefox-Bug 1797408). - Erweiterungen, die eine nicht erkannte Eigenschaft im Manifest-Schlüssel
browser_specific_settings.geckoenthalten, werden jetzt mit einer Warnung geladen. Zuvor führten diese Erweiterungen beim Installieren zu einem Fehler. Dies stellt sicher, dass, wenn eine neuebrowser_specific_settings.gecko-Eigenschaft hinzugefügt wird, Erweiterungen, die diese neue Eigenschaft verwenden, in Versionen von Firefox bis zu dieser Veröffentlichung geladen werden (Firefox-Bug 1757293). - Kontextmenüs, die mit
menus.createin Erweiterungen erstellt wurden, die ein nicht persistentes Hintergrundskript verwenden, bestehen jetzt zuverlässiger über Erweiterungsneustarts hinweg. Zuvor gab es Fälle, in denen die Menüregistrierung bei Neustarts verschwand (Firefox-Bug 1771328).
Experimentelle Webfeatures
Diese Funktionen sind neu in Firefox 128 enthalten, aber standardmäßig deaktiviert. Um sie auszuprobieren, suchen Sie auf der about:config-Seite nach der entsprechenden Voreinstellung und setzen Sie sie auf true. Sie können weitere solcher Funktionen auf der Seite Experimentelle Funktionen finden.
-
image/jxlMIME-Typ im Accept-Header für Standard- und Bildanforderungen:image.jxl.enabled.Der HTTP-Header
Acceptin Standardanforderungen und Bildanforderungen kann so konfiguriert werden, dass er Unterstützung für denimage/jxlMIME-Typ anzeigt. (Firefox-Bug 1711622). -
Cookies mit unabhängigem partitioniertem Zustand (CHIPS):
network.cookie.CHIPS.enabled.CHIPS, oder "partitionierte Cookies", ermöglichen Entwicklern, ein Cookie in partitionierten Speicher zu setzen, indem die
partitioned-Direktive imSet-CookieHTTP-Header verwendet wird. Wenn gesetzt, haben Cookies separaten Speicher für jede oberste Webseite und können nur innerhalb derselben Webseite und ihrer Subdomains gelesen werden, auf der sie gesetzt wurden. Dies blockiert das Tracking über Webseiten hinweg, ermöglicht jedoch weiterhin legitime Verwendungen von Cookies Dritter, z.B. das Speichern des Zustands eingebetteter Karten oder Chat-Widgets auf verschiedenen Subdomains einer Seite. (Firefox-Bug 1898253). -
Datenschutzfreundliche Attributions-API (PPA):
dom.origin-trials.private-attribution.state.Die PPA API bietet eine Alternative zum Benutzer-Tracking für Werbeattribution mit dem neuen
navigator.privateAttribution-Objekt mitsaveImpression()undmeasureConversion()-Methoden. Lesen Sie mehr über die PPA im originalen Erklärer und die vorgeschlagene Spezifikation. Dieses Experiment kann für Webseiten über Origin-Trials oder im Browser durch Setzen der Voreinstellung auf1aktiviert werden. (Firefox-Bug 1900929).