Firefox 53: Versionshinweise für Entwickler
Firefox 53 wurde am 19. April 2017 veröffentlicht. Dieser Artikel führt wichtige Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie für Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Scroll-Verzögerungen bei von APZ bereitgestellten Hervorhebungen wurden vermieden (Firefox-Bug 1312103).
- Eine Option zum Kopieren des vollständigen CSS-Pfads eines Elements wurde hinzugefügt (Firefox-Bug 1323700).
- DevTools unterstützen jetzt css-color-4 (Firefox-Bug 1310681).
- Markup-Ansicht: Zwischen dem öffnenden und dem schließenden Tag eines eingeklappten Knotens wurde ein visueller Hinweis hinzugefügt (Firefox-Bug 1323193).
CSS
Neue Funktionen
- Die einzelnen
mask-*-Eigenschaften (siehe CSS-Masken) werden alle unterstützt und sind standardmäßig verfügbar (siehe Firefox-Bug 1251161). - Die Eigenschaft
caret-colorwurde hinzugefügt (Firefox-Bug 1063162). - Die Kurzschreibweisen
place-items/place-self/place-contentwurden implementiert (Firefox-Bug 1319958). - Der Wert
flow-rootwurde für die Eigenschaftdisplayhinzugefügt (Firefox-Bug 1322191). -moz-tab-sizeakzeptiert jetzt<length>-Werte (Firefox-Bug 943918) und kann jetzt animiert werden (Firefox-Bug 1308110).mask-mode:luminancefunktioniert nicht bei Verlaufsmasken (Firefox-Bug 1346265).- [css-grid] Die FR-Einheit in
grid-template-rowsfüllt den Viewport nicht aus (Firefox-Bug 1346699). - Flex-Items werden nicht entsprechend
ordersortiert, wenn ein absolut positioniertes Geschwisterelement zwischen ihnen liegt (Firefox-Bug 1345873).
Weitere Änderungen
- Die einzelnen Maskeneigenschaften wurden für SVG-Elemente aktiviert (Firefox-Bug 1319667).
- [css-grid] Behoben:
align-self/justify-self:stretch/normalfunktioniert nicht bei<table>-Grid-Items (Firefox-Bug 1316051). - Behoben:
clip-path: circle()wird bei einer großen Referenzbox und einem prozentualen Radius nicht korrekt gerendert (Firefox-Bug 1324713). - Wenn der Wert
uppercasevontext-transformauf griechischen Text angewendet wird, bleibt der Akzent auf dem disjunktiven Eta (ή) jetzt erhalten (siehe Firefox-Bug 1322989). - Die Verfügbarkeit des Werts
contentsfürdisplaywurde über die Einstellunglayout.css.display-contents.enabledgesteuert. In Firefox 53 wurde diese Einstellung vollständig entfernt. Der Wert ist daher immer verfügbar und kann nicht mehr deaktiviert werden (Firefox-Bug 1295788).
JavaScript
- Die ECMAScript-2015-Semantik für die Eigenschaften
Function.namewurde implementiert. Dazu gehören abgeleitete Namen für anonyme Funktionen (var foo = function() {}) (Firefox-Bug 883377). - Die ECMAScript-2015-Semantik für das Schließen von Iteratoren wurde implementiert. Dies betrifft beispielsweise die
for...of-Schleife (Firefox-Bug 1147371). - Der Vorschlag zur Überarbeitung von Template-Literalen, der Beschränkungen für Escape-Sequenzen in Tagged Template Literals aufhebt, wurde implementiert (Firefox-Bug 1317375).
- Die statische Eigenschaft
lengthvonTypedArray-Objekten wurde gemäß 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 ausdrücklich übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und dürfen daher nicht in der Übertragungsliste stehen. Das neue Verhalten führte bisher lediglich zu einer Warnung in der Konsole, löst jetzt aber einen Fehler aus (Firefox-Bug 1302037). - Die Länge von
ArrayBufferist jetzt aufNumber.MAX_SAFE_INTEGER(>= 2 ** 53) begrenzt (Firefox-Bug 1255128). Errorund die Prototypen anderer nativer Fehlerobjekte wieRangeErrorsind jetzt gewöhnliche Objekte statt tatsächlicher Error-Objekte. (Insbesondere ergibtObject.prototype.toString.call(Error.prototype)jetzt"[object Object]"statt"[object Error]".) (Firefox-Bug 1213341).
Events
- CSS-Transitions: Die Events
transitionstart,transitionrunundtransitioncancelwurden implementiert (siehe Firefox-Bug 1264125 und Firefox-Bug 1287983). - Der Konstruktor
CompositionEventwurde implementiert (siehe Firefox-Bug 1002256). - Die Aliase
MouseEvent.xundMouseEvent.yfürMouseEvent.clientXbeziehungsweiseMouseEvent.clientYwurden implementiert (siehe Firefox-Bug 424390). - Das Event
auxclickund der zugehörige Event-Handler wurden implementiert (siehe Firefox-Bug 1304044). - Das Event
transitioncancelwird jetzt ausgelöst, nachdem eine Transition abgebrochen wurde.
DOM
- Die Eigenschaften
pathnameundsearchvon Links (etwa in den Interfaces der Elemente<a>und<link>) gaben zuvor die falschen Teile der URL zurück. Für die URLhttp://z.com/x?a=true&b=falsegabpathnamebeispielsweise"/x?a=true&b=false"undsearchden Wert""zurück, statt"/x"beziehungsweise"?a=true&b=false". Dies wurde behoben (Firefox-Bug 1310483). - Der Konstruktor
URLSearchParams()akzeptiert jetzt einen String oder eine Folge von Strings als Initialisierungsobjekt (Firefox-Bug 1330678). - Die Methode
Selection.setBaseAndExtent()der Selection API ist jetzt implementiert (siehe Firefox-Bug 1321623). - Der Zusatz „fakepath“ zu den
valuesvon<input>-Elementen des Typsfilewurde in Gecko implementiert. Das Verhalten entspricht damit dem anderer Browser (siehe Firefox-Bug 1274596). Node.getRootNode()wurde implementiert und ersetzt die veraltete EigenschaftNode.rootNode(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). - In der Permissions API steht jetzt der neue Berechtigungsname
persistent-storagefür Abfragen mitPermissions.query()zur Verfügung (siehe Firefox-Bug 1270038). Damit kann ein Origin gemäß der Storage API einen persistenten Speicherbereich (also persistenten Speicher) verwenden. - Die Eigenschaft
Performance.timeOriginwurde 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-Erweiterung
WEBGL_compressed_texture_astcwurde implementiert (Firefox-Bug 1250077). - Die WebGL-Erweiterung
WEBGL_debug_renderer_infoist jetzt standardmäßig aktiviert (Firefox-Bug 1336645).
Audio, Video und Medien
Allgemein
- Ab Firefox 53 für Android erfolgt die Dekodierung von Medien in einem separaten Prozess, um die Leistung auf Mehrkernsystemen zu verbessern (Firefox-Bug 1333323).
Medienelemente
- Die Methode
HTMLMediaElement.play(), mit der die Wiedergabe von Medien in einem Medienelement gestartet wird, gibt jetzt einePromisezurück. Sie wird erfüllt, sobald die Wiedergabe beginnt, und bei einem Fehler zurückgewiesen (Firefox-Bug 1244768).
Web Audio API
- Das Interface
AudioScheduledSourceNodewurde hinzugefügt. Die InterfacesAudioBufferSourceNode,ConstantSourceNodeundOscillatorNodebasieren jetzt darauf (Firefox-Bug 1324568). - Für alle verschiedenen Typen von Audio-Nodes wurden Konstruktoren hinzugefügt (Firefox-Bug 1322883).
WebRTC
- Die Methoden
createOffer()undcreateAnswer()vonRTCPeerConnectiongeben jetzt einePromisezurück, die ein dem DictionaryRTCSessionDescriptionInitentsprechendes Objekt liefert, statt direkt eineRTCSessionDescriptionzurückzugeben. Bestehender Code funktioniert weiterhin; neuer Code lässt sich jedoch einfacher schreiben. - Ebenso akzeptieren die Methoden
setLocalDescription()undsetRemoteDescription()vonRTCPeerConnectionjetzt ein Objekt als Eingabe, das dem DictionaryRTCSessionDescriptionInitentspricht. Bestehender Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()akzeptiert jetzt ein Initialisierungsobjekt als Eingabe. Dies ist mit bestehendem Code kompatibel, ermöglicht aber zusammen mit den oben genannten Änderungen etwas einfacheren neuen Code (Firefox-Bug 1263312).- Die Unterstützung für DTMF über
RTCDTMFSenderist jetzt standardmäßig aktiviert. Weitere Informationen zur Funktionsweise finden Sie unter DTMF mit WebRTC verwenden.
HTTP/Netzwerk
-
In Gecko steht jetzt eine Einstellung in
about:configzur Verfügung, mit der Benutzer ihre standardmäßigeReferrer-Policyfestlegen können: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 Next Protocol Negotiation (NPN) wurde zugunsten von Application-Layer Protocol Negotiation (ALPN) entfernt – siehe Firefox-Bug 1248198.
-
Der HTTP-Header
Large-Allocationist jetzt standardmäßig verfügbar und nicht mehr durch eine Einstellung deaktiviert (Firefox-Bug 1331083).
SVG
- Das Interface
SVGGeometryElementwurde teilweise implementiert (Firefox-Bug 1239100).
Entfernungen von der Webplattform
>HTML/XML
- Die Einstellung
dom.details_element.enabled, mit der sich die Unterstützung für die Elemente<details>und<summary>in Firefox aktivieren oder deaktivieren ließ, wurde ausabout:configentfernt. Diese Elemente, die erstmals in Firefox 49 standardmäßig aktiviert wurden, können nicht mehr deaktiviert werden. Siehe Firefox-Bug 1271549. - Das Attribut
mozappdes Elements<iframe>beziehungsweise des InterfacesHTMLIFrameElementwurde entfernt. Es diente dazu, eine Firefox-OS-App in ein<iframe>der mit einem Mozilla-Präfix versehenen Browser API einzubetten (Firefox-Bug 1310845). - Die Methode
HTMLIFrameElement.setInputMethodActive()und das InterfaceInputMethod, die zum Festlegen und Verwalten von IMEs in Firefox-OS-Apps verwendet wurden, wurden entfernt (Firefox-Bug 1313169).
CSS
- Die mit
-mozpräfixierte Variante der Pseudoklasse:dir()wurde entfernt (Firefox-Bug 1270406). - Die mit
-mozpräfixierte Version vontext-align-lastwurde entfernt (Firefox-Bug 1276808). - Die mit
-mozpräfixierte Variante der Funktioncalc()wurde entfernt (Firefox-Bug 1331296). - Das proprietäre Medienfragment
-moz-samplesizewurde entfernt (Firefox-Bug 1311246). Es war hinzugefügt worden, um die Bereitstellung heruntergerechneter Bilder an Firefox-OS-Geräte mit wenig Arbeitsspeicher zu erleichtern (siehe Firefox-Bug 854795).
JavaScript
- Die nicht standardisierte Methode
ArrayBuffer.slice()wurde entfernt. Die standardisierte VersionArrayBuffer.prototype.slice()bleibt erhalten (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 beziehungsweise Firefox-Bug 1313155).
Sonstiges
legacycallerwurde aus den InterfacesHTMLEmbedElementundHTMLObjectElemententfernt (Firefox-Bug 909656).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
Erweiterte APIs:
storage.syncpage_action,browser_action,passwordundtabals Kontexttypen 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 neben Callbacks auch
Promises(Firefox-Bug 987512).