Firefox 53 Versionshinweise 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 Scrollverzögerungen bei Highlightern durch APZ (Firefox-Bug 1312103).
- Hinzufügung der Option zum Kopieren des vollständigen CSS-Pfads eines Elements (Firefox-Bug 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox-Bug 1310681).
- Markup-Ansicht: Visueller Hinweis zwischen Öffnungs- und Schlusstag 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). - Eigenschaft
caret-colorhinzugefügt (Firefox-Bug 1063162). - Implementierung der Kurzschreibweisen
place-items/place-self/place-content(Firefox-Bug 1319958). - Der Wert
flow-rootzurdisplay-Eigenschaft hinzugefügt (Firefox-Bug 1322191). -moz-tab-sizeakzeptiert nun<length>-Werte (Firefox-Bug 943918) und ist nun animierbar (Firefox-Bug 1308110).mask-mode:luminance funktioniert nicht bei Verlaufsmaske (Firefox-Bug 1346265).- [css-grid] FR-Einheit in
grid-template-rowsfüllt nicht den Viewport (Firefox-Bug 1346699). - Flex-Elemente werden nicht nach "order" sortiert, wenn sie durch ein abspos Geschwister getrennt sind (Firefox-Bug 1345873).
Weitere Änderungen
- Aktivierung der Masken-Langformen auf SVG-Elementen (Firefox-Bug 1319667).
- [css-grid] Behoben:
align-self/justify-self:stretch/normalfunktioniert nicht auf<table>-Grid-Elementen (Firefox-Bug 1316051). - Behoben:
clip-path: circle()mit großem Referenzrahmen und Prozent-Radius wird nicht korrekt gerendert (Firefox-Bug 1324713). - Wenn ein
text-transform-Wert vonuppercaseauf griechischen Text angewendet wird, wird der Akzent auf dem disjunktiven Eta (ή) nicht mehr entfernt (siehe Firefox-Bug 1322989). - Die Verfügbarkeit des
contents-Wertes vondisplaywurde über 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 schließt abgeleitete Namen auf anonymen Funktionen ein (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 proposal, der Einschränkungen von Escape-Sequenzen auf getaggten Template-Literalen aufhebt, wurde implementiert (Firefox-Bug 1317375).
- Die statische
length-Eigenschaft vonTypedArray-Objekten wurde in Übereinstimmung mit ES2016 von 3 auf 0 geändert (Firefox-Bug 1317306). SharedArrayBufferkann jetzt inDataView-Objekten verwendet werden (Firefox-Bug 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBuffer-Objekte beim strukturierten Klonen explizit übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und dürfen daher nicht mehr in der Übertragungsliste stehen. Das neue Verhalten führte bisher nur zu einer Konsolenwarnung, wird jetzt jedoch einen Fehler auslösen (Firefox-Bug 1302037). - Die
ArrayBuffer-Länge ist jetzt aufNumber.MAX_SAFE_INTEGER(>= 2 ** 53) begrenzt (Firefox-Bug 1255128). Errorund andere native Fehlerobjektprototypen wieRangeErrorusw. sind jetzt gewöhnliche Objekte anstelle von ordnungsgemäßen Fehlerobjekten. (Insbesondere istObject.prototype.toString.call(Error.prototype)jetzt"[object Object]"anstelle von"[object Error]".) (Firefox-Bug 1213341).
Ereignisse
- CSS-Übergänge: Die Ereignisse
transitionstart,transitionrunundtransitioncancelwurden implementiert (siehe Firefox-Bug 1264125 und Firefox-Bug 1287983). - Der
CompositionEvent-Konstruktor wurde implementiert (siehe Firefox-Bug 1002256). - Die Alias-Ereignisse
MouseEvent.xundMouseEvent.yvonMouseEvent.clientX/MouseEvent.clientYwurden 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 Eigenschaften
pathnameundsearchvon Links (wie für<a>und<link>-Elemente) gaben zuvor die falschen Teile der URL zurück. Zum Beispiel würde bei einer URL vonhttp://z.com/x?a=true&b=falsepathname"/x?a=true&b=false"undsearch""zurückgeben, statt"/x"und"?a=true&b=false"jeweils. Dies wurde nun behoben (Firefox-Bug 1310483). - Der Konstruktor
URLSearchParams()akzeptiert jetzt eine Zeichenfolge oder eine Abfolge von Zeichenfolgen als Init-Objekt (Firefox-Bug 1330678). - Die Methode
Selection.setBaseAndExtent()der Selection API ist nun implementiert (siehe Firefox-Bug 1321623). - Die "fakepath" Ergänzung zu
file-Typ-<input>-valueswurde in Gecko implementiert und sorgt für eine Übereinstimmung mit anderen Browsern (siehe Firefox-Bug 1274596). Node.getRootNode()wurde implementiert und ersetzt die veralteteNode.rootNode-Eigenschaft (Firefox-Bug 1269155).- Eigene Eigenschaften von
PluginundPluginArrayObjekten sind nicht mehr aufzählbar (Firefox-Bug 1270366). - Benannte Eigenschaften von
MimeTypeArrayObjekten sind nicht mehr aufzählbar (Firefox-Bug 1270364). - Die Permissions API hat jetzt einen neuen Berechtigungsnamen verfügbar —
persistent-storage— der bei der Durchführung einesPermissions.query()(siehe Firefox-Bug 1270038) verwendet wird. Dies ermöglicht es einem Ursprung, eine persistente Box (d.h. persistent storage) für seine Speicherung zu verwenden, wie es die Storage API festlegt. - Die
Performance.timeOrigin-Eigenschaft wurde implementiert (Firefox-Bug 1313420).
Arbeiter und Service-Arbeiter
- Die Network Information API ist nun in Arbeitern verfügbar (siehe Firefox-Bug 1323172).
- Server-sent events können nun in Arbeitern verwendet werden (siehe Firefox-Bug 1267903).
ExtendableEvent.waitUntil()kann nun asynchron aufgerufen werden (siehe Firefox-Bug 1263304).
WebGL
- Die
WEBGL_compressed_texture_astcWebGL-Erweiterung wurde implementiert (Firefox-Bug 1250077). - Die
WEBGL_debug_renderer_infoWebGL-Erweiterung ist jetzt standardmäßig aktiviert (Firefox-Bug 1336645).
Audio, Video und Medien
Allgemein
- Mit Firefox 53 für Android wird das Dekodieren von Medien für eine verbesserte Leistung auf Multikernsystemen out-of-process behandelt (Firefox-Bug 1333323).
Medienelemente
- Die Methode
HTMLMediaElement.play(), die zur Wiedergabe von Medien in jedem Medienelement verwendet wird, gibt jetzt einPromisezurück, das erfüllt wird, wenn die Wiedergabe beginnt und abgelehnt wird, wenn ein Fehler auftritt (Firefox-Bug 1244768).
Web Audio API
- Die Schnittstelle
AudioScheduledSourceNodewurde hinzugefügt und die SchnittstellenAudioBufferSourceNode,ConstantSourceNodeundOscillatorNodebasieren jetzt darauf (Firefox-Bug 1324568). - Allen verschiedenen Audio-Knotentypen wurden Konstruktoren hinzugefügt (Firefox-Bug 1322883).
WebRTC
- Die Methoden
createOffer()undcreateAnswer()vonRTCPeerConnectiongeben jetzt einPromisezurück, das ein Objekt entsprechend demRTCSessionDescriptionInit-Dictionary zurückgibt, anstelle eines direktenRTCSessionDescriptionRückgabewerts. Bestehender Code funktioniert weiterhin, aber neuer Code kann einfacher geschrieben werden. - Ebenso nehmen die Methoden
setLocalDescription()undsetRemoteDescription()vonRTCPeerConnectionjetzt als Eingabe ein Objekt entsprechend demRTCSessionDescriptionInit-Dictionary an. Bestehender Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()akzeptiert jetzt als Eingabe ein Initialisierungsobjekt. Dies ist mit bestehendem Code kompatibel, ermöglicht jedoch, dass neuer Code etwas einfacher geschrieben werden kann, wenn er zusammen mit den oben aufgeführten Änderungen verwendet wird (Firefox-Bug 1263312).- DTMF-Unterstützung ist jetzt standardmäßig mit
RTCDTMFSenderaktiviert. Weitere Informationen dazu, wie dies funktioniert, finden Sie unter Verwendung von DTMF mit WebRTC.
HTTP/Netzwerk
-
Gecko hat jetzt eine Voreinstellung in
about:configverfügbar, um Benutzern zu erlauben, ihre standardmäßigeReferrer-Policyzu 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(die Standardeinstellung)
- 0 —
-
Die Unterstützung für die 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 implementiert die
SVGGeometryElementSchnittstelle (Firefox-Bug 1239100).
Entfernungen aus der Web-Plattform
>HTML/XML
- Die
dom.details_element.enabled-Voreinstellung — die das Aktivieren/Deaktivieren der Unterstützung von<details>und<summary>-Elementen in Firefox kontrollierte — wurde nun ausabout:configentfernt. 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 — dies wurde verwendet, um eine Firefox-OS-App in einem Mozilla-präfixierten Browser-API<iframe>einzubetten (Firefox-Bug 1310845). - Die Methode
HTMLIFrameElement.setInputMethodActive()und dieInputMethod-Schnittstelle (verwendet, um Eingabemethoden-Editoren auf Firefox-OS-Apps zu setzen und zu verwalten) wurde entfernt (Firefox-Bug 1313169).
CSS
- Entfernt die
-moz-präfixierte Variante der:dir()-Pseudoklasse (Firefox-Bug 1270406). - Die
-moz-präfixierte Version vontext-align-lastwurde entfernt (Firefox-Bug 1276808). - Entfernt die
-moz-präfixierte Variante dercalc()-Methode (Firefox-Bug 1331296). - Der proprietäre
-moz-samplesize-Medienfragmente (hinzugefügt zur Unterstützung von heruntergesampelten Bildern auf Geräten mit wenig Speicher in Firefox OS; siehe Firefox-Bug 854795) wurde entfernt (Firefox-Bug 1311246).
JavaScript
- Die nicht standardisierte
ArrayBuffer.slice()-Methode wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()bleibt erhalten, siehe Firefox-Bug 1313112).
APIs
- Die Wi-Fi-Informations-API, Lautsprecher-Manager-API, Tethering-API und Einstellungs-API wurden von der Plattform entfernt (siehe Firefox-Bug 1313788, Firefox-Bug 1317853, Firefox-Bug 1313789 und Firefox-Bug 1313155).
Sonstiges
- Der
legacycallerwurde aus denHTMLEmbedElementundHTMLObjectElement-Schnittstellen entfernt (Firefox-Bug 909656).
Änderungen für Add-On- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
Erweiterte APIs:
storage.syncpage_action,browser_action,password,tabKontexttypen incontextMenuswebRequest.onBeforeRequestunterstützt jetztrequestBodytabs.insertCSSunterstützt jetztcssOrigin, was Ihnen ermöglicht, Benutzerstile einzufügen.
JavaScript-Code-Module
- Die asynchronen AddonManager APIs unterstützen jetzt sowohl
Promisesals auch Rückrufe (Firefox-Bug 987512).