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 nützlich sind, sondern auch für Firefox- und Gecko-Entwickler sowie für Add-on-Entwickler.
Änderungen für Webentwickler
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 nun korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl vorhanden ist, anstatt 0 zurückzugeben (Firefox-Bug 1287655).
CSS
:indeterminate
für <input type="radio"> implementiert (Firefox-Bug 885359).:placeholder-shown
für<input type="text">
implementiert (Firefox-Bug 1069015).- Das
::placeholder
Pseudoelement ist nun unpräfixiert (Firefox-Bug 1069012). - Die
:valid
CSS-Pseudoklasse, die keine gültigen<form>
-Elemente erkannte, wurde korrigiert (Firefox-Bug 1285425). - Der
plaintext
-Wert vonunicode-bidi
funktioniert jetzt auch mit vertikalen Schreibrichtungen (Firefox-Bug 1302734). - Die
fill-box
undstroke-box
Werte vonclip-path
werden jetzt richtig unterstützt; zuvor waren sie Aliase vonborder-box
(Firefox-Bug 1289011). - Höhe der Flex-Linie klemmen (klemmen von gestreckten Flex-Elementen), in einzeiligen Auto-Höhen Flex-Containern mit max-height (Spezifikationsänderung) (Firefox-Bug 1000957).
JavaScript
- Die ES2015
Symbol.toStringTag
Eigenschaft wurde implementiert (Firefox-Bug 1114580). - Die ES2015
TypedArray.prototype.toString()
undTypedArray.prototype.toLocaleString()
Methoden wurden implementiert (Firefox-Bug 1121938). - Die
DateTimeFormat.prototype.formatToParts()
Methode ist jetzt verfügbar (Firefox-Bug 1289340). const
undlet
sind nun 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 nun eine Warnung in der Konsole an (Firefox-Bug 1293205). Bitte migrieren Sie Ihren Code zur standardisiertenfor...of
Schleife. - Generatorfunktionen können jetzt kein Label mehr haben und "
let
" als Labelname ist nun nicht mehr erlaubt (Firefox-Bug 1288459). - Veraltete Legacy-Generator Funktionen werden jetzt beim Einsatz in Methodendefinitionen einen Fehler werfen (Firefox-Bug 1199296).
- Die
next()
Methode des Iterator Protokolls wird nun eineTypeError
werfen, wenn der zurückgegebene Wert kein Objekt ist (Firefox-Bug 1016936). - Kind-indizierte Pseudo-Klassen-Selektoren sollten ohne Elternelement matchen (Firefox-Bug 1300374).
Entwickler-Tools
WebGL
-
WebGL 2 ist jetzt standardmäßig aktiviert. Siehe webglsamples.org/WebGL2Samples für einige Demos.
-
WebGL 2 stellt die
WebGL2RenderingContext
Schnittstelle bereit, die OpenGL ES 3.0 auf das<canvas>
Element bringt. -
Neue Funktionen umfassen:
- 3D-Texturen,
- Sampler-Objekte,
- Uniform Buffer-Objekte,
- Sync-Objekte,
- Query-Objekte,
- Transform Feedback-Objekte,
- Promovierte Erweiterungen, die jetzt Kern von WebGL 2 sind: Vertex Array-Objekte, Instanziierung, Mehrere Renderziele, Fragmettiefe.
-
-
Die
WEBGL_compressed_texture_es3
Erweiterung (implementiert in Firefox 46) wurde inWEBGL_compressed_texture_etc
umbenannt (Firefox-Bug 1316778) und ist in WebGL 2-Kontexten nicht mehr standardmäßig 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 nun
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 "Was ist neu 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
tabindex
-Attribut wurde hinzugefügt (Firefox-Bug 778654). - Das
href
-Attribut wurde hinzugefügt, wodurchxlink:href
obsolet wird (Firefox-Bug 1245751). - Sie können jetzt benutzerdefinierte Datenattribute auf SVG-Elementen mit der
HTMLElement.dataset
-Eigenschaft und derdata-*
-Attributgruppe 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; dies war ein alter Regression (Firefox-Bug 1190881).
Web Workers
- Der nicht standardisierte und veraltete
onclose
-Ereignis-Handler und die Verwendung desclose
-Ereignisses durchWorker
wurden aus Firefox entfernt.
Netzwerke
- Skripte, die mit einem
image/*
,video/*
,audio/*
odertext/csv
MIME-Typ bereitgestellt werden, werden jetzt blockiert und nicht mehr geladen oder ausgeführt, wenn sie über<script>
deklariert sind 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 PAC
FindProxyForURL(url, host)
-Funktion entfernt jetzt Pfade und Abfragen von https://-URLs, um Informationsleckagen zu vermeiden (siehe Firefox-Bug 1255474 und CVE-2017-5384).
XHR
- Die
XMLHttpRequest.responseXML
-Eigenschaft gibt nicht mehr ein teilweisesDocument
mit einem <parsererror>-Knoten an der Spitze zurück, wenn ein Analysefehler auftritt, während versucht wird, die empfangenen Daten zu interpretieren. Stattdessen gibt es korrektnull
zurück (Firefox-Bug 289714). - Um die neueste Spezifikation anzupassen, wird ein
XMLHttpRequest
ohne ein durchsetRequestHeader()
gesetztesAccept
-Header jetzt mit einem solchen Header gesendet, dessen Wert auf*/*
gesetzt ist (Firefox-Bug 918752). XMLHttpRequest.open()
wurde so korrigiert, dass dieusername
- undpassword
-Parameter nun standardmäßig aufnull
gesetzt werden, wenn sie weggelassen werden, gemäß der Spezifikation (Firefox-Bug 933759).
WebRTC
- Die Methode
RTCPeerConnection.removeStream()
wurde entfernt. Sie war bereits seit Firefox 22 veraltet und hat schon lange einenNotSupportedError
DOMException
geworfen. Sie müssen stattdessen für jeden Track im StreamRTCPeerConnection.removeTrack()
verwenden. - WebRTC unterstützt jetzt standardmäßig den VP9-Codec. Als er in Firefox 46 hinzugefügt wurde, war VP9 standardmäßig deaktiviert, war jedoch, wenn aktiviert, der bevorzugte Codec; er wurde jedoch nun zur zweiten Wahl (nach VP8) verschoben, wegen seines derzeitigen CPU-Verbrauchs.
- Die Methode
HTMLMediaElement.captureStream()
, die einenMediaStream
mit dem Inhalt des angegebenen<video>
oder<audio>
zurückgibt. Es ist erwähnenswert, dass sie noch immer alsmozCaptureStream()
präfixiert ist und dass sie noch nicht genau der Spezifikation entspricht.
Audio/Video
- Unterstützung für FLAC wurde hinzugefügt (FLAC-Codec) in sowohl FLAC- als auch Ogg-Containern (Firefox-Bug 1195723). Die unterstützten FLAC-MIME-Typen sind:
audio/flac
undaudio/x-flac
. Für FLAC in Ogg, die unterstützten MIME-Typen sind:audio/ogg; codecs=flac
undvideo/ogg; codecs=flac
. - Unterstützung für FLAC in MP4 (sowohl mit als auch ohne MSE) wurde hinzugefügt (Firefox-Bug 1303888).
- Die Drosselung von Timern in Hintergrund-Tabs, die durch
Window.setInterval()
,WorkerGlobalScope.setInterval()
,setTimeout()
undsetTimeout()
erstellt wurden, wurde in Firefox 50 geändert, sodass sie nicht mehr stattfinden, wenn eine Web Audio APIAudioContext
aktiv Ton abspielt. Allerdings löste dies nicht alle Szenarien, in denen zeitkritische Audiowiedergabe (wie Musikspieler, die individuelle Noten mit Timern erzeugen) konnten immer noch fehlschlagen. Aus diesem Grund drosselt Firefox 51 nun Hintergrund-Tabs nicht mehr, die eineAudioContext
haben, selbst wenn sie gerade keinen Ton abspielt.
DOM
- Die
DOMImplementation.hasFeature()
gibt jetzt in allen Fällentrue
zurück (Firefox-Bug 984778). - Die
HTMLInputElement
undHTMLTextAreaElement
-EigenschaftenselectionStart
undselectionEnd
geben jetzt korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl vorhanden ist, anstatt 0 zurückzugeben (Firefox-Bug 1287655). - Die
HTMLImageElement
Schnittstelle und das entsprechende<img>
-Element unterstützen jetzt denonerror
-Ereignis-Handler, dererror
Ereignisse an das Element sendet, wann immer Fehler beim Laden oder Interpretieren von Bildern auftreten. - Sie können nun den Effekt einer Web-
Animation
ändern, indem Sie den Wert ihrereffect
-Eigenschaft einstellen. Früher war diese Eigenschaft nur lesbar (Firefox-Bug 1049975). - Die Permissions API Methode
Permissions.revoke()
wurde hinter eine Präferenz (dom.permissions.revoke.enable
) gestellt und standardmäßig deaktiviert, da ihr Design und sogar ihre Existenz in der Web Application Security Working Group diskutiert werden. - Die Storage API's
Navigator.storage
-Eigenschaft undStorageManager.estimate()
-Methode wurden implementiert, zusammen mit dem notwendigen unterstützenden Code. Speicherpersistenz-Funktionen sind noch nicht implementiert. Siehe Firefox-Bug 1267941. - Aus Gründen der Privatsphäre runden sowohl
BatteryManager.chargingTime
als auchBatteryManager.dischargingTime
jetzt den zurückgegebenen Wert auf die nächste 15 Minuten (Firefox-Bug 1292655).
Ereignisse
- Firefox unterstützt jetzt die
onanimationstart
,onanimationiteration
undonanimationend
Ereignis-Handler, zusätzlich zur Unterstützung der entsprechenden Ereignisse mitaddEventListener()
(Firefox-Bug 911987). - Firefox unterstützt jetzt den
ontransitionend
Ereignis-Handler (Firefox-Bug 911987).
Sicherheit
- Wenn Login-Seiten (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 an, um die Benutzer zu warnen (Firefox-Bug 1319119). Siehe Unsichere Passwörter für weitere Details.
Entfernungen
- Die nicht standardisierte Simple Push API, die hauptsächlich für die Verwendung mit Firefox OS vorgesehen 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 die Verwendung mit Firefox OS vorgesehen war, wurde komplett 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 nun eine WebExtension in einem 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)
Andere
-
Die
multiprocessCompatible
-Eigenschaft voninstall.rdf
muss jetzt ausdrücklich auffalse
gesetzt werden, um zu verhindern, dass Multiprozess aktiviert wird, wenn das Add-on installiert ist. -
Die Mozilla-spezifische Social API wurde erheblich verändert (weitgehend zur Entfernung von APIs, die nicht mehr verwendet werden), wie folgt:
- Die
MozSocial
Schnittstelle und dieNavigator.mozSocial
-Eigenschaft, die sie unterstützt, wurden entfernt. - Die Social Bookmarks API wurde entfernt.
- Die Social-Chat-Funktionalität wurde entfernt.
- Die Social Status API wurde entfernt.
- Alle Social 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 -eigenschaften 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.
- Die
-
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 in dem Ereignisobjekt desmozbrowserlocationchange
Ereignisses, dascanGoForward
/canGoBack
Eigenschaften enthält und den Rückwärts-/Vorwärtsstatus des mozBrowsers synchron abrufen lässt (Firefox-Bug 1279635).
Ältere Versionen
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers
- Firefox 21 for developers
- Firefox 20 for developers