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 die wichtigsten Ä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 Trenner in<menu>
-Elementen verwendet werden (Firefox Fehler 870388).- Die Attribute
selectionStart
undselectionEnd
der Elemente<input>
und<textarea>
geben nun korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl vorhanden ist, anstatt 0 zurückzugeben (Firefox Fehler 1287655).
CSS
- Implementiert
:indeterminate
für <input type="radio"> (Firefox Fehler 885359). - Implementiert
:placeholder-shown
für<input type="text">
(Firefox Fehler 1069015). - Das
::placeholder
Pseudo-Element ist jetzt ohne Präfix (Firefox Fehler 1069012). - Die
:valid
CSS-Pseudoklasse, die keine gültigen<form>
-Elemente erkannte, wurde behoben (Firefox Fehler 1285425). - Der
plaintext
-Wert vonunicode-bidi
funktioniert jetzt auch bei vertikalen Schreibrichtungen (Firefox Fehler 1302734). - Die Werte
fill-box
undstroke-box
vonclip-path
werden nun korrekt unterstützt; früher waren sie Aliasnamen vonborder-box
(Firefox Fehler 1289011). - Die Höhe der Flex-Linie in einem einzeiligen Auto-Höhen-flex-Container mit max-height wird jetzt geklammert (Spec-Änderung) (Firefox Fehler 1000957).
JavaScript
- Die ES2015-Eigenschaft
Symbol.toStringTag
wurde implementiert (Firefox Fehler 1114580). - Die ES2015-Methoden
TypedArray.prototype.toString()
undTypedArray.prototype.toLocaleString()
wurden implementiert (Firefox Fehler 1121938). - Die Methode
DateTimeFormat.prototype.formatToParts()
ist jetzt verfügbar (Firefox Fehler 1289340). const
undlet
sind jetzt vollständig ES2015-konform (Firefox Fehler 950547).- Verwenden von
const
infor...of
-Schleifen hat jetzt eine neue Bindung für jede Iteration und wirft keinenSyntaxError
mehr (Firefox Fehler 1101653). - Die veraltete
for each...in
-Schleife zeigt jetzt eine Warnung in der Konsole an (Firefox Fehler 1293205). Bitte migrieren Sie Ihren Code zur standardisiertenfor...of
-Schleife. - Generatorfunktionen können kein Label mehr haben und
let
als Labelname ist jetzt nicht mehr erlaubt (Firefox Fehler 1288459). - Veraltete Legacy-Generatorfunktionen werfen jetzt Fehler bei Verwendung in Methodendefinitionen (Firefox Fehler 1199296).
- Die
next()
-Methode des Iterator-Protokolls wird jetzt einenTypeError
auslösen, wenn der zurückgegebene Wert kein Objekt ist (Firefox Fehler 1016936). - Pseudoklassen-Selektoren, die nach Kind-Indizes auswählen, sollten ohne Elternteil übereinstimmen (Firefox Fehler 1300374).
Entwicklerwerkzeuge
WebGL
-
WebGL 2 ist jetzt standardmäßig aktiviert. Siehe webglsamples.org/WebGL2Samples für einige Demos.
-
WebGL 2 bietet die
WebGL2RenderingContext
-Schnittstelle, die OpenGL ES 3.0 für das<canvas>
-Element bringt. -
Neue Funktionen umfassen:
- 3D-Texturen,
- Sampler-Objekte,
- Uniform Buffer-Objekte,
- Sync-Objekte,
- Query-Objekte,
- Transform Feedback-Objekte,
- Hervorgehobene Erweiterungen, die jetzt Kern von WebGL 2 sind: Vertex Array-Objekte, Instancing, mehrere Ziel-Renderes, Fragmenttiefe.
-
-
Die
WEBGL_compressed_texture_es3
-Erweiterung (implementiert in Firefox 46) wurde inWEBGL_compressed_texture_etc
umbenannt (Firefox Fehler 1316778) und ist standardmäßig nicht mehr in WebGL 2-Kontexten enthalten (Firefox Fehler 1306174). -
Die
EXT_disjoint_timer_query
-Erweiterung wurde aktualisiert, umWebGLQuery
-Objekte anstelle vonWebGLTimerQuery
-Objekten zu verwenden (Firefox Fehler 1308057). -
Die
OES_vertex_array_object
-Erweiterung verwendet nun das WebGL 2WebGLVertexArrayObject
-Objekt anstelle ihres eigenenWebGLVertexArrayObjectOES
-Objekts (Firefox Fehler 1318523). -
Sie können jetzt
ImageBitmap
-Objekte als Quellen für Texturbilder in Methoden wieWebGLRenderingContext.texImage2D()
,WebGLRenderingContext.texSubImage2D()
,WebGL2RenderingContext.texImage3D()
, oderWebGL2RenderingContext.texSubImage3D()
verwenden (Firefox Fehler 1324924).
IndexedDB v2
-
Die Implementierung von IndexedDB Version 2 ist nun abgeschlossen:
- Unterstützung für die neue Methode
IDBObjectStore.getKey()
wurde hinzugefügt (Firefox Fehler 1271506). - Unterstützung für die Methode
IDBCursor.continuePrimaryKey()
wurde hinzugefügt (Firefox Fehler 1271505). - Binärschlüssel werden jetzt unterstützt (Firefox Fehler 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 Fehler 826619). - Die
CanvasRenderingContext2D.imageSmoothingEnabled
wurde unpräfixiert (Firefox Fehler 768072)
SVG
- Attribut
tabindex
hinzugefügt (Firefox Fehler 778654). - Attribut
href
hinzugefügt, wasxlink:href
obsolet macht (Firefox Fehler 1245751). - Sie können jetzt benutzerdefinierte Dateneigenschaften auf SVG-Elementen über die
HTMLElement.dataset
-Eigenschaft und dendata-*
Satz von SVG-Attributen verwenden (Firefox Fehler 921834). - CSS-Animationen, die in einem SVG-Bild verwendet werden, das in einem
<img>
-Element angezeigt wird, funktionieren jetzt wieder; dies war ein alter Regression (Firefox Fehler 1190881).
Web Workers
- Der nicht standardisierte und obsolet
onclose
Event-Handler und die Verwendung desclose
-Events vonWorker
wurden aus Firefox entfernt.
Netzwerken
- 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 mitWorkerGlobalScope.importScripts()
,Worker()
,SharedWorker()
geladen werden (Firefox Fehler 1229267 und Firefox Fehler 1288361). - Unterstützung für SHA-1-Zertifikate von öffentlich vertrauten Zertifizierungsstellen wurde entfernt (Firefox Fehler 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 Fehler 1309707), siehe Distrusting New WoSign and StartCom Certificates für weitere Informationen.
- Die PAC-Funktion
FindProxyForURL(url, host)
entfernt jetzt Pfade und Abfragen von https:// URLs, um Informationslecks zu vermeiden (siehe Firefox Fehler 1255474 und CVE-2017-5384).
XHR
- Die
XMLHttpRequest.responseXML
-Eigenschaft gibt im Falle eines Parserfehlers beim Versuch, die empfangenen Daten zu interpretieren, nicht mehr ein unvollständigesDocument
mit einem <parsererror>-Knoten an der Spitze zurück. Stattdessen gibt sie korrektnull
zurück (Firefox Fehler 289714). - Um die neueste Spezifikation zu erfüllen, wird ein
XMLHttpRequest
ohne ein mitsetRequestHeader()
gesetztesAccept
-Header jetzt mit einem solchen Header gesendet, wobei sein Wert auf*/*
gesetzt ist (Firefox Fehler 918752). - Behoben:
XMLHttpRequest.open()
setzt die Parameterusername
undpassword
nun standardmäßig aufnull
, wenn sie weggelassen werden, gemäß Spezifikation (Firefox Fehler 933759).
WebRTC
- Die Methode
RTCPeerConnection.removeStream()
wurde entfernt. Sie war seit Firefox 22 veraltet und hat seit langem eineNotSupportedError
DOMException
geworfen. Sie müssen stattdessenRTCPeerConnection.removeTrack()
für jeden Track im Stream 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 bei Aktivierung der bevorzugte Codec; er wurde jedoch aufgrund seiner aktuellen CPU-Nutzung auf die zweite Wahl (nach VP8) verschoben.
- Die Methode
HTMLMediaElement.captureStream()
, die einenMediaStream
enthält, der den Inhalt des angegebenen<video>
oder<audio>
zurückgibt. Es ist erwähnenswert, dass dies immer noch alsmozCaptureStream()
vorfixiert ist und noch nicht genau mit der Spezifikation übereinstimmt.
Audio/Video
- FLAC-Unterstützung hinzugefügt (FLAC-Codec) sowohl in FLAC als auch in Ogg-Containern (Firefox Fehler 1195723). Unterstützte FLAC-MIME-Typen sind:
audio/flac
undaudio/x-flac
. Für FLAC in Ogg sind unterstützte 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 Fehler 1303888).
- Die Drosselung in Hintergrund-Tabs von Timern, die durch
Window.setInterval()
,WorkerGlobalScope.setInterval()
,setTimeout()
undsetTimeout()
erstellt wurden, wurde in Firefox 50 geändert, um nicht mehr zu erfolgen, wenn eine Web Audio APIAudioContext
aktiv Ton abspielt. Dies löste jedoch nicht alle Szenarien, in denen timing-sensitives Audio-Playback (wie Musikplayer, die einzelne Noten generieren) nicht richtig funktionieren konnte. Aus diesem Grund drosselt Firefox 51 keine Hintergrund-Tabs mehr, die eineAudioContext
haben, selbst wenn sie aktuell keinen Ton abspielen.
DOM
- Die
DOMImplementation.hasFeature()
gibt jetzt in allen Fällentrue
zurück (Firefox Fehler 984778). - Die Eigenschaften
selectionStart
undselectionEnd
derHTMLInputElement
undHTMLTextAreaElement
geben nun korrekt die aktuelle Position des Texteingabecursors zurück, wenn keine Auswahl vorhanden ist, anstatt 0 zurückzugeben (Firefox Fehler 1287655). - Die Schnittstelle
HTMLImageElement
und das entsprechende<img>
-Element unterstützen jetzt denonerror
-Event-Handler und sendenerror
Ereignisse an das Element, wann immer beim Laden oder Interpretieren von Bildern Fehler auftreten. - Sie können die Wirkung einer Web-Animation
Animation
nun ändern, indem Sie den Wert ihrereffect
-Eigenschaft festlegen. Diese Eigenschaft war zuvor schreibgeschützt (Firefox Fehler 1049975). - Die Methode
Permissions.revoke()
der Permissions API wurde hinter einer Einstellung (dom.permissions.revoke.enable
) platziert und standardmäßig deaktiviert, da ihr Design und sogar ihr Bestehen in der Web Application Security Working Group diskutiert werden. - Die
Navigator.storage
-Eigenschaft der Storage API und die MethodeStorageManager.estimate()
wurden zusammen mit dem nötigen unterstützenden Code implementiert. Persistenzeigenschaften für Speichereinheiten sind noch nicht implementiert. Siehe Firefox Fehler 1267941. - Aus Datenschutzgründen runden sowohl
BatteryManager.chargingTime
als auchBatteryManager.dischargingTime
den zurückgegebenen Wert nun auf die nächsten 15 Minuten (Firefox Fehler 1292655).
Events
- Firefox unterstützt jetzt die Event-Handler
onanimationstart
,onanimationiteration
undonanimationend
zusätzlich zur Unterstützung der entsprechenden Events mittelsaddEventListener()
(Firefox Fehler 911987). - Firefox unterstützt jetzt den
ontransitionend
-Event-Handler (Firefox Fehler 911987).
Sicherheit
- Wenn Login-Seiten (d.h. solche, die ein
<input type="password">
-Feld enthalten) so erstellt werden, dass sie unsicher übermittelt werden würden, zeigt Firefox ein durchgestrichenes Schloss-Symbol in der Adressleiste an, um Benutzer zu warnen (Firefox Fehler 1319119). Siehe Insecure passwords für weitere Details.
Entfernungen
- Die nicht standardisierte Simple Push API, hauptsächlich für die Verwendung mit Firefox OS gedacht und nun durch die W3C Push API ersetzt, wurde komplett aus Gecko entfernt (Firefox Fehler 1296579).
- Die nicht standardisierte Alarms API, hauptsächlich zur Verwendung mit Firefox OS gedacht, wurde komplett aus Gecko entfernt (Firefox Fehler 1300884).
- Unterstützung für Präfixe in der Page Visibility API wurde entfernt (Firefox Fehler 812701).
Änderungen für Add-on- und Mozilla-Entwickler
WebExtensions
-
Neue APIs:
idle.queryState()
(Firefox Fehler 1299846)idle.onStateChanged
(Firefox Fehler 1299775)management.getSelf()
(Firefox Fehler 1283116)management.uninstallSelf()
(Firefox Fehler 1220136)runtime.getBrowserInfo()
(Firefox Fehler 1268399)runtime.reload()
undruntime.onUpdateAvailable()
(Firefox Fehler 1279012)
-
Sie können jetzt eine WebExtension in einem Legacy-Add-on-Typ einbetten (Firefox Fehler 1252215).
-
Zwischenablagezugriff wird jetzt unterstützt (Firefox Fehler 1197451)
-
Die an den Rückruf übergebenen Argumente von
tabs.executeScript()
wurden behoben (Firefox Fehler 1290157) -
localStorage wird jetzt gelöscht, wenn eine WebExtension deinstalliert wird (Firefox Fehler 1213990)
-
Ein geänderter
Content-Type
Header in Web Extensions wird jetzt berücksichtigt (Firefox Fehler 1304331)
Sonstiges
-
Die
multiprocessCompatible
-Eigenschaft voninstall.rdf
muss jetzt explizit auffalse
gesetzt werden, um zu verhindern, dass Multiprozess in Firefox aktiviert wird, wenn das Add-on installiert wird. -
Die Mozilla-spezifische Social API wurde erheblich geändert (hauptsächlich um nicht mehr verwendete APIs zu entfernen), wie folgt:
- Die
MozSocial
-Schnittstelle und die unterstützendeNavigator.mozSocial
-Eigenschaft 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 Panel „Teilen“, wurden entfernt. Dazu gehören die soziale Seitenleiste, Fly-Over-Panels usw.
- Alle unterstützenden Benutzeroberflächenmerkmale und Funktionalitäten für die entfernten APIs wurden ebenfalls entfernt.
- Soziale Dienstleistungsanbieter-Manifest-Eigenschaften, die die entfernte Funktionalität unterstützen, werden nicht mehr unterstützt.
- Die
-
Wenn ein Add-on
mimeTypes.rdf
verwendet, um eine Dateiendung einer MIME-Typ-Zuordnung bereitzustellen, muss es jetzt einen Eintrag in der Kategorie"ext-to-type-mapping"
registrieren (Firefox Fehler 306471). -
Die Browser API enthält nun ein
detail
-Objekt im Event-Objekt desmozbrowserlocationchange
-Events, dascanGoForward
/canGoBack
-Eigenschaften enthält und den Abruf des Vorwärts-/Rückwärtsstatus des mozBrowsers synchron erlaubt (Firefox Fehler 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