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 Entwickler von Firefox, Gecko und Add-ons.
Änderungen für Webentwickler
HTML
- Der Standardstil des
<bdo>
setzt jetztunicode-bidi
mit dem Wertisolate-override
(Firefox Bug 1249497). - Die Einstellung des
src
-Attributs des<track>
-Elements funktioniert jetzt korrekt (Firefox Bug 1281418). - Das
referrerpolicy
-Attribut bei<area>
,<a>
,<img>
,<iframe>
und<link>
-Elementen ist jetzt standardmäßig verfügbar (Firefox Bug 1223838, Firefox Bug 1264165).
CSS
- Ecken mit
border-radius
und gestrichelten bzw. gepunkteten Stilen werden jetzt mit dem angegebenen Stil statt einem durchgehenden Stil gerendert (Firefox Bug 382721). - Die nicht standardisierte Pseudoklassen-Selektor
:-moz-full-screen-ancestor
wurde entfernt (Firefox Bug 1199529). - Das
box-sizing: padding-box
wurde entfernt, da es nicht mehr Teil der Spezifikation ist und Firefox der einzige große 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 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, um keine deaktivierten oder schreibgeschützten Eingaben mehr zu matchen (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 dem aktuellen Entwurf der Spezifikation zu entsprechen. Jetzt matcht es nicht mehr K, S, k, s, und KEVIN-ZEICHEN (U+212A) und LATEINISCHER KLEINBUCHSTABE LANGES S (U+017F) (Firefox Bug 1281739).
Entwicklerwerkzeuge
- Die Webkonsole versteht jetzt Quellkarten (Source Maps).
- Der Speicherinspektor ermöglicht nun das Löschen einzelner Elemente aus IndexedDB-Objektspeichern.
- Das Speichertool ist jetzt standardmäßig aktiviert.
- Die Box-Model-Ansicht wurde in die Berechnete Ansicht verschoben.
- Die Webkonsole zeigt jetzt Stapelverfolgungen für XHR- oder Fetch()-Netzwerkanfragen an.
Alle behobenen DevTools-Bugs zwischen Firefox 49 und Firefox 50.
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-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 hält sich jetzt an dieconnect-src
CSP 1.1 Richtliniendirektive (Firefox Bug 1100181). - Unterstützung für die
sandbox
CSP Direktive 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()
wirft jetzt keine Ausnahme mehr, wenn die Beacon-Daten aufgrund einer Content Security Policy-Einschränkung nicht gesendet werden konnten; stattdessen gibt siefalse
zurück, wie erwartet (Firefox Bug 1234813). - Unterstützung für RC4-Verschlüsselung wurde in Firefox 36 deaktiviert und in Firefox 44 standardmäßig deaktiviert. Die einjährige Gnadenfrist ist abgelaufen, sodass Firefox 50 alle Unterstützung für RC4 entfernt (Google Chrome entfernte die Unterstützung für RC4 im August 2016). Von nun an wird Firefox jedes Mal, wenn es auf RC4-Verschlüsselung trifft, einen
SSL_ERROR_NO_CYPHER_OVERLAP
-Fehler melden.
Netzwerk
- Wenn ein Fehler während einer asynchronen
XMLHttpRequest
aufgetreten ist, gibt die MethodeXMLHttpRequest.getAllResponseHeaders()
jetzt einen leeren String zurück (Firefox Bug 1286744). - Statt einen
NetworkError
zurückzugeben, löst eine asynchroneXMLHttpRequest
, die aufgrund von CORS oder anderen Netzwerkbeschränkungen fehlschlägt, jetzt einenerror
aus, der wie jeder andere Fehler aufgefangen werden kann (Firefox Bug 709991). XMLHttpRequest.getResponseHeader()
undXMLHttpRequest.getAllResponseHeaders()
geben jetzt auch standardmäßig leere Header zurück. Dies kann über die Einstellungnetwork.http.keep_empty_response_headers_as_empty_string
gesteuert werden (Firefox Bug 918721).- Die Option
only-if-cached
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 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 der neuesten SVG2-Spezifikation zu folgen (Firefox Bug 1280425).
Drag and Drop API
- Die
DataTransfer.items
-Eigenschaft wurde implementiert, um auf mehrere Elemente, die per HTML-Drag-and-Drop-API gezogen und abgelegt werden, zuzugreifen. Um dies zu ermöglichen, werden jetzt auch die SchnittstellenDataTransferItem
undDataTransferItemList
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 alle Codes, die sie noch verwenden, aktualisieren, 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 fragte
requestPointerLock()
um Erlaubnis mit einem Türanhänger und der Zeiger-Lock würde nicht aktiviert, bis der Benutzer die Erlaubnis erteilte. Ab Firefox 50 ist der Zeiger-Lock wie die Fullscreen-API: Er wird sofort gewährt, aber es wird eine Benachrichtigung angezeigt, die dem Benutzer erklärt, wie er den Zeiger-Lock 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 Workers
- Die Methode
WindowClient.navigate()
wurde implementiert. Diese Methode ermöglicht es Ihnen, eine bestimmte URL in einem Client-Fenster zu öffnen, das vom Service Worker kontrolliert 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
generiert 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 auf"addtrack"
-Ereignisse zu reagieren. - Die Schnittstelle
MediaStreamTrack
unterstützt jetzt dasended
-Ereignis und dessen Ereignishandler. - 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, das zuletzt angewendete Set an benutzerdefinierten Eigenschaftenbeschränkungen und die tatsächlichen Werte aller einschränkbaren Eigenschaften des Tracks abzurufen. Die begleitenden Datentypen wurden ebenfalls dokumentiert. - Die
RTCDataChannel.stream
-Eigenschaft wurde entfernt. Diese wurde in Firefox 24 durchRTCDataChannel.id
ersetzt, aber zur Abwärtskompatibilität unterstützt. Bitte aktualisieren Sie Ihren Code, um dieid
-Eigenschaft zu verwenden, falls Sie dies noch nicht getan haben.
Web Audio API
- Das
PannerNode
-Interface unterstützt jetzt die 3D-kartesischen Raum-Eigenschaften 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 einen allgemeinen Infinite Impulse Response (IIR)-Filter implementiert, wurde implementiert. - Die Drosselung in Hintergrund-Tabs von Timern, die durch
Window.setInterval()
,WorkerGlobalScope.setInterval()
,setTimeout()
undsetTimeout()
erstellt wurden, erfolgt nicht mehr, wenn ein Web Audio APIAudioContext
aktiv Sound abspielt. Dies sollte helfen, Probleme mit timing-sensitiver 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 fälschlicherweise zuvor den Wert"middle"
anstelle von"center"
. Dies wurde korrigiert (Firefox Bug 1276130). - Die nicht standardisierte und experimentelle Methode
HTMLMediaElement.seekToNextFrame()
sucht jetzt asynchron zum nächsten Frame im Medium und gibt einPromise
zurück, das sich auflöst, sobald das Suchen 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).
Battery API
- Die
Navigator.battery
-Eigenschaft, die seit Firefox 43 veraltet war, ist jetzt obsolet und wurde entfernt. Verwenden Sie stattdessen dienavigator.getBattery()
-Methode, um eine Batterie-Promise
zu erhalten, die sich auflöst, wenn derBatteryManager
zur Nutzung verfügbar ist; derBatteryManager
wird in den Fulfillment-Handler für das Promise ü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 zuvor nur mit Google Chrome kompatibel waren (Firefox Bug 1265767).
-
Die asynchronen API-Schnittstellen wurden implementiert, allerdings nur mit der Einschränkung, dass nur das Lesen von Dateien unterstützt wird; zum Beispiel ist die Methode
FileSystemFileEntry.createWriter()
ein No-Op. -
Diese Schnittstellen sind 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, ein Datei-Eingabeformular so zu konfigurieren, dass es statt Dateien Verzeichnisse 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
, 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, aber nur hinter einer Einstellung (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, die Teil des Directory Upload API-Vorschlags ist, wurde inallowdirs
umbenannt (Firefox Bug 1288681). Diese Eigenschaft ist hinter einer Einstellung verborgen.
Ältere Versionen
- Firefox 49 für Entwickler
- Firefox 48 für Entwickler
- Firefox 47 für Entwickler
- Firefox 46 für Entwickler
- Firefox 45 für Entwickler
- Firefox 44 für Entwickler
- Firefox 43 für Entwickler
- Firefox 42 für Entwickler
- Firefox 41 für Entwickler
- Firefox 40 für Entwickler
- Firefox 39 für Entwickler
- Firefox 38 für Entwickler
- Firefox 37 für Entwickler
- Firefox 36 für Entwickler
- Firefox 35 für Entwickler
- Firefox 34 für Entwickler
- Firefox 33 für Entwickler
- Firefox 32 für Entwickler
- Firefox 31 für Entwickler
- Firefox 30 für Entwickler
- Firefox 29 für Entwickler
- Firefox 28 für Entwickler
- Firefox 27 für Entwickler
- Firefox 26 für Entwickler
- Firefox 25 für Entwickler
- Firefox 24 für Entwickler
- Firefox 23 für Entwickler
- Firefox 22 für Entwickler
- Firefox 21 für Entwickler
- Firefox 20 für Entwickler
- Firefox 19 für Entwickler