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 erlaubt jetzt keine ASCII-Zeilenumbrüche, Tabulatoren oder das<-Zeichen mehr. Der Wert wird auf_blankgeändert, wenn eines davon vorhanden ist. Dies verhindert einhängende Markup-Injektionsangriffe, die ein ungeschlossenestarget-Attribut verwenden (Firefox Bug 1835157).
CSS
- Die Relative Farbsyntax ist jetzt standardmäßig aktiviert. Relativfarbsyntax ermöglicht das Erstellen eines Farbwerts relativ zu einer Ausgangsfarbe und kann es ermöglichen, eine Farbe in einem anderen Farbraum mithilfe von Farbfunktionen zu ändern (Firefox Bug 1900251).
- Die
content-Eigenschaft unterstützt jetzt Alternativtext für Inhalte, die ein Bild enthalten. Der Alternativtext wird dann für den Barrierefreiheitsbaum des Browsers offengelegt. (Siehe Firefox Bug 1281158 und Firefox Bug 1896047). - Der
syntax-Deskriptor der@property-At-Regel unterstützt jetzt den Syntax-Komponenten-Namen<string>. (Siehe Firefox Bug 1846635).
Entfernungen
- Die Mauerwerk Layout-Eigenschaften
align-tracksundjustify-trackswurden entfernt. Diese Eigenschaften waren nur in Firefox implementiert und wurden kürzlich aus der Spezifikation entfernt (Firefox Bug 1900195).
JavaScript
- Resizebare
ArrayBufferund erweiterbareSharedArrayBufferwerden jetzt unterstützt, sodass die Größe von Puffern geändert werden kann, ohne einen neuen Puffer zuzuweisen und Daten hineinzukopieren (Firefox Bug 1884150). Die relevanten Methoden und Eigenschaften sind:- Erweitern von
SharedArrayBuffermit der MethodeSharedArrayBuffer.prototype.grow(). Die maximal zulässige Größe des Puffers wird mit dem Parameteroptions.maxByteLengthfür denSharedArrayBuffer()-Konstruktor angegeben. Die EigenschaftenSharedArrayBuffer.prototype.growableundSharedArrayBuffer.prototype.maxByteLengthgeben an, ob der Puffer wachsen kann, und seine maximal zulässige Größe an. - Ändern der Größe von
ArrayBuffermit der MethodeArrayBuffer.prototype.resize(). Die maximal zulässige Größe des Puffers wird mit dem Parameteroptions.maxByteLengthfür denArrayBuffer()-Konstruktor angegeben. Die EigenschaftenArrayBuffer.prototype.resizableundArrayBuffer.prototype.maxByteLengthgeben an, ob der Puffer geändert werden kann, und seine maximal zulässige Größe, jeweils.
- Erweitern von
HTTP
- Der HTTP-Header
Acceptin Standardanfragen und Bildanfragen beinhaltet jetzt den MIME-Typimage/svg+xml(Firefox Bug 1711622). - Das RFC 9218: Erweiterbare Priorisierungsschema für HTTP wird jetzt unterstützt, einschließlich des HTTP-Headers
Priorityfür Anfragen und Antworten, der es Clients ermöglicht, Hinweise auf die erwartete relative Priorität für Ressourcen zu geben, die über eine Verbindung gesendet werden, und die HTTP/2- und HTTP/3-PRIORITY_UPDATE-Frames, die es erlauben, 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 aktuell verwendeten Codecs für die Kodierung und Übertragung von Medien auf den Empfangs- und Sendespuren beschreibt. (Firefox Bug 1534687).Request.bytes()undResponse.bytes()werden jetzt unterstützt, um einfach 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 prüfen, ob das CDM-Modul, das verwendet wird, um DRM-geschützte Inhalte zu entschlüsseln, die Präsentation von verschlüsselten Mediendaten für einen "hypothetischen" Schlüssel basierend auf den angegebenen Richtlinienanforderungen wie der vom System unterstützten High-bandwidth Digital Content Protection (HDCP)-Version erlauben würde. Dies bietet einer Anwendung einen einfachen Mechanismus zu wissen, ob die Wiedergabe in optimaler Auflösung im Voraus erlaubt sein wird, ohne eine Medienschlüssel-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-Lokalteilnehmer für das Decodieren empfangener Daten verwenden kann, in der bevorzugten Codec-Reihenfolge. Webanwendungen können dies verwenden, um den Remote-Teilnehmer zu veranlassen, einen bevorzugten Codec zu wählen und die Aushandlung bestimmter Codecs zu deaktivieren — einschließlich derer, die für Übertragungswiederholungen, Redundanz und Vorwärtsfehlerkorrektur verwendet werden. (Firefox Bug 1396922).- Serialisierung des declarative shadow DOM, einschließlich der Methoden
ShadowRoot.getHTML()undElement.getHTML(), und zugehörigen EigenschaftenShadowRoot.serializableundHTMLTemplateElement.shadowRootSerializable. - Das
CSSPropertyRuleInterface wird jetzt standardmäßig unterstützt und repräsentiert eine CSS-@property-At-Regel. Das Interface ermöglicht es, die Werte zu erhalten, einschließlichname,syntax,inheritsundinitialValuevon CSS-Benutzerdefinierten Eigenschaften, die mit der@property-At-Regel definiert sind (Firefox Bug 1864818). - Die Methode
registerProperty()wird jetzt standardmäßig unterstützt. Sie ermöglicht es, CSS-Benutzerdefinierte Eigenschaften über JavaScript zu definieren, was dem Verwenden der@property-At-Regel in CSS ähnelt (Firefox Bug 1864818).
Medien, WebRTC und Web Audio
Entfernungen
- Die nicht-standardmäßige Methode
HTMLMediaElement.seekToNextFrame()wurde entfernt und wird jetzt von keinem Browser unterstützt. (Firefox Bug 1336404).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemeines
- Wir unterstützen jetzt die erweiterte "unhandledPromptBehavior"-Funktion, die entweder ein String (WebDriver classic) oder ein JSON-Objekt (WebDriver BiDi) sein kann. Der Objekttyp bietet mehr Funktionen für WebDriver BiDi, wie das Bearbeiten von "beforeunload"-Eingabeaufforderungen. (Firefox Bug 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Sitzung hinzugefügt, um die WebDriver BiDi-Spezifikation zu erfüllen. Dies ermöglicht die Identifizierung von Sitzungen, die für oder auf WebDriver BiDi umgestellt wurden. (Firefox Bug 1898719)
- Unterstützung für mehrere Argumente für den
network.continueRequest-Befehl hinzugefügt, der es jetzt erlaubt, Header, Cookies, Methode und Body einer Anfrage zu ändern, bevor diese über das Netzwerk gesendet wird. (Firefox Bug 1850680) - Unterstützung für das
userContext-Argument impermissions.setPermission-Befehl hinzugefügt, welches es erlaubt, eine Berechtigung auf einen spezifischen Benutzerkontext zu isolieren (in Firefox als Container implementiert). (Firefox Bug 1894217) - Einen Fehler in
browsingContext.navigatebehoben, bei dem ein Navigationsfehler eine Fehlerseite laden und nachfolgende Befehle fehlschlagen lassen würde. (Firefox Bug 1878690) - Wir haben die Reihenfolge der
network.responseCompleted-Ereignisse für Umleitungen angepasst. Die Antwort der ursprünglichen Anfrage wird jetzt immer vor den Ereignissen für die Umleitung ausgegeben. (Firefox Bug 1879580) - Um sich an das aktuelle Firefox-Verhalten anzupassen, haben wir die Umgehungslösung eingeführt, Cookies nicht zu partitionieren, die mit dem Kommando "storage.setCookie" für dieselbe Domain hinzugefügt werden, wie die im Zielkontext geladene Seite. (Firefox Bug 1898222)
- Der Befehl
input.setFileswurde aktualisiert, um einenUnsupportedOperation-Fehler auszulösen, wenn die angegebene Datei nicht existiert. (Firefox Bug 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Sitzung hinzugefügt, um mit der WebDriver classic Spezifikation in Einklang zu stehen. Dies erlaubt es, Sitzungen zu identifizieren, die für WebDriver classic erstellt wurden. (Firefox Bug 1884090)
- Unterstützung für die Permissions-API in WebDriver Classic hinzugefügt. (Firefox Bug 1524074)
Änderungen für Add-on-Entwickler
- Fügt die Möglichkeit hinzu, Regeln in statischen deklarativen Netzanforderungs-Regelsätzen mit
declarativeNetRequest.updateStaticRuleszu aktivieren und zu deaktivieren und deaktivierte Regeln für einen statischen Regelsatz mitdeclarativeNetRequest.getDisabledRuleIdsaufzulisten (Firefox Bug 1810762). - Eine statische deklarative Netzanforderungsregel, die über den
declarative_net_request-Manifest-Schlüssel definiert wird, wird jetzt geladen, wenn sie nicht anerkannte Eigenschaften enthält, aber ansonsten gültig ist (Firefox Bug 1886608). - Führt
MAX_NUMBER_OF_DYNAMIC_RULESundMAX_NUMBER_OF_SESSION_RULESzudeclarativeNetRequestein. Diese Eigenschaften stellen die maximale Anzahl von dynamischen und sitzungsbezogenen Regeln dar, die eine Erweiterung hinzufügen kann. Sie ersetzenMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES, das jetzt als veraltet gilt (Firefox Bug 1894128). - Der Standardwert der
proxy.settings-EigenschaftproxyDNSist jetztfalse, wenn SOCKS4 verwendet wird, undtruebei der Verwendung von SOCKS5. Zuvor war der Standardwertfalsefür SOCKS4 und SOCKS5 (Firefox Bug 1741375). - Unterstützung wird jetzt für
webRequest.onAuthRequiredzur Verfügung gestellt, um Authentifizierungsanfragen asynchron zu bearbeiten, indem"asyncBlocking"imaddListener-ParameterextraInfoSpecangegeben wird (Firefox Bug 1889897). - Der optional_host_permissions-Manifest-Schlüssel wurde hinzugefügt. Dieser Schlüssel ermöglicht Laufzeitanfragen für den Zugriff (Zugriff, der vom Benutzer nach der Installation einer Erweiterung gewährt wird) für die APIs in der Erweiterung, die Hostdaten lesen oder ändern (Firefox Bug 1766026).
- Die nicht-standardmäßigen Web-API-Ereignisse
overflowundunderflowwurden als veraltet markiert. Die Verwendung dieser Ereignisse sollte aus Erweiterungsdokumenten entfernt werden, bevor Firefox 131 veröffentlicht wird (Firefox Bug 1898445). - Unterstützung wird nun bereitgestellt, damit Skripte in der Ausführungsumgebung der Webseite laufen. Dies wird durch die Unterstützung für
MAINinExecutionWorldfür diescripting-API zur Verfügung gestellt, die Hinzufügung vonworldzurcontentScripts.register()-API, und die Unterstützung vonworldimcontent_scripts-Manifest-Schlüssel (Firefox Bug 1736575). - Die
scripting-API kann jetzt Skripte und CSS in sandboxed-Seiten mitabout:blank,about:srcdoc, unddata:-URLs injizieren. Dies wurde fürscripting.executeScript,scripting.insertCSS, undscripting.removeCSSim Firefox Bug 1475831 undscripting.registerContentScriptsundscripting.updateContentScriptsim Firefox Bug 1853411 umgesetzt, indemmatchOriginAsFallbackzuscripting.RegisteredContentScripteingeführt wurde. - Inhaltsskripte laufen jetzt auf sandboxed
http,https, undfile:URLs (Firefox Bug 1411641). - Der manifest Schlüssel
content_scriptsunterstützt jetztmatch_origin_as_fallbackundcontentScripts.registermatchOriginAsFallback, wodurch Skripte inabout:,data:, undblob:-Seiten injiziert werden können, wenn der Dokumenten-Ursprung 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_scripts-Manifest-Schlüssel registriert sind, jetzt nur inblob:-Seiten laufen, wennmatch_origin_as_fallbacktrueist (Firefox Bug 1897113). - Unterstützung für die
declarativeNetRequest.RuleCondition-EigenschaftdomainTypehinzugefügt (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 bei der Installation zu einem Fehler. Dies stellt sicher, dass, wenn eine neuebrowser_specific_settings.gecko-Eigenschaft hinzugefügt wird, Erweiterungen, die diese neue Eigenschaft verwenden, in Firefox-Versionen bis zu dieser Veröffentlichung geladen werden (Firefox Bug 1757293). - Kontextmenüs, die mit
menus.createin Erweiterungen mit einem nicht-persistenten Hintergrundskript erstellt wurden, bleiben jetzt zuverlässiger über Erweiterungsneustarts hinweg bestehen. Zuvor gab es Fälle, in denen die Menüregistrierung beim Neustart verschwand (Firefox Bug 1771328).
Experimentelle Web-Funktionen
Diese Funktionen sind neu in Firefox 128 enthalten, sind aber standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie nach der entsprechenden Einstellung auf der about:config-Seite und setzen Sie sie auf true. Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.
-
image/jxlMIME-Typ im Accept-Header für Standard- und Bildanfragen:image.jxl.enabled.Der HTTP
Accept-Header in Standardanfragen und Bildanfragen kann konfiguriert werden, um die Unterstützung für denimage/jxlMIME-Typ anzuzeigen. (Firefox Bug 1711622). -
Cookies Having Independent Partitioned State (CHIPS):
network.cookie.CHIPS.enabled.CHIPS, oder "partitionierte Cookies", ermöglichen es Entwicklern, ein Cookie mit Hilfe der
partitioned-Direktive desSet-Cookie-HTTP-Headers in eine partitionierte Speicherung umzuwandeln. Wenn gesetzt, haben Cookies separate Speicher für jede Top-Level-Website und können nur innerhalb derselben Top-Level-Website, auf der sie gesetzt wurden, und ihren Subdomains gelesen werden. Dies blockiert Cross-Site-Tracking, ermöglicht jedoch weiterhin legitime Verwendungen von Drittanbieter-Cookies, wie das Persistieren des Status von eingebetteten Karten oder Chat-Widgets über verschiedene Subdomains einer Website hinweg. (Firefox Bug 1898253). -
Privatsphäre schonende Attributions-API (PPA):
dom.origin-trials.private-attribution.state.Die PPA API bietet eine Alternative zum Benutzer-Tracking für Anzeigenattribution, indem das neue Objekt
navigator.privateAttributionmit den MethodensaveImpression()undmeasureConversion()verwendet wird. Lesen Sie mehr über PPA im ursprünglichen Erklärungstext und der vorgeschlagenen Spezifikation. Dieses Experiment kann für Websites über origin trial oder im Browser durch Setzen der Präferenz auf1aktiviert werden. (Firefox Bug 1900929).