Firefox 50 Versionshinweise 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 führt wichtige Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
>HTML
- Der Standardstil von
<bdo>setzt jetztunicode-bidimit dem Wertisolate-override(Firefox-Bug 1249497). - Das Setzen des
srcAttributs des<track>Elements funktioniert jetzt korrekt (Firefox-Bug 1281418). - Das
referrerpolicyAttribut auf<area>,<a>,<img>,<iframe>und<link>Elementen ist jetzt standardmäßig verfügbar (Firefox-Bug 1223838, Firefox-Bug 1264165).
CSS
- Ecken mit
border-radiusund gestrichelten sowie gepunkteten Stilen werden jetzt mit dem angegebenen Stil anstelle eines soliden Stils gerendert (Firefox-Bug 382721). - Der nicht standardmäßige
:-moz-full-screen-ancestorPseudo-Klassen-Selektor wurde entfernt (Firefox-Bug 1199529). - Das
box-sizing: padding-boxwurde 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-overrideundplaintextderunicode-bidiEigenschaft sind nun unübertroffen (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
:in-rangeund:out-of-rangePseudo-Klassen haben ihr Verhalten geändert, um deaktivierte oder schreibgeschützte Eingaben nicht mehr zu entsprechen (Firefox-Bug 1264157). - Die
:any-linkPseudo-Klasse ist jetzt unübertroffen (Firefox-Bug 843579). - Der
spaceWert fürborder-image-repeatwurde implementiert (Firefox-Bug 720531).
JavaScript
- Die ES2015 Eigenschaft
Symbol.hasInstancewurde implementiert (Firefox-Bug 1054906). - Die ES2017 Methode
Object.getOwnPropertyDescriptors()wurde implementiert (Firefox-Bug 1245024). - Das Verhalten von \W in
RegExpmit Unicode und ignoreCase Flags wurde geändert, um dem aktuellen Entwurf der Spezifikation zu entsprechen. Jetzt passt es nicht mehr zu K, S, k, s, und dem KELVIN-ZEICHEN (U+212A) und dem LATEINISCHEN KLEINEN LANGEN S (U+017F) (Firefox-Bug 1281739).
Entwickler-Tools
- Die Web-Konsole versteht jetzt Quellkarten.
- Der Speicher-Inspektor erlaubt jetzt das Löschen einzelner Elemente aus IndexedDB-Objektspeichern.
- Das Speicherwerkzeug ist standardmäßig aktiviert.
- Die Boxmodell-Ansicht wurde in die berechnete Ansicht verschoben.
- Die Web-Konsole zeigt jetzt Stack-Traces für XHR oder Fetch() Netzanfragen an.
Alle Entwicklertools-Bugs, die zwischen Firefox 49 und Firefox 50 behoben wurden.
HTTP
- Das experimentelle (und veraltete) SPDY 3.1 ist jetzt standardmäßig deaktiviert Firefox-Bug 1287132.
- Unterstützung für
X-Content-Type-Optionswurde hinzugefügt (Firefox-Bug 471020). - Die Cookie-Präfixe
__Host-und__Secure-wurden implementiert. SieheSet-Cookieund Firefox-Bug 1283368. - Der
Referrer-PolicyHeader wurde implementiert Firefox-Bug 1264164.
Sicherheit
- Das
pingAttribut des<a>Elements hält sich jetzt an dieconnect-srcCSP 1.1 Richtliniendirektive (Firefox-Bug 1100181). - Unterstützung für die
sandboxCSP Direktive wurde hinzugefügt (Firefox-Bug 671389). - Es ist jetzt möglich, eine Content Security Policy für Worker zu setzen (Firefox-Bug 959388).
- Die
Navigator.sendBeacon()Methode wirft keine Ausnahme mehr, wenn die Beacon-Daten aufgrund einer Content Security Policy Einschränkung nicht gesendet werden konnten; stattdessen gibt siefalsezurück, wie erwartet (Firefox-Bug 1234813). - Unterstützung für die RC4-Verschlüsselung wurde in Firefox 36 abgelehnt und standardmäßig in Firefox 44 deaktiviert. Die einjährige Gnadenfrist ist abgelaufen, daher entfernt Firefox 50 jegliche Unterstützung für RC4 (Google Chrome hat die Unterstützung für RC4 im August 2016 entfernt). Von nun an wird Firefox, wenn RC4-Verschlüsselung angetroffen wird, einen
SSL_ERROR_NO_CYPHER_OVERLAPFehler melden.
Netzwerke
- Wenn ein Fehler während eines asynchronen
XMLHttpRequestaufgetreten ist, gibt die MethodeXMLHttpRequest.getAllResponseHeaders()jetzt eine leere Zeichenkette zurück (Firefox-Bug 1286744). - Statt eines
NetworkErrorzurückzugeben, löst ein asynchronerXMLHttpRequest, der aufgrund von CORS oder anderen Netzwerkbeschränkungen fehlschlägt, jetzt einenerroraus, 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 Einstellungnetwork.http.keep_empty_response_headers_as_empty_stringgesteuert werden (Firefox-Bug 918721).- Die
only-if-cachedOption wurde zuRequest.cachehinzugefügt (Firefox-Bug 1272436).
DOM
- Die
onceOption fürEventTarget.addEventListener()wird jetzt unterstützt (Firefox-Bug 1287706). - Die Schnittstelle
NodeListist jetzt iterierbar, und die MethodenforEach(),values(),NodeList.entries()undNodeList.keys()sind jetzt verfügbar (Firefox-Bug 1290636). - Die Schnittstelle
DOMTokenListist 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 optionalenoptionsParameter zur Erstellung von benutzerdefinierten Elementen (Firefox-Bug 1276579).
SVG
- Das
allowReorderAttribut wurde gestrichen, und das Verhalten, das es einstellt, ist jetzt der Standard für SVG<switch>Elemente (Firefox-Bug 1279690). - Das
deferSchlüsselwort für daspreserveAspectRatioAttribut auf SVG<image>Elementen wurde entfernt, um der neuesten SVG2-Spezifikation zu folgen (Firefox-Bug 1280425).
Drag and Drop API
- Die
DataTransfer.itemsEigenschaft wurde implementiert, um den Zugriff auf mehrere Elemente zu ermöglichen, die mit der HTML Drag and Drop API gezogen und fallengelassen werden. Um dies zu ermöglichen, werden dieDataTransferItemundDataTransferItemListSchnittstellen jetzt ebenfalls unterstützt (Firefox-Bug 906420). Dies ist standardmäßig aktiviert. - Die alten, veralteten, Firefox-spezifischen Drag-and-Drop-API-Ereignisse
dragdropunddraggesturewerden nicht mehr unterstützt. Stellen Sie sicher, dass Sie jeglichen Code aktualisieren, der sie noch verwendet, um die HTML Drag and Drop API zu verwenden (Firefox-Bug 1162050.
Pointer Lock API
- Die Pointer Lock API ist jetzt unpräfixiert (Firefox-Bug 991899).
- Vor Firefox 50 verlangte
requestPointerLock()die Erlaubnis durch ein Benachrichtigungssymbol, und der Zeigerverschluss würde nicht aktiviert, bis der Benutzer die Erlaubnis erteilte. Ab Firefox 50 ist der Zeigerverriegelung wie die Fullscreen-API: Sie wird sofort gewährt, aber es wird eine Benachrichtigung angezeigt, die dem Nutzer erklärt, wie er sie verlassen kann (Firefox-Bug 1273351).
IndexedDB
- Ein
closeEreignis wird jetzt an dasIDBDatabaseObjekt gesendet, wenn die entsprechende Datenbank unerwartet geschlossen wird (Firefox-Bug 1151017).
Service Workers
- Die
WindowClient.navigate()Methode 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_lodWebGL-Erweiterung wurde implementiert (Firefox-Bug 1111689). - Die
texImageMethoden wurden für WebGL 2 aktualisiert, um PBOs (PIXEL_UNPACK_BUFFER) zu implementieren (Firefox-Bug 1280499).
WebRTC
- Das Hinzufügen eines Tracks zu einem
MediaStreamerzeugt jetzt dasaddtrackEreignis wie in der Spezifikation beschrieben. Das Ereignis ist vom TypMediaStreamTrackEventund 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
MediaStreamTrackSchnittstelle unterstützt jetzt dasendedEreignis und dessen Ereignishandler. - Firefox unterstützt jetzt die
MediaStreamTrack.readyStateEigenschaft, die angibt, ob der Track live oder permanent beendet ist. - Die Methoden
MediaStreamTrack.getConstraints()undMediaStreamTrack.getSettings()derMediaStreamTrackSchnittstelle wurden implementiert; diese ermöglichen es Ihnen, das zuletzt angewendete Set benutzerdefinierter Eigenschaftsbeschränkungen und die tatsächlichen Werte aller beschränkbaren Eigenschaften des Tracks abzurufen. Die zugehörigen Datentypen wurden ebenfalls dokumentiert. - Die
RTCDataChannel.streamEigenschaft wurde entfernt. Diese wurde durchRTCDataChannel.idin Firefox 24 ersetzt, wurde jedoch aus Kompatibilitätsgründen weiterhin unterstützt. Bitte stellen Sie sicher, dass Ihr Code aktualisiert wird, um dieid-Eigenschaft zu verwenden, falls dies noch nicht geschehen ist.
Web Audio API
- Die
PannerNodeSchnittstelle unterstützt jetzt die 3D-Kartesischen-Raum-Eigenschaften für Position (PannerNode.positionX,PannerNode.positionYundPannerNode.positionZ) und Richtung (PannerNode.orientationX,PannerNode.orientationY,PannerNode.orientationZ) einer Audioquelle. - Die Schnittstelle
IIRFilterNode, welche einen allgemeinen infinite impulse response (IIR) Filter implementiert, wurde implementiert. - Drosselung in Hintergrundtabs von Timern, die durch
Window.setInterval(),WorkerGlobalScope.setInterval(),setTimeout()undsetTimeout()erstellt wurden, erfolgt nicht mehr, falls eine Web Audio APIAudioContextaktiv Sound abspielt. Dies sollte helfen, Probleme mit zeitkritischer Audiowiedergabe (wie Musikplayer, die einzelne Noten mit Timern erzeugen) im Hintergrund zu verhindern (Firefox-Bug 1181073).
Audio/Video
- Die
AlignSettingAufzählung (die mögliche Werte fürVTTCue.aligndarstellt) enthielt zuvor fälschlicherweise den Wert"middle"anstelle von"center". Dies wurde korrigiert (Firefox-Bug 1276130). - Die nicht standardisierte und experimentelle Methode
HTMLMediaElement.seekToNextFrame()sucht jetzt asynchron nach dem nächsten Frame in den Medien und gibt einePromisezurück, die aufgelöst wird, sobald die Suche abgeschlossen ist. - Die Implementierung von
HTMLTrackElementwurde korrigiert, um<track>Elementen das Laden von Ressourcen zu ermöglichen, auch wenn sie sich nicht in einem Dokument befinden (Firefox-Bug 871747).
Battery API
- Die
Navigator.batteryEigenschaft, die seit Firefox 43 veraltet ist, ist jetzt überflüssig und wurde entfernt. Verwenden Sie stattdessen dienavigator.getBattery()Methode, um eine Batterie-Promisezu erhalten, die aufgelöst wird, wenn derBatteryManagerzur Verwendung verfügbar ist; derBatteryManagerwird an den Erfüllungshandler für das Versprechen übergeben (Firefox-Bug 12593355).
Dateien und Verzeichnisse
-
Ein Subset 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, mit dem Vorbehalt, dass nur das Lesen von Dateien unterstützt wird; beispielsweise ist die Methode
FileSystemFileEntry.createWriter()eine No-Op. -
Diese Schnittstellen wurden implementiert:
FileSystemFileSystemEntry(nur Eigenschaften; die Methoden wurden nicht implementiert)FileSystemFileEntry(außercreateWriter())FileSystemDirectoryEntry(außerremoveRecursively())FileSystemDirectoryReader
-
HTMLInputElement.webkitdirectorysowie daswebkitdirectoryAttribut des<input>Elements wurden implementiert; dies ermöglicht es Ihnen, eine Dateieingabe zu konfigurieren, um Verzeichnisse anstelle von Dateien zu akzeptieren (Firefox-Bug 1258489). -
HTMLInputElement.webkitEntrieswurde implementiert; dies gibt ein Array von aufFileSystemEntrybasierenden Objekten zurück, die die ausgewählten Elemente darstellen. -
File.webkitRelativePathwurde implementiert; dies enthält den Pfad der Datei relativ zum Wurzelverzeichnis des enthaltenenFileSystemDirectoryEntry, das sich unter den Einträgen in der Liste befand, die vonHTMLInputElement.webkitEntrieszurückgegeben wurde. -
Diese APIs sind jetzt standardmäßig aktiviert; einige waren zuvor verfügbar, jedoch 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, einFileSystemEntryzu erhalten, das eine fallengelassene Datei darstellt (Firefox-Bug 1289255). Dies ist standardmäßig aktiviert. -
Die
HTMLInputElement.directoryEigenschaft, Teil des Directory Upload API Vorschlags, wurde inallowdirsumbenannt (Firefox-Bug 1288681). Diese Eigenschaft ist hinter einer Einstellung verborgen.