Veröffentlichungshinweise zu 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 Erweiterungsentwickler.
Änderungen für Webentwickler
>HTML
- Der Standardstil von
<bdo>setzt nununicode-bidimit dem Wertisolate-override(Firefox Bug 1249497). - Das Setzen des
src-Attributs des<track>-Elements funktioniert jetzt korrekt (Firefox Bug 1281418). - Das
referrerpolicy-Attribut bei den Elementen<area>,<a>,<img>,<iframe>und<link>ist jetzt standardmäßig verfügbar (Firefox Bug 1223838, Firefox Bug 1264165).
CSS
- Ecken mit
border-radiusund mit gestrichelten und gepunkteten Stilen werden jetzt mit dem angegebenen Stil anstelle eines durchgehenden Stils gerendert (Firefox Bug 382721). - Der nicht-standardisierte
:-moz-full-screen-ancestorPseudoklassen-Selektor wurde entfernt (Firefox Bug 1199529). box-sizing: padding-boxwurde entfernt, da es nicht mehr Teil der Spezifikation ist und Firefox der einzige Hauptbrowser war, der es implementiert hat (Firefox Bug 1166728).- Die drei Werte
isolate,isolate-overrideundplaintextderunicode-bidi-Eigenschaft wurden unpräfixed (Firefox Bug 1141895). - Im Quirks-Modus erbt das Symbol eines Listenelements jetzt die Größe der Liste, wie im Standardmodus (Firefox Bug 648331).
- Die
:in-rangeund:out-of-rangePseudoklassen haben ihr Verhalten geändert, um keine deaktivierten oder schreibgeschützten Eingaben zu umfassen (Firefox Bug 1264157). - Die
:any-linkPseudoklasse ist jetzt unpräfixed (Firefox Bug 843579). - Der
space-Wert fürborder-image-repeatwurde implementiert (Firefox Bug 720531).
JavaScript
- Die ES2015
Symbol.hasInstanceEigenschaft wurde implementiert (Firefox Bug 1054906). - Die ES2017
Object.getOwnPropertyDescriptors()Methode wurde implementiert (Firefox Bug 1245024). - Das Verhalten von \W in
RegExpmit den unicode und ignoreCase Flags wurde geändert, um der aktuellen Entwurfsspezifikation zu entsprechen. Jetzt stimmt es nicht mehr mit K, S, k, s und KELVIN SIGN (U+212A) sowie LATIN SMALL LETTER LONG S (U+017F) überein (Firefox Bug 1281739).
Entwickler-Tools
- Die Web-Konsole versteht jetzt Quellkarten.
- Der Speicherinspektor ermöglicht es nun, einzelne Objekte aus IndexedDB-Objektspeichern zu löschen.
- Das Speicherwerkzeug ist standardmäßig aktiviert.
- Das Boxmodell-Ansicht wurde in die Berechnete Ansicht verschoben.
- Die Web-Konsole zeigt jetzt Call Stacks für XHR- oder Fetch()-Netzwerkanfragen an.
Alle zwischen Firefox 49 und Firefox 50 behobenen Developer-Tools-Bugs.
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. Weitere Informationen finden Sie unterSet-Cookieund Firefox Bug 1283368. - Der
Referrer-Policy-Header wurde implementiert Firefox Bug 1264164.
Sicherheit
- Das
ping-Attribut des<a>-Elements beachtet jetzt dieconnect-srcCSP 1.1 Richtliniendirektive (Firefox Bug 1100181). - Unterstützung für die
sandboxCSP-Richtlinie wurde hinzugefügt (Firefox Bug 671389). - Es ist jetzt möglich, eine Content Security Policy für Worker einzurichten (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 erwartetfalsezurück (Firefox Bug 1234813). - Unterstützung für RC4-Verschlüsselung war seit Firefox 36 veraltet und seit Firefox 44 standardmäßig deaktiviert. Der einjährige Übergangszeitraum 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 nun an wird Firefox jedes Mal, wenn es auf eine RC4-Verschlüsselung trifft, einen
SSL_ERROR_NO_CYPHER_OVERLAP-Fehler melden.
Netzwerk
- Wenn ein Fehler bei einem asynchronen
XMLHttpRequestaufgetreten ist, gibt die MethodeXMLHttpRequest.getAllResponseHeaders()jetzt einen leeren String zurück (Firefox Bug 1286744). - Anstelle eines
NetworkErrorlöst ein asynchronerXMLHttpRequest, der wegen CORS oder anderer Netzeinschränkungen scheitert, jetzt einenerroraus, der wie jeder andere Fehler abgefangen werden kann (Firefox Bug 709991). XMLHttpRequest.getResponseHeader()undXMLHttpRequest.getAllResponseHeaders()geben nun standardmäßig auch leere Header zurück. Dies kann über die Einstellungnetwork.http.keep_empty_response_headers_as_empty_stringgesteuert werden (Firefox Bug 918721).- Die
only-if-cached-Option wurde zuRequest.cachehinzugefügt (Firefox Bug 1272436).
DOM
- Die
once-Option 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 optionalenoptions-Parameter zur Erstellung von benutzerdefinierten Elementen (Firefox Bug 1276579).
SVG
- Das
allowReorder-Attribut wurde entfernt und das Verhalten, das es festlegte, ist nun standardmäßig 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 folgen (Firefox Bug 1280425).
Drag and Drop API
- Die
DataTransfer.itemsEigenschaft wurde implementiert, um Zugriff auf mehrere Elemente zu ermöglichen, die mit der HTML-Ziehen-und-Ablegen-API gezogen und abgelegt werden. Dafür wurden auch die SchnittstellenDataTransferItemundDataTransferItemListunterstü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 Ihren Code aktualisieren, um die HTML-Ziehen-und-Ablegen-API zu nutzen (Firefox Bug 1162050).
Pointer Lock API
- Die Pointer Lock API ist jetzt unpräfixed (Firefox Bug 991899).
- Vor Firefox 50 fragte
requestPointerLock()um Erlaubnis mit einem Doorhanger, und die Zeigerverriegelung wurde nicht aktiviert, bis der Benutzer die Erlaubnis erteilte. Ab Firefox 50 verhält sich die Zeigerverriegelung wie die Fullscreen API: Sie wird sofort gewährt, aber eine Benachrichtigung wird angezeigt, die dem Benutzer erklärt, wie man hinauskommt (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. Mit dieser Methode können Sie eine angegebene URL in einem Clientfenster öffnen, das von dem Service Worker gesteuert wird (Firefox Bug 1218148).
WebGL
- Die
EXT_shader_texture_lodWebGL-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
MediaStreamgeneriert jetzt dasaddtrack-Ereignis, wie in der Spezifikation beschrieben. Das Ereignis ist vom TypMediaStreamTrackEventund wird auf dem Stream abgefeuert, zu dem der Track hinzugefügt wurde. Sie können entwederMediaStream.addEventListener('addtrack', ...)oder dieonaddtrack-Eigenschaft verwenden, um auf"addtrack"-Ereignisse zu reagieren. - Die
MediaStreamTrack-Schnittstelle unterstützt jetzt dasended-Ereignis und dessen 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 erlauben es Ihnen, den zuletzt angewendeten Satz benutzerdefinierter Eigenschaftsbeschränkungen und die tatsächlichen Werte aller beschränkbaren Eigenschaften des Tracks zu bekommen. Die begleitenden Datentypen wurden ebenfalls dokumentiert. - Die
RTCDataChannel.streamEigenschaft wurde entfernt. Diese wurde in Firefox 24 durchRTCDataChannel.idersetzt, blieb aber zur Abwärtskompatibilität erhalten. Bitte stellen Sie sicher, dass Ihr Code auf die Verwendung derid-Eigenschaft aktualisiert wurde, wenn Sie das noch nicht getan haben.
Web Audio API
- Die
PannerNode-Schnittstelle unterstützt jetzt die 3D-Kartesischen Raum-Eigenschaften für die Position (PannerNode.positionX,PannerNode.positionYundPannerNode.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. - Das Drosseln in Hintergrundtabs von Timern, die durch
Window.setInterval(),WorkerGlobalScope.setInterval(),setTimeout()undsetTimeout()erstellt wurden, findet nicht mehr statt, wenn ein Web Audio APIAudioContextaktiv Sound abspielt. Dies sollte helfen, Probleme mit timing-sensitiver Audiowiedergabe (wie Musikplayer, die einzelne Noten mit Timern erzeugen) im Hintergrund zu verhindern (Firefox Bug 1181073).
Audio/Video
- Das
AlignSetting-Enum (das mögliche Werte fürVTTCue.alignrepräsentiert) 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 nach dem nächsten Frame im Medium und gibt einPromisezurück, das aufgelöst wird, wenn die Suche abgeschlossen ist. - Die Implementierung von
HTMLTrackElementwurde korrigiert, um es<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 ist, ist jetzt obsolet und wurde entfernt. Verwenden Sie stattdessen dienavigator.getBattery()-Methode, um ein BatteryPromisezu erhalten, das aufgelöst wird, wenn derBatteryManagerzur Verwendung bereit ist; derBatteryManagerwird 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 zuvor nur mit Google Chrome kompatibel waren (Firefox Bug 1265767).
-
Die asynchronen API-Schnittstellen wurden implementiert, mit der Einschränkung, dass nur das Lesen von Dateien unterstützt wird; zum Beispiel ist die
FileSystemFileEntry.createWriter()-Methode eine leere Operation. -
Diese Schnittstellen wurden implementiert:
FileSystemFileSystemEntry(nur Eigenschaften; die Methoden wurden nicht implementiert)FileSystemFileEntry(außercreateWriter())FileSystemDirectoryEntry(außerremoveRecursively())FileSystemDirectoryReader
-
HTMLInputElement.webkitdirectorysowie daswebkitdirectory-Attribut des<input>-Elements wurden implementiert; dies ermöglicht es Ihnen, einen Datei-Input so zu konfigurieren, dass er Verzeichnisse anstelle von Dateien akzeptiert (Firefox Bug 1258489). -
HTMLInputElement.webkitEntrieswurde implementiert; dies gibt ein Array vonFileSystemEntry-basierten Objekten zurück, die die ausgewählten Elemente darstellen. -
File.webkitRelativePathwurde implementiert; dies enthält den Pfad der Datei relativ zum Wurzelverzeichniseintrag des enthaltenenFileSystemDirectoryEntry, das sich unter den Elementen in der durchHTMLInputElement.webkitEntrieszurückgegebenen Liste befand. -
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 abgelegte Datei darstellt (Firefox Bug 1289255). Dies ist standardmäßig aktiviert. -
Die
HTMLInputElement.directory-Eigenschaft, Teil des Directory Upload API Vorschlags, wurde inallowdirsumbenannt (Firefox Bug 1288681). Diese Eigenschaft ist hinter einer Einstellung verborgen.