Firefox 50 für Entwickler
Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie die Firefox Developer Edition. Firefox 50 wurde am 15. November 2016 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur für Webentwickler nützlich sind, sondern auch für Firefox- und Gecko-Entwickler sowie für Add-on-Entwickler.
Änderungen für Webentwickler
>HTML
- Der Standardstil von
<bdo>
setzt nununicode-bidi
mit dem Wertisolate-override
(Firefox-Bug 1249497). - Das Setzen des
src
-Attributs des<track>
-Elements funktioniert nun korrekt (Firefox-Bug 1281418). - Das
referrerpolicy
-Attribut auf den Elementen<area>
,<a>
,<img>
,<iframe>
und<link>
ist jetzt standardmäßig verfügbar (Firefox-Bug 1223838, Firefox-Bug 1264165).
CSS
- Ecken mit
border-radius
und gestrichelten sowie gepunkteten Stilen werden nun mit dem angegebenen Stil statt einem festen Stil gerendert (Firefox-Bug 382721). - Der nicht standardisierte Pseudo-Klassen-Selektor
:-moz-full-screen-ancestor
wurde entfernt (Firefox-Bug 1199529). box-sizing: padding-box
wurde entfernt, da es nicht mehr Teil der Spezifikation ist und Firefox der einzige größere Browser war, der es implementierte (Firefox-Bug 1166728).- Die drei Werte
isolate
,isolate-override
undplaintext
derunicode-bidi
-Eigenschaft sind jetzt ohne Präfix (Firefox-Bug 1141895). - Im Quirks-Modus erbt das Aufzählungszeichen eines Listenelements nun die Größe der Liste, wie im Standardmodus (Firefox-Bug 648331).
- Die Pseudoklassen
:in-range
und:out-of-range
haben ihr Verhalten geändert, sodass sie keine deaktivierten oder schreibgeschützten Eingaben mehr auswählen (Firefox-Bug 1264157). - Die Pseudoklasse
:any-link
ist jetzt ohne Präfix (Firefox-Bug 843579). - Der
space
-Wert fürborder-image-repeat
wurde implementiert (Firefox-Bug 720531).
JavaScript
- Die ES2015
Symbol.hasInstance
-Eigenschaft wurde implementiert (Firefox-Bug 1054906). - Die ES2017-Methode
Object.getOwnPropertyDescriptors()
wurde implementiert (Firefox-Bug 1245024). - Das Verhalten von \W in
RegExp
mit den Flagsunicode
undignoreCase
wurde geändert, um die neueste Entwurfsspezifikation zu erfüllen. Nun entspricht es nicht mehr K, S, k, s und KELVIN-ZEICHEN (U+212A) und LATEINISCHES KLEINES LANGES S (U+017F) (Firefox-Bug 1281739).
Entwicklerwerkzeuge
- Die Webkonsole versteht jetzt Sourcemaps.
- Der Speicherinspektor ermöglicht es jetzt, einzelne Elemente aus IndexedDB-Objektspeichern zu löschen.
- Das Speichertool ist standardmäßig aktiviert.
- Die Boxmodellansicht wurde in die berechnete Ansicht verschoben.
- Die Webkonsole zeigt jetzt Stack-Traces für XHR- oder Fetch()-Netzwerkanfragen an.
Alle zwischen Firefox 49 und Firefox 50 behobenen DevTools-Bugs.
HTTP
- Das experimentelle (und veraltete) SPDY 3.1 ist jetzt standardmäßig deaktiviert Firefox-Bug 1287132.
- Unterstützung für
X-Content-Type-Options
wurde hinzugefügt (Firefox-Bug 471020). - Die Cookie-Prefixe
__Host-
und__Secure-
wurden implementiert. SieheSet-Cookie
und Firefox-Bug 1283368. - Der
Referrer-Policy
-Header wurde implementiert Firefox-Bug 1264164.
Sicherheit
- Das
ping
-Attribut des<a>
-Elements hält sich jetzt an dieconnect-src
Richtlinien-Direktive von CSP 1.1 (Firefox-Bug 1100181). - Unterstützung für die
sandbox
-CSP-Direktive wurde hinzugefügt (Firefox-Bug 671389). - Es ist nun möglich, eine Content Security Policy für Worker einzurichten (Firefox-Bug 959388).
- Die Methode
Navigator.sendBeacon()
wirft keine Ausnahme mehr, wenn die Beacon-Daten aufgrund einer Content Security Policy-Einschränkung nicht gesendet werden konnten; stattdessen gibt sie wie erwartetfalse
zurück (Firefox-Bug 1234813). - Unterstützung für die RC4-Verschlüsselung wurde in Firefox 36 veraltet und in Firefox 44 standardmäßig deaktiviert. Die einjährige Übergangsfrist ist abgelaufen, sodass Firefox 50 jegliche Unterstützung für RC4 entfernt (Google Chrome hat die Unterstützung für RC4 im August 2016 entfernt). Von jetzt an meldet Firefox bei einer RC4-Verschlüsselung einen
SSL_ERROR_NO_CYPHER_OVERLAP
-Fehler.
Netzwerk
- Wenn ein Fehler während eines asynchronen
XMLHttpRequest
auftritt, gibt die MethodeXMLHttpRequest.getAllResponseHeaders()
jetzt eine leere Zeichenfolge zurück (Firefox-Bug 1286744). - Statt einen
NetworkError
zurückzugeben, löst ein asynchronesXMLHttpRequest
, das bei CORS oder anderen Netzwerkausfällen fehlschlägt, jetzt einenerror
aus, der wie jeder andere Fehler abgefangen werden kann (Firefox-Bug 709991). XMLHttpRequest.getResponseHeader()
undXMLHttpRequest.getAllResponseHeaders()
geben jetzt auch standardmäßig leere Header zurück. Dies kann über die Präferenznetwork.http.keep_empty_response_headers_as_empty_string
gesteuert werden (Firefox-Bug 918721).- Die
only-if-cached
-Option wurde zuRequest.cache
hinzugefügt (Firefox-Bug 1272436).
DOM
- Die
once
-Option fürEventTarget.addEventListener()
wird jetzt unterstützt (Firefox-Bug 1287706). - Die Schnittstelle
NodeList
ist jetzt iterierbar und die MethodenforEach()
,values()
,NodeList.entries()
undNodeList.keys()
sind jetzt verfügbar (Firefox-Bug 1290636). - Die Schnittstelle
DOMTokenList
ist jetzt iterierbar und die MethodenforEach()
,values()
,DOMTokenList.entries()
undDOMTokenList.keys()
sind jetzt verfügbar (Firefox-Bug 1290636). - Die Methoden
Document.createElement()
undDocument.createElementNS()
haben jetzt einen optionalenoptions
-Parameter zum Erstellen benutzerdefinierter Elemente (Firefox-Bug 1276579).
SVG
- Das
allowReorder
-Attribut wurde entfernt und das Verhalten, das es festlegte, ist jetzt der Standard für SVG<switch>
-Elemente (Firefox-Bug 1279690). - Das
defer
-Schlüsselwort für daspreserveAspectRatio
-Attribut bei SVG-<image>
-Elementen wurde entfernt, um den neuesten SVG2-Spezifikationen zu entsprechen (Firefox-Bug 1280425).
Drag-and-Drop-API
- Die
DataTransfer.items
-Eigenschaft wurde implementiert, was den Zugriff auf mehrere Elemente ermöglicht, die mit der HTML-Drag-and-Drop-API gezogen und abgelegt werden. Um dies zu ermöglichen, werden die SchnittstellenDataTransferItem
undDataTransferItemList
jetzt ebenfalls unterstützt (Firefox-Bug 906420). Dies ist standardmäßig aktiviert. - Die alten, veralteten Firefox-spezifischen Drag-and-Drop-API-Ereignisse
dragdrop
unddraggesture
werden nicht mehr unterstützt. Stellen Sie sicher, dass Sie jeden Code, der sie noch verwendet, auf die HTML-Drag-and-Drop API aktualisieren (Firefox-Bug 1162050).
Zeigerverriegelungs-API
- Die Zeigerverriegelungs-API ist jetzt ohne Präfix (Firefox-Bug 991899).
- Vor Firefox 50 fragte
requestPointerLock()
um Erlaubnis mit einem Türhänger und Zeigerverriegelung würde nicht aktiviert, bis der Benutzer die Erlaubnis erteilt hatte. Ab Firefox 50 ist die Zeigerverriegelung wie die Vollbild-API: Sie wird sofort gewährt, aber eine Benachrichtigung wird angezeigt, die dem Benutzer erklärt, wie er beenden kann (Firefox-Bug 1273351).
IndexedDB
- Ein
close
-Ereignis wird jetzt an dasIDBDatabase
-Objekt gesendet, wenn die entsprechende Datenbank unerwartet geschlossen wird (Firefox-Bug 1151017).
Service Workers
- Die Methode
WindowClient.navigate()
wurde implementiert. Diese Methode ermöglicht es Ihnen, eine angegebene URL in einem Clientfenster zu öffnen, das vom Service Worker gesteuert wird (Firefox-Bug 1218148).
WebGL
- Die WebGL-Erweiterung
EXT_shader_texture_lod
wurde implementiert (Firefox-Bug 1111689). - Die texImage-Methoden wurden für WebGL 2 aktualisiert, um PBOs (
PIXEL_UNPACK_BUFFER
) zu implementieren (Firefox-Bug 1280499).
WebRTC
- Das Hinzufügen eines Tracks zu einem
MediaStream
löst jetzt dasaddtrack
-Ereignis aus, wie in der Spezifikation beschrieben. Das Ereignis ist vom TypMediaStreamTrackEvent
und wird auf dem Stream ausgelöst, zu dem der Track hinzugefügt wurde. Sie können entwederMediaStream.addEventListener('addtrack', ...)
oder dieonaddtrack
-Eigenschaft verwenden, um"addtrack"
-Ereignisse zu behandeln. - Die
MediaStreamTrack
-Schnittstelle unterstützt jetzt dasended
-Ereignis und seinen Ereignis-Handler. - Firefox unterstützt jetzt die
MediaStreamTrack.readyState
-Eigenschaft, die angibt, ob der Track live oder dauerhaft beendet ist. - Die
MediaStreamTrack
-MethodengetConstraints()
undgetSettings()
wurden implementiert; diese ermöglichen es Ihnen, den zuletzt angewendeten Satz benutzerdefinierter Eigenschaftsbeschränkungen und die tatsächlichen Werte aller beeinflussbaren Eigenschaften des Tracks zu erhalten. Die begleitenden Datentypen wurden ebenfalls dokumentiert. - Die
RTCDataChannel.stream
-Eigenschaft wurde entfernt. Diese wurde bereits in Firefox 24 durchRTCDataChannel.id
ersetzt, aber zur Abwärtskompatibilität unterstützt. Stellen Sie sicher, dass Sie Ihren Code aktualisieren, um dieid
-Eigenschaft zu verwenden, falls Sie dies noch nicht getan haben.
Web Audio API
- Die
PannerNode
-Schnittstelle unterstützt jetzt die 3D-kartesischen Raumeigenschaften für die Position (PannerNode.positionX
,PannerNode.positionY
, undPannerNode.positionZ
) und die Richtung (PannerNode.orientationX
,PannerNode.orientationY
,PannerNode.orientationZ
) einer Audioquelle. - Die Schnittstelle
IIRFilterNode
, die eine allgemeine Infinite Impulse Response (IIR)-Filterung implementiert, wurde implementiert. - Die Drosselung in Hintergrund-Tabs von Timern, die durch
Window.setInterval()
,WorkerGlobalScope.setInterval()
,setTimeout()
undsetTimeout()
erstellt wurden, tritt nicht mehr auf, wenn ein Web Audio APIAudioContext
aktiv Ton abspielt. Dies sollte helfen, Probleme mit timingempfindlicher Audiowiedergabe (wie Musikplayer, die individuelle Noten mit Timern generieren) im Hintergrund zu verhindern (Firefox-Bug 1181073).
Audio/Video
- Das
AlignSetting
-Enum (das mögliche Werte fürVTTCue.align
repräsentiert) enthielt fälschlicherweise zuvor den Wert"middle"
statt"center"
. Dies wurde korrigiert (Firefox-Bug 1276130). - Die nicht standardisierte und experimentelle Methode
HTMLMediaElement.seekToNextFrame()
sucht jetzt asynchron nach dem nächsten Frame im Medium, anstatt synchron, und gibt einPromise
zurück, das sich auflöst, sobald der Suchvorgang abgeschlossen ist. - Die Implementierung von
HTMLTrackElement
wurde korrigiert, um<track>
-Elementen zu ermöglichen, Ressourcen zu laden, auch wenn sie sich nicht in einem Dokument befinden (Firefox-Bug 871747).
Batterie-API
- Die
Navigator.battery
-Eigenschaft, die seit Firefox 43 veraltet ist, ist jetzt obsolet und wurde entfernt. Verwenden Sie stattdessen die Methodenavigator.getBattery()
, um ein Batterie-Promise
zu erhalten, das sich auflöst, wenn derBatteryManager
zur Verwendung bereitsteht; derBatteryManager
wird an den Erfüllungs-Handler des Versprechens übergeben (Firefox-Bug 12593355).
Dateien und Verzeichnisse
-
Ein Teil der File and Directory Entries API wurde implementiert, um die Kompatibilität mit Websites zu verbessern, die bisher nur mit Google Chrome kompatibel waren (Firefox-Bug 1265767).
-
Die asynchronen API-Schnittstellen wurden implementiert, mit dem Vorbehalt, dass nur das Lesen von Dateien unterstützt wird; zum Beispiel ist die Methode
FileSystemFileEntry.createWriter()
eine No-Op. -
Diese Schnittstellen wurden implementiert:
FileSystem
FileSystemEntry
(nur Eigenschaften; die Methoden wurden nicht implementiert)FileSystemFileEntry
(außercreateWriter()
)FileSystemDirectoryEntry
(außerremoveRecursively()
)FileSystemDirectoryReader
-
HTMLInputElement.webkitdirectory
sowie daswebkitdirectory
-Attribut des<input>
-Elements wurden implementiert; dies ermöglicht es Ihnen, eine Dateiauswahl so zu konfigurieren, dass sie Verzeichnisse statt Dateien akzeptiert (Firefox-Bug 1258489). -
HTMLInputElement.webkitEntries
wurde implementiert; dies gibt ein Array vonFileSystemEntry
-basierten Objekten zurück, die die ausgewählten Elemente darstellen. -
File.webkitRelativePath
wurde implementiert; dies enthält den Pfad der Datei relativ zum Stamm des enthaltenenFileSystemDirectoryEntry
, der sich unter den ausgewählten Elementen in der Liste befindet, die durchHTMLInputElement.webkitEntries
zurückgegeben wird. -
Diese APIs sind jetzt standardmäßig aktiviert; einige waren bisher verfügbar, aber nur hinter einer Präferenz (Firefox-Bug 1288683).
-
-
Wir haben
DataTransferItem.webkitGetAsEntry()
als Teil der File and Directory Entries API implementiert; dies ermöglicht es Ihnen, einFileSystemEntry
zu erhalten, das eine abgelegte Datei repräsentiert (Firefox-Bug 1289255). Dies ist standardmäßig aktiviert. -
Die
HTMLInputElement.directory
-Eigenschaft, Teil des Directory Upload API-Vorschlags, wurde inallowdirs
umbenannt (Firefox-Bug 1288681). Diese Eigenschaft ist hinter einer Präferenz verborgen.