Firefox 54 Versionshinweise für Entwickler
Firefox 54 wurde am 13. Juni 2017 veröffentlicht. Dieser Artikel listet die wichtigsten Änderungen auf, die für Webentwickler nützlich sind.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Die Zusammenfassung von Netzwerkanfragen enthält jetzt die tatsächlich übertragenen Daten ("übertragene Größe"), ebenso wie die Leistungsanalyseansicht (Firefox Bug 1168376).
- Die Ansicht der Netzwerk-Anforderungsheader verlinkt jetzt auf die entsprechende Dokumentation auf MDN (Firefox Bug 1320233).
CSS
clip-pathunterstützt jetzt grundlegende Formen (Firefox Bug 1247229).- Die Implementierungen von CSS Flexbox und CSS Alignments in Firefox verwenden nun eine aktualisierte Spezifikationssprache für die Interaktionen zwischen den Eigenschaften
align-itemsundalign-selfsowie zwischenjustify-itemsundjustify-self(Firefox Bug 1340309). <input>Elemente der Typencheckboxundradiomit-moz-appearance: nonewerden nun als non-replaced Elemente behandelt, um mit anderen Browsern kompatibel zu sein (Firefox Bug 605985).- Zuvor hatte ein Element mit
display:inline-block, das ein Kindelement vom TypHTMLInputElementmitdisplay:blockenthielt, eine falsche Baseline (Firefox Bug 1330962). Dies wurde nun behoben. - Als Mozilla dedizierte Inhalts-Threads in Firefox einführte (durch das Elektrolyse- oder e10s-Projekt), 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. Weitere Informationen finden Sie unter Firefox Bug 910022. Beachten Sie, dass dies unter Linux aufgrund fehlender Kontraste noch deaktiviert ist (siehe Firefox Bug 1338283 für den Fortschritt). - CSS-Animationen senden nun das
animationcancelEreignis wie erwartet, wenn eine Animation vorzeitig abbricht (Firefox Bug 1302648). - Transparente Farben (d.h. solche mit einem Alphakanal von 0) wurden in bestimmten Situationen in das
transparenteFarbstichwort serialisiert; dies wurde behoben, sodass Firefox der Spezifikation sowie den Implementierungen anderer Browser folgt. Siehe (Firefox Bug 1339394 für weitere Informationen). - Die proprietäre Pseudo-Klasse
:-moz-table-border-nonzeroist nicht mehr für Webinhalte verfügbar; sie ist nun auf das interne UA-Stylesheet von Firefox beschränkt (Firefox Bug 1341925). - [css-grid] Intrinsischer Inhalt mit overflow:auto überlappt im Grid (Firefox Bug 1348857).
- [css-grid] Übertragene Mindestgrößenbeiträge eines prozentualen Größen-Grid-Elements mit einem intrinsischen Verhältnis (Firefox Bug 1349320).
JavaScript
\bund\BinRegExpmit den Flags"u"(Unicode) und"i"(Fallunterscheidung) behandeln nun U+017F (LATIN SMALL LETTER LONG S) und U+212A (KELVIN SIGN) als Wortzeichen (Firefox Bug 1338373).- Der
DataViewKonstruktor löst nun einenRangeErroraus, wenn derbyteOffsetParameter außerhalb vonNumber.MAX_SAFE_INTEGER(>= 2 ** 53) liegt (Firefox Bug 1317382). - Die
Date.UTC()Methode wurde aktualisiert, um den Anforderungen von ECMAScript 2017 zu entsprechen, wenn weniger als zwei Argumente bereitgestellt werden (Firefox Bug 1050755). - Die
Function.prototype.toString()Methode wurde aktualisiert, um der neuesten vorgeschlagenen Spezifikation zu entsprechen (Firefox Bug 1317400).
DOM & HTML DOM
- Die
URL.toJSON()Methode wurde implementiert (Firefox Bug 1337702). - Der
URLSearchParams()Konstruktor akzeptiert nun ein Record, das Strings als Initialisierungsobjekt enthält (Firefox Bug 1331580). - Die in
KeyboardEvent.keyzurückgegebenen Werte für druckbare Tasten, wenn die Strg-Taste ebenfalls gedrückt wird, wurden auf macOS korrigiert (außer wenn die Befehlstaste gedrückt wird) (Firefox Bug 1342865). - Die Einstellung
dom.workers.latestJSVersion, die hauptsächlich implementiert wurde, um Probleme mit der Verwendung vonletin Workern zu umgehen (aufgrund von Firefox Bug 855665, der inzwischen behoben wurde), wurde entfernt (siehe Firefox Bug 1219523). - Die
event.timeStampEigenschaft gibt nun eine hochauflösende monotone Zeit zurück (DOMHighResTimeStamp) anstelle eines Werts, der Unix-Zeit in Millisekunden darstellt.
Webarbeiter und Service-Arbeiter
WorkerGlobalScope.closeist jetzt stattdessen verfügbar inDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope. Diese Änderung wurde vorgenommen, um zu verhindern, dassclose()bei Servicearbeitern verfügbar ist, da es dort nicht verwendet werden sollte und immer eine Ausnahme auslöst, wenn es aufgerufen wird (siehe Firefox Bug 1336043).- Die
Window.originEigenschaft und dieWorkerGlobalScope.originwurde implementiert (siehe Firefox Bug 1306170). - Die
Client.typeEigenschaft wurde implementiert (siehe Firefox Bug 1339844). Clients.matchAll()gibt jetztClientObjekte in der Reihenfolge der zuletzt fokussierten zurück (siehe Firefox Bug 1266747).- Es wurden einige Änderungen am beobachteten Verhalten vorgenommen, wenn der
Request()Konstruktor eine vorhandeneRequestObjektinstanz übergeben wird, um eine neue Instanz zu erstellen. Die folgenden neuen Verhaltensweisen sollen die Sicherheit bewahren, während sie den Konstruktor weniger wahrscheinlich Ausnahmen werfen lassen:- Wenn dieses Objekt auf einem anderen Ursprung als der Konstruktoraufruf existiert, wird der
Request.referrerentfernt. - Wenn dieses Objekt ein
Request.modevonnavigatehat, wird dermodeWert zusame-originkonvertiert.
- Wenn dieses Objekt auf einem anderen Ursprung als der Konstruktoraufruf existiert, wird der
Audio/Video
Allgemein
- Die 5.1 Surround-Sound-Wiedergabe ist jetzt standardmäßig unter Windows, macOS und Linux aktiviert (Firefox Bug 1334508, Firefox Bug 1321502 und Firefox Bug 1323659).
Media Capture und Streams API
- Die Verwendung eines
MediaStreamObjekts als Eingabeparameter fürURL.createObjectURL()wurde als veraltet markiert — die Konsole zeigt jetzt eine Warnung an (siehe Firefox Bug 1334564). Es wird empfohlen, stattdessenHTMLMediaElement.srcObjectzu verwenden.
Web Audio API
- Die Methode
AnalyserNode.getFloatFrequencyData()stellt nun stille Samples im zurückgegebenen Puffer korrekt mit dem Wert-Infinitydar (Firefox Bug 1336098). AudioParam.setValueCurveAtTime()löst jetzt eineTypeErrorAusnahme aus, wenn einer der angegebenen Werte nicht endlich ist (Firefox Bug 1308437).
Encrypted MediaExtensions API
- Der
MediaKeySession.keySystemString wurde aus der Spezifikation entfernt, und daher haben wir ihn in Firefox 54 entfernt (Firefox Bug 1335555). - Unterstützung wurde für den VP9-Codec in verschlüsselten Streams unter Verwendung des Clear Key und Widevine hinzugefügt (Firefox Bug 1338064).
- Zuvor war MSE nur berechtigt, WebM/VP8 Video zu verwenden, wenn das System als "schnell genug" betrachtet wurde. Jetzt wird die Wiedergabe von VP8-codierten
webm/video-Medien unabhängig von der Systemleistung immer unterstützt.
WebRTC
- Unterstützung für TCP-ICE-Kandidaten, die ursprünglich in Firefox 41 hinzugefügt wurden, 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 in Umgebungen nützlich sein, in denen UDP blockiert ist (Firefox Bug 1176382). Dieser Blog-Beitrag erklärt die Funktion im Detail.
Entfernung von der Webplattform
>CSS
- Die
-mozpräfixierten Versionen vonisolate,isolate-overrideundplaintextWerten für dieunicode-bidiEigenschaft wurden entfernt (Firefox Bug 1333675).
HTTP
- Unterstützung für HTTP/1 Pipelining wurde in Firefox 54 entfernt. Es ist nicht lohnenswert, es aufrechtzuerhalten, da wir in eine neue Welt voller HTTP/2 und anderer wesentlicher, standardisierter Verbesserungen der Netzwerkleistung übergehen, angesichts von Pipelining-Kompatibilitäts- und Leistungsproblemen. Die Einstellung
network.http.pipelining(sowie andere Einstellungen, die mit "network.http.pipelining" beginnen) wird jetzt ignoriert. Weitere Informationen finden Sie unter Firefox Bug 1340655.