Firefox 52 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 Entwickler von Add-ons.
Änderungen für Webentwickler
>Entwickler-Tools
- Komplett überarbeiteter Modus für responsives Design, einschließlich UA-Auswahl und Netzwerkdrosselung.
- Der Animationsinspektor zeigt jetzt Timing-Funktionen an.
- Der Seiteninspektor enthält jetzt einen CSS-Grid-Inspektor.
- about:debugging zeigt jetzt den Status von Service-Workern an.
- Der Seiteninspektor bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt nur aus Leerzeichen bestehende Textknoten an.
Alle Devtools-Bugs, die zwischen Firefox 51 und Firefox 52 behoben wurden.
HTML
- Der
rel="noopener"
Link-Typ wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Hinzugefügt:
:focus-within
Pseudo-Klasse (Firefox-Bug 1176997). -
Unterstützung für
display:flex/grid
und Columnset-Layout innerhalb von<button>
-Elementen hinzugefügt (Firefox-Bug 984869). -
Implementierung der Interpolation zwischen numerischen Farben und
currentColor
(Firefox-Bug 1299741). -
Implementiertes Flexbox-Layout für
undjustify-content
: space-evenly
(Firefox-Bug 1235922).align-content
: space-evenly -
Unterstützung für Subpixel-Antialiasing in CSS
mask
/clip-path
hinzugefügt (Firefox-Bug 1305259). -
Implementierte CSS Text 3 Segmentbruch-Transformationsregeln (Firefox-Bug 1081858).
-
Grundform-Zuschneiden (wie über die
clip-path
-Eigenschaft angewendet) kann nun auf SVG-Inhalte angewendet werden (Firefox-Bug 1246741). -
Implementiertes Flexbox-Layout für
align-self
undjustify-self
(Firefox-Bug 1221524). -
Die
touch-action
-Eigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Für die vollständige Geschichte siehe intent to ship mail #1 und intent to ship mail #2.) -
Flexbox
align-content
-Handhabung & Einzelzeilen-Größenanpassung sollte vonflex-wrap
abhä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-baseline
in[ first | last ]? baseline
(Firefox-Bug 1313254). -
Der verwendete Wert für
left
/right
iststart
für die Block-Achse (Firefox-Bug 1221565). -
Flexible Tracks mit unbestimmter Länge des Containing-Blocks respektieren nun die Mindest-/Höchstgröße (Firefox-Bug 1309407).
-
Die Anfangswerte von
mask-position
undmask-repeat
wurden auf0% 0%
bzw.repeat
geändert (Firefox-Bug 1308963). -
Es gab eine Reihe von Änderungen an 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 nun einen optionalen Alpha-Wert, z.B.rgb(255, 0, 0, 0.5)
.- Farb-Funktionen akzeptieren nun durch Leerzeichen getrennte Parameter anstatt durch Kommata, z.B.
rgb(255 0 0 / 0.5)
. - Alpha-Werte können jetzt als Prozentsätze sowie als Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%)
. - Die Farbton-Komponente in
hsl()
-Farben kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%)
.
-
Firefox' Implementierung von kinderbasierten Pseudo-Klassen (wie
:nth-child
,:first-child
usw.) wurde aktualisiert, um der CSS-Selektoren Level 4-Spezifikation zu entsprechen: Diese Pseudo-Klassen passen jetzt zu den entsprechenden Geschwisterelementen anstatt zu den Kindern ihres Elternelements. Dies ermöglicht es, diese Pseudo-Klassen zu verwenden, wenn es kein Elternelement gibt oder das Elternelement keinElement
ist (Firefox-Bug 1300374.
CSS-Grids
- CSS-Grids sind implementiert.
Änderungen und Entfernungen
- Unpräfekte Multispalten-Eigenschaften (und derzeit wieder
-moz
-präfekte Versionen als Aliase hinzugefügt) (Firefox-Bug 1300895). - Das Umhüllen von abspos-Kindern eines Flex-Containers in anonyme Flex-Elemente wurde gestoppt (Firefox-Bug 1269045).
- Implementierte Baselines von Grid-Containern (Firefox-Bug 1151204).
<flex>
Min-Größenanpassung aus dem Stylesystem entfernt (Firefox-Bug 1305244).- Vorzugsoption
layout.css.masking.enabled
entfernt (Firefox-Bug 1308239). - Die proprietären
-moz-images-in-menus
und-moz-images-in-buttons
Medientypen wurden entfernt (siehe Firefox-Bug 1302157). - Der Wert
-moz-use-text-color
für Farbeigenschaften wurde entfernt; verwenden Sie stattdessencurrentColor
(Firefox-Bug 1306214). - [css-grid] 'max-width' auf Grid-Item gesetzt verursacht Textüberlauf (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für Async Funktionen wurde hinzugefügt. Dies umfasst die
async function
-Deklaration, denasync function
-Ausdruck und dasawait
-Schlüsselwort (Firefox-Bug 1185106). - Implementierte ES2017 trailing commas in Funktionen (Firefox-Bug 1303788).
- Implementiert Rest-Parameter Destructuring (Firefox-Bug 1243717).
- Der Exponential-Operator (
**
) ist jetzt standardmäßig aktiviert (Firefox-Bug 1291212). - Sie können jetzt IANA-Zeitzonennamen in der
timeZone
-Option von datumsbezogenen APIs wieDateTimeFormat
oderDate.toLocaleString()
verwenden (Firefox-Bug 837961).
Änderungen und Entfernungen
- Array-Destructuring löst jetzt einen
SyntaxError
aus, wenn Destructuring Rest mit einem abschließenden Komma verwendet wird (Firefox-Bug 1041341). - Doppelte
__proto__
-Eigenschaften sind jetzt im Objekt-Destructuring erlaubt (Firefox-Bug 1204024). Array.prototype.toLocaleString()
wurde neu implementiert, um die Intl-API-Parameterlocales
undoptions
zu unterstützen (Firefox-Bug 1130636).TypedArray
-Konstruktoren akzeptieren jetzt iterables, um neue typisierte Arrays zu erstellen (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 Typed Array-Konstruktoren sind (Firefox-Bug 1122396).- Die nicht-standardisierte
ArrayBuffer.slice()
-Methode (nichtArrayBuffer.prototype.slice()
) ist veraltet und zeigt jetzt eine Warnung an, wenn sie verwendet wird (Firefox-Bug 1316913). - Unicode Code Point Escapes können jetzt auch als Identifikatoren verwendet werden (z.B.
let \u{61} = 123
, siehe Firefox-Bug 1314037). - Um mit ES2015 konform zu sein, werfen
\u2e2f
undⸯ
jetzt eine Ausnahme, wenn sie als Identifikator verwendet werden, für Details siehe Firefox-Bug 917436 und Firefox-Bug 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde in Gecko hinzugefügt.
DOM
- Die vollständige Implementierung der Selection API ist vorhanden, einschließlich der neuen
selectstart
undselectionchange
Events (Firefox-Bug 1309612). - Die Eigenschaft
Event.composed
wird jetzt unterstützt; dieser boolesche Wert gibt an, ob das Ereignis durch den Shadow Root in das Standard-DOM blubbern kann (Firefox-Bug 1292063). - Nur HTML-Elemente, plus die
<svg>
und<math>
-Elemente, können im Vollbildmodus angezeigt 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 von großen Websites beeinträchtigten; siehe Firefox-Bug 888304.)
- Die
focusin
undfocusout
Ereignisse sind nun implementiert (Firefox-Bug 687787). - Die
WorkerGlobalScope.isSecureContext
Eigenschaft wurde implementiert (siehe Firefox-Bug 1269052). - Das Web-App-Manifest Installationsereignis wurde in
appinstalled
umbenannt, um Verwechslungen mit dem Installationsereignis des Service Workers zu vermeiden (sieheoninstall
). Siehe Firefox-Bug 1309099 für weitere Details zu diesem Update. - Die
DataTransfer.types
Eigenschaft der Drag-and-Drop API gibt jetzt ein gefrorenes Array von Strings anstelle einerDOMStringList
zurück (siehe Firefox-Bug 1298243). - Die
loadstart
undloadend
Ereignisse werden jetzt auf<img>
-Elementen ausgelöst (siehe Firefox-Bug 1264769). - Die
Notification.requireInteraction
der Notifications API wurde implementiert (siehe Firefox-Bug 862395.) - Die
Window.open()
Methode hat jetzt einnoopener
Fenster-Feature verfügbar (siehe Firefox-Bug 1267339), das die Funktionalität desrel="noopener"
Link-Types widerspiegelt. - Die
CustomElementRegistry.get()
Methode der Web Components API wurde implementiert (siehe Firefox-Bug 1275838). - Pointer Event
width
undheight
Eigenschaften haben jetzt standardmäßig den Wert 1 (siehe Firefox-Bug 1304315). - Die File and Directory Entries API wurde aktualisiert, um Änderungen in der neuesten Spezifikation einzuschließen (siehe Firefox-Bug 1284987 für die genauen Details).
- Die
cancelBubble
Eigenschaft, die aufUIEvent
definiert war, ist jetzt stattdessen auf derEvent
Schnittstelle definiert. Siehe Firefox-Bug 1298970 für weitere Details.
Änderungen und Entfernungen
- Die Firefox-OS-APIs, die sich mit der Verwaltung von Telefonanrufen befassen (Contacts, MobileConnection, Icc usw.), wurden entfernt (Firefox-Bug 1311206).
- Das
Identity
Interface von Firefox OS wurde entfernt (Firefox-Bug 1309030). - Die Firefox-OS-Voicemail-API (
MozVoicemail
,MozVoicemailEvent
,MozVoicemailStatus
,Navigator.mozVoicemail
) wurde entfernt (Firefox-Bug 1309723). - Die 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).
- Die Firefox-OS-FM-Radio-API (
FMRadio
,Navigator.mozFMRadio
) wurde entfernt (Firefox-Bug 1306779).
Service Worker und Fetch
- Die
Headers.getAll()
-Methode wurde entfernt, undHeaders.get()
ruft jetzt alle Werte des angegebenen Headers ab, nicht nur den ersten Wert (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Updates der Fetch API-Spezifikation.
Web Audio API
- Das
ConstantSourceNode
Interface wurde hinzugefügt; es repräsentiert eine Audioquelle, die immer einen Datenstrom von Samples ausgibt, die alle denselben Wert haben. Siehe Steuern mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie dies verwendet werden kann, um einige komplexe Audioflüsse zu vereinfachen.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen wird, wird die
RTCPeerConnection.iceConnectionState
-Eigenschaft jetzt auf"disconnected"
gesetzt; dies weist auf einen vorübergehenden Fehler hin, der sich möglicherweise bald von selbst behebt, wobei die Verbindung danach in den"connected"
-Zustand zurückkehrt (Firefox-Bug 852665). - Das
MediaDevices
devicechange
-Ereignis und sein entsprechender Handler, die in Firefox 51 nur auf Mac zwar implementiert, aber standardmäßig deaktiviert waren, wurden auf Windows und Linux implementiert und sind jetzt standardmäßig auf allen Plattformen aktiviert. - Die
MediaStream.active
-Eigenschaft wird jetzt unterstützt. Diese schreibgeschützte boolesche Eigenschaft gibt an, ob mindestens ein Track im Stream derzeit abgespielt wird. - Vor Firefox 52 konnte die
MediaStreamTrack.stop()
-Methode nur lokale Tracks (d.h. Tracks, die übergetUserMedia()
erhalten wurden) stoppen. Jetzt können eine Vielzahl von Tracks gestoppt werden, einschließlich derer, die mit einerMediaStream
in Verbindung mit einer WebRTC-Verbindung, einem Web Audio API-Stream oderCanvasCaptureMediaStream
verbunden sind. - Zuvor würde das wiederholte Ändern des
mode
einerTextTrack
in einem einzigen Durchlauf durch die Firefox-Ereignisschleife dazu führen, dass mehrerechange
-Ereignisse an dieTextTrackList
, die von dertextTracks
-Eigenschaft des übergeordneten Medienelements angegeben wurde, übermittelt würden. Jetzt werden diese Änderungen in ein Ereignis konsolidiert (Firefox-Bug 882674).
Audio/Video/Media
- Die
MediaError
-Objekte, die inHTMLMediaElement.error
angegeben werden, wenn ein Fehler beim Umgang mit einem<audio>
oder<video>
-Element auftritt, enthalten jetzt einemessage
-Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Diese Zeichenfolge bietet Details, die speziell auf diesen genauen Fehlerfall zugeschnitten sind, und liefert Einblicke, warum etwas schiefgelaufen ist (Firefox-Bug 1299072). Dieses Feld war in den Nightly-Builds von Firefox seit Firefox 51 enthalten, steht aber jetzt in allen Builds bis einschließlich der Release-Version zur Verfügung.
Andere APIs
- Die Methode
FileSystemFileEntry.createWriter()
, die in Firefox 50 hinzugefügt wurde (aber immer einen Fehler zurückgab), wurde entfernt (Firefox-Bug 1315185. - Die proprietären Firefox OS
Apps-Installations-/Verwaltungs-APIs
wurden von der Plattform entfernt (siehe Firefox-Bug 1261019). - Die proprietäre Firefox OS
Web Telephony API
wurde von der Plattform entfernt (siehe Firefox-Bug 1309719). - Die proprietäre Firefox OS
Web Bluetooth API
wurde von der Plattform entfernt (siehe Firefox-Bug 1310020). - Die Battery Status API ist jetzt nur noch für chrome/privilegierten Code verfügbar (siehe Firefox-Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()
wurde inImageBitmapRenderingContext.transferFromImageBitmap()
umbenannt (siehe Firefox-Bug 1304767).- Die
mozDash
undmozDashOffset
Mitglieder wurden aus demCanvasRenderingContext2D
entfernt (siehe Firefox-Bug 931389).
HTTP
- Der
Referrer-Policy
-Header unterstützt jetzt die Direktivensame-origin
,strict-origin
undstrict-origin-when-cross-origin
(Firefox-Bug 1276836). - Der
'strict-dynamic'
Quellenausdruck wird jetzt fürContent-Security-Policy
-Direktiven wiescript-src
unterstützt (Firefox-Bug 1299483). - Unsichere Seiten (
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-Allocation
-Header wurde hinzugefügt (Firefox-Bug 1304140).
SVG
- SVG-Dokumente werden jetzt mithilfe des
XMLDocument
Interface anstelle von 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 würden, zeigt Firefox eine kontextbezogene Warnmeldung unter dem Passwortfeld an, um Benutzer zu warnen (Firefox-Bug 1319119). Autofill ist auch in unsicheren Login-Formularen deaktiviert (Firefox-Bug 1217152). Siehe Unsichere Passwörter für mehr Details. - Unterstützung für SHA-1 SSL-Zertifikate wurde entfernt; das Navigieren zu einer sicheren Seite, die ein SHA-1-Zertifikat verwendet, führt jetzt zu einem
Untrusted Connection
-Fehler (Firefox-Bug 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützung außer Flash wurde eingestellt. Auch die Verwendung von Flash soll in Zukunft auslaufen.
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
sessions
APItopSites
APIomnibox
APIruntime.onInstalled
undruntime.onStartup
Ereignisse- Asynchrone Ereignishandler in webRequest
bookmarks.onMoved
,bookmarks.onCreated
,bookmarks.onChanged
Ereignisse_execute_browser_action
und_execute_page_action
im commands manifest keymatch_about_blank
im content_scripts Manifest-Schlüssel
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinks
und das InterfacensIDroppedLinkItem
wurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox-Bug 92737).
XUL
- Die Überladung der Methode
tabbrowser.loadTabs(uris, params)
wurde hinzugefügt (Firefox-Bug 92737). - Die Signatur der Funktion
browser.droppedLinkHandler
wurde geändert (Firefox-Bug 92737).