Firefox 50 für Entwickler
Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie 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 Add-on-Entwickler.
Änderungen für Webentwickler
>HTML
- Der Standardstil des
<bdo>
setzt nununicode-bidi
mit dem Wertisolate-override
(Firefox Bug 1249497). - Das Setzen des
src
-Attributs des<track>
-Elements funktioniert jetzt korrekt (Firefox Bug 1281418). - Das Attribut
referrerpolicy
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 mit gestrichelten und gepunkteten Stilen werden jetzt mit dem angegebenen Stil statt mit einem festen Stil gerendert (Firefox Bug 382721). - Der nicht-standardmäßige
:-moz-full-screen-ancestor
Pseudoklassen-Selektor wurde entfernt (Firefox Bug 1199529). box-sizing: padding-box
wurde entfernt, da es nicht mehr Teil der Spezifikation ist und Firefox der einzige große Browser war, der es implementiert hat (Firefox Bug 1166728).- Die drei Werte
isolate
,isolate-override
undplaintext
derunicode-bidi
-Eigenschaft wurden ohne Präfix versehen (Firefox Bug 1141895). - Im Quirks-Modus erbt der Aufzählungspunkt eines Listenelements jetzt 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 nicht mehr deaktivierte oder schreibgeschützte Eingaben entsprechen (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-Eigenschaft
Symbol.hasInstance
wurde implementiert (Firefox Bug 1054906). - Die ES2017-Methode
Object.getOwnPropertyDescriptors()
wurde implementiert (Firefox Bug 1245024). - Das Verhalten von \W in
RegExp
mit Unicode- und IgnoreCase-Flags wurde geändert, um das aktuelle Entwurfsdokument zu übernehmen. Jetzt passt es nicht mehr zu K, S, k, s und KELVIN SIGN (U+212A) sowie LATIN SMALL LETTER LONG S (U+017F) (Firefox Bug 1281739).
Entwicklerwerkzeuge
- Die Webkonsole versteht jetzt Sitemaps.
- Der Speicherinspektor ermöglicht es Ihnen jetzt, einzelne Elemente aus IndexedDB-Objektspeichern zu löschen.
- Das Speicherwerkzeug ist standardmäßig aktiviert.
- Die Boxmodell-Ansicht wurde in die Berechnete Ansicht verschoben.
- Die Webkonsole zeigt jetzt für XHR- oder Fetch()-Netzwerkanfragen Stapelspuren an.
Alle devtools-Bugs, die zwischen Firefox 49 und Firefox 50 behoben wurden.
HTTP
- Der 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-Präfixe
__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 entspricht jetzt derconnect-src
CSP 1.1-Richtlinie (Firefox Bug 1100181). - Unterstützung für die
sandbox
CSP-Richtlinie wurde hinzugefügt (Firefox Bug 671389). - Es ist jetzt möglich, eine Content Security Policy für Worker festzulegen (Firefox Bug 959388).
- Die Methode
Navigator.sendBeacon()
löst keine Ausnahme mehr aus, 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 RC4-Verschlüsselung wurde in Firefox 36 veraltet und in Firefox 44 standardmäßig deaktiviert. Die einjährige Schonfrist ist abgelaufen, daher entfernt Firefox 50 jegliche Unterstützung für RC4 (Google Chrome entfernte die Unterstützung für RC4 im August 2016). Bei jedem Aufruf einer RC4-Verschlüsselung meldet Firefox ab jetzt 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). - Anstatt einen
NetworkError
zurückzugeben, löst ein asynchronesXMLHttpRequest
, das bei CORS oder anderen Netzwerkeinschränkungen fehlschlägt, jetzt einenerror
aus, der wie jeder andere Fehler abgefangen werden kann (Firefox Bug 709991). XMLHttpRequest.getResponseHeader()
undXMLHttpRequest.getAllResponseHeaders()
geben jetzt standardmäßig auch leere Header zurück. Dies kann über die Voreinstellungnetwork.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 von benutzerdefinierten Elementen (Firefox Bug 1276579).
SVG
- Das
allowReorder
-Attribut wurde entfernt und das Verhalten, das es einstellte, ist jetzt der Standard für SVG-<switch>
-Elemente (Firefox Bug 1279690). - Das
defer
-Schlüsselwort für daspreserveAspectRatio
-Attribut auf SVG-<image>
-Elementen wurde entfernt, um der neuesten SVG2-Spezifikation zu entsprechen (Firefox Bug 1280425).
Drag-and-Drop-API
- Die Eigenschaft
DataTransfer.items
wurde implementiert und ermöglicht den Zugriff auf mehrere Elemente, die mithilfe 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. Aktualisieren Sie unbedingt jeden Code, der diese noch verwendet, um die HTML-Drag-and-Drop-API zu verwenden (Firefox Bug 1162050).
Pointer Lock API
- Die Pointer Lock API ist jetzt ohne Präfix (Firefox Bug 991899).
- Vor Firefox 50 forderte
requestPointerLock()
die Erlaubnis über einen kleinen Dialog an, und der Zeiger-Lock wurde erst aktiviert, nachdem der Benutzer die Genehmigung erteilt hatte. Ab Firefox 50 ist der Zeiger-Lock wie die Fullscreen-API: er wird sofort gewährt, aber eine Benachrichtigung wird angezeigt, die dem Benutzer erklärt, wie er sie verlassen 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 Worker
- Die Methode
WindowClient.navigate()
wurde implementiert. Diese Methode ermöglicht es Ihnen, eine angegebene URL in einem Client-Fenster zu öffnen, das vom Service Worker kontrolliert wird (Firefox Bug 1218148).
WebGL
- Die
EXT_shader_texture_lod
WebGL-Erweiterung 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
erzeugt jetzt dasaddtrack
-Ereignis, 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 bearbeiten. - Die
MediaStreamTrack
-Schnittstelle unterstützt jetzt dasended
-Ereignis und dessen Ereignishandler. - Firefox unterstützt jetzt die Eigenschaft
MediaStreamTrack.readyState
, die angibt, ob der Track aktiv ist oder dauerhaft beendet wurde. - Die Methoden
MediaStreamTrack.getConstraints()
undgetSettings()
der SchnittstelleMediaStreamTrack
wurden implementiert; mit diesen können Sie die zuletzt angewendete Menge von angepassten Eigenschaftsbeschränkungen und die tatsächlichen Werte aller einschränkbaren Eigenschaften des Tracks abrufen. Die zugehörigen Datentypen wurden ebenfalls dokumentiert. - Die Eigenschaft
RTCDataChannel.stream
wurde entfernt. Dies wurde mitRTCDataChannel.id
in Firefox 24 ersetzt, wurde aber aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Stellen Sie sicher, dass Ihr Code aktualisiert wird, um dieid
-Eigenschaft zu verwenden, falls dies noch nicht geschehen ist.
Web Audio API
- Die
PannerNode
-Schnittstelle unterstützt jetzt die 3D-Kartesischen Raum-Eigenschaften für die Position (PannerNode.positionX
,PannerNode.positionY
, undPannerNode.positionZ
) und Richtung (PannerNode.orientationX
,PannerNode.orientationY
,PannerNode.orientationZ
) einer Audioquelle. - Die Schnittstelle
IIRFilterNode
, die einen allgemeinen infinite impulse response (IIR) Filter implementiert, wurde implementiert. - Das Drosseln der Timer im Hintergrund durch
Window.setInterval()
,WorkerGlobalScope.setInterval()
,setTimeout()
undsetTimeout()
tritt nicht mehr auf, wenn ein Web Audio APIAudioContext
aktiv Sound abspielt. Dies soll helfen, Probleme mit zeitempfindlicher Audiowiedergabe (wie Musikplayer, die einzelne Noten mit Timern generieren) im Hintergrund zu vermeiden (Firefox Bug 1181073).
Audio/Video
- Das
AlignSetting
-Enum (das mögliche Werte fürVTTCue.align
darstellt) enthielt zuvor fälschlicherweise den Wert"middle"
statt"center"
. Dies wurde korrigiert (Firefox Bug 1276130). - Die nicht standardmäßige und experimentelle Methode
HTMLMediaElement.seekToNextFrame()
sucht jetzt asynchron den nächsten Frame im Medium und gibt einPromise
zurück, das aufgelöst wird, sobald die Suche abgeschlossen ist. - Die Implementierung von
HTMLTrackElement
wurde korrigiert, um<track>
-Elementen zu erlauben, Ressourcen auch dann zu laden, wenn sie sich nicht in einem Dokument befinden (Firefox Bug 871747).
Battery API
- Die
Navigator.battery
-Eigenschaft, die seit Firefox 43 veraltet ist, ist jetzt veraltet und wurde entfernt. Verwenden Sie die Methodenavigator.getBattery()
anstelle dessen, um ein Batterie-Promise
zu erhalten, das sich auflöst, wenn derBatteryManager
verfügbar ist; derBatteryManager
wird als Argument an den Erfüllungshandler des Versprechens übergeben (Firefox Bug 12593355).
Dateien und Verzeichnisse
-
Ein Teil des File and Directory Entries API wurde implementiert, um die Kompatibilität mit Websites zu verbessern, die zuvor 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 das Attributwebkitdirectory
des<input>
-Elements wurden implementiert; dies ermöglicht es Ihnen, ein Dateieingabeformular so zu konfigurieren, dass es statt Dateien Verzeichnisse akzeptiert (Firefox Bug 1258489). -
HTMLInputElement.webkitEntries
wurde implementiert; dies gibt ein Array von Objekten basierend aufFileSystemEntry
zurück, das die ausgewählten Elemente darstellt. -
File.webkitRelativePath
wurde implementiert; dies enthält den Pfad der Datei relativ zum Stammverzeichnis des enthaltenenFileSystemDirectoryEntry
, das sich unter den Elementen in der vonHTMLInputElement.webkitEntries
zurückgegebenen Liste befand. -
Diese APIs sind jetzt standardmäßig aktiviert; einige waren zuvor verfügbar, jedoch nur hinter einer Voreinstellung (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 darstellt (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 Voreinstellung versteckt.