Firefox 51 Versionshinweise 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 wesentliche Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie für 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
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
- Implementiert
:indeterminatefür <input type="radio"> (Firefox-Bug 885359). - Implementiert
:placeholder-shownfür<input type="text">(Firefox-Bug 1069015). - Das
::placeholderPseudo-Element ist nun unverändert (Firefox-Bug 1069012). - Die
:validCSS-Pseudoklasse wurde behoben, die keine gültigen<form>-Elemente erkannte (Firefox-Bug 1285425). - Der
plaintext-Wert vonunicode-bidifunktioniert jetzt auch mit vertikalen Schreibmodi (Firefox-Bug 1302734). - Die
fill-boxundstroke-boxWerte vonclip-pathwerden jetzt korrekt unterstützt; zuvor waren sie Aliase vonborder-box(Firefox-Bug 1289011). - Die Höhe der Flexzeile wird bei einem einzeiligen Auto-Höhen-Flexcontainer mit max-height begrenzt (Spec-Ä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). constundletsind nun vollständig ES2015-konform (Firefox-Bug 950547).- Die Verwendung von
constinfor...ofSchleifen hat jetzt eine neue Bindung für jede Iteration und wirft nicht mehr eineSyntaxError(Firefox-Bug 1101653). - Die veraltete
for each...in-Schleife gibt nun eine Warnung in der Konsole aus (Firefox-Bug 1293205). Bitte migrieren Sie Ihren Code zur Verwendung der standardisiertenfor...of-Schleife. - Generatorfunktionen können kein Label mehr haben und
letals Bezeichnungsname ist jetzt nicht mehr erlaubt (Firefox-Bug 1288459). - Veraltete Legacy-Generatorfunktionen werfen nun Fehler, wenn sie in Methodendefinitionen verwendet werden (Firefox-Bug 1199296).
- Die
next()-Methode des Iterator-Protokolls wird jetzt einenTypeErrorwerfen, wenn der zurückgegebene Wert kein Objekt ist (Firefox-Bug 1016936). - Pseudo-Klassen-Selektoren mit Kindindex sollten ohne Elternteil übereinstimmen (Firefox-Bug 1300374).
Entwicklerwerkzeuge
WebGL
-
WebGL 2 ist jetzt standardmäßig aktiviert. Besuchen Sie webglsamples.org/WebGL2Samples für einige Demos.
- WebGL 2 bietet das
WebGL2RenderingContext-Interface, das OpenGL ES 3.0 zum<canvas>-Element bringt. - Neue Funktionen beinhalten:
- 3D-Texturen,
- Sampler-Objekte,
- Uniform Buffer Objekte,
- Sync-Objekte,
- Query-Objekte,
- Transform Feedback-Objekte,
- Erhöhte Erweiterungen, die jetzt zentral für WebGL 2 sind: Vertex Array Objekte, Instancing, mehrere Renderziele, Fragmenttiefe.
- WebGL 2 bietet das
-
Die
WEBGL_compressed_texture_es3Erweiterung (in Firefox 46 implementiert) wurde zuWEBGL_compressed_texture_etcumbenannt (Firefox-Bug 1316778) und ist standardmäßig nicht mehr in WebGL 2-Kontexten enthalten (Firefox-Bug 1306174). -
Die
EXT_disjoint_timer_queryErweiterung wurde aktualisiert, umWebGLQueryObjekte anstelle vonWebGLTimerQueryObjekten zu verwenden (Firefox-Bug 1308057). -
Die
OES_vertex_array_objectErweiterung verwendet jetzt das WebGL 2WebGLVertexArrayObjectObjekt anstelle ihres eigenenWebGLVertexArrayObjectOESObjekts (Firefox-Bug 1318523). -
Sie können jetzt
ImageBitmapObjekte 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 nun 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 "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 standardisierten MethodeCanvasRenderingContext2D.fill()definiert werden (Firefox-Bug 826619). - Die
CanvasRenderingContext2D.imageSmoothingEnabledwurde nun unverändert (Firefox-Bug 768072).
SVG
- Das
tabindexAttribut wurde hinzugefügt (Firefox-Bug 778654). - Das
hrefAttribut wurde hinzugefügt, wodurchxlink:hrefveraltet ist (Firefox-Bug 1245751). - Sie können jetzt benutzerdefinierte Dateneigenschaften auf SVG-Elementen über die
HTMLElement.datasetEigenschaft und dendata-*Satz von SVG-Attributen verwenden (Firefox-Bug 921834). - CSS-Animationen, die in einem SVG-Bild verwendet werden, das in einem
<img>-Element dargestellt wird, funktionieren nun wieder; dies war ein altes Problem (Firefox-Bug 1190881).
Web Workers
- Der nicht-standardisierte und veraltete Event-Handler
oncloseund die Verwendung desclose-Events inWorkerwurden aus Firefox entfernt.
Netzwerk
- Skripte, die mit einem
image/*,video/*,audio/*odertext/csvMIME-Typ bereitgestellt werden, werden jetzt blockiert und nicht mehr 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 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 Funktion
FindProxyForURL(url, host)entfernt jetzt Pfade und Abfragen von https:// URLs, um Informationslecks zu vermeiden (siehe Firefox-Bug 1255474 und CVE-2017-5384).
XHR
- Die
XMLHttpRequest.responseXMLEigenschaft gibt bei einem Parserfehler beim Interpretieren der empfangenen Daten nicht mehr ein teilweisesDocumentmit einem <parsererror>-Knoten an der Spitze zurück. Sie gibt nun korrektnullzurück (Firefox-Bug 289714). - Um der neuesten Spezifikation zu entsprechen, wird eine
XMLHttpRequestohne ein mitsetRequestHeader()gesetztesAccept-Header nun mit einem solchen Header gesendet, dessen Wert auf*/*gesetzt ist (Firefox-Bug 918752). XMLHttpRequest.open()wurde so angepasst, dass dieusername- undpassword-Parameter jetzt, wenn sie weggelassen werden, aufnullstandardisieren, gemäß der Spezifikation (Firefox-Bug 933759).
WebRTC
- Die Methode
RTCPeerConnection.removeStream()wurde entfernt. Sie wurde in Firefox 22 als veraltet markiert und hat lange Zeit eineNotSupportedErrorDOMExceptiongeworfen. Sie müssen stattdessenRTCPeerConnection.removeTrack()verwenden, für jeden Track im Stream. - WebRTC unterstützt jetzt standardmäßig den VP9-Codec. Als er in Firefox 46 hinzugefügt wurde, war VP9 standardmäßig deaktiviert, aber wenn aktiviert, war er der bevorzugte Codec; er wurde jedoch aufgrund seines aktuellen CPU-Nutzungsgrades an die zweite Stelle (nach VP8) verschoben.
- Die Methode
HTMLMediaElement.captureStream(), die einenMediaStreammit dem Inhalt des angegebenen<video>oder<audio>zurückgibt. Es ist bemerkenswert, dass dies noch alsmozCaptureStream()präfixiert ist, und dass es noch nicht genau der Spezifikation entspricht.
Audio/Video
- Unterstützung für FLAC (FLAC-Codec) wurde sowohl in FLAC- als auch in Ogg-Containern hinzugefügt (Firefox-Bug 1195723). Unterstützte FLAC-MIME-Typen sind:
audio/flacundaudio/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-Bug 1303888).
- Die Drosselung in Hintergrund-Tabs von Timern, die durch
Window.setInterval(),WorkerGlobalScope.setInterval(),setTimeout()undsetTimeout()erstellt wurden, wurde in Firefox 50 so verändert, dass sie nicht mehr stattfinden, wenn ein Web Audio APIAudioContextaktiv Ton abspielt. Allerdings löste dies nicht alle Szenarien, in denen zeitkritische Audiowiedergabe (wie Musikplayer, die einzelne Noten mit Timern generieren) könnte nicht richtig funktionieren. Aus diesem Grund drosselt Firefox 51 keine Hintergrund-Tabs mehr, die einAudioContexthaben, selbst wenn es gerade keine Sounds abspielt.
DOM
- Die Methode
DOMImplementation.hasFeature()gibt jetzt immertruezurück (Firefox-Bug 984778). - Die Eigenschaften
selectionStartundselectionEndvonHTMLInputElementundHTMLTextAreaElementgeben nun 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 nun denonerror-Event-Handler, dererrorEvents an das Element sendet, wann immer Fehler beim Versuch, Bilder zu laden oder zu interpretieren, auftreten. - Sie können jetzt den Effekt einer Web-Animation
Animationändern, indem Sie den Wert ihrereffect-Eigenschaft festlegen. Zuvor war diese Eigenschaft schreibgeschützt (Firefox-Bug 1049975). - Die Method
Permissions.revoke()der Berechtigungen-API wurde hinter einer Voreinstellung (dom.permissions.revoke.enable) platziert und standardmäßig deaktiviert, da ihr Design und sogar ihre Existenz in der Web Application Security Working Group zur Diskussion stehen. - Die
Storage APIStorageManager.estimate()Methode und dieNavigator.storageEigenschaft wurden implementiert zusammen mit dem benötigten unterstützenden Code. Einer Persistenz von Speichereinheiten sind noch nicht umgesetzt. Siehe Firefox-Bug 1267941. - Aus Datenschutzgründen runden sowohl
BatteryManager.chargingTimeals auchBatteryManager.dischargingTimenun den zurückgegebenen Wert auf die nächste Viertelstunde (Firefox-Bug 1292655).
Events
- Firefox unterstützt jetzt die Events
onanimationstart,onanimationiteration, undonanimationend, zusätzlich zur Unterstützung der entsprechenden Events durchaddEventListener()(Firefox-Bug 911987). - Firefox unterstützt jetzt den
ontransitionendEvent-Handler (Firefox-Bug 911987).
Sicherheit
- Wenn Anmeldeseiten (d.h. Seiten, die ein
<input type="password">-Feld enthalten) so erstellt werden, dass sie unsicher übermittelt werden würden, zeigt Firefox ein durchgestrichenes Schlosssymbol in der Adressleiste an, um Benutzer zu warnen (Firefox-Bug 1319119).
Entfernt
- Die nicht-standardisierte Simple Push API, die hauptsächlich für die Nutzung mit Firefox OS gedacht war und nun durch die W3C Push API ersetzt wurde, wurde vollständig aus Gecko entfernt (Firefox-Bug 1296579).
- Die nicht-standardisierte Alarms-API, die hauptsächlich für die Nutzung mit Firefox OS gedacht war, wurde vollständig 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ändertes
Content-TypeHeader in Web Extensions wird jetzt berücksichtigt (Firefox-Bug 1304331)
Sonstiges
-
Die
multiprocessCompatibleEigenschaft voninstall.rdfmuss jetzt explizit auffalsegesetzt 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 (weitgehend, um APIs zu entfernen, 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 sozialen Widgets, außer dem Share-Panel, wurden entfernt. Dazu gehören die soziale Seitenleiste, die Flugtafel und ähnliche.
- Alle unterstützenden Benutzeroberflächen-Features und Funktionalitäten für die entfernten APIs wurden ebenfalls entfernt.
- Manifest-Eigenschaften des sozialen Dienstleisters, die die entfernte Funktionalität unterstützen, werden nicht mehr unterstützt.
- Die
-
Wenn ein Add-on
mimeTypes.rdfverwendet, 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 Event-Objekt desmozbrowserlocationchange-Events, das diecanGoForward/canGoBack-Eigenschaften enthält, um den zurück/vorwärts Status des mozBrowser synchron abzurufen (Firefox-Bug 1279635).