Firefox 51 für Entwickler
Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie die Firefox Developer Edition. Firefox 51 wurde am 24. Januar 2017 veröffentlicht. Dieser Artikel listet 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
<hr>
-Elemente können jetzt als Trennzeichen in<menu>
-Elementen verwendet werden (Firefox-Bug 870388).- Die Attribute
selectionStart
undselectionEnd
der<input>
- und<textarea>
-Elemente geben jetzt korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl vorhanden ist, anstatt 0 zurückzugeben (Firefox-Bug 1287655).
CSS
- Implementiert
:indeterminate
für <input type="radio"> (Firefox-Bug 885359). - Implementiert
:placeholder-shown
für<input type="text">
(Firefox-Bug 1069015). - Das
::placeholder
-Pseudoelement ist jetzt unpräfixiert (Firefox-Bug 1069012). - Der
:valid
CSS-Pseudo-Klasse, die keine gültigen<form>
-Elemente abgleichte, wurde behoben (Firefox-Bug 1285425). - Der
plaintext
-Wert vonunicode-bidi
funktioniert jetzt auch mit vertikalen Schreibrichtungen (Firefox-Bug 1302734). - Die Werte
fill-box
undstroke-box
vonclip-path
werden jetzt ordnungsgemäß unterstützt; früher waren sie Aliase vonborder-box
(Firefox-Bug 1289011). - Die Höhe von Flexzeilen (Strecken von Flex-Elementen), in einer einzeiligen Auto-Höhe-Flex-Container mit Maximalhöhe, wird jetzt begrenzt (Firefox-Bug 1000957).
JavaScript
- Die ES2015-Eigenschaft
Symbol.toStringTag
wurde 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). const
undlet
sind jetzt vollständig ES2015-konform (Firefox-Bug 950547).- Die Verwendung von
const
infor...of
-Schleifen hat jetzt für jede Iteration eine neue Bindung und wirft keinenSyntaxError
mehr (Firefox-Bug 1101653). - Die veraltete
for each...in
-Schleife zeigt jetzt eine Warnung in der Konsole an (Firefox-Bug 1293205). Bitte migrieren Sie Ihren Code zur standardisiertenfor...of
-Schleife. - Generatormethoden können keine Label mehr haben und "
let
" als Labelname ist jetzt nicht mehr zulässig (Firefox-Bug 1288459). - Veraltete Legacy-Generatorfunktionen werfen jetzt beim Gebrauch in Methodendefinitionen einen Fehler (Firefox-Bug 1199296).
- Die
next()
-Methode des Iterator-Protokolls wirft jetzt einenTypeError
, wenn der zurückgegebene Wert kein Objekt ist (Firefox-Bug 1016936). - Kinderindex-Pseudoklassenselektoren sollten ohne Elternteil übereinstimmen (Firefox-Bug 1300374).
Entwicklerwerkzeuge
WebGL
-
WebGL 2 ist jetzt standardmäßig aktiviert. Siehe webglsamples.org/WebGL2Samples für einige Demos.
-
WebGL 2 stellt das
WebGL2RenderingContext
-Interface zur Verfügung, das OpenGL ES 3.0 für das<canvas>
-Element bringt. -
Neue Funktionen umfassen:
- 3D-Texturen,
- Sampler-Objekte,
- Uniform-Buffer-Objekte,
- Sync-Objekte,
- Abfrageobjekte,
- Transform-Feedback-Objekte,
- Beförderte Erweiterungen, die jetzt Kern von WebGL 2 sind: Vertex Array Objects, Instancing, Multiple Render Targets, Fragmenttiefe.
-
-
Die
WEBGL_compressed_texture_es3
-Erweiterung (implementiert in Firefox 46) wurde inWEBGL_compressed_texture_etc
umbenannt (Firefox-Bug 1316778) und ist nicht mehr standardmäßig in WebGL 2-Kontexten enthalten (Firefox-Bug 1306174). -
Die
EXT_disjoint_timer_query
-Erweiterung wurde aktualisiert, umWebGLQuery
-Objekte anstelle vonWebGLTimerQuery
-Objekten zu verwenden (Firefox-Bug 1308057). -
Die
OES_vertex_array_object
-Erweiterung verwendet jetzt das WebGL 2WebGLVertexArrayObject
-Objekt anstelle ihres eigenenWebGLVertexArrayObjectOES
-Objekts (Firefox-Bug 1318523). -
Sie können jetzt
ImageBitmap
-Objekte als Quelle für Texturbilder in Methoden wieWebGLRenderingContext.texImage2D()
,WebGLRenderingContext.texSubImage2D()
,WebGL2RenderingContext.texImage3D()
oderWebGL2RenderingContext.texSubImage3D()
verwenden (Firefox-Bug 1324924).
IndexedDB v2
-
Die Implementierung der 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äre Schlü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 über einen Parameter der standardisiertenCanvasRenderingContext2D.fill()
-Methode definiert werden (Firefox-Bug 826619). - Die
CanvasRenderingContext2D.imageSmoothingEnabled
wurde unpräfixiert (Firefox-Bug 768072)
SVG
- Das Attribut
tabindex
wurde hinzugefügt (Firefox-Bug 778654). - Das Attribut
href
wurde hinzugefügt, wodurchxlink:href
obsolet wird (Firefox-Bug 1245751). - Sie können jetzt benutzerdefinierte Datenattribute auf 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 dargestellt wird, funktionieren jetzt wieder; das war eine alte Regression (Firefox-Bug 1190881).
Web Workers
- Der nicht standardisierte und veraltete
onclose
-Ereignishandler und die Verwendung desclose
-Ereignisses durchWorker
wurden aus Firefox entfernt.
Netzwerk
- Skripte, die mit einem
image/*
,video/*
,audio/*
odertext/csv
MIME-Typ bereitgestellt werden, werden jetzt blockiert und nicht geladen oder ausgeführt. Dies geschieht, 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 weitere Informationen.
- Neue WoSign- und StartCom-Zertifikate werden nicht mehr akzeptiert (Firefox-Bug 1309707), siehe Distrusting New WoSign and StartCom Certificates für weitere Informationen.
- Die Funktion
FindProxyForURL(url, host)
im PAC entfernt jetzt Pfade und Abfragen von https:// URLs, um Informationslecks zu vermeiden (siehe Firefox-Bug 1255474 und CVE-2017-5384).
XHR
- Die
XMLHttpRequest.responseXML
-Eigenschaft gibt kein partiellesDocument
mehr zurück, bei dem ein <parsererror>-Knoten oben platziert ist, wenn ein Parse-Fehler auftritt beim Interpretationsversuch der empfangenen Daten. Stattdessen gibt sie korrektnull
zurück (Firefox-Bug 289714). - Um den neuesten Spezifikationen zu entsprechen, wird ein
XMLHttpRequest
ohne ein mitsetRequestHeader()
gesetztesAccept
-Header jetzt mit einem solchen Header gesendet, wobei dessen Wert auf*/*
gesetzt ist (Firefox-Bug 918752). - Behoben
XMLHttpRequest.open()
damit, wenn ausgelassen, die Parameterusername
undpassword
jetzt in Übereinstimmung mit der Spezifikation standardmäßig aufnull
gesetzt sind (Firefox-Bug 933759).
WebRTC
- Die Methode
RTCPeerConnection.removeStream()
wurde entfernt. Sie wurde bereits in Firefox 22 veraltet und hat seit langem einenNotSupportedError
-DOMException
ausgelöst. Sie müssen stattdessenRTCPeerConnection.removeTrack()
verwenden, für jeden Track auf dem Stream. - WebRTC unterstützt jetzt standardmäßig den VP9-Codec. Als VP9 in Firefox 46 hinzugefügt wurde, war es standardmäßig deaktiviert, aber bei Aktivierung der bevorzugte Codec; jedoch wurde es aufgrund seiner aktuellen CPU-Nutzung auf den zweiten Platz (nach VP8) verschoben.
- Die Methode
HTMLMediaElement.captureStream()
, die einenMediaStream
mit dem Inhalt des angegebenen<video>
oder<audio>
zurückgibt. Es ist erwähnenswert, dass dies immer noch mit dem PräfixmozCaptureStream()
versehen ist und es noch nicht exakt der Spezifikation entspricht.
Audio/Video
- Unterstützung für FLAC (FLAC-Codec) in beiden, FLAC und Ogg-Containern, wurde hinzugefügt (Firefox-Bug 1195723). Unterstützte FLAC-MIME-Typen sind:
audio/flac
undaudio/x-flac
. Für FLAC in Ogg sind die unterstützten MIME-Typen:audio/ogg; codecs=flac
undvideo/ogg; codecs=flac
. - Unterstützung für FLAC in MP4 (sowohl mit als auch ohne MSE) hinzugefügt (Firefox-Bug 1303888).
- Drosselung in Hintergrund-Tabs von Timern, die mit
Window.setInterval()
,WorkerGlobalScope.setInterval()
,setTimeout()
undsetTimeout()
erstellt wurden, wurde in Firefox 50 geändert, sodass keine Drosselung mehr erfolgt, wenn ein Web Audio API-AudioContext
aktiv Sound abspielt. Allerdings wurden dadurch nicht alle Szenarien gelöst, in denen timingsensible Audiowiedergabe (wie Musikspieler, die einzelne Noten mit Timern erzeugen) nicht richtig funktionieren konnte. Aus diesem Grund wird Firefox 51 Hintergrund-Tabs, die einenAudioContext
haben, nicht mehr drosseln, auch wenn es gerade keinen Sound abspielt.
DOM
- Die
DOMImplementation.hasFeature()
-Funktion gibt in allen Fällen jetzttrue
zurück (Firefox-Bug 984778). - Die Eigenschaften
selectionStart
undselectionEnd
derHTMLInputElement
undHTMLTextAreaElement
geben jetzt korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl vorhanden ist, anstatt 0 zurückzugeben (Firefox-Bug 1287655). - Das
HTMLImageElement
-Interface und das entsprechende<img>
-Element unterstützen jetzt denonerror
-Ereignishandler, der der Elementeerror
-Ereignisse sendet, wann immer Fehler beim Laden oder Interpretieren von Bildern auftreten. - Sie können jetzt den Effekt einer Web-
Animation
ändern, indem Sie den Wert ihrereffect
-Eigenschaft setzen. Diese Eigenschaft war zuvor schreibgeschützt (Firefox-Bug 1049975). - Die Berechtigung API-Methode
Permissions.revoke()
wurde hinter einer Voreinstellung (dom.permissions.revoke.enable
) versteckt und standardmäßig deaktiviert, da ihr Design und sogar ihre Existenz in der Web Application Security Working Group diskutiert wird. - Die
Navigator.storage
-Eigenschaft und dieStorageManager.estimate()
-Methode der Storage API wurden zusammen mit dem benötigten unterstützenden Code implementiert. Storage-Einheit-Persistenzfunktionen sind noch nicht implementiert. Siehe Firefox-Bug 1267941. - Aus Datenschutzgründen werden sowohl
BatteryManager.chargingTime
als auchBatteryManager.dischargingTime
jetzt auf die nächsten 15 Minuten gerundet (Firefox-Bug 1292655).
Ereignisse
- Firefox unterstützt jetzt die Ereignishandler
onanimationstart
,onanimationiteration
undonanimationend
, zusätzlich zur Unterstützung der entsprechenden Ereignisse mittelsaddEventListener()
(Firefox-Bug 911987). - Firefox unterstützt jetzt den
ontransitionend
-Ereignishandler (Firefox-Bug 911987).
Sicherheit
- Wenn Anmeldeseiten (d.h. solche, die ein
<input type="password">
-Feld enthalten) so erstellt werden, dass sie unsicher übermittelt würden, zeigt Firefox ein durchgestrichenes Schloss-Symbol in der Adressleiste, um Benutzer zu warnen (Firefox-Bug 1319119). Siehe Insecure passwords für weitere Details.
Entfernungen
- Die nicht standardisierte Simple Push API, hauptsächlich zur Verwendung mit Firefox OS gedacht und jetzt durch die W3C Push API ersetzt, wurde vollständig aus Gecko entfernt (Firefox-Bug 1296579).
- Die nicht standardisierte Alarms API, hauptsächlich zur Verwendung mit Firefox OS gedacht, wurde vollständig aus Gecko entfernt (Firefox-Bug 1300884).
- 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 einem Legacy-Add-on-Typ einbetten (Firefox-Bug 1252215).
-
Zwischenablagezugriff wird jetzt unterstützt (Firefox-Bug 1197451)
-
Die an den Rückruf von
tabs.executeScript()
übergebenen Argumente wurden korrigiert (Firefox-Bug 1290157) -
localStorage wird jetzt geleert, 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.rdf
muss jetzt ausdrücklich auffalse
gesetzt werden, um zu verhindern, dass Multiprozess aktiviert wird, wenn das Add-on in Firefox installiert wird. -
Die mozilla-spezifische Social API wurde grundlegend geändert (weitgehend zur Entfernung von nicht mehr genutzten APIs), 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, mit Ausnahme des Share-Panels, wurden entfernt. Dazu gehören die soziale Seitenleiste, Flyover-Panels und so weiter.
- Alle unterstützenden Benutzeroberflächenfunktionen und Funktionalitäten für die entfernten APIs wurden ebenfalls entfernt.
- Social-Service-Provider-Manifest-Eigenschaften, die die entfernte Funktionalität unterstützen, werden nicht mehr unterstützt.
- Das
-
Wenn ein Add-on
mimeTypes.rdf
verwendet, um eine Dateierweiterung zu MIME-Typ-Zuordnung bereitzustellen, muss es jetzt einen Eintrag in der"ext-to-type-mapping"
-Kategorie registrieren (Firefox-Bug 306471). -
Die Browser API enthält jetzt ein
detail
-Objekt im Ereignisobjekt desmozbrowserlocationchange
-Ereignisses, dascanGoForward
/canGoBack
-Eigenschaften enthält, die eine synchrone Abfrage des Zurück-/Weiter-Status des mozBrowsers ermöglichen (Firefox-Bug 1279635).
Ältere Versionen
- Firefox 50 für Entwickler
- 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