Firefox 53 für Entwickler
Firefox 53 wurde am 19. April 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
>Entwicklerwerkzeuge
- Vermeidung von Scroll-Latenzen bei Markierungen durch APZ (Firefox-Bug 1312103).
- Option hinzugefügt, um den vollständigen CSS-Pfad eines Elements zu kopieren (Firefox-Bug 1323700).
- Unterstützung von css-color-4 in den DevTools (Firefox-Bug 1310681).
- Markup-Ansicht: Visueller Hinweis zwischen öffnenden und schließenden Tags eines eingeklappten Knotens hinzugefügt (Firefox-Bug 1323193).
CSS
Neue Funktionen
- Die
mask-*
Langhand-Eigenschaften (siehe CSS Masks) werden vollständig unterstützt und sind standardmäßig verfügbar (siehe Firefox-Bug 1251161). - Die Eigenschaft
caret-color
hinzugefügt (Firefox-Bug 1063162). - Die Kurzformen
place-items
/place-self
/place-content
wurden implementiert (Firefox-Bug 1319958). flow-root
Wert zur Eigenschaftdisplay
hinzugefügt (Firefox-Bug 1322191).-moz-tab-size
akzeptiert jetzt<length>
Werte (Firefox-Bug 943918) und ist jetzt animierbar (Firefox-Bug 1308110).mask-mode
:luminance funktioniert nicht bei Farbverlaufsmasken (Firefox-Bug 1346265).- [css-grid] FR-Einheit in
grid-template-rows
füllt nicht den gesamten Viewport (Firefox-Bug 1346699). - Flex-Elemente werden nicht in der Reihenfolge nach "order" sortiert, wenn sie durch ein absolut positioniertes Geschwisterelement getrennt sind (Firefox-Bug 1345873).
Andere Änderungen
- Masken-Langhand-Eigenschaften auf SVG-Elementen aktiviert (Firefox-Bug 1319667).
- [css-grid] Behoben:
align-self
/justify-self:stretch
/normal
funktioniert nicht bei<table>
-Grid-Elementen (Firefox-Bug 1316051). - Behoben:
clip-path: circle()
rendert nicht korrekt bei großer Referenzbox und Prozentkreisbogen (Firefox-Bug 1324713). - Bei Anwendung eines
text-transform
Wertes vonuppercase
auf griechischen Text, wird der Akzent auf die disjunktive Eta (ή) nicht mehr entfernt (siehe Firefox-Bug 1322989). - Die Verfügbarkeit des
contents
Wertes vondisplay
wurde durch dielayout.css.display-contents.enabled
-Einstellung kontrolliert. In Firefox 53 wurde diese Einstellung komplett entfernt, sodass der Wert immer verfügbar ist und nicht mehr deaktiviert werden kann (Firefox-Bug 1295788).
JavaScript
- ECMAScript 2015 Semantiken für die
Function.name
Eigenschaften wurden implementiert. Dies schließt inferierte Namen für anonyme Funktionen ein (var foo = function() {}
) (Firefox-Bug 883377). - ECMAScript 2015 Semantiken für das Schließen von Iteratoren wurden implementiert. Dies beeinflusst die
for...of
Schleife, zum Beispiel (Firefox-Bug 1147371). - Der Template Literal Revision Proposal, der Einschränkungen von Escape-Sequenzen auf getaggten Template-Strings aufhebt, wurde implementiert (Firefox-Bug 1317375).
- Die statische
length
Eigenschaft vonTypedArray
Objekten wurde gemäß ES2016 von 3 auf 0 geändert (Firefox-Bug 1317306). SharedArrayBuffer
kann jetzt inDataView
Objekten verwendet werden (Firefox-Bug 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBuffer
Objekte explizit während des strukturierten Kopierens übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und dürfen daher nicht mehr in der Transferliste enthalten sein. Das bisher nur als Konsolenwarnung präsentierte neue Verhalten wird nun einen Fehler auslösen (Firefox-Bug 1302037). - Die Länge von
ArrayBuffer
ist nun aufNumber.MAX_SAFE_INTEGER
(>= 2 ** 53) beschränkt (Firefox-Bug 1255128). Error
und andere native Fehlerobjekt-Prototypen wieRangeError
usw. sind nun gewöhnliche Objekte anstelle von richtigen Fehlerobjekten. (Im Besonderen istObject.prototype.toString.call(Error.prototype)
jetzt"[object Object]"
anstelle von"[object Error]"
.) (Firefox-Bug 1213341).
Ereignisse
- CSS-Übergänge: Die Ereignisse
transitionstart
,transitionrun
, undtransitioncancel
wurden implementiert (siehe Firefox-Bug 1264125 und Firefox-Bug 1287983). - Der Konstruktor
CompositionEvent
wurde implementiert (siehe Firefox-Bug 1002256). - Die Aliase
MouseEvent.x
undMouseEvent.y
vonMouseEvent.clientX
/MouseEvent.clientY
wurden implementiert (siehe Firefox-Bug 424390). - Das
auxclick
Ereignis und der entsprechende Ereignishandler wurden implementiert (siehe Firefox-Bug 1304044). - Das
transitioncancel
Ereignis wird nun ausgelöst, nachdem ein Übergang abgebrochen wird.
DOM
- Die
pathname
undsearch
Eigenschaften von Links (wie beispielsweise bei<a>
und<link>
Element-Schnittstellen) gaben zuvor falsche Teile der URL zurück. Zum Beispiel würde für eine URL vonhttp://z.com/x?a=true&b=false
pathname
"/x?a=true&b=false"
undsearch
""
zurückgeben, anstatt"/x"
und"?a=true&b=false"
entsprechend. Dies wurde nun behoben (Firefox-Bug 1310483). - Der Konstruktor
URLSearchParams()
akzeptiert jetzt eine Zeichenkette oder Folge von Zeichenketten als Initialisierungsobjekt (Firefox-Bug 1330678). - Die Methode
Selection.setBaseAndExtent()
des Selection API ist nun implementiert (siehe Firefox-Bug 1321623). - Die "fakepath" Ergänzung zum
file
Typ<input>
values
wurde in Gecko implementiert und erreicht damit Gleichheit mit anderen Browsern (siehe Firefox-Bug 1274596). Node.getRootNode()
wurde implementiert und ersetzt die veralteteNode.rootNode
Eigenschaft (Firefox-Bug 1269155).- Eigene Eigenschaften von
Plugin
undPluginArray
Objekten sind nicht mehr aufzählbar (Firefox-Bug 1270366). - Benannte Eigenschaften von
MimeTypeArray
Objekten sind nicht mehr aufzählbar (Firefox-Bug 1270364). - Die Permissions API hat jetzt einen neuen Berechtigungsnamen verfügbar —
persistent-storage
— wie er beim Aufruf vonPermissions.query()
verwendet wird (siehe Firefox-Bug 1270038). Dies ermöglicht es einem Ursprung, eine permanente Box (d.h. permanenter Speicher) für seinen Speicher zu verwenden, gemäß der Storage API. - Die Eigenschaft
Performance.timeOrigin
wurde implementiert (Firefox-Bug 1313420).
Workers und Service Worker
- Die Network Information API ist jetzt in Workern verfügbar (siehe Firefox-Bug 1323172).
- Server-sent events können jetzt in Workern verwendet werden (siehe Firefox-Bug 1267903).
ExtendableEvent.waitUntil()
kann jetzt asynchron aufgerufen werden (siehe Firefox-Bug 1263304).
WebGL
- Die
WEBGL_compressed_texture_astc
WebGL-Erweiterung wurde implementiert (Firefox-Bug 1250077). - Die
WEBGL_debug_renderer_info
WebGL-Erweiterung ist jetzt standardmäßig aktiviert (Firefox-Bug 1336645).
Audio, Video und Medien
Allgemein
- Beginnend mit Firefox 53 für Android wird das Dekodieren von Medien ausserhalb des Prozesses für eine verbesserte Leistung auf Multicore-Systemen behandelt (Firefox-Bug 1333323).
Medien Elemente
- Die Methode
HTMLMediaElement.play()
, die zum Starten der Wiedergabe von Medien in einem Medienelement verwendet wird, gibt nun einPromise
zurück, das erfüllt wird, wenn die Wiedergabe beginnt und abgelehnt wird, wenn ein Fehler auftritt (Firefox-Bug 1244768).
Web Audio API
- Die Schnittstelle
AudioScheduledSourceNode
wurde hinzugefügt und die SchnittstellenAudioBufferSourceNode
,ConstantSourceNode
undOscillatorNode
basieren jetzt darauf (Firefox-Bug 1324568). - Alle verschiedenen Audio-Knotentypen haben Konstruktoren hinzugefügt bekommen (Firefox-Bug 1322883).
WebRTC
- Die Methoden
createOffer()
undcreateAnswer()
vonRTCPeerConnection
geben jetzt einPromise
zurück, das ein Objekt gemäß demRTCSessionDescriptionInit
-Wörterbuch zurückgibt, anstatt direkt eineRTCSessionDescription
zurückzugeben. Vorhandener Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ebenso akzeptieren die Methoden
setLocalDescription()
undsetRemoteDescription()
vonRTCPeerConnection
jetzt als Eingabe ein Objekt, das dem WörterbuchRTCSessionDescriptionInit
entspricht. Vorhandener Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()
akzeptiert jetzt als Eingabe ein Initialisierungsobjekt. Dies ist mit vorhandenem Code kompatibel, erlaubt es aber, neuen Code in Verbindung mit den oben aufgelisteten Änderungen etwas einfacher zu schreiben (Firefox-Bug 1263312).- DTMF Unterstützung ist jetzt standardmäßig mit
RTCDTMFSender
aktiviert. Weitere Informationen dazu, wie dies funktioniert, finden Sie unter Using DTMF with WebRTC.
HTTP/Networking
-
Gecko hat jetzt eine Einstellung in
about:config
verfügbar, die es Benutzern ermöglicht, ihre Standard-Referrer-Policy
festzulegen —network.http.referer.userControlPolicy
(Firefox-Bug 1304623). Mögliche Werte sind:- 0 —
no-referrer
- 1 —
same-origin
- 2 —
strict-origin-when-cross-origin
- 3 —
no-referrer-when-downgrade
(Standardwert)
- 0 —
-
Die Unterstützung für das Next Protocol Negotiation (NPN) wurde zugunsten der Application-Layer Protocol Negotiation (ALPN) entfernt — siehe Firefox-Bug 1248198.
-
Der
Large-Allocation
HTTP-Header ist jetzt standardmäßig verfügbar und nicht mehr hinter einer Einstellung versteckt (Firefox-Bug 1331083).
SVG
- Die
SVGGeometryElement
Schnittstelle wurde teilweise implementiert (Firefox-Bug 1239100).
Entfernungen aus der Webplattform
>HTML/XML
- Die
dom.details_element.enabled
Einstellung — die die Aktivierung/Deaktivierung der Unterstützung von<details>
und<summary>
Elementen in Firefox kontrollierte — wurde jetzt ausabout:config
entfernt. Diese Elemente (zuerst standardmäßig in Firefox 49 aktiviert) können nicht mehr deaktiviert werden. Siehe Firefox-Bug 1271549. - Das
mozapp
Attribut des<iframe>
Elements /HTMLIFrameElement
Schnittstelle wurde entfernt — dieses wurde verwendet, um eine Firefox OS App in einem Mozilla-vorgehängten Browser-API<iframe>
einzubetten (Firefox-Bug 1310845). - Die Methode
HTMLIFrameElement.setInputMethodActive()
und dieInputMethod
Schnittstelle (verwendet, um IMEs auf Firefox OS Apps zu setzen und zu verwalten) wurden entfernt (Firefox-Bug 1313169).
CSS
- Entfernte
-moz
-vorangestellte Variante der:dir()
Pseudoklasse (Firefox-Bug 1270406). - Die
-moz
-vorangestellte Version vontext-align-last
wurde entfernt (Firefox-Bug 1276808). - Entfernte
-moz
-vorangestellte Variante dercalc()
Methode (Firefox-Bug 1331296). - Das proprietäre
-moz-samplesize
Medienfragment (hinzugefügt, um die Bereitstellung von heruntergesampelten Bildern auf speicherarmen Firefox OS Geräten zu unterstützen; siehe Firefox-Bug 854795) wurde entfernt (Firefox-Bug 1311246).
JavaScript
- Die nicht standardmäßige
ArrayBuffer.slice()
Methode wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()
bleibt erhalten, siehe Firefox-Bug 1313112).
APIs
- Die Wi-Fi Information API, das Speaker Manager API, das Tethering API und das Settings API wurden aus der Plattform entfernt (siehe Firefox-Bug 1313788, Firefox-Bug 1317853, Firefox-Bug 1313789 und Firefox-Bug 1313155 entsprechend).
Sonstiges
legacycaller
wurde aus den SchnittstellenHTMLEmbedElement
undHTMLObjectElement
entfernt (Firefox-Bug 909656).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
Erweiterte APIs:
storage.sync
page_action
,browser_action
,password
,tab
Kontexttypen incontextMenus
webRequest.onBeforeRequest
unterstützt jetztrequestBody
tabs.insertCSS
unterstützt jetztcssOrigin
, wodurch Sie Benutzer-Stylesheets einfügen können.
JavaScript-Code-Module
- Die asynchronen AddonManager APIs unterstützen jetzt
Promises
sowie Rückrufe (Firefox-Bug 987512).