Firefox 54 Versionshinweise für Entwickler
Firefox 54 wurde am 13. Juni 2017 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die für Webentwickler nützlich sind.
Änderungen für Webentwickler
>Entwickler-Tools
- Die Zusammenfassung der Netzwerk-Anfragen enthält jetzt die tatsächlich übertragenen Datenmengen ("übertragene Größe"), ebenso wie die Performance-Analyse-Ansicht (Firefox Bug 1168376).
- Die Ansicht der Netzwerk-Anfrage-Header verlinkt jetzt zur zugehörigen Dokumentation auf MDN (Firefox Bug 1320233).
CSS
clip-pathunterstützt jetzt Grundformen (Firefox Bug 1247229).- Firefox' Implementierungen von CSS Flexbox und CSS-Ausrichtung setzen nun die aktualisierte Spezifikationssprache für Interaktionen zwischen den Eigenschaften
align-itemsundalign-selfsowie zwischenjustify-itemsundjustify-selfum (Firefox Bug 1340309). <input>-Elemente der Typencheckboxundradiomit gesetztem-moz-appearance: nonesind jetzt nicht ersetzende Elemente, um die Kompatibilität mit anderen Browsern sicherzustellen (Firefox Bug 605985).- Frühere Probleme mit der falschen Basislinie bei einem Element, das mit
display:inline-blockund einem Kindelement vom TypHTMLInputElementmitdisplay:blockgestylt war, wurden behoben (Firefox Bug 1330962). - Als Mozilla dedizierte Content-Threads zu Firefox durch das Electrolysis oder e10s-Projekt einführte, wurde die Unterstützung für die Gestaltung von
<option>-Elementen vorübergehend entfernt. Ab Firefox 54 können Sie wieder Vordergrund- und Hintergrundfarben auf<option>-Elemente anwenden, indem Sie die Attributecolorundbackground-colorverwenden. Siehe Firefox Bug 910022 für weitere Informationen. Beachten Sie, dass dies unter Linux aufgrund mangelnden Kontrasts noch deaktiviert ist (siehe Firefox Bug 1338283 für den Fortschritt). - CSS-Animationen senden jetzt wie erwartet das
animationcancel-Ereignis, wenn eine Animation vorzeitig abgebrochen wird (Firefox Bug 1302648). - Transparente Farben (d.h. solche mit einem Alphakanal von 0) wurden in bestimmten Situationen an das
transparentFarbschlüsselwort serialisiert; dies wurde behoben, sodass Firefox der Spezifikation folgt (sowie den Implementierungen anderer Browser). Siehe (Firefox Bug 1339394 für weitere Informationen). - Die proprietäre Pseudoklasse
:-moz-table-border-nonzeroist nicht mehr für Webinhalte verfügbar; sie ist jetzt auf Firefox' internes UA-Stylesheet beschränkt (Firefox Bug 1341925). - [css-grid] Intrinsischer Inhalt mit overflow:auto überlagert sich im Raster (Firefox Bug 1348857).
- [css-grid] Übertragene min-size-Beitrag von Prozentsatzgröße Grid-Element mit einem intrinsischen Verhältnis (Firefox Bug 1349320).
JavaScript
\bund\BinRegExpmit den Flags"u"(Unicode) und"i"(groß-/kleinschreibungsempfindlich) behandeln jetzt U+017F (LATIN SMALL LETTER LONG S) und U+212A (KELVIN SIGN) als Wortzeichen (Firefox Bug 1338373).- Der
DataView-Konstruktor wirft jetzt einenRangeError, wenn derbyteOffset-Parameter außerhalb vonNumber.MAX_SAFE_INTEGER(>= 2 ** 53) liegt (Firefox Bug 1317382). - Die Methode
Date.UTC()wurde aktualisiert, um der ECMAScript 2017 zu entsprechen, wenn weniger als zwei Argumente bereitgestellt werden (Firefox Bug 1050755). - Die Methode
Function.prototype.toString()wurde aktualisiert, um der neuesten vorgeschlagenen Spezifikation zu entsprechen (Firefox Bug 1317400).
DOM & HTML DOM
- Die Methode
URL.toJSON()wurde implementiert (Firefox Bug 1337702). - Der
URLSearchParams()-Konstruktor akzeptiert jetzt ein Record, das Zeichenfolgen als Init-Objekt enthält (Firefox Bug 1331580). - Die zurückgegebenen Werte in
KeyboardEvent.keyfür druckbare Tasten, wenn die Steuerungstaste ebenfalls gedrückt wird, wurden unter macOS korrigiert (außer wenn die Befehlstaste gedrückt wird) (Firefox Bug 1342865). - Die
dom.workers.latestJSVersion-Präferenz, die hauptsächlich implementiert wurde, um Probleme bei der Verwendung vonletin Workern zu umgehen (aufgrund von Firefox Bug 855665, der inzwischen behoben wurde), wurde entfernt (siehe Firefox Bug 1219523). - Die Eigenschaft
event.timeStampgibt jetzt eine hochauflösende monotone Zeit (DOMHighResTimeStamp) anstelle eines Wertes zurück, der die Unix-Zeit in Millisekunden darstellt.
Web Workers und Service Workers
WorkerGlobalScope.closeist jetzt stattdessen verfügbar aufDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope. Diese Änderung wurde vorgenommen, um zu verhindern, dassclose()auf Service-Workern verfügbar ist, da es dort nicht verwendet werden sollte und beim Aufruf immer eine Ausnahme auslöst (siehe Firefox Bug 1336043).- Die Eigenschaft
Window.originsowie die EigenschaftWorkerGlobalScope.originwurden implementiert (siehe Firefox Bug 1306170). - Die Eigenschaft
Client.typewurde implementiert (siehe Firefox Bug 1339844). Clients.matchAll()gibt jetztClient-Objekte in der Reihenfolge der zuletzt fokussierten Objekte zurück (siehe Firefox Bug 1266747).- Es wurden einige Änderungen am beobachteten Verhalten vorgenommen, wenn der
Request()-Konstruktor mit einer vorhandenenRequest-Objektinstanz aufgerufen wird, um eine neue Instanz zu erstellen. Die folgenden neuen Verhaltensweisen sollen die Sicherheit bewahren, während der Konstruktor mit geringerer Wahrscheinlichkeit Ausnahmen auslöst:- Wenn dieses Objekt bei einem anderen Ursprung als dem des Konstruktoraufrufs existiert, wird der
Request.referrerentfernt. - Wenn dieses Objekt einen
Request.modevonnavigatehat, wird dermode-Wert insame-originumgewandelt.
- Wenn dieses Objekt bei einem anderen Ursprung als dem des Konstruktoraufrufs existiert, wird der
Audio/Video
Allgemein
- Die 5.1 Surround-Sound-Wiedergabe ist jetzt unter Windows, macOS und Linux standardmäßig aktiviert (Firefox Bug 1334508, Firefox Bug 1321502 und Firefox Bug 1323659).
Media Capture und Streams API
- Die Verwendung eines
MediaStream-Objekts als Eingabeparameter fürURL.createObjectURL()wurde veraltet — die Konsole zeigt jetzt eine Warnung an (siehe Firefox Bug 1334564). Es wird empfohlen, stattdessenHTMLMediaElement.srcObjectzu verwenden.
Web Audio API
- Die Methode
AnalyserNode.getFloatFrequencyData()repräsentiert nun korrekt stille Samples im zurückgegebenen Puffer mit dem Wert-Infinity(Firefox Bug 1336098). AudioParam.setValueCurveAtTime()wirft jetzt eineTypeError-Ausnahme, wenn einer der angegebenen Werte nicht endlich ist (Firefox Bug 1308437).
Verschlüsselte MediaExtensions API
- Der
MediaKeySession.keySystem-String wurde aus der Spezifikation entfernt und daher haben wir ihn aus Firefox 54 herausgenommen (Firefox Bug 1335555). - Unterstützung wurde für den VP9-Codec in verschlüsselten Streams unter Verwendung von Clear Key und Widevine hinzugefügt (Firefox Bug 1338064).
- Zuvor war MSE nur erlaubt, WebM/VP8-Videos zu verwenden, wenn das System als "schnell genug" erachtet wurde. Nun wird die Wiedergabe von VP8-kodierten
webm/video-Medien immer unterstützt, unabhängig von der Systemleistung.
WebRTC
- TCP ICE-Kandidatensupport, ursprünglich hinzugefügt in Firefox 41, ist jetzt standardmäßig aktiviert. Dies ermöglicht es der ICE-Schicht, Kandidaten zu berücksichtigen, die TCP anstelle des bevorzugten UDP für die Übertragung verwenden. Dies kann nützlich in Umgebungen sein, in denen UDP blockiert ist (Firefox Bug 1176382). Dieser Blogbeitrag erklärt das Feature detaillierter.
Entfernte Funktionen aus der Web-Plattform
>CSS
- Die
-moz-präfixierten Versionen derisolate,isolate-overrideundplaintextWerte für dieunicode-bidi-Eigenschaft wurden entfernt (Firefox Bug 1333675).
HTTP
- Die Unterstützung für HTTP/1-Pipelining wurde in Firefox 54 entfernt. Die Aufrechterhaltung dieser Unterstützung bei unserem Übergang in eine neue Welt voller HTTP/2 und anderer substanzieller, standardisierter Verbesserungen der Netzwerkleistung ist aufgrund der Kompatibilitäts- und Leistungsprobleme des Pipelinings nicht lohnend. Die
network.http.pipelining-Einstellung (sowie die anderen Einstellungen, die mit "network.http.pipelining" beginnen) wird jetzt ignoriert. Weitere Informationen finden Sie unter Firefox Bug 1340655.