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 Netzwerk-Anforderungsübersicht enthält jetzt die tatsächlich übertragenen Datenmengen ("übertragene Größe"), ebenso wie die Leistungsanalyseansicht (Firefox-Bug 1168376).
- Die Ansicht für Netzwerk-Anforderungsheader verlinkt jetzt zur entsprechenden Dokumentation auf MDN (Firefox-Bug 1320233).
CSS
clip-pathunterstützt jetzt Grundformen (Firefox-Bug 1247229).- Die Implementierungen von CSS Flexbox und CSS Alignment in Firefox wurden aktualisiert, um die aktualisierte Spezifikationssprache für die Interaktionen zwischen den Eigenschaften
align-itemsundalign-selfsowie zwischenjustify-itemsundjustify-selfzu implementieren (Firefox-Bug 1340309). <input>-Elemente der Typencheckboxundradiomit-moz-appearance: nonegesetzt darauf sind jetzt keine ersetzten Elemente mehr, um die Kompatibilität mit anderen Browsern zu erhöhen (Firefox-Bug 605985).- Früher hatte ein Element, das mit
display:inline-blockgestylt war und ein Kind-Element vom TypHTMLInputElementmitdisplay:blockenthielt, eine falsche Grundlinie (Firefox-Bug 1330962). Dies wurde nun behoben. - Als Mozilla dedizierte Inhalts-Threads in Firefox einführte (durch das Electrolysis- oder e10s-Projekt), wurde die Unterstützung für das Styling von
<option>-Elementen vorübergehend entfernt. Ab Firefox 54 können Sie wieder Vorder- und Hintergrundfarben auf<option>-Elemente anwenden, indem Sie die Attributecolorundbackground-colorverwenden. Weitere Informationen finden Sie im Firefox-Bug 910022. Beachten Sie, dass dies unter Linux aufgrund mangelnden Kontrasts weiterhin deaktiviert ist (siehe Firefox-Bug 1338283 für Fortschritte). - CSS-Animationen senden jetzt wie erwartet das
animationcancel-Ereignis, wenn eine Animation vorzeitig abbricht (Firefox-Bug 1302648). - Transparente Farben (d.h. solche mit einem Alpha-Kanal von 0) wurden in bestimmten Situationen zu dem
transparent-Farbkeyword serialisiert; dies wurde behoben, damit Firefox der Spezifikation (sowie Implementierungen anderer Browser) folgt. 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 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] Übertragener Minimalgrößenbeitrag bei Prozentgrößengitterelementen mit einem intrinsischen Verhältnis (Firefox-Bug 1349320).
JavaScript
\bund\BinRegExpmit den Flags"u"(Unicode) und"i"(Groß-/Kleinschreibung ignorierend) behandeln jetzt U+017F (LATEINISCHES KLEINBUCHSTABE LANGES S) und U+212A (KELVIN-ZEICHEN) 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 dem neuesten vorgeschlagenen Standard zu entsprechen (Firefox-Bug 1317400).
DOM & HTML-DOM
- Die Methode
URL.toJSON()wurde implementiert (Firefox-Bug 1337702). - Der Konstruktor
URLSearchParams()akzeptiert jetzt ein Record, das Zeichenfolgen als initiales Objekt enthält (Firefox-Bug 1331580). - Die in
KeyboardEvent.keyzurückgegebenen Werte für druckbare Tasten, wenn die Steuerungstaste 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 bei der Verwendung vonletin Workern zu umgehen (aufgrund von Firefox-Bug 855665, der mittlerweile behoben wurde), wurde entfernt (siehe Firefox-Bug 1219523). - Die Eigenschaft
event.timeStampgibt jetzt eine hochauflösende monotone Zeit (DOMHighResTimeStamp) anstelle eines Werts zurück, der die Unix-Zeit in Millisekunden darstellt.
Web-Worker und Service-Worker
WorkerGlobalScope.closeist stattdessen jetzt nur aufDedicatedWorkerGlobalScopeundSharedWorkerGlobalScopeverfügbar. Diese Änderung wurde vorgenommen, um zu verhindern, dassclose()auf Service-Workern verfügbar ist, da es dort nicht verwendet werden soll und immer eine Ausnahme auslöst, wenn es aufgerufen wird (siehe Firefox-Bug 1336043).- Die Eigenschaft
Window.originund 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 des zuletzt fokussierten zurück (siehe Firefox-Bug 1266747).- Einige Änderungen wurden am beobachteten Verhalten vorgenommen, wenn der
Request()-Konstruktor ein bestehendesRequest-Objektinstanz übergeben bekommt, um eine neue Instanz zu erstellen. Die folgenden neuen Verhaltensweisen sind darauf ausgelegt, die Sicherheit beizubehalten, während der Konstruktor weniger wahrscheinlich Ausnahmen auslöst:- Wenn dieses Objekt in einer anderen Herkunft als dem Konstruktoraufruf existiert, wird der
Request.referrerentfernt. - Wenn dieses Objekt einen
Request.modevonnavigatehat, wird dermode-Wert insame-originumgewandelt.
- Wenn dieses Objekt in einer anderen Herkunft als dem Konstruktoraufruf existiert, wird der
Audio/Video
Allgemein
- 5.1 Surround-Sound-Wiedergabe ist jetzt standardmäßig auf Windows, macOS und Linux 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()stellt nun korrekt stille Samples im zurückgegebenen Buffer mit dem Wert-Infinitydar (Firefox-Bug 1336098). AudioParam.setValueCurveAtTime()wirft jetzt eineTypeError-Ausnahme, wenn einer der angegebenen Werte nicht endlich ist (Firefox-Bug 1308437).
Encrypted Media Extensions API
- Der
MediaKeySession.keySystem-String wurde aus der Spezifikation entfernt und daher haben wir ihn auch in Firefox 54 entfernt (Firefox-Bug 1335555). - Unterstützung für den VP9-Codec in verschlüsselten Streams unter Verwendung von Clear Key und Widevine wurde hinzugefügt (Firefox-Bug 1338064).
- Zuvor war MSE nur erlaubt, WebM/VP8-Video zu verwenden, wenn das System als "schnell genug" eingestuft wurde. Jetzt wird die Wiedergabe von VP8-kodierten
webm/video-Medien immer unterstützt, unabhängig von der Systemleistung.
WebRTC
- Die Unterstützung für TCP-ICE-Kandidaten, ursprünglich in Firefox 41 hinzugefügt, 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 Blogbeitrag erklärt die Funktion detaillierter.
Entfernungen aus der Webplattform
>CSS
- Die
-moz-präfixierten Versionen vonisolate,isolate-overrideundplaintext-Werten für dieunicode-bidi-Eigenschaft wurden entfernt (Firefox-Bug 1333675).
HTTP
- Die Unterstützung für HTTP/1-Pipelining wurde in Firefox 54 entfernt. Angesichts der Kompatibilitäts- und Leistungsprobleme von Pipelining ist es nicht wert, dies beizubehalten, während wir uns in eine neue Welt voller HTTP/2 und anderer erheblicher, standardisierter Verbesserungen der Netzwerkperformance bewegen. 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.