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 Scroll-Latenz bei Hervorhebungen durch APZ (Firefox Fehler 1312103).
- Hinzufügen einer Option zum Kopieren des vollständigen CSS-Pfads eines Elements (Firefox Fehler 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox Fehler 1310681).
- Markup-Ansicht: Hinzufügen eines visuellen Hinweises zwischen öffnenden und schließenden Tags eines zusammengeklappten Knotens (Firefox Fehler 1323193).
CSS
Neue Funktionen
- Die
mask-*Langformen-Eigenschaften (siehe CSS Masks) werden alle unterstützt und sind standardmäßig verfügbar (siehe Firefox Fehler 1251161). - Die
caret-colorEigenschaft wurde hinzugefügt (Firefox Fehler 1063162). - Die Kurzformen
place-items/place-self/place-contentwurden implementiert (Firefox Fehler 1319958). - Der Wert
flow-rootwurde zurdisplayEigenschaft hinzugefügt (Firefox Fehler 1322191). -moz-tab-sizeakzeptiert jetzt<length>Werte (Firefox Fehler 943918) und ist jetzt animierbar (Firefox Fehler 1308110).mask-mode:luminance funktioniert nicht auf Gradientenmasken (Firefox Fehler 1346265).- [css-grid] FR-Einheit in
grid-template-rowsfüllt nicht das Ansichtsfenster (Firefox Fehler 1346699). - Flex-Elemente werden nicht gemäß "order" sortiert, wenn sie durch ein absolut positioniertes Geschwisterelement getrennt sind (Firefox Fehler 1345873).
Weitere Änderungen
- Aktivieren von Masken-Langformen auf SVG-Elementen (Firefox Fehler 1319667).
- [css-grid] Behoben:
align-self/justify-self:stretch/normalfunktioniert nicht auf<table>Grid-Elementen (Firefox Fehler 1316051). - Behoben:
clip-path: circle()mit großem Referenzrahmen und Prozentualradius rendert nicht korrekt (Firefox Fehler 1324713). - Beim Anwenden eines
text-transformWertes vonuppercaseauf griechischen Text wird der Akzent auf dem disjunktiven Eta (ή) nicht mehr entfernt (siehe Firefox Fehler 1322989). - Die Verfügbarkeit des
contentsWertes derdisplayEigenschaft wurde über die Voreinstellunglayout.css.display-contents.enabledgesteuert. In Firefox 53 wurde diese Voreinstellung vollständig entfernt, sodass der Wert immer verfügbar ist und nicht mehr deaktiviert werden kann (Firefox Fehler 1295788).
JavaScript
- ECMAScript 2015 Semantiken für die
Function.nameEigenschaften wurden implementiert. Dies umfasst abgeleitete Namen bei anonymen Funktionen (var foo = function() {}) (Firefox Fehler 883377). - ECMAScript 2015 Semantiken für das Schließen von Iteratoren wurden implementiert. Dies betrifft beispielsweise die
for...ofSchleife (Firefox Fehler 1147371). - Der Template Literal Revision proposal, der Beschränkungen der Escape-Sequenzen auf getaggten Template-Literalen aufhebt, wurde implementiert (Firefox Fehler 1317375).
- Die statische
lengthEigenschaft vonTypedArrayObjekten wurde gemäß ES2016 von 3 auf 0 geändert (Firefox Fehler 1317306). SharedArrayBufferkann jetzt inDataViewObjekten verwendet werden (Firefox Fehler 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBufferObjekte während des strukturierten Klonens explizit übertragen werden. In der neuen Spezifikation sind sie keine transferierbaren Objekte mehr und dürfen daher nicht in der Transferliste enthalten sein. Das neue Verhalten zeigte zuvor nur eine Konsolenwarnung an, wird jetzt aber einen Fehler auslösen (Firefox Fehler 1302037). - Die
ArrayBufferLänge ist jetzt aufNumber.MAX_SAFE_INTEGER(>= 2 ** 53) begrenzt (Firefox Fehler 1255128). Errorund andere Prototypen nativer Fehlerobjekte wieRangeErrorusw. sind jetzt gewöhnliche Objekte anstelle von richtigen Fehlerobjekten. (InsbesondereObject.prototype.toString.call(Error.prototype)ist jetzt"[object Object]"anstelle von"[object Error]".) (Firefox Fehler 1213341).
Ereignisse
- CSS-Übergänge: Die Ereignisse
transitionstart,transitionrunundtransitioncancelwurden implementiert (siehe Firefox Fehler 1264125 und Firefox Fehler 1287983). - Der
CompositionEventKonstruktor wurde implementiert (siehe Firefox Fehler 1002256). - Die Aliase
MouseEvent.xundMouseEvent.yvonMouseEvent.clientX/MouseEvent.clientYwurden implementiert (siehe Firefox Fehler 424390). - Das
auxclickEreignis und der entsprechende Ereignishandler wurden implementiert (siehe Firefox Fehler 1304044). - Das
transitioncancelEreignis wird jetzt ausgelöst, nachdem ein Übergang abgebrochen wurde.
DOM
- Die Eigenschaften
pathnameundsearchvon Links (wie für die Schnittstellen von<a>und<link>Elementen) gaben zuvor die falschen Teile der URL zurück. Zum Beispiel würde für eine URL vonhttp://z.com/x?a=true&b=falsepathname"/x?a=true&b=false"zurückgeben undsearch"", anstatt"/x"und"?a=true&b=false"respektive. Dies wurde jetzt behoben (Firefox Fehler 1310483). - Der Konstruktor
URLSearchParams()akzeptiert jetzt einen String oder eine Sequenz von Strings als Initialisierungsobjekt (Firefox Fehler 1330678). - Die Methode
Selection.setBaseAndExtent()der Selection API ist jetzt implementiert (siehe Firefox Fehler 1321623). - Die "fakepath" Ergänzung zu
fileTyp<input>Wertewurde in Gecko implementiert und bietet Parität mit anderen Browsern (siehe Firefox Fehler 1274596). Node.getRootNode()wurde implementiert und ersetzt die veralteteNode.rootNodeEigenschaft (Firefox Fehler 1269155).- Eigene Eigenschaften von
PluginundPluginArrayObjekten sind nicht mehr aufzählbar (Firefox Fehler 1270366). - Benannte Eigenschaften von
MimeTypeArrayObjekten sind nicht mehr aufzählbar (Firefox Fehler 1270364). - Die Permissions API hat jetzt einen neuen Berechtigungsnamen verfügbar —
persistent-storage— wie bei einemPermissions.query()verwendet (siehe Firefox Fehler 1270038). Dies ermöglicht es einem Ursprung, eine persistente Box (d.h. persistente Speicherung) für seine Speicherung zu verwenden, gemäß der Storage API. - Die Eigenschaft
Performance.timeOriginwurde implementiert (Firefox Fehler 1313420).
Arbeiter und Service Workers
- Die Network Information API ist jetzt in Arbeitern verfügbar (siehe Firefox Fehler 1323172).
- Server-sent events können jetzt in Arbeitern verwendet werden (siehe Firefox Fehler 1267903).
ExtendableEvent.waitUntil()kann jetzt asynchron aufgerufen werden (siehe Firefox Fehler 1263304).
WebGL
- Die WebGL-Erweiterung
WEBGL_compressed_texture_astcwurde implementiert (Firefox Fehler 1250077). - Die WebGL-Erweiterung
WEBGL_debug_renderer_infoist jetzt standardmäßig aktiviert (Firefox Fehler 1336645).
Audio, Video und Medien
Allgemein
- Beginnend mit Firefox 53 für Android wird das Decodieren von Medien out-of-process durchgeführt, um die Leistung auf Mehrkernsystemen zu verbessern (Firefox Fehler 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 verworfen wird, wenn ein Fehler auftritt (Firefox Fehler 1244768).
Web Audio API
- Die
AudioScheduledSourceNodeSchnittstelle wurde hinzugefügt, und die SchnittstellenAudioBufferSourceNode,ConstantSourceNodeundOscillatorNodebasieren jetzt darauf (Firefox Fehler 1324568). - Alle verschiedenen Audio-Knotentypen haben Konstruktoren hinzugefügt bekommen (Firefox Fehler 1322883).
WebRTC
- Die Methoden
createOffer()undcreateAnswer()vonRTCPeerConnectiongeben jetzt einPromisezurück, das ein Objekt zurückgibt, das demRTCSessionDescriptionInitWörterbuch entspricht, anstatt direkt eineRTCSessionDescriptionzurückzugeben. Bestehender Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ebenso akzeptieren die Methoden
setLocalDescription()undsetRemoteDescription()vonRTCPeerConnectionjetzt als Eingabe ein Objekt, das dem WörterbuchRTCSessionDescriptionInitentspricht. Bestehender Code wird weiterhin funktionieren, kann jedoch vereinfacht werden. RTCPeerConnection.addIceCandidate()akzeptiert jetzt als Eingabe ein Initialisierungsobjekt. Dies ist kompatibel mit bestehendem Code, ermöglicht jedoch das Schreiben von neuem Code, der mit den oben genannten Änderungen etwas einfacher ist (Firefox Fehler 1263312).- DTMF Unterstützung ist jetzt standardmäßig aktiviert, indem
RTCDTMFSenderverwendet wird. Weitere Informationen zur Funktionsweise finden Sie unter Using DTMF with WebRTC.
HTTP/Netzwerk
-
Gecko hat jetzt eine Voreinstellung in
about:configverfügbar, die es Benutzern ermöglicht, ihre Standard-Referrer-Policyzu setzen —network.http.referer.userControlPolicy(Firefox Fehler 1304623). Mögliche Werte sind:- 0 —
no-referrer - 1 —
same-origin - 2 —
strict-origin-when-cross-origin - 3 —
no-referrer-when-downgrade(der Standard)
- 0 —
-
Die Unterstützung für das Next Protocol Negotiation (NPN) wurde zugunsten des Application-Layer Protocol Negotiation (ALPN) entfernt — siehe Firefox Fehler 1248198.
-
Der
Large-AllocationHTTP-Header ist jetzt standardmäßig verfügbar und wird nicht mehr hinter einer Voreinstellung verborgen (Firefox Fehler 1331083).
SVG
- Die Schnittstelle
SVGGeometryElementwurde teilweise implementiert (Firefox Fehler 1239100).
Entfernungen von der Webplattform
>HTML/XML
- Die Voreinstellung
dom.details_element.enabled— die das Aktivieren/Deaktivieren der Unterstützung für die Elemente<details>und<summary>in Firefox steuerte — wurde jetzt ausabout:configentfernt. Diese Elemente (die erstmals standardmäßig in Firefox 49 aktiviert wurden) können nicht mehr deaktiviert werden. Siehe Firefox Fehler 1271549. - Das
mozappAttribut des<iframe>Elements/derHTMLIFrameElementSchnittstelle wurde entfernt — dies wurde verwendet, um eine Firefox OS App in einem mozilla-präfixierten Browser-API<iframe>einzubetten (Firefox Fehler 1310845). - Die Methode
HTMLIFrameElement.setInputMethodActive()und die SchnittstelleInputMethod(verwendet, um IMEs auf Firefox OS Apps einzustellen und zu verwalten) wurden entfernt (Firefox Fehler 1313169).
CSS
- Entfernt
-mozpräfixierte Variante der:dir()Pseudoklasse (Firefox Fehler 1270406). - Die
-mozpräfixierte Version vontext-align-lastwurde entfernt (Firefox Fehler 1276808). - Entfernt
-mozpräfixierte Variante dercalc()Methode (Firefox Fehler 1331296). - Das proprietäre
-moz-samplesizeMedienfragment (hinzugefügt, um die Lieferung von heruntergesampelten Bildern an gering speicherfähige Firefox OS Geräte zu unterstützen; siehe Firefox Fehler 854795) wurde entfernt (Firefox Fehler 1311246).
JavaScript
- Die nicht standardisierte Methode
ArrayBuffer.slice()wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()bleibt erhalten, siehe Firefox Fehler 1313112).
APIs
- Die Wi-Fi Information API, Speaker Manager API, und Tethering API und die Settings API wurden von der Plattform entfernt (siehe Firefox Fehler 1313788, Firefox Fehler 1317853, Firefox Fehler 1313789 und Firefox Fehler 1313155 respektive).
Sonstiges
- Der
legacycallerwurde von den SchnittstellenHTMLEmbedElementundHTMLObjectElemententfernt (Firefox Fehler 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, sodass Sie Benutzer-Stylesheets einfügen können.
JavaScript-Code-Module
- Die asynchronen AddonManager APIs unterstützen jetzt sowohl
Promisesals auch Rückrufe (Firefox Fehler 987512).