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, Tabs oder das<-Zeichen mehr und ändert den Wert auf_blank, falls solche Zeichen vorkommen. Dies verhindert "dangling markup injection"-Angriffe, die ein nicht geschlossenestarget-Attribut verwenden (Firefox-Fehler 1835157).
CSS
- Relative Color Syntax ist jetzt standardmäßig aktiviert. Relative Color Syntax ermöglicht es, einen Farbwert relativ zu einer Ursprungsfarbe zu erstellen und kann es Ihnen ermöglichen, eine Farbe in einem anderen Farbraum mit Farb-Funktionen zu ändern (Firefox-Fehler 1900251).
- Die
content-Eigenschaft unterstützt jetzt alternativen Text für Inhalte, die ein Bild enthalten. Der alternative Text wird dann in den Zugänglichkeitsbaum des Browsers aufgenommen. (Siehe Firefox-Fehler 1281158 und Firefox-Fehler 1896047). - Der
syntax-Deskriptor der@propertyat-rule unterstützt jetzt den<string>Syntax-Komponenten-Namen. (Siehe Firefox-Fehler 1846635).
Entfernungen
- Die Masonry-Layout-Eigenschaften
align-tracksundjustify-trackswurden entfernt. Diese Eigenschaften waren nur in Firefox implementiert und wurden kürzlich aus der Spezifikation entfernt (Firefox-Fehler 1900195).
JavaScript
- Resizable
ArrayBufferund growableSharedArrayBufferwerden jetzt unterstützt, was es ermöglicht, die Größe von Buffern zu ändern, ohne einen neuen Puffer erstellen und Daten in ihn kopieren zu müssen (Firefox-Fehler 1884150). Die relevanten Methoden und Eigenschaften sind:- Wachsen Sie
SharedArrayBuffermit der MethodeSharedArrayBuffer.prototype.grow(). Die maximale erlaubte Größe des Puffers wird mit dem Parameteroptions.maxByteLengthzumSharedArrayBuffer()-Konstruktor angegeben. Die EigenschaftenSharedArrayBuffer.prototype.growableundSharedArrayBuffer.prototype.maxByteLengthzeigen an, ob der Puffer wachsen kann, und seine maximal erlaubte Größe. - Passen Sie die Größe von
ArrayBuffermit der MethodeArrayBuffer.prototype.resize()an. Die maximale erlaubte Größe des Puffers wird mit dem Parameteroptions.maxByteLengthzumArrayBuffer()-Konstruktor angegeben. Die EigenschaftenArrayBuffer.prototype.resizableundArrayBuffer.prototype.maxByteLengthzeigen an, ob der Puffer resize-fähig ist, und seine maximal erlaubte Größe.
- Wachsen Sie
HTTP
- Der HTTP-
Accept-Header in Standardanfragen und Bildanfragen enthält jetzt denimage/svg+xmlMIME-Typ (Firefox-Fehler 1711622). - Das RFC 9218: Extensible Prioritization Scheme for HTTP wird jetzt unterstützt, einschließlich des HTTP-
Priority-Anfrage- und Antwort-Headers, welcher es Clients ermöglicht, die erwartete relative Priorität für über eine Verbindung gesendete Ressourcen anzugeben, sowie der HTTP/2- und HTTP/3-PRIORITY_UPDATE-Frames, die es erlauben, die Priorität nach dem Senden des Headers zu ändern (Firefox-Fehler 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 Empfangs- bzw. Sender-Tracks verwendet werden. (Firefox-Fehler 1534687).Request.bytes()undResponse.bytes()werden jetzt unterstützt als bequeme Möglichkeit, einUint8Arrayvon einemRequestundResponsezu erhalten. (Firefox-Fehler 1896475).PushMessageData.bytes()wird jetzt unterstützt, um die Daten von einer Push-Benachrichtigung als Byte-Array in einemUint8Array-Objekt zurückzugeben. (Firefox-Fehler 1897871).Blob.bytes()wird unterstützt, um die Daten von einemBlobals Byte-Array in einemUint8Array-Objekt zurückzugeben. (Firefox-Fehler 1896509).MediaKeys.getStatusForPolicy()wird jetzt unterstützt, um zu überprüfen, ob das CDM-Modul, das für das Entschlüsseln von DRM-geschütztem Inhalt verwendet wird, die Präsentation von verschlüsselten Mediendaten für einen "hypothetischen" Schlüssel basierend auf den angegebenen Policy-Anforderungen 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 ist, ohne eine Medien-Schlüsselsitzung erstellen oder eine echte Lizenz abrufen zu müssen. (Firefox-Fehler 1878714).RTCRtpTransceiver.setCodecPreferences()wird jetzt unterstützt, um die Codecs festzulegen, die ein lokaler WebRTC-Peer für das Decodieren empfangener Daten verwenden kann, in der bevorzugten Codec-Reihenfolge. Webanwendungen können dies nutzen, um den Remote-Peer zu veranlassen, einen bevorzugten Codec auszuwählen, und um die Aushandlung spezifischer Codecs zu deaktivieren – einschließlich derjenigen, die für die Wiederübertragung, Redundanz und Fehlerkorrektur verwendet werden. (Firefox-Fehler 1396922).- Serialisierung von deklarativem 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-rule. Das Interface erlaubt das Abrufen der Werte, einschließlichname,syntax,inheritsundinitialValue, von CSS-Custom-Properties, die mit der@property-at-rule definiert wurden (Firefox-Fehler 1864818). - Die Methode
registerProperty()wird jetzt standardmäßig unterstützt. Sie ermöglicht das Definieren von CSS-Benutzerdefinierten Eigenschaften über JavaScript, was ähnlich wie die Verwendung der@property-at-rule in CSS ist (Firefox-Fehler 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-Fehler 1336404).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemeines
- Wir unterstützen jetzt die erweiterte Fähigkeit "unhandledPromptBehavior", 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 das Handling von "beforeunload"-Aufforderungen. (Firefox-Fehler 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Session hinzugefügt, um mit der WebDriver-BiDi-Spezifikation in Einklang zu stehen. Dies ermöglicht die Identifikation von Sitzungen, die für WebDriver BiDi erstellt wurden oder auf diese Version upgegradet wurden. (Firefox-Fehler 1898719)
- Unterstützung für mehrere Argumente für den Befehl
network.continueRequesthinzugefügt, der jetzt ermöglicht, Header, Cookies, Methode und Body einer Anfrage zu ändern, bevor sie über das Netzwerk gesendet wird. (Firefox-Fehler 1850680) - Unterstützung für das
userContext-Argument im Befehlpermissions.setPermissionhinzugefügt, welches erlaubt, eine Erlaubnis auf einen spezifischen Benutzerkontext zu isolieren (in Firefox als Container implementiert). (Firefox-Fehler 1894217) - Einen Fehler im
browsingContext.navigate-Befehl behoben, bei dem ein Navigationsfehler eine Fehlerseite lud und nachfolgende Befehle scheitern ließ. (Firefox-Fehler 1878690) - Wir haben die Reihenfolge, in der
network.responseCompleted-Ereignisse für Umleitungen emittiert werden, korrigiert. DasresponseCompletedder ursprünglichen Anfrage wird jetzt immer vor den Ereignissen für die Umleitung emittiert. (Firefox-Fehler 1879580) - Um mit dem aktuellen Firefox-Verhalten in Einklang zu stehen, haben wir das Workaround eingeführt, um keine Cookies zu partitionieren, die mit dem "storage.setCookie"-Befehl hinzugefügt werden, für die gleiche Domain wie die im Zielkontext geladene Seite. (Firefox-Fehler 1898222)
- Der
input.setFiles-Befehl wurde aktualisiert, um einenUnsupportedOperation-Fehler auszulösen, wenn die angegebene Datei nicht existiert. (Firefox-Fehler 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Session hinzugefügt, um mit der WebDriver-Classic-Spezifikation übereinzustimmen. Dadurch können Sie Sitzungen identifizieren, die für WebDriver classic erstellt wurden. (Firefox-Fehler 1884090)
- Unterstützung für die Permissions API in WebDriver Classic hinzugefügt. (Firefox-Fehler 1524074)
Änderungen für Add-on-Entwickler
- Fügt die Möglichkeit hinzu, Regeln in statischen derskriptive Netzanforderungsregel-Sets zu aktivieren und zu deaktivieren mit
declarativeNetRequest.updateStaticRulesund listet deaktivierte Regeln für ein statisches Regel-Sets mitdeclarativeNetRequest.getDisabledRuleIds(Firefox-Fehler 1810762). - Eine statische derskriptive Netzanforderungsregel, die über den
declarative_net_request-Manifest-Schlüssel definiert wurde, wird jetzt geladen, wenn sie nicht erkannte Eigenschaften enthält, aber ansonsten gültig ist (Firefox-Fehler 1886608). - Stellt
MAX_NUMBER_OF_DYNAMIC_RULESundMAX_NUMBER_OF_SESSION_RULESzudeclarativeNetRequestvor. Diese Eigenschaften stellen die maximale Anzahl dynamischer und sitzungsbasierter Regeln dar, die eine Erweiterung hinzufügen kann. Sie ersetzenMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES, die jetzt veraltet ist (Firefox-Fehler 1894128). - Der Standardwert der
proxy.settings-EigenschaftproxyDNSist jetztfalsebei Verwendung von SOCKS4 undtruebei Verwendung von SOCKS5. Zuvor wurde für SOCKS4 und SOCKS5falsevoreingestellt (Firefox-Fehler 1741375). - Unterstützung wird jetzt für
webRequest.onAuthRequiredbereitgestellt, um Authentifizierungsanfragen asynchron zu bearbeiten, indem"asyncBlocking"im ParameterextraInfoSpecvonaddListenerangegeben wird (Firefox-Fehler 1889897). - Der Manifest-Schlüssel optional_host_permissions wurde hinzugefügt. Dieser Schlüssel erlaubt Laufzeitanfragen für den Zugriff (zugelassen vom Benutzer nach der Installation der Erweiterung) für die APIs in der Erweiterung, die Hostdaten lesen oder ändern (Firefox-Fehler 1766026).
- Die nicht standardisierten Web-API-Ereignisse
overflowundunderflowwurden als veraltet markiert. Die Verwendung dieser Ereignisse sollte aus Erweiterungsdokumenten entfernt werden, bevor Firefox 131 veröffentlicht wird (Firefox-Fehler 1898445). - Unterstützung wird jetzt bereitgestellt, um Skripte in der Ausführungsumgebung der Webseite auszuführen. Dies wird durch Support für
MAINinExecutionWorldfür diescriptingAPI, das Hinzufügen vonworldzu dercontentScripts.register()API und die Unterstützung vonworldimcontent_scriptsManifest-Schlüssel bereitgestellt (Firefox-Fehler 1736575). - Die
scripting-API kann jetzt Skripte und CSS in sandboxed Pages mitabout:blank,about:srcdocunddata:-URLs injizieren. Dies wurde fürscripting.executeScript,scripting.insertCSSundscripting.removeCSSin Firefox-Fehler 1475831 undscripting.registerContentScriptsundscripting.updateContentScriptsin Firefox-Fehler 1853411 implementiert durch die Einführung vonmatchOriginAsFallbackzuscripting.RegisteredContentScript. - Inhalts-Skripte laufen jetzt auf sandboxed
http,httpsundfile:-URLs (Firefox-Fehler 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 durch die Nutzung von CSP oder iframe sandbox opak ist (Firefox-Fehler 1475831 und Firefox-Fehler 1896669). Darüber hinaus können Skripte, die mit demcontent_scripts-Manifest-Schlüssel registriert sind, jetzt nur inblob:-Seiten laufen, wennmatch_origin_as_fallbacktrueist (Firefox-Fehler 1897113). - Unterstützung für die
declarativeNetRequest.RuleCondition-EigenschaftdomainTypehinzugefügt (Firefox-Fehler 1797408). - Erweiterungen, die eine nicht erkannte Eigenschaft im Manifest-Schlüssel
browser_specific_settings.geckoenthalten, werden jetzt mit einer Warnung geladen. Bisher führten diese Erweiterungen zu einem Fehler bei der Installation. Dadurch wird sichergestellt, dass, wenn eine neuebrowser_specific_settings.gecko-Eigenschaft hinzugefügt wird, Erweiterungen, die diese neue Eigenschaft verwenden, in Firefox-Versionen bis zu diesem Release geladen werden (Firefox-Fehler 1757293). - Kontextmenüs, die mit
menus.createin Erweiterungen erstellt wurden, die ein nicht persistentes Hintergrundskript verwenden, bleiben jetzt zuverlässiger über Erweiterungsneustarts bestehen. Bisher gab es Fälle, in denen die Menüregistrierung bei Neustarts verschwand (Firefox-Fehler 1771328).
Experimentelle Web-Funktionen
Diese Funktionen werden in Firefox 128 neu bereitgestellt, sind aber standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie das entsprechende Präferenz auf der about:config-Seite und setzen Sie es 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 so konfiguriert werden, dass er Unterstützung für denimage/jxlMIME-Typ angibt. (Firefox-Fehler 1711622). -
Cookies mit unabhängigem partitioniertem Zustand (CHIPS):
network.cookie.CHIPS.enabled.CHIPS oder „partitionierte Cookies“ erlauben es Entwicklern, ein Cookie mit dem
partitioned-Direktive desSet-Cookie-HTTP-Headers in einen partitionierten Speicher zu optieren. Sobald gesetzt, haben Cookies für jede Top-Level-Site einen separaten Speicher und können nur innerhalb der gleichen Top-Level-Site, auf der sie gesetzt wurden, und deren Subdomänen gelesen werden. Dies blockiert das Cross-Site-Tracking, während es dennoch legitime Verwendungen von Drittanbieter-Cookies ermöglicht, wie das Persistieren von Zuständen eingebetteter Karten oder Chat-Widgets über unterschiedliche Subdomänen einer Website hinweg. (Firefox-Fehler 1898253). -
Datenschutzschonende Attributions-API (PPA):
dom.origin-trials.private-attribution.state.Die PPA-API bietet eine Alternative zum User-Tracking für die Attribution von Werbung mithilfe des neuen
navigator.privateAttribution-Objekts mit den MethodensaveImpression()undmeasureConversion(). Lesen Sie mehr über PPA im originalen Erklärer und der vorgeschlagenen Spezifikation. Dieses Experiment kann für Websites über Origin Trial oder im Browser durch Setzen der Präferenz auf1aktiviert werden. (Firefox-Fehler 1900929).