Firefox 51 Release-Notes für Entwickler
Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie Firefox Developer Edition. Firefox 51 wurde am 24. Januar 2017 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
>Entwicklerwerkzeuge
HTML
<hr>-Elemente können jetzt als Trennzeichen in<menu>-Elementen verwendet werden (Firefox-Bug 870388).- Die
selectionStart- undselectionEnd-Attribute der<input>-und<textarea>-Elemente geben jetzt korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl getroffen wurde, anstatt 0 zurückzugeben (Firefox-Bug 1287655).
CSS
:indeterminatefür <input type="radio"> implementiert (Firefox-Bug 885359).:placeholder-shownfür<input type="text">implementiert (Firefox-Bug 1069015).- Das
::placeholderPseudo-Element ist jetzt unverändert (Firefox-Bug 1069012). - Die
:validCSS-Pseudoklasse, die keine gültigen<form>-Elemente erkannte, wurde behoben (Firefox-Bug 1285425). - Der
unicode-bidi-Wertplaintextfunktioniert jetzt auch mit vertikalen Schreibmodi (Firefox-Bug 1302734). - Die
fill-box- undstroke-box-Werte vonclip-pathwerden jetzt korrekt unterstützt; zuvor waren sie Aliasnamen vonborder-box(Firefox-Bug 1289011). - Flexlinienhöhe (einschließlich gedehnte Flexelemente) in einzeiligen Auto-Höhen-Flexcontainern mit max-height klammern (Spezifikationsänderung) (Firefox-Bug 1000957).
JavaScript
- Die ES2015-Eigenschaft
Symbol.toStringTagwurde implementiert (Firefox-Bug 1114580). - Die ES2015-Methoden
TypedArray.prototype.toString()undTypedArray.prototype.toLocaleString()wurden implementiert (Firefox-Bug 1121938). - Die Methode
DateTimeFormat.prototype.formatToParts()ist jetzt verfügbar (Firefox-Bug 1289340). constundletsind jetzt vollständig ES2015-konform (Firefox-Bug 950547).- Bei Verwendung von
constinfor...of-Schleifen gibt es jetzt eine frische Bindung für jede Iteration und es wird keinSyntaxErrormehr ausgelöst (Firefox-Bug 1101653). - Die veraltete
for each...in-Schleife zeigt nun eine Warnung in der Konsole an (Firefox-Bug 1293205). Bitte aktualisieren Sie Ihren Code, um die standardisiertefor...of-Schleife zu verwenden. - Generatorfunktionen können keine Labels mehr haben und
letals Labelname ist jetzt verboten (Firefox-Bug 1288459). - Veraltete Legacy-Generatorfunktionen lösen jetzt einen Fehler aus, wenn sie in Methodendefinitionen verwendet werden (Firefox-Bug 1199296).
- Die
next()-Methode des Iterator-Protokolls wird jetzt einenTypeErrorauslösen, wenn der zurückgegebene Wert kein Objekt ist (Firefox-Bug 1016936). - Kind-indexierte Pseudo-Klassen-Selektoren sollten ohne Eltern passen (Firefox-Bug 1300374).
WebGL
-
WebGL 2 ist jetzt standardmäßig aktiviert. Siehe webglsamples.org/WebGL2Samples für einige Demo-Anwendungen.
- WebGL 2 stellt das
WebGL2RenderingContext-Interface bereit, das OpenGL ES 3.0 zum<canvas>-Element bringt. - Neue Funktionen umfassen:
- 3D-Texturen,
- Sampler-Objekte,
- Uniform Buffer-Objekte,
- Sync-Objekte,
- Query-Objekte,
- Transform Feedback-Objekte,
- Beförderte Erweiterungen, die jetzt Kern von WebGL 2 sind: Vertex Array-Objekte, Instancing, mehrfache Renderziele, Fragmenttiefe.
- WebGL 2 stellt das
-
Die Erweiterung
WEBGL_compressed_texture_es3(implementiert in Firefox 46) wurde inWEBGL_compressed_texture_etcumbenannt (Firefox-Bug 1316778) und ist in WebGL 2-Kontexten nicht mehr standardmäßig enthalten (Firefox-Bug 1306174). -
Die Erweiterung
EXT_disjoint_timer_querywurde aktualisiert, umWebGLQuery-Objekte anstelle vonWebGLTimerQuery-Objekten zu verwenden (Firefox-Bug 1308057). -
Die Erweiterung
OES_vertex_array_objectverwendet jetzt das WebGL 2-ObjektWebGLVertexArrayObjectanstelle ihres eigenenWebGLVertexArrayObjectOES-Objekts (Firefox-Bug 1318523). -
Sie können jetzt
ImageBitmap-Objekte als Quellen für Texturbilder in Methoden wieWebGLRenderingContext.texImage2D(),WebGLRenderingContext.texSubImage2D(),WebGL2RenderingContext.texImage3D()oderWebGL2RenderingContext.texSubImage3D()verwenden (Firefox-Bug 1324924).
IndexedDB v2
- Die Implementierung von IndexedDB Version 2 ist jetzt abgeschlossen:
- Unterstützung für die neue Methode
IDBObjectStore.getKey()wurde hinzugefügt (Firefox-Bug 1271506). - Unterstützung für die Methode
IDBCursor.continuePrimaryKey()wurde hinzugefügt (Firefox-Bug 1271505). - Binärschlüssel werden jetzt unterstützt (Firefox-Bug 1271500).
- Siehe auch "What's new in IndexedDB 2.0?" – Mozilla hacks
- Unterstützung für die neue Methode
Canvas
- Die nicht standardisierte Methode
CanvasRenderingContext2D.mozFillRule()wurde entfernt; Die Füllregel kann mit einem Parameter der StandardmethodeCanvasRenderingContext2D.fill()definiert werden (Firefox-Bug 826619). - Die Eigenschaft
CanvasRenderingContext2D.imageSmoothingEnabledwurde unpräfixiert (Firefox-Bug 768072).
SVG
- Hinzugefügtes
tabindex-Attribut (Firefox-Bug 778654). - Hinzugefügtes
href-Attribut, dasxlink:hrefobsolet macht (Firefox-Bug 1245751). - Sie können jetzt benutzerdefinierte Datenattribute an SVG-Elementen über die
HTMLElement.dataset-Eigenschaft und diedata-*-Reihe von SVG-Attributen verwenden (Firefox-Bug 921834). - CSS-Animationen, die in einem SVG-Bild verwendet werden, das in einem
<img>-Element präsentiert wird, funktionieren jetzt wieder; dies war ein alter Regression (Firefox-Bug 1190881).
Web Workers
- Der nicht standardisierte und veraltete
onclose-Ereignishandler und dieWorker-Nutzung desclose-Ereignisses wurden aus Firefox entfernt.
Netzwerke
- Skripte, die mit einem
image/*,video/*,audio/*odertext/csvMIME-Typ bereitgestellt werden, werden jetzt blockiert und nicht geladen oder ausgeführt. Dies passiert, wenn sie mit<script>deklariert oder überWorkerGlobalScope.importScripts(),Worker(),SharedWorker()geladen werden (Firefox-Bug 1229267 und Firefox-Bug 1288361). - Unterstützung für SHA-1-Zertifikate von öffentlich vertrauenswürdigen Zertifizierungsstellen wurde entfernt (Firefox-Bug 1302140). Siehe auch Phasing Out SHA-1 on the Public Web für mehr Informationen.
- Neue WoSign- und StartCom-Zertifikate werden nicht mehr akzeptiert (Firefox-Bug 1309707), siehe Distrusting New WoSign and StartCom Certificates für mehr Informationen.
- Die PAC-Funktion
FindProxyForURL(url, host)entfernt jetzt Pfade und Abfragen aus https://-URLs, um Informationslecks zu vermeiden (siehe Firefox-Bug 1255474 und CVE-2017-5384).
XHR
- Die Eigenschaft
XMLHttpRequest.responseXMLgibt nicht mehr ein partiellesDocumentmit einem <parsererror>-Knoten ganz oben zurück, wenn ein Parse-Fehler auftritt, wenn versucht wird, die empfangenen Daten zu interpretieren. Stattdessen gibt sie korrektnullzurück (Firefox-Bug 289714). - Um die neueste Spezifikation zu erfüllen, wird ein
XMLHttpRequestohne einen mitsetRequestHeader()gesetztenAccept-Header jetzt mit einem solchen Header gesendet, dessen Wert auf*/*gesetzt ist (Firefox-Bug 918752). XMLHttpRequest.open()wurde so korrigiert, dass bei Weglassen dieusername- undpassword-Parameter jetzt standardmäßig aufnullgesetzt sind, gemäß der Spezifikation (Firefox-Bug 933759).
WebRTC
- Die Methode
RTCPeerConnection.removeStream()wurde entfernt. Sie wurde bereits in Firefox 22 als veraltet markiert und hat lange einenNotSupportedError-DOMExceptiongeworfen. Sie müssen stattdessenRTCPeerConnection.removeTrack()für jede Spur im Stream verwenden. - WebRTC unterstützt jetzt standardmäßig den VP9-Codec. Als es in Firefox 46 hinzugefügt wurde, war VP9 standardmäßig deaktiviert, aber als es aktiviert war, wurde es als bevorzugter Codec festgelegt; Allerdings wurde es aufgrund des aktuellen CPU-Nutzungslevels auf die zweite Wahl (nach VP8) verschoben.
- Die Methode
HTMLMediaElement.captureStream(), die einenMediaStreammit dem Inhalt des angegebenen<video>oder<audio>zurückgibt. Es ist erwähnenswert, dass dies weiterhin mit dem PräfixmozCaptureStream()versehen ist und dass es noch nicht genau der Spezifikation entspricht.
Audio/Video
- Unterstützung für FLAC hinzugefügt (FLAC-Codec) sowohl in FLAC- als auch in Ogg-Container (Firefox-Bug 1195723). Unterstützte FLAC-MIME-Typen sind:
audio/flacundaudio/x-flac. Für FLAC in Ogg unterstützte MIME-Typen sind:audio/ogg; codecs=flacundvideo/ogg; codecs=flac. - Unterstützung für FLAC in MP4 hinzugefügt (sowohl mit als auch ohne MSE) (Firefox-Bug 1303888).
- Drosselung in Hintergrundeinstellungen von Timern, die durch
Window.setInterval(),WorkerGlobalScope.setInterval(),setTimeout()undsetTimeout()erstellt wurden, wurde in Firefox 50 geändert, um nicht mehr zu erfolgen, wenn ein Web Audio APIAudioContextaktiv Ton abspielt. Allerdings löst dies nicht alle Szenarien, bei denen eine zeitabhängige Audiowiedergabe (wie Musikplayer, die einzelne Noten mit Timern erzeugen) nicht mehr richtig funktionieren konnte. Aus diesem Grund drosselt Firefox 51 keine Hintergrundregisterkarten mehr, die einenAudioContexthaben, selbst wenn er derzeit keinen Ton abspielt.
DOM
- Die Methode
DOMImplementation.hasFeature()gibt jetzt in allen Fällentruezurück (Firefox-Bug 984778). - Die Eigenschaften
selectionStartundselectionEndderHTMLInputElementundHTMLTextAreaElementgeben jetzt korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl getroffen wurde, anstatt 0 zurückzugeben (Firefox-Bug 1287655). - Das Interface
HTMLImageElementund das entsprechende<img>-Element unterstützen jetzt denonerror-Ereignishandler und sendenerror-Ereignisse an das Element, wann immer Fehler beim Laden oder Interpretieren von Bildern auftreten. - Sie können jetzt den Effekt einer Web-Animation ändern, indem Sie den Wert ihrer
effect-Eigenschaft festlegen. Zuvor war diese Eigenschaft schreibgeschützt (Firefox-Bug 1049975). - Die Methode
Permissions.revoke()der Permissions-API wurde hinter eine Präferenz (dom.permissions.revoke.enable) gestellt und standardmäßig deaktiviert, da ihr Design und sogar ihre sehr Existenz in der Web Application Security Working Group diskutiert werden. - Die
Navigator.storage-Eigenschaft der Storage API und die MethodeStorageManager.estimate()wurden implementiert zusammen mit dem benötigten unterstützenden Code. Speicherbeharrungsfunktionen sind noch nicht implementiert. Siehe Firefox-Bug 1267941. - Aus Datenschutzgründen runden sowohl
BatteryManager.chargingTimeals auchBatteryManager.dischargingTimeden zurückgegebenen Wert jetzt auf die nächsten 15 Minuten (Firefox-Bug 1292655).
Ereignisse
- Firefox unterstützt jetzt die Ereignishandler
onanimationstart,onanimationiterationundonanimationend, zusätzlich zur Unterstützung der entsprechenden Ereignisse mitaddEventListener()(Firefox-Bug 911987). - Firefox unterstützt jetzt den Ereignishandler
ontransitionend(Firefox-Bug 911987).
Sicherheit
- Wenn Anmeldeseiten (d.h. solche, die ein
<input type="password">-Feld enthalten) erstellt werden, die unsicher eingereicht werden sollen, zeigt Firefox ein durchgestrichenes Schloss-Symbol in der Adressleiste an, um Benutzer zu warnen (Firefox-Bug 1319119).
Entfernung
- Die nicht standardisierte Simple Push API, die hauptsächlich für den Einsatz mit Firefox OS gedacht war und jetzt durch die W3C Push API ersetzt wurde, wurde komplett aus Gecko entfernt (Firefox-Bug 1296579).
- Die nicht standardisierte Alarms API, die hauptsächlich für den Einsatz mit Firefox OS gedacht war, wurde komplett aus Gecko entfernt (Firefox-Bug 1300884).
- Die Unterstützung für Präfixe in der Page Visibility API wurde entfernt (Firefox-Bug 812701).
Änderungen für Add-On- und Mozilla-Entwickler
>WebExtensions
-
Neue APIs:
-
Sie können jetzt eine WebExtension in einen Legacy-Add-on-Typ einbetten (Firefox-Bug 1252215).
-
Zwischenablagezugriff wird jetzt unterstützt (Firefox-Bug 1197451)
-
Die Argumente, die an den Rückruf von
tabs.executeScript()übergeben werden, wurden korrigiert (Firefox-Bug 1290157) -
localStorage wird jetzt gelöscht, wenn eine WebExtension deinstalliert wird (Firefox-Bug 1213990)
-
Ein geänderter
Content-Type-Header in Web Extensions wird jetzt berücksichtigt (Firefox-Bug 1304331)
Sonstiges
-
Die
multiprocessCompatible-Eigenschaft voninstall.rdfmuss jetzt explizit auffalsegesetzt werden, um zu verhindern, dass Multiprozess in Firefox aktiviert wird, wenn das Add-on installiert ist. -
Die Mozilla-spezifische Social API wurde erheblich geändert (hauptsächlich um APIs zu entfernen, die nicht mehr verwendet werden), wie folgt:
- Das
MozSocial-Interface und dieNavigator.mozSocial-Eigenschaft, die es unterstützt, wurden entfernt. - Die Social Bookmarks API wurde entfernt.
- Die Social Chat-Funktionalität wurde entfernt.
- Die Social Status API wurde entfernt.
- Alle sozialen Widgets, außer dem Share-Panel, wurden entfernt. Dazu gehören die Social-Sidebar, Flyover-Panels und so weiter.
- Alle unterstützenden Benutzeroberflächeselemente und Funktionen für die entfernten APIs wurden ebenfalls entfernt.
- Social-Service-Provider-Manifest-Eigenschaften, die die entfernte Funktionalität unterstützten, werden nicht mehr unterstützt.
- Das
-
Wenn ein Add-on
mimeTypes.rdfverwendet, um eine Zuordnung von Dateierweiterung zu MIME-Typ bereitzustellen, muss es jetzt einen Eintrag in der Kategorie"ext-to-type-mapping"registrieren (Firefox-Bug 306471). -
Die Browser API enthält jetzt ein
detail-Objekt im Ereignisobjekt desmozbrowserlocationchange-Ereignisses, dascanGoForward/canGoBack-Eigenschaften enthält, die die synchrone Abrufung des vor/zurück-Status des mozBrowser ermöglichen (Firefox-Bug 1279635).