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 von Nutzen sind.
Änderungen für Webentwickler
Entwicklerwerkzeuge
- Vermeidung von Scroll-Verzögerungen bei Hervorhebungen durch APZ (Firefox Bug 1312103).
- Hinzufügung einer Option zum Kopieren des vollständigen CSS-Pfades eines Elements (Firefox Bug 1323700).
- Devtools-Unterstützung für css-color-4 (Firefox Bug 1310681).
- Markup-Ansicht: Visueller Hinweis zwischen öffnenden und schließenden Tags eines zusammengeklappten Knotens hinzugefügt (Firefox Bug 1323193).
CSS
Neue Funktionen
- Die
mask-*
Langform-Eigenschaften (siehe CSS Masks) werden alle unterstützt und sind standardmäßig verfügbar (siehe Firefox Bug 1251161). - Hinzugefügte
caret-color
-Eigenschaft (Firefox Bug 1063162). - Implementierte
place-items
/place-self
/place-content
Abkürzungen (Firefox Bug 1319958). - Hinzugefügter
flow-root
Wert zurdisplay
-Eigenschaft (Firefox Bug 1322191). -moz-tab-size
akzeptiert jetzt<length>
Werte (Firefox Bug 943918) und ist nun 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 nicht den gesamten Viewport aus (Firefox Bug 1346699). - Flex-Elemente werden nicht nach "order" sortiert, wenn sie von einem abspos-Geschwister getrennt sind (Firefox Bug 1345873).
Weitere Änderungen
- Aktivierung von Masken-Langformen auf SVG-Elementen (Firefox Bug 1319667).
- [css-grid] Behoben:
align-self
/justify-self:stretch
/normal
funktioniert nicht bei<table>
Gitterelementen (Firefox Bug 1316051). - Behoben:
clip-path: circle()
mit großem Referenzrahmen und prozentualem Radius rendert nicht korrekt (Firefox Bug 1324713). - Bei Anwendung eines
text-transform
Werts vonuppercase
auf griechischen Text wird der Akzent auf der disjunkten Eta (ή) nicht mehr entfernt (siehe Firefox Bug 1322989). - Die Verfügbarkeit des
contents
Werts vondisplay
wurde durch daslayout.css.display-contents.enabled
Präferenz gesteuert. In Firefox 53 wurde diese Präferenz vollständig entfernt, sodass der Wert immer verfügbar ist und nicht mehr deaktiviert werden kann (Firefox Bug 1295788).
JavaScript
- ECMAScript 2015-Semantik für die
Function.name
Eigenschaften wurde implementiert. Dazu gehören abgeleitete Namen für anonyme Funktionen (var foo = function() {}
) (Firefox Bug 883377). - ECMAScript 2015 Semantik für das Schließen von Iteratoren wurde implementiert. Dies betrifft zum Beispiel die
for...of
Schleife (Firefox Bug 1147371). - Der Template Literal Revision Vorschlag, der Einschränkungen von Escape-Sequenzen in getaggten Template-Literalen aufhebt, wurde umgesetzt (Firefox Bug 1317375).
- Die statische
length
-Eigenschaft vonTypedArray
Objekten wurde gemäß ES2016 von 3 auf 0 geändert (Firefox Bug 1317306). SharedArrayBuffer
kann nun 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 dürfen somit nicht in der Transferliste sein. Das neue Verhalten zeigte bisher nur eine Konsolenwarnung, wirft jetzt aber einen Fehler (Firefox Bug 1302037). - Die Länge von
ArrayBuffer
ist jetzt aufNumber.MAX_SAFE_INTEGER
(>= 2 ** 53) beschränkt (Firefox Bug 1255128). Error
und andere native Error-Objekt-Prototypen wieRangeError
etc. sind nun gewöhnliche Objekte statt richtige Error-Objekte. (Insbesondere istObject.prototype.toString.call(Error.prototype)
jetzt"[object Object]"
statt"[object Error]"
.) (Firefox Bug 1213341).
Ereignisse
- CSS-Transitionen: 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 Aliase
MouseEvent.x
undMouseEvent.y
fürMouseEvent.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 nach einem Übergang ausgelöst, der abgebrochen wurde.
DOM
- Die
pathname
undsearch
Eigenschaften von Links (wie etwa für die<a>
und<link>
Elemente) gaben zuvor die falschen 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"
jeweils. Dies wurde nun behoben (Firefox Bug 1310483). - Der
URLSearchParams()
Konstruktor akzeptiert jetzt eine Zeichenfolge oder eine Sequenz von Zeichenketten als Init-Objekt (Firefox Bug 1330678). - Die Methode
Selection.setBaseAndExtent()
des Selection API ist jetzt implementiert (siehe Firefox Bug 1321623). - Die "fakepath" Ergänzung zu
file
-Typ<input>
values
wurde in Gecko implementiert, wodurch es mit anderen Browsern vergleichbar ist (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 —
persistent-storage
— der beim Erstellen einesPermissions.query()
verwendet wird (siehe Firefox Bug 1270038). Dadurch kann ein Ursprung einen persistenten Slot (d.h. persistent storage) für seinen Speicher verwenden, gemäß der Storage API. - Die Eigenschaft
Performance.timeOrigin
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
- Beginnend mit Firefox 53 für Android wird das Dekodieren von Media out-of-process behandelt, um die Leistung auf Multicore-Systemen zu verbessern (Firefox Bug 1333323).
Medienelemente
- Die Methode
HTMLMediaElement.play()
, die verwendet wird, um die Wiedergabe von Medien in einem beliebigen Medienelement zu starten, gibt jetzt einPromise
zurück, das erfüllt wird, wenn die Wiedergabe beginnt und zurückgewiesen wird, wenn ein Fehler auftritt (Firefox Bug 1244768).
Web Audio API
- Das Interface
AudioScheduledSourceNode
wurde hinzugefügt und die InterfacesAudioBufferSourceNode
,ConstantSourceNode
undOscillatorNode
basieren jetzt auf diesem (Firefox Bug 1324568). - Alle verschiedenen Audio-Knotentypen haben Konstruktoren hinzugefügt bekommen (Firefox Bug 1322883).
WebRTC
- Die Methoden
createOffer()
undcreateAnswer()
derRTCPeerConnection
geben jetzt einPromise
zurück, das ein Objekt gemäß demRTCSessionDescriptionInit
Wörterbuch zurückgibt, anstatt direkt eineRTCSessionDescription
zurückzugeben. Bestehender Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ebenso akzeptieren die Methoden
setLocalDescription()
undsetRemoteDescription()
derRTCPeerConnection
jetzt als Eingabe ein Objekt, das dem WörterbuchRTCSessionDescriptionInit
entspricht. Bestehender Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()
akzeptiert jetzt als Eingabe ein Initialisierungsobjekt. Dies ist kompatibel mit bestehendem Code, ermöglicht es aber, neuen Code etwas einfacher zu schreiben, wenn es zusammen mit den oben aufgeführten Änderungen verwendet wird (Firefox Bug 1263312).- DTMF-Unterstützung ist nun standardmäßig mit
RTCDTMFSender
aktiviert. Siehe Using DTMF with WebRTC für weitere Informationen, wie dies funktioniert.
HTTP/Netzwerk
-
In Gecko gibt es nun eine Präferenz im
about:config
, die es Benutzern erlaubt, ihre Standard-Referrer-Policy
zu setzen —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
(Standard)
- 0 —
-
Unterstützung für das Next Protocol Negotiation (NPN) wurde zugunsten von Application-Layer Protocol Negotiation (ALPN) entfernt — siehe Firefox Bug 1248198.
-
Der
Large-Allocation
HTTP-Header ist nun standardmäßig verfügbar und nicht mehr hinter einer Präferenz verborgen (Firefox Bug 1331083).
SVG
- Teilweise implementiertes
SVGGeometryElement
Interface (Firefox Bug 1239100).
Entfernungen aus der Webplattform
HTML/XML
- Die
dom.details_element.enabled
-Präferenz — die die Aktivierung/Deaktivierung der Unterstützung von<details>
und<summary>
-Elementen in Firefox steuerte — wurde nun 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
Interface wurde entfernt — dies wurde benutzt, um eine Firefox OS-App in einem Mozilla-geprefixten Browser-API<iframe>
einzubetten (Firefox Bug 1310845). - Die
HTMLIFrameElement.setInputMethodActive()
-Methode und dasInputMethod
-Interface (verwendet, um IMEs auf Firefox OS-Apps einzustellen und zu verwalten) wurden entfernt (Firefox Bug 1313169).
CSS
- Entfernte
-moz
-präfixierte Variante der:dir()
Pseudoklasse (Firefox Bug 1270406). - Die -moz-präfixierte Version von
text-align-last
wurde entfernt (Firefox Bug 1276808). - Entfernte
-moz
-präfixierte Variante dercalc()
Methode (Firefox Bug 1331296). - Das proprietäre
-moz-samplesize
Media-Fragment (hinzugefügt, um die Lieferung heruntergesampelter Bilder an Geräte mit niedrigem Speicherplatz in Firefox OS zu unterstützen; siehe Firefox Bug 854795) wurde entfernt (Firefox Bug 1311246).
JavaScript
- Die nicht standardisierte
ArrayBuffer.slice()
Methode wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()
wird beibehalten, siehe Firefox Bug 1313112).
APIs
- Die Wi-Fi Information API, Speaker Manager API, Tethering API und Settings API wurden von der Plattform entfernt (siehe Firefox Bug 1313788, Firefox Bug 1317853, Firefox Bug 1313789 und Firefox Bug 1313155 jeweils).
Andere
- 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 nunrequestBody
tabs.insertCSS
unterstützt jetztcssOrigin
, was Ihnen ermöglicht, Benutzer-Stilblätter einzufügen.
JavaScript-Codemodule
- Die asynchronen AddonManager-APIs unterstützen jetzt
Promises
sowie Rückrufe (Firefox Bug 987512).
Ältere Versionen
- Firefox 52 for developers
- Firefox 51 for developers
- 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