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 Web-Entwickler, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
Entwicklerwerkzeuge
- Vermeidung von Scroll-Latenz bei Markierungswerkzeugen durch APZ (Firefox Bug 1312103).
- Eine Option wurde hinzugefügt, um den vollständigen CSS-Pfad eines Elements zu kopieren (Firefox Bug 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox Bug 1310681).
- Markup-Ansicht: Ein visueller Hinweis zwischen Öffnungs- und Schließ-Tags eines eingeklappten Knotens wurde 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
caret-color
Eigenschaft wurde hinzugefügt (Firefox Bug 1063162). - Die
place-items
/place-self
/place-content
Kurzformen wurden implementiert (Firefox Bug 1319958). - Der
flow-root
Wert wurde zurdisplay
Eigenschaft hinzugefügt (Firefox Bug 1322191). -moz-tab-size
akzeptiert nun<length>
Werte (Firefox Bug 943918) und ist jetzt animierbar (Firefox Bug 1308110).mask-mode
:luminance funktioniert nicht bei Farbverlaufs-Masken (Firefox Bug 1346265).- [css-grid] FR-Einheit in
grid-template-rows
füllt den Ansichtsbereich nicht (Firefox Bug 1346699). - Flex-Elemente werden nicht nach "order" sortiert, wenn sie von einem abspos-Geschwister getrennt werden (Firefox Bug 1345873).
Andere Änderungen
- Mask Langhand-Eigenschaften sind 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()
mit großer Referenzbox und Prozent-Radius wird nicht korrekt gerendert (Firefox Bug 1324713). - Beim Anwenden eines
text-transform
Werts vonuppercase
auf griechischen Text wird der Akzent auf dem disjunktiven Eta (ή) nicht mehr entfernt (siehe Firefox Bug 1322989). - Die Verfügbarkeit des
contents
Werts derdisplay
Eigenschaft wurde durch dielayout.css.display-contents.enabled
Voreinstellung gesteuert. In Firefox 53 wurde diese Voreinstellung vollständig 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 umfasst abgeleitete Namen bei anonymen Funktionen (var foo = function() {}
) (Firefox Bug 883377). - ECMAScript 2015 Semantiken für das Schließen von Iteratoren wurden implementiert. Dies betrifft zum Beispiel die
for...of
Schleife (Firefox Bug 1147371). - Der Template Literal Revision Vorschlag, der Beschränkungen von Escape-Sequenzen in getaggten Vorlagenliteralen lockert, 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 Klonens übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und müssen daher nicht mehr in der Übertragungsliste sein. Das neue Verhalten stellte früher nur eine Konsolenwarnung dar, wird jetzt aber einen Fehler werfen (Firefox Bug 1302037). - Die Länge von
ArrayBuffer
ist jetzt aufNumber.MAX_SAFE_INTEGER
(>= 2 ** 53) begrenzt (Firefox Bug 1255128). Error
und andere Prototypen von nativen Error-Objekten wieRangeError
usw. sind jetzt gewöhnliche Objekte anstatt richtige Error-Objekte. (Insbesondere istObject.prototype.toString.call(Error.prototype)
jetzt"[object Object]"
statt"[object Error]"
.) (Firefox Bug 1213341).
Events
- CSS-Übergänge: Die Ereignisse
transitionstart
,transitionrun
undtransitioncancel
wurden implementiert (siehe Firefox Bug 1264125 und Firefox Bug 1287983). - Der
CompositionEvent
Konstruktor wurde implementiert (siehe Firefox Bug 1002256). - Die
MouseEvent.x
undMouseEvent.y
Aliase 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 jetzt ausgelöst, nachdem ein Übergang abgebrochen wurde.
DOM
- Die
pathname
undsearch
Eigenschaften von Links (wie bei den Interfaces von<a>
und<link>
Elementen) gaben zuvor die falschen Teile der URL zurück. Bei einer URL vonhttp://z.com/x?a=true&b=false
würdepathname
beispielsweise"/x?a=true&b=false"
undsearch
""
zurückgeben, anstatt"/x"
und"?a=true&b=false"
. Dies wurde nun behoben (Firefox Bug 1310483). - Der
URLSearchParams()
Konstruktor akzeptiert jetzt als Init-Objekt einen String oder eine Sequenz von Strings (Firefox Bug 1330678). - Die
Selection.setBaseAndExtent()
Methode der Selection API ist jetzt implementiert (siehe Firefox Bug 1321623). - Die "fakepath" Ergänzung zu
file
-Typ<input>
values
wurde in Gecko implementiert und bietet damit Parität 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 verfügt jetzt über einen neuen Berechtigungsnamen —
persistent-storage
— sobald einePermissions.query()
durchgeführt wird (siehe Firefox Bug 1270038). Dies ermöglicht einer Origin, eine persistente Box (d.h. persistent storage) für ihren Speicher zu verwenden, gemäß der Storage API. - Die
Performance.timeOrigin
Eigenschaft wurde implementiert (Firefox Bug 1313420).
Worker 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
- Ab Firefox 53 für Android wird das Dekodieren von Medien aus Leistungsgründen auf Systemen mit mehreren Kernen out-of-process durchgeführt (Firefox Bug 1333323).
Medien-Elemente
- Die
HTMLMediaElement.play()
Methode, die zum Starten der Wiedergabe von Medien in einem beliebigen Medienelement verwendet wird, gibt jetzt einPromise
zurück, das erfüllt wird, wenn die Wiedergabe startet, und abgelehnt wird, wenn ein Fehler auftritt (Firefox Bug 1244768).
Web Audio API
- Das
AudioScheduledSourceNode
Interface wurde hinzugefügt, und dieAudioBufferSourceNode
,ConstantSourceNode
undOscillatorNode
Interfaces basieren jetzt darauf (Firefox Bug 1324568). - Alle verschiedenen Audionodetypen haben nun Konstruktoren erhalten (Firefox Bug 1322883).
WebRTC
- Die
RTCPeerConnection
MethodencreateOffer()
undcreateAnswer()
geben jetzt einPromise
zurück, das ein Objekt zurückgibt, das demRTCSessionDescriptionInit
Wörterbuch entspricht, anstatt direkt eineRTCSessionDescription
zurückzugeben. Bestehender Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ähnlich akzeptieren die
RTCPeerConnection
MethodensetLocalDescription()
undsetRemoteDescription()
jetzt als Eingabe ein Objekt, das dem WörterbuchRTCSessionDescriptionInit
entspricht. Bestehender Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()
akzeptiert jetzt ein Initialisierungsobjekt als Eingabe. Dies ist kompatibel mit bestehendem Code, erlaubt jedoch das Schreiben von neuem Code, der in Kombination mit den oben genannten Änderungen etwas einfacher ist (Firefox Bug 1263312).- DTMF Unterstützung ist jetzt standardmäßig mit
RTCDTMFSender
aktiviert. Siehe Verwendung von DTMF mit WebRTC für weitere Informationen darüber, wie dies funktioniert.
HTTP/Netzwerk
-
Gecko hat jetzt eine Voreinstellung in
about:config
, die es Benutzern erlaubt, ihre Standard-Referrer-Policy
—network.http.referer.userControlPolicy
— festzulegen (Firefox Bug 1304623). Mögliche Werte sind:- 0 —
no-referrer
- 1 —
same-origin
- 2 —
strict-origin-when-cross-origin
- 3 —
no-referrer-when-downgrade
(Standard)
- 0 —
-
Die Unterstützung für 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 Voreinstellung verborgen (Firefox Bug 1331083).
SVG
- Teilweise implementiertes
SVGGeometryElement
Interface (Firefox Bug 1239100).
Entfernung aus der Webplattform
HTML/XML
- Die
dom.details_element.enabled
Voreinstellung — die die Aktivierung/Deaktivierung der Unterstützung für<details>
und<summary>
Elemente in Firefox steuerte — wurde 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
Interfaces wurde entfernt — dies wurde verwendet, um eine Firefox OS App in einem mozilla-präfixierten Browser-API<iframe>
einzubetten (Firefox Bug 1310845). - Die
HTMLIFrameElement.setInputMethodActive()
Methode und dasInputMethod
Interface (verwendet zur Einrichtung und Verwaltung von IMEs in Firefox OS Apps) wurden entfernt (Firefox Bug 1313169).
CSS
- Entfernte
-moz
vorgefixte Variante der:dir()
Pseudoklasse (Firefox Bug 1270406). - Die
-moz
vorgefixte Version vontext-align-last
wurde entfernt (Firefox Bug 1276808). - Entfernte
-moz
vorgefixte Variante dercalc()
Methode (Firefox Bug 1331296). - Das proprietäre
-moz-samplesize
Medienfragment (zusätzlich zur Unterstützung der Bereitstellung herunterskalierter Bilder an Geräte mit niedrigem Speicher bei Firefox OS; siehe Firefox Bug 854795) wurde entfernt (Firefox Bug 1311246).
JavaScript
- Die nicht standardkonforme
ArrayBuffer.slice()
Methode wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()
bleibt erhalten, siehe Firefox Bug 1313112).
APIs
- Die Wi-Fi Information API, die Speaker Manager API, die Tethering API und die Settings API wurden von der Plattform entfernt (siehe Firefox Bug 1313788, Firefox Bug 1317853, Firefox Bug 1313789, und Firefox Bug 1313155 jeweils).
Sonstiges
- Der
legacycaller
wurde aus denHTMLEmbedElement
undHTMLObjectElement
Interfaces 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
, was es ermöglicht, Benutzer-Stylesheets einzufügen.
JavaScript-Code-Module
- Die asynchronen AddonManager APIs unterstützen jetzt
Promises
sowie Rückrufe (Firefox Bug 987512).
Ältere Versionen
- Firefox 52 für Entwickler
- Firefox 51 für Entwickler
- 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