Firefox 52 Versionshinweise für Entwickler
Firefox 52 wurde am 7. März 2017 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur für Webentwickler nützlich sind, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Komplett überarbeiteter Responsiv-Design-Modus, einschließlich UA-Auswahl und Netzwerkdrosselung.
- Der Animationsinspektor zeigt jetzt Zeitfunktionen an.
- Der Seiteninspektor enthält jetzt einen CSS-Grid-Inspektor.
- about:debugging zeigt jetzt den Status von Service-Workern an.
- Der Seiteninspektor enthält eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt nur aus Leerzeichen bestehende Textknoten an.
Alle behobenen Devtools-Bugs zwischen Firefox 51 und Firefox 52.
HTML
- Der
rel="noopener"Linktyp wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Die
:focus-withinPseudo-Klasse wurde hinzugefügt (Firefox-Bug 1176997). -
Unterstützung für
display:flex/gridund columnset-Layout innerhalb von<button>Elementen hinzugefügt (Firefox-Bug 984869). -
Interpolation zwischen numerischem Farbwert und
currentColorimplementiert (Firefox-Bug 1299741). -
Flexbox-Layout für
undjustify-content: space-evenlyimplementiert (Firefox-Bug 1235922).align-content: space-evenly -
Unterstützung für Subpixel-Antialiasing in CSS
mask/clip-pathhinzugefügt (Firefox-Bug 1305259). -
CSS Text 3 Segmentbruch-Transformationsregeln implementiert (Firefox-Bug 1081858).
-
Das Ausschneiden von Grundformen (wie über die
clip-path-Eigenschaft angewendet) kann jetzt auf SVG-Inhalte angewendet werden (Firefox-Bug 1246741). -
Flexbox-Layout für
align-selfundjustify-selfimplementiert (Firefox-Bug 1221524). -
Die
touch-action-Eigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Für die ganze Geschichte, siehe Absicht zu versenden Mail #1 und Absicht zu versenden Mail #2.) -
Flexbox
align-contentVerarbeitung & Einzelzeilen-Größenanpassung sollte vonflex-wrapabhängen, nicht von der Anzahl der Zeilen (Firefox-Bug 1090031). -
CSS-Animationen können jetzt verwendet werden, um nicht-interpolierte Eigenschaften zu animieren (siehe Firefox-Bug 1064937).
-
Geändert
baseline|last-baselinezu[ first | last ]? baseline(Firefox-Bug 1313254). -
Der verwendete Wert für
left/rightiststartfür die Blockachse (Firefox-Bug 1221565). -
Das Strecken flexibler Tracks mit einer unbestimmten Länge des enthaltenden Blocks respektiert jetzt die Mindest-/Höchstgröße (Firefox-Bug 1309407).
-
Die Anfangswerte von
mask-positionundmask-repeatwurden auf0% 0%undrepeatgeändert (Firefox-Bug 1308963). -
Es gab eine Reihe von Änderungen bei CSS
<color>Werten (siehe Firefox-Bug 1295456):rgba()undhsla()wurden jetzt als Aliase vonrgb()undhsl()neu definiert; beide akzeptieren die gleiche Parameter-Syntax.rgb() undhsl()akzeptieren jetzt einen optionalen Alpha-Wert, z.B.rgb(255, 0, 0, 0.5).- Farb-Funktionen akzeptieren jetzt leerzeichengetrennte Parameter statt Kommata, z.B.
rgb(255 0 0 / 0.5). - Alpha-Werte können jetzt sowohl als Prozentsätze als auch als Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%). - Die Farbtonkomponente in
hsl()-Farben kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%).
-
Firefox's Umsetzung von kind-indexierten Pseudoklassen (wie
:nth-child,:first-child, und so weiter) wurde aktualisiert, um mit der Spezifikation der CSS Selectors Level 4 übereinzustimmen: Diese Pseudoklassen richten sich jetzt an die entsprechenden Geschwisterelemente anstatt an die Kinder ihres Elternelements. Dies ermöglicht die Verwendung dieser Pseudoklassen, wenn es kein Elternelement gibt oder das Elternelement keinElementist (Firefox-Bug 1300374.
CSS Grids
- CSS Grids sind implementiert.
Änderungen und Entfernungen
- Unpräfierte Mehrspalten-Eigenschaften und die Rückkehr der
-mozpräfixierten Versionen als Aliase (vorerst) (Firefox-Bug 1300895). - Aufheben des Einpackens abspos-Kinder des Flex-Containers in anonyme Flex-Objekte (Firefox-Bug 1269045).
- Rastercontainer-Baselines implementiert (Firefox-Bug 1151204).
- Entfernt
Min-Größenanpassung aus dem Stil-System (Firefox-Bug 1305244). - Entferne die Präferenz
layout.css.masking.enabled(Firefox-Bug 1308239). - Die proprietären
-moz-images-in-menusund-moz-images-in-buttonsMedientypen wurden entfernt (siehe Firefox-Bug 1302157). - Entfernt den
-moz-use-text-colorWert aus Farbeigenschaften; verwenden Sie stattdessencurrentColor(Firefox-Bug 1306214). - [css-grid] 'max-width' festgelegt auf ein Rastelement verursacht Textüberlauf (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für die asynchronen Funktionen wurde hinzugefügt. Dies fügt die Deklaration von
async function, die Ausdruck vonasync functionund das Schlüsselwortawaithinzu (Firefox-Bug 1185106). - ES2017 nachgestellte Kommas in Funktionen implementiert (Firefox-Bug 1303788).
- Implementiert Rest-Parameter Destrukturierung (Firefox-Bug 1243717).
- Der Exponentiationsoperator (
**) ist jetzt standardmäßig aktiviert (Firefox-Bug 1291212). - Sie können jetzt IANA-Zeitzonennamen in der
timeZoneOption von datumsbezogenen APIs wieDateTimeFormatoderDate.toLocaleString()verwenden (Firefox-Bug 837961).
Änderungen und Entfernungen
- Array-Dekonstruktion wirft jetzt einen
SyntaxErrorbeim Verwenden der Destrukturierungs-Rest mit nachgestelltem Komma (Firefox-Bug 1041341). - Doppelte
__proto__-Eigenschaften sind jetzt in der Objekt-Destrukturierung erlaubt (Firefox-Bug 1204024). Array.prototype.toLocaleString()wurde neu implementiert, um die Intl-API-Parameterlocalesundoptionszu unterstützen (Firefox-Bug 1130636).TypedArrayKonstruktoren akzeptieren jetzt Iterables zur Erstellung neuer typisierter Arrays (Firefox-Bug 1232266).TypedArray.from(),TypedArray.of(),TypedArray.prototype.filter(),TypedArray.prototype.map(),TypedArray.prototype.slice(),TypedArray.prototype.subarray()erfordern jetzt, dass ihrethis-Werte gültige typisierte Array-Konstruktoren sind (Firefox-Bug 1122396).- Die nicht standardmäßige Methode
ArrayBuffer.slice()(nichtArrayBuffer.prototype.slice()) ist veraltet und gibt jetzt eine Warnung aus, wenn sie verwendet wird (Firefox-Bug 1316913). - Unicode-Codepunkt-Escapes können jetzt auch als Bezeichner verwendet werden (z.B.
let \u{61} = 123, siehe Firefox-Bug 1314037). - Zur Einhaltung von ES2015 werfen
\u2e2fundⸯjetzt einen Fehler aus, wenn sie als Bezeichner verwendet werden, Details siehe Firefox-Bug 917436 und Firefox-Bug 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde zu Gecko hinzugefügt.
DOM
- Die Selection API ist vollständig implementiert, einschließlich der neuen Ereignisse
selectstartundselectionchange(Firefox-Bug 1309612). - Die Eigenschaft
Event.composedwird jetzt unterstützt; dieser boolesche Wert gibt an, ob das Ereignis durch den Shadow Dom in das Standard-Dom blasen kann (Firefox-Bug 1292063). - Nur HTML-Elemente, plus die
<svg>und<math>Elemente, können in den Vollbildmodus versetzt werden, indemElement.requestFullscreen()aufgerufen wird (Firefox-Bug 1305928). - Touch-Events wurden auf Windows-Desktop-Plattformen wieder aktiviert — siehe Firefox-Bug 1244402. (Sie wurden in Firefox 24 deaktiviert, da sie eine Reihe wichtiger Websites unterbrochen haben; siehe Firefox-Bug 888304.)
- Die Ereignisse
focusinundfocusoutsind jetzt implementiert (Firefox-Bug 687787). - Die Eigenschaft
WorkerGlobalScope.isSecureContextwurde implementiert (siehe Firefox-Bug 1269052). - Das Web App Manifest Installationsereignis wurde in
appinstalledumbenannt, um Verwechslungen mit dem Installationsereignis des Service-Workers zu vermeiden (sieheoninstall). Siehe Firefox-Bug 1309099 für weitere Details zu diesem Update. - Die
DataTransfer.typesEigenschaft der Drag and Drop API gibt jetzt ein eingefrorenes Array von Zeichenfolgen zurück, anstelle einerDOMStringList(siehe Firefox-Bug 1298243). - Die
loadstartundloadendEreignisse werden jetzt auf<img>Elementen ausgelöst (siehe Firefox-Bug 1264769). - Die
Notification.requireInteractionder Notifications API wurde implementiert (siehe Firefox-Bug 862395.) - Die Methode
Window.open()hat jetzt einnoopenerFensterfeature verfügbar (siehe Firefox-Bug 1267339), welches die Funktionalität desrel="noopener"Linktyps widerspiegelt. - Die Methode
CustomElementRegistry.get()der Web Components API wurde implementiert (siehe Firefox-Bug 1275838). - Die Pointer Event Eigenschaften
widthundheighthaben jetzt standardmäßig den Wert 1 (siehe Firefox-Bug 1304315). - Die File and Directory Entries API wurde aktualisiert, um Änderungen in der neuesten Spezifikation zu enthalten (siehe Firefox-Bug 1284987 für die genauen Details).
- Die
cancelBubbleEigenschaft, die aufUIEventdefiniert war, wird jetzt stattdessen auf derEventSchnittstelle definiert. Siehe Firefox-Bug 1298970 für mehr Details.
Änderungen und Entfernungen
- Die Firefox-OS-APIs, die sich mit der Verwaltung von Telefonanrufen beschäftigen (Kontakte, MobileConnection, Icc, usw.), wurden entfernt (Firefox-Bug 1311206).
- Die Firefox-OS
IdentitySchnittstelle wurde entfernt (Firefox-Bug 1309030). - Das Firefox-OS Voicemail-API (
MozVoicemail,MozVoicemailEvent,MozVoicemailStatus,Navigator.mozVoicemail) wurde entfernt (Firefox-Bug 1309723). - Das Firefox-OS Cell Broadcast-API (
MozCellBroadcast,MozCellBroadcastEvent,MozCellBroadcastMessage,Navigator.mozCellBroadcast) wurde entfernt (Firefox-Bug 1306772). - Die Firefox-OS TV-Broadcast-bezogenen APIs wurden entfernt (Firefox-Bug 1306778).
- Das Firefox-OS UKW-Radio-API (
FMRadio,Navigator.mozFMRadio) wurde entfernt (Firefox-Bug 1306779).
Service Workers und Fetch
- Die Methode
Headers.getAll()wurde entfernt undHeaders.get()holt jetzt alle Werte des angegebenen Headers, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Spec-Updates der Fetch-API.
Web Audio API
- Die Schnittstelle
ConstantSourceNodewurde hinzugefügt; sie repräsentiert eine Audioquelle, die immer einen Strom von Samples ausgibt, die alle den gleichen Wert haben. Siehe Steuerung mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie dies verwendet werden kann, um einige komplexe Audioabläufe zu vereinfachen.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen ist, wird die Eigenschaft
RTCPeerConnection.iceConnectionStatejetzt auf"disconnected"gesetzt; dies weist auf einen vorübergehenden Fehler hin, der sich möglicherweise bald selbst beheben kann, wobei die Verbindung anschließend in den Zustand"connected"zurückkehrt (Firefox-Bug 852665). - Das
MediaDevicesdevicechangeEreignis und der zugehörige Handler, der in Firefox 51 implementiert, aber standardmäßig nur auf Mac deaktiviert war, wurde unter Windows und Linux implementiert und ist jetzt standardmäßig auf allen Plattformen aktiviert. - Die Eigenschaft
MediaStream.activewird jetzt unterstützt. Diese schreibgeschützte boolesche Eigenschaft gibt an, ob mindestens ein Track auf dem Stream gerade abgespielt wird. - Vor Firefox 52 konnte die Methode
MediaStreamTrack.stop()nur lokale Tracks stoppen (das heißt, Tracks, die übergetUserMedia()erhalten wurden). Jetzt können eine Vielzahl von Tracks gestoppt werden, einschließlich derjenigen auf einemMediaStream, das mit einer WebRTC Verbindung, einem Web Audio API Stream oder einemCanvasCaptureMediaStreamverbunden ist. - Vorher resultierte das wiederholte Ändern des
TextTrackmodewährend eines einzigen Durchlaufs durch die Firefox-Ereignisschleife in der Zustellung mehrererchangeEreignisse an die vom übergeordneten Medienelement spezifizierteTextTrackListEigenschafttextTracks. Jetzt werden diese Änderungen in einem Ereignis konsolidiert (Firefox-Bug 882674).
Audio/Video/Media
- Die
MediaErrorObjekte, die inHTMLMediaElement.errorangegeben sind, wenn ein Fehler bei der Handhabung eines<audio>oder<video>Elements auftritt, enthalten jetzt einemessageEigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers liefert. Diese Zeichenfolge bietet Details, die spezifisch für diesen genauen Fehler auftreten und Einblicke darin geben, warum etwas schiefgelaufen ist (Firefox-Bug 1299072). Dieses Feld wurde seit Firefox 51 in Firefox-Nightly-Builds aufgenommen, ist jetzt aber in allen Builds verfügbar, bis hin zu und einschließlich Release.
Andere APIs
- Die Methode
FileSystemFileEntry.createWriter(), die in Firefox 50 hinzugefügt (aber immer einen Fehler zurückgegeben) wurde, wurde entfernt (Firefox-Bug 1315185. - Die proprietären Installations-/Verwaltungs-APIs von Firefox OS
Appswurden aus der Plattform entfernt (siehe Firefox-Bug 1261019). - Die proprietäre
Web Telephony APIvon Firefox OS wurde aus der Plattform entfernt (siehe Firefox-Bug 1309719). - Die proprietäre
Web Bluetooth APIvon Firefox OS wurde aus der Plattform entfernt (siehe Firefox-Bug 1310020). - Die Battery Status API steht jetzt nur für Chrome-/privilegierten Code zur Verfügung (siehe Firefox-Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()wurde inImageBitmapRenderingContext.transferFromImageBitmap()umbenannt (siehe Firefox-Bug 1304767).- Die Mitglieder
mozDashundmozDashOffsetwurden ausCanvasRenderingContext2Dentfernt (siehe Firefox-Bug 931389).
HTTP
- Der
Referrer-PolicyHeader unterstützt jetzt die Direktivensame-origin,strict-originundstrict-origin-when-cross-origin(Firefox-Bug 1276836). - Der
'strict-dynamic'Quellausdruck wird jetzt fürContent-Security-PolicyDirektiven wiescript-srcunterstützt (Firefox-Bug 1299483). - Unsichere Websites (
http:) können keine Cookies setzen mehr mit der "secure"-Direktive gemäß der Strict Secure Cookies Spezifikation (Firefox-Bug 976073). - Die maximale Tabellengröße des HTTP/2 Header-Komprimierungsformats HPACK wurde von 4 KB auf 64 KB erhöht (Firefox-Bug 1296280).
- Der
Large-AllocationHeader wurde hinzugefügt (Firefox-Bug 1304140).
SVG
- SVG-Dokumente werden jetzt mit der
XMLDocumentSchnittstelle statt SVGDocument dargestellt. Dies ist eine Änderung, die in der SVG 2-Spezifikation vorgenommen wurde.
Sicherheit
- Wenn Login-Seiten (d.h. solche, die ein
<input type="password">Feld enthalten) so erstellt werden, dass sie unsicher übermittelt werden, zeigt Firefox eine Warnmeldung im Kontext unterhalb des Passwortfeldes an, um Benutzer zu warnen (Firefox-Bug 1319119). Die automatische Ausfüllung ist auch auf unsicheren Login-Formularen deaktiviert (Firefox-Bug 1217152). - Unterstützung für SHA-1 SSL-Zertifikate wurde entfernt; Die Navigation zu einer sicheren Seite, die ein SHA-1-Zertifikat verwendet, führt jetzt zu einem
Untrusted ConnectionFehler (Firefox-Bug 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützungen außer Flash wurden eingestellt. Auch die Verwendung von Flash soll in Zukunft schrittweise eingestellt werden.
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
sessionsAPItopSitesAPIomniboxAPIruntime.onInstalledundruntime.onStartupEreignisse- asynchrone Ereignislistener in webRequest
bookmarks.onMoved,bookmarks.onCreated,bookmarks.onChangedEreignisse_execute_browser_actionund_execute_page_actionim commands manifest keymatch_about_blankim content_scripts Manifest-Schlüssel
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinksund die SchnittstellensIDroppedLinkItemwurden hinzugefügt, um das Ablegen mehrerer Objekte zu verarbeiten (Firefox-Bug 92737).
XUL
- Die Überladung der Methode
tabbrowser.loadTabs(uris, params)wurde hinzugefügt (Firefox-Bug 92737). - Die Funktionssignatur von
browser.droppedLinkHandlerwurde geändert (Firefox-Bug 92737).