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-Neuzeilen, Tabs oder das<-Zeichen mehr und ändert den Wert auf_blank, wenn welche vorhanden sind. Dies verhindert Hänge-Markup-Injektionsangriffe, die ein nicht geschlossenestarget-Attribut verwenden (Firefox Bug 1835157).
CSS
- Die Relative Farbsyntax ist jetzt standardmäßig aktiviert. Die relative Farbsyntax ermöglicht es Ihnen, einen Farbwert relativ zu einer Ursprungfarbe zu erstellen und erlaubt es, eine Farbe in einem anderen Farbraum mithilfe von Farbfunktionen zu ändern (Firefox Bug 1900251).
- Die
content-Eigenschaft unterstützt nun alternativen Text für Inhalte, die ein Bild enthalten. Der alternative Text wird dann im Barrierefreiheitsbaum der Browser sichtbar gemacht. (Siehe Firefox Bug 1281158 und Firefox Bug 1896047). - Der
syntax-Deskriptor der@property-At-Regel unterstützt jetzt den<string>-Syntax-Komponenten-Namen. (Siehe Firefox Bug 1846635).
Entfernungen
- Die Eigenschaften
align-tracksundjustify-tracksdes Mauerwerkslayouts wurden 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, was es ermöglicht, die Größe von Buffern zu ändern, ohne einen neuen Buffer zuzuweisen und Daten hinein zu kopieren (Firefox Bug 1884150). Die relevanten Methoden und Eigenschaften sind:- Wachsen Sie
SharedArrayBuffermit der MethodeSharedArrayBuffer.prototype.grow(). Die maximal zulässige Größe des Buffers wird mit dem Parameteroptions.maxByteLengthfür denSharedArrayBuffer()-Konstruktor angegeben. Die EigenschaftenSharedArrayBuffer.prototype.growableundSharedArrayBuffer.prototype.maxByteLengthzeigen an, ob der Buffer wachsen kann und seine maximal zulässige Größe an. - Passen Sie
ArrayBuffermit der MethodeArrayBuffer.prototype.resize()an. Die maximal zulässige Größe des Buffers wird mit dem Parameteroptions.maxByteLengthfür denArrayBuffer()-Konstruktor angegeben. Die EigenschaftenArrayBuffer.prototype.resizableundArrayBuffer.prototype.maxByteLengthzeigen an, ob der Buffer veränderbar ist und seine maximal zulässige Größe an.
- Wachsen Sie
HTTP
- Der HTTP-Header
Acceptin Standardanforderungen und Bilderanforderungen umfasst 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
PriorityAnfrage- und Antwort-Headers, der es Kunden ermöglicht, die erwartete relative Priorität für über eine Verbindung gesendete Ressourcen anzudeuten, sowie der HTTP/2 und HTTP/3PRIORITY_UPDATE-Frames, 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 derzeit verwendeten Codecs für die Kodierung und Übertragung von Medien auf den Empfänger- bzw. Senderstrecken beschreibt. (Firefox Bug 1534687).Request.bytes()undResponse.bytes()werden jetzt als bequemer Weg unterstützt, um von einerRequestundResponseeinUint8Arrayzu 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 zum Entschlüsseln von DRM-geschütztem Inhalt verwendet wird, die Präsentation von verschlüsselten Mediendaten für einen "hypothetischen" Schlüssel basierend auf bestimmten Politikvorgaben wie der High-bandwidth Digital Content Protection (HDCP) Version, die vom System unterstützt wird, zulassen würde. Dies bietet einer Anwendung einen einfachen Mechanismus, um im Voraus zu wissen, ob die Wiedergabe in optimaler Auflösung erlaubt wird, ohne eine Medien-Schlüsselsitzung zu erstellen oder eine echte Lizenz abzurufen. (Firefox Bug 1878714).RTCRtpTransceiver.setCodecPreferences()wird jetzt unterstützt, um die Codecs festzulegen, die ein lokaler WebRTC-Peer für das Dekodieren empfangener Daten verwenden kann, in der bevorzugten Codec-Reihenfolge. Webanwendungen können dies verwenden, um den Remote-Peer dazu zu bringen, einen bevorzugten Codec auszuwählen und die Aushandlung spezifischer Codecs zu deaktivieren — einschließlich derer, die für die Übertragung, Redundanz und Vorwärtsfehlerkorrektur verwendet werden. (Firefox Bug 1396922).- Serialisierung von deklarativen Shadow DOM, einschließlich der Methoden
ShadowRoot.getHTML()undElement.getHTML()sowie der zugehörigen EigenschaftenShadowRoot.serializableundHTMLTemplateElement.shadowRootSerializable. - Das
CSSPropertyRule-Interface wird jetzt standardmäßig unterstützt und repräsentiert eine CSS-@property-At-Regel. Das Interface ermöglicht es Ihnen, die Werte von CSS-Custom-Properties abzurufen, die mit der@property-At-Regel definiert wurden, einschließlichname,syntax,inheritsundinitialValue(Firefox Bug 1864818). - Die Methode
registerProperty()wird jetzt standardmäßig unterstützt. Sie ermöglicht es Ihnen, CSS-Custom-Properties über JavaScript zu definieren, was ähnlich der Verwendung der@property-At-Regel in CSS ist (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 "unhandledPromptBehavior"-Fähigkeit, die entweder ein String (WebDriver classic) oder ein JSON-Objekt (WebDriver BiDi) sein kann. Der Objekttyp bietet mehr Fähigkeiten für WebDriver BiDi, wie die Behandlung von "beforeunload"-Prompt. (Firefox Bug 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Sitzung wurde hinzugefügt, um sich an die WebDriver BiDi-Spezifikation anzupassen. Dies ermöglicht die Identifizierung von Sitzungen, die für oder auf WebDriver BiDi aktualisiert wurden. (Firefox Bug 1898719)
- Unterstützung für mehrere Argumente für den
network.continueRequest-Befehl wurde hinzugefügt, der jetzt Kopfzeilen, Cookies, Methode und Inhalt einer Anfrage ändern kann, bevor sie über das Netzwerk gesendet wird. (Firefox Bug 1850680) - Unterstützung für das Argument
userContextimpermissions.setPermission-Befehl wurde hinzugefügt, das es ermöglicht, eine Erlaubnis auf einen spezifischen Benutzerkontext zu isolieren (in Firefox als Container implementiert). (Firefox Bug 1894217) - Ein Fehler in
browsingContext.navigatewurde behoben, bei dem ein Navigationsfehler eine Fehlerseite laden und nachfolgende Befehle zum Fehlschlagen bringen würde. (Firefox Bug 1878690) - Wir haben die Reihenfolge, in der
network.responseCompleted-Ereignisse für Weiterleitungen ausgesendet werden, behoben. DasresponseCompletedder ursprünglichen Anfrage wird jetzt immer vor den Ereignissen für die Weiterleitung ausgesendet. (Firefox Bug 1879580) - Um sich dem aktuellen Firefox-Verhalten anzupassen, wurde der Workaround eingeführt, um keine Cookies zu partitionieren, die mit dem
storage.setCookie-Befehl für dieselbe Domain hinzugefügt wurden, wie die Seite im Zielkontext geladen war. (Firefox Bug 1898222) - Der Befehl
input.setFileswurde aktualisiert, um einen FehlerUnsupportedOperationauszulösen, wenn die angegebene Datei nicht existiert. (Firefox Bug 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Sitzung wurde hinzugefügt, um sich an die WebDriver classic-Spezifikation anzupassen. Dies ermöglicht die Identifizierung von Sitzungen, die für WebDriver classic erstellt wurden. (Firefox Bug 1884090)
- Unterstützung für die Permissions-API in WebDriver Classic wurde 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 listet deaktivierte Regeln für einen statischen Regelsatz mitdeclarativeNetRequest.getDisabledRuleIdsauf (Firefox Bug 1810762). - Eine statische deklarative Netzanforderungsregel, die durch den
declarative_net_request-Manifest-Schlüssel definiert wurde, wird jetzt geladen, wenn sie nicht erkannte Eigenschaften enthält, aber sonst gültig ist (Firefox Bug 1886608). - Führt
MAX_NUMBER_OF_DYNAMIC_RULESundMAX_NUMBER_OF_SESSION_RULESzudeclarativeNetRequestein. Diese Eigenschaften repräsentieren die maximale Anzahl von dynamischen und session-beschränkten Regeln, die eine Erweiterung hinzufügen kann. Sie ersetzenMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES, die jetzt veraltet sind (Firefox Bug 1894128). - Der Standardwert der
proxy.settings-EigenschaftproxyDNSist jetztfalse, wenn SOCKS4 verwendet wird, undtrue, wenn SOCKS5 verwendet wird. Zuvor war er für SOCKS4 und SOCKS5false(Firefox Bug 1741375). - Unterstützung wird jetzt für
webRequest.onAuthRequiredbereitgestellt, um Authentifizierungsanforderungen asynchron zu behandeln, 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 Zugriff (Zugriff, der vom Benutzer genehmigt wird, nachdem eine Erweiterung installiert wurde) für die APIs in der Erweiterung, die Host-Daten lesen oder ändern (Firefox Bug 1766026).
- Die nicht standardisierten Web-API-Ereignisse
overflowundunderflowsind jetzt veraltet. Die Verwendung dieser Ereignisse sollte vor der Veröffentlichung von Firefox 131 aus den Erweiterungsdokumenten entfernt werden (Firefox Bug 1898445). - Unterstützung wird jetzt bereitgestellt, um Skripte in der Ausführungsumgebung von Webseiten laufen zu lassen. Dies wird durch die Unterstützung von
MAINinExecutionWorldfür diescripting-API, das Hinzufügen vonworldzurcontentScripts.register()-API und die Unterstützung vonworldimcontent_scripts-Manifest-Schlüssel bereitgestellt (Firefox Bug 1736575). - Die
scripting-API kann jetzt Skripte und CSS in isolierte Seiten mitabout:blank,about:srcdocunddata:-URLs einfügen. Dies wurde fürscripting.executeScript,scripting.insertCSSundscripting.removeCSSin Firefox Bug 1475831 undscripting.registerContentScriptsundscripting.updateContentScriptsin Firefox Bug 1853411 durch die Einführung vonmatchOriginAsFallbackzuscripting.RegisteredContentScriptimplementiert. - Inhalts-Skripte laufen jetzt auf isolierten
http,httpsundfile:-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 Dokumentenursprung aufgrund der Verwendung des CSP oder des iframe-Sandboxes undurchsichtig ist (Firefox Bug 1475831 und Firefox Bug 1896669). Zusätzlich können Skripte, die mit demcontent_scripts-Manifest-Schlüssel registriert sind, jetzt nur aufblob:-Seiten ausgeführt werden, 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 Fehlern. 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 Version geladen werden (Firefox Bug 1757293). - Kontextmenüs, die mit
menus.createin Erweiterungen erstellt wurden, die ein nicht-persistentes Hintergrundskript verwenden, sind jetzt zuverlässiger über Erweiterungsneustarts hinweg verfügbar. Zuvor gab es Fälle, in denen die Menüregistrierung bei Neustarts verschwand (Firefox Bug 1771328).
Experimentelle Web-Features
Diese Features sind neu in Firefox 128 integriert, aber standardmäßig deaktiviert. Um sie auszuprobieren, suchen Sie nach der entsprechenden Präferenz auf der about:config Seite und setzen Sie sie auf true. Weitere solche Features finden Sie auf der Seite für experimentelle Features.
-
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 angibt. (Firefox Bug 1711622). -
Cookies mit unabhängigem partitioniertem Zustand (CHIPS):
network.cookie.CHIPS.enabled.CHIPS, oder "partitionierte Cookies", erlauben es Entwicklern, ein Cookie mit dem Direktive
partitioneddesSet-CookieHTTP-Headers in partitionierten Speicher zu übergeben. Wenn es gesetzt wird, haben Cookies einen getrennten Speicher für jede Top-Level-Site und können nur innerhalb derselben Top-Level-Site gelesen werden, auf der sie gesetzt wurden, und deren Subdomains. Dies blockiert Cross-Site-Tracking, ermöglicht aber immer noch legitime Verwendungen von Drittanbieter-Cookies wie das Aufrechterhalten des Zustands eingebetteter Karten oder Chat-Widgets über verschiedene Subdomains einer Seite hinweg. (Firefox Bug 1898253). -
Datenschutzwahrende Attributions-API (PPA):
dom.origin-trials.private-attribution.state.Die PPA-API bietet eine Alternative zum Benutzer-Tracking für Werbemaßnahmen mithilfe des neuen
navigator.privateAttribution-Objekts mitsaveImpression()undmeasureConversion()Methoden. Lesen Sie mehr über PPA im ursprünglichen Erklärungsdokument und die vorgeschlagene Spezifikation. Dieses Experiment kann für Websites über Origin Trial oder im Browser aktiviert werden, indem die Präferenz auf1gesetzt wird. (Firefox Bug 1900929).