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, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
Entwicklerwerkzeuge
- Vollständig überarbeiteter Responsive Design Mode, einschließlich UA-Auswahl und Netzwerk-Drosselung.
- 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 Textknoten, die nur aus Leerzeichen bestehen, an.
HTML
- Der
rel="noopener"
Link-Typ wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Die
:focus-within
Pseudo-Klasse wurde hinzugefügt (Firefox-Bug 1176997). -
Unterstützung für
display:flex/grid
und columnset layout innerhalb von<button>
Elementen hinzugefügt (Firefox-Bug 984869). -
Implementiert 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
(Firefox-Bug 1305259). -
Implementierte CSS Text 3 Segmentbruch-Transformationsregeln (Firefox-Bug 1081858).
-
Grundform-Clipping (wie über die
clip-path
Eigenschaft angewendet) kann jetzt 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 Absicht zur Versandmitteilung Nr. 1 und Absicht zur Versandmitteilung Nr. 2.) -
Flexbox
align-content
Handhabung & Single-Line-Sizing sollten vonflex-wrap
, nicht von der Anzahl der Zeilen abhängen (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
zu[ first | last ]? baseline
(Firefox-Bug 1313254). -
Der verwendete Wert für
left
/right
iststart
für die Blockachse (Firefox-Bug 1221565). -
Das Strecken flexibler Tracks mit einer unbestimmten Umgebungslängen respektiert jetzt die Mindest-/Maximalgröß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 nun als Aliase vonrgb()
undhsl()
neu definiert; beide akzeptieren die gleiche Parameterrichtlinie.rgb(
) undhsl()
akzeptieren jetzt einen optionalen Alphawert, z.B.rgb(255, 0, 0, 0.5)
.- Farb-Funktionen akzeptieren jetzt leerzeichengetrennte Parameter anstatt Kommata, z.B.
rgb(255 0 0 / 0.5)
. - Alphawerte können nun als Prozentsätze sowie Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%)
. - Die Farbkomponente im
hsl()
-Farbwert kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%)
.
-
Die Implementierung von Kind-indexierten Pseudo-Klassen von Firefox (wie
:nth-child
,:first-child
, und so weiter) wurde aktualisiert, um der CSS-Selektoren-Level-4-Spezifikation zu entsprechen: diese Pseudo-Klassen stimmen jetzt mit den entsprechenden Geschwisterelementen statt mit den Kindern ihres Elternelements überein. Dies ermöglicht es, diese Pseudo-Klassen zu verwenden, wenn es kein Elternteil gibt oder der Elternteil keinElement
ist (Firefox-Bug 1300374.
CSS Grids
- CSS Grids sind implementiert.
Änderungen und Entfernen
- Unpräfixierte Mehrspaltige Eigenschaften (und
-moz
präfixierte Versionen als Aliase wieder hinzugefügt, vorerst) (Firefox-Bug 1300895). - Anhalten beim Wrappen von abspos-Kindern des Flex-Containers in anonyme Flex-Elemente (Firefox-Bug 1269045).
- Implementierte Rastercontainer-Basen (Firefox-Bug 1151204).
- Entfernen der
<flex>
Mindestgröße aus dem Stilsystem (Firefox-Bug 1305244). - Entfernen der Voreinstellung
layout.css.masking.enabled
(Firefox-Bug 1308239). - Die proprietären
-moz-images-in-menus
und-moz-images-in-buttons
Medientypen wurden entfernt (siehe Firefox-Bug 1302157). - Entfernt
-moz-use-text-color
Wert aus Farbeigenschaften; verwenden Sie stattdessencurrentcolor
(Firefox-Bug 1306214). - [css-grid] 'max-width' set on grid item causes text to overflow (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für asynchrone Funktionen hinzugefügt. Dies fügt die
async function
Deklaration, denasync function
Ausdruck und dasawait
Schlüsselwort hinzu (Firefox-Bug 1185106). - Implementierte ES2017 nachlaufende Kommas in Funktionen (Firefox-Bug 1303788).
- Implementierte Restparameter-Destrukturierung (Firefox-Bug 1243717).
- Der Exponentiationsoperator (**) 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 Entfernen
- Array-Destrukturierung wirft jetzt einen
SyntaxError
aus, wenn die Rest-Destrukturierung mit einem nachfolgenden Komma verwendet wird (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-Parameterlocales
undoptions
zu unterstützen (Firefox-Bug 1130636).TypedArray
Konstruktoren 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 standardisierte
ArrayBuffer.slice()
-Methode (nichtArrayBuffer.prototype.slice()
) ist veraltet und gibt nun eine Warnung aus, wenn sie verwendet wird (Firefox-Bug 1316913). - Unicode Codepoint-Escapes können jetzt auch als Bezeichner verwendet werden (z.B.
let \u{61} = 123
, siehe Firefox-Bug 1314037). - Zur Vereinheitlichung mit ES2015,
\u2e2f
undⸯ
werfen bei Verwendung als Bezeichner nun Fehler, für Details siehe Firefox-Bug 917436 und Firefox-Bug 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde zu Gecko hinzugefügt.
DOM
- Die Selection API wurde vollständig ausgeliefert, einschließlich der neuen
selectstart
undselectionchange
Ereignisse (Firefox-Bug 1309612). - Die Eigenschaft
Event.composed
wird jetzt unterstützt; dieser boolesche Wert gibt an, ob das Ereignis durch die Schattenwurzel in den Standard-DOM bublen kann (Firefox-Bug 1292063). - Nur HTML-Elemente, sowie die
<svg>
und<math>
-Elemente, können in den Vollbildmodus gewechselt werden, indemElement.requestFullscreen()
aufgerufen wird (Firefox-Bug 1305928). - Touch-Ereignisse 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 ruinierten; siehe Firefox-Bug 888304.)
- Die
focusin
undfocusout
Ereignisse sind jetzt implementiert (Firefox-Bug 687787). - Die
WorkerGlobalScope.isSecureContext
Eigenschaft ist jetzt implementiert (siehe Firefox-Bug 1269052). - Das Web App Manifest Installationsereignis wurde in
appinstalled
umbenannt, um Verwechslungen mit dem Service Worker Installationsereignis zu vermeiden (sieheoninstall
). Siehe Firefox-Bug 1309099 für weitere Details zu dieser Aktualisierung. - Die
DataTransfer.types
Eigenschaft der Drag and Drop API gibt jetzt ein gefrorenes Array von Zeichenketten 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 Benachrichtigungen-API ist implementiert (siehe Firefox-Bug 862395.) - Die
Window.open()
Methode hat jetzt einnoopener
Fenstermerkmal zur Verfügung (siehe Firefox-Bug 1267339), das die Funktionalität desrel="noopener"
Link-Typs 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 und Directory Entries API wurde aktualisiert, um Änderungen in der neuesten Spezifikation zu enthalten (siehe Firefox-Bug 1284987 für genaue Details).
- Die
cancelBubble
Eigenschaft, die inUIEvent
definiert war, wird jetzt stattdessen in derEvent
Schnittstelle definiert. Siehe Firefox-Bug 1298970 für weitere Details.
Änderungen und Entfernen
- Die Firefox OS-APIs, die das Verwalten von Telefonanrufen betreffen (Kontakte, MobileConnection, Icc, etc.), wurden entfernt (Firefox-Bug 1311206).
- Die Firefox OS
Identity
Schnittstelle 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 Workers und Fetch
- Die
Headers.getAll()
Methode wurde entfernt, undHeaders.get()
ruft jetzt alle Werte des angegebenen Headers ab, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Fetch API-Spezifikationsaktualisierungen.
Web Audio API
- Die
ConstantSourceNode
Schnittstelle wurde hinzugefügt; sie repräsentiert eine Audioquelle, die immer einen Strom von Proben 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 und die Verbindung zurück in den"connected"
Zustand wechselt (Firefox-Bug 852665). - Das
MediaDevices
devicechange
Ereignis und sein entsprechender Handler, die in Firefox 51 implementiert, aber standardmäßig nur auf dem Mac 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 oder nicht. - Vor Firefox 52 konnte die
MediaStreamTrack.stop()
Methode nur lokale Tracks stoppen (also Tracks, die übergetUserMedia()
erhalten wurden). Jetzt können verschiedene Arten von Tracks gestoppt werden, einschließlich derjenigen auf einemMediaStream
, die mit einer WebRTC-Verbindung, einem Web Audio API-Stream oder einemCanvasCaptureMediaStream
verbunden sind. - Zuvor würde das wiederholte Ändern eines
TextTrack
mode
während eines einzigen Durchlaufs durch die Firefox-Ereignisschleife dazu führen, dass mehrerechange
Ereignisse an dieTextTrackList
gesendet werden, die durch dietextTracks
-Eigenschaft des übergeordneten Mediaelements angegeben wird. Jetzt werden diese Änderungen zu einem Ereignis konsolidiert (Firefox-Bug 882674).
Audio/Video/Medien
- Die
MediaError
Objekte, die inHTMLMediaElement.error
angegeben werden, wenn ein Fehler beim Bearbeiten von<audio>
oder<video>
Elementen auftritt, enthalten jetzt einemessage
Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Diese Zeichenfolge bietet Details, die genau auf diesen spezifischen Fehlerfall abgestimmt sind und Einblicke in die Ursache des Problems geben (Firefox-Bug 1299072). Dieses Feld war in den Nightly-Builds von Firefox seit Firefox 51 enthalten, steht aber jetzt in allen Builds bis hin zur 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
Apps Installations-/Verwaltungs-APIs
von Firefox OS wurden aus der Plattform entfernt (siehe Firefox-Bug 1261019). - Die proprietäre
Web Telephony API
von Firefox OS wurde ebenfalls entfernt (siehe Firefox-Bug 1309719). - Die proprietäre
Web Bluetooth API
von Firefox OS wurde entfernt (siehe Firefox-Bug 1310020). - Die Battery Status API ist jetzt nur noch für Chrome-/Privilegierter-Code verfügbar (siehe Firefox-Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()
wurde inImageBitmapRenderingContext.transferFromImageBitmap()
umbenannt (siehe Firefox-Bug 1304767).- Die
mozDash
undmozDashOffset
Mitglieder wurden ausCanvasRenderingContext2D
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'
Quellen-Ausdruck wird jetzt fürContent-Security-Policy
Direktiven unterstützt, wiescript-src
(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 unter Verwendung der
XMLDocument
Schnittstelle 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 werden, zeigt Firefox eine kontextbezogene Warnmeldung unter dem Passwortfeld an, um Benutzer zu warnen (Firefox-Bug 1319119). Autofill ist auch auf unsicheren Login-Formularen deaktiviert (Firefox-Bug 1217152). Siehe Unsichere Passwörter für weitere Details. - Unterstützung für SHA-1-SSL-Zertifikate wurde entfernt; beim Navigieren zu einer sicheren Seite, die ein SHA-1-Zertifikat verwendet, resultiert dies jetzt in einem
Untrusted Connection
-Fehler (Firefox-Bug 1330043).
Plugins
Die Unterstützung für alle NPAPI-Plugins außer Flash wurde entfernt. Auch die Verwendung von Flash soll in Zukunft eingestellt werden.
Änderungen für Add-on und Mozilla-Entwickler
WebExtensions
Neue APIs:
sessions
APItopSites
APIomnibox
APIruntime.onInstalled
undruntime.onStartup
Ereignisse- Asynchrone Ereignislistener 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
nsIDroppedLinkHandler.dropLinks
Methode undnsIDroppedLinkItem
Schnittstelle wurden hinzugefügt, um das Ablegen mehrerer Elemente zu behandeln (Firefox-Bug 92737).
XUL
tabbrowser.loadTabs(uris, params)
Methode Überladung wurde hinzugefügt (Firefox-Bug 92737).browser.droppedLinkHandler
Funktionssigantur wurde geändert (Firefox-Bug 92737).
Ältere Versionen
- Firefox 51 für Entwickler
- Firefox 50 für Entwickler
- Firefox 49 für Entwickler
- Firefox 48 für Entwickler
- Firefox 47 für Entwickler
- Firefox 46 für Entwickler
- Firefox 45 für Entwickler
- Firefox 44 für Entwickler
- Firefox 43 für Entwickler
- Firefox 42 für Entwickler
- Firefox 41 für Entwickler
- Firefox 40 für Entwickler
- Firefox 39 für Entwickler
- Firefox 38 für Entwickler
- Firefox 37 für Entwickler
- Firefox 36 für Entwickler
- Firefox 35 für Entwickler
- Firefox 34 für Entwickler
- Firefox 33 für Entwickler
- Firefox 32 für Entwickler
- Firefox 31 für Entwickler
- Firefox 30 für Entwickler
- Firefox 29 für Entwickler
- Firefox 28 für Entwickler
- Firefox 27 für Entwickler
- Firefox 26 für Entwickler
- Firefox 25 für Entwickler
- Firefox 24 für Entwickler
- Firefox 23 für Entwickler
- Firefox 22 für Entwickler
- Firefox 21 für Entwickler