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 Responsiver Designmodus, 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 nun den Status von Service Workern an.
- Der Seiteninspektor bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt Textknoten an, die nur aus Leerzeichen bestehen.
Alle zwischen Firefox 51 und Firefox 52 behobenen DevTools-Fehler.
HTML
- Der
rel="noopener"
Linktyp wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Die
:focus-within
Pseudoklasse 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). -
Interpolation zwischen numerischen Farben und currentcolor implementiert (Firefox-Bug 1299741).
-
Flexbox-Layout für
undjustify-content
: space-evenly
implementiert (Firefox-Bug 1235922).align-content
: space-evenly -
Unterstützung für Subpixel-Antialiasing in CSS
mask
/clip-path
hinzugefügt (Firefox-Bug 1305259). -
CSS Text 3-Segmentumbrüche Transformationsregeln implementiert (Firefox-Bug 1081858).
-
Grundform-Ausclippen (wie über die
clip-path
-Eigenschaft angewendet) kann jetzt auf SVG-Inhalte angewendet werden (Firefox-Bug 1246741). -
Flexbox-Layout für
align-self
|justify-self
: [first | last]? baseline implementiert (Firefox-Bug 1221524). -
Die
touch-action
-Eigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Für die vollständige Geschichte siehe Absicht zur Versendung Mail #1 und Absicht zur Versendung Mail #2.) -
Flexbox
align-content
-Handhabung und Einzelzeilenanpassung 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).
-
baseline|last-baseline
zu[first | last]? baseline
geändert (Firefox-Bug 1313254). -
Der verwendete Wert für
left
/right
iststart
für die Block-Achse (Firefox-Bug 1221565). -
Das Strecken flexibler Tracks mit einer unbestimmten Blocklänge respektiert jetzt die minimal/maximalen Größenbeschränkungen(Firefox-Bug 1309407).
-
Die Anfangswerte von
mask-position
undmask-repeat
wurden auf0% 0%
undrepeat
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()
definiert; beide akzeptieren dieselbe Parametersyntax.rgb()
undhsl()
akzeptieren jetzt einen optionalen Alphawert, z.B.rgb(255, 0, 0, 0.5)
.- Farbfunktionsparameter können jetzt durch Leerzeichen getrennt anstelle von Kommata, z.B.
rgb(255 0 0 / 0.5)
. - Alphawerte können jetzt als Prozentsätze sowie als Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%)
. - Die Farbkomponente im
hsl()
-Farben kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%)
.
-
Firefox's Implementierung von pseudo-Klassen der Kinder-Indizierung (wie
:nth-child
,:first-child
, und so weiter) wurde aktualisiert, um die Spezifikation der CSS-Selektoren Ebene 4 zu erfüllen: diese Pseudoklassen entsprechen jetzt den entsprechenden Geschwisterelementen anstelle der Kinder des Elternelements. Dies ermöglicht die Verwendung dieser Pseudoklassen, wenn es kein Elternteil gibt oder das Elternteil keinElement
ist (Firefox-Bug 1300374.
CSS-Grids
- CSS-Grids sind implementiert.
Änderungen und Entfernungen
- Unpräfikte Mehrspalteneigenschaften (und als Aliase die
-moz
-präfiktierten Versionen für den Moment wieder hinzugefügt) (Firefox-Bug 1300895). - Beenden der Verpackung von absoluten Kindern des Flex-Containers in anonyme Flex-Elemente (Firefox-Bug 1269045).
- Implementierte Gittercontainer-Baselines (Firefox-Bug 1151204).
- Entfernen der
<flex>
Min-Größenanpassung aus dem Stilsystem (Firefox-Bug 1305244). - Entfernen der Präferenz
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). - Entfernte
-moz-use-text-color
Wert von Farbeigenschaften; verwenden Sie stattdessencurrentcolor
(Firefox-Bug 1306214). - [css-grid] 'max-width' auf Grid-Element eingestellt, verursacht überlaufenden Text (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützt das Hinzufügen von asynchronen Funktionen. Diese Ergänzung umfasst
async function
Deklaration,async function
Ausdruck und dasawait
Schlüsselwort (Firefox-Bug 1185106). - Implementierte ES2017 nachgestellte Kommas in Funktionen (Firefox-Bug 1303788).
- Implementiert 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 Entfernungen
- Array Destrukturierung löst jetzt einen
SyntaxError
aus, wenn rest destrukturierend mit nachgestelltem Komma verwendet wird (Firefox-Bug 1041341). - Doppelte
__proto__
Eigenschaften sind jetzt in Objektdestrukturierung erlaubt (Firefox-Bug 1204024). Array.prototype.toLocaleString()
wurde neu implementiert, um die Locale-API-Parameter "locales
" und "options
" 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 nun, dass ihrethis
Werte gültige Typisierte Array-Konstruktoren sind (Firefox-Bug 1122396).- Die nicht-standardisierte Methode
ArrayBuffer.slice()
(nichtArrayBuffer.prototype.slice()
) wird als veraltet betrachtet und zeigt jetzt eine Warnung an, wenn verwendet (Firefox-Bug 1316913). - Unicode-Codepunkt-Fluchten können jetzt auch als Bezeichner verwendet werden (z.B. "
let \u{61} = 123
", siehe Firefox-Bug 1314037). - Um den ES2015-Konventionen zu entsprechen, werfen
\u2e2f
undⸯ
jetzt Fehler, wenn sie als Bezeichner verwendet werden, Einzelheiten siehe Firefox-Bug 917436 und Firefox-Bug 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde in 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 hingelangen kann (Firefox-Bug 1292063). - Nur HTML-Elemente sowie die
<svg>
und<math>
Elemente können durch Aufruf vonElement.requestFullscreen()
in den Vollbildmodus gesetzt werden (Firefox-Bug 1305928). - Touch-Ereignisse sind auf Windows-Desktop-Plattformen wieder aktiviert — siehe Firefox-Bug 1244402. (Sie wurden in Firefox 24 deaktiviert, da sie eine Reihe von bedeutenden Webseiten unterbrachen; siehe Firefox-Bug 888304.)
- Die
focusin
undfocusout
Ereignisse sind jetzt 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 von Service Workern 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 eingefrorenes 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
Fensterfeature verfügbar (siehe Firefox-Bug 1267339), das die Funktionalität desrel="noopener"
Linktyps widerspiegelt. - Die
CustomElementRegistry.get()
Methode der Web Components API wurde implementiert (siehe Firefox-Bug 1275838). - Pointer Event
width
undheight
Eigenschaften haben jetzt standardmäßig einen Wert von 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 genaue Details).
- Die
cancelBubble
Eigenschaft, die aufUIEvent
definiert war, wird jetzt anstelle dessen auf derEvent
Schnittstelle definiert. Einzelheiten siehe Firefox-Bug 1298970.
Änderungen und Entfernungen
- Die Firefox OS-APIs, die sich mit der Verwaltung von Telefonanrufen (Kontakte, MobileConnection, Icc, etc.) befassen, 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 Aktualisierungen der Fetch-API-Spezifikationen.
Web Audio API
- Die
ConstantSourceNode
Schnittstelle wurde hinzugefügt; sie repräsentiert eine Audioquelle, die immer einen Datenstrom von Proben mit demselben Wert ausgibt. Siehe Steuern mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie dies zur Vereinfachung einiger komplexer Audioflows verwendet werden kann.
WebRTC
- Bei einer vorübergehenden Störung der ICE-Verbindung wird die
RTCPeerConnection.iceConnectionState
Eigenschaft jetzt auf"disconnected"
gesetzt; Dies deutet auf ein vorübergehendes Problem hin, das sich möglicherweise bald von selbst löst und die Verbindung dann wieder in den"connected"
Zustand versetzt (Firefox-Bug 852665). - Das
MediaDevices
devicechange
-Ereignis und sein entsprechender Handler, die in Firefox 51 implementiert, jedoch standardmäßig nur auf 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 (das heißt, Tracks, die übergetUserMedia()
erhalten wurden). Jetzt können verschiedene Arten von Tracks gestoppt werden, einschließlich solcher, die mit einemMediaStream
assoziiert sind, das sich in einer WebRTC Verbindung, Web Audio API Stream oderCanvasCaptureMediaStream
befindet. - Zuvor führte das wiederholte Ändern des
TextTrack
'smode
während eines einzelnen Durchlaufs durch die Firefox-Ereignisschleife zu mehrerenchange
Ereignissen, die an dieTextTrackList
geliefert wurden, die durch dietextTracks
Eigenschaft des übergeordneten Media-Elements angegeben ist. Jetzt werden diese Änderungen in einem Ereignis zusammengefasst (Firefox-Bug 882674).
Audio/Video/Medien
- Die
MediaError
Objekte, die inHTMLMediaElement.error
angegeben sind, 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 Zeichenkette bietet spezifische Details zu diesem genauen Fehlerereignis und gibt Einblicke, warum etwas schief gelaufen ist (Firefox-Bug 1299072). Dieses Feld ist seit Firefox 51 in Firefox Nightly-Builds enthalten, ist aber jetzt in allen Builds bis hin zur Veröffentlichung verfügbar.
Andere APIs
- Die Methode
FileSystemFileEntry.createWriter()
, die in Firefox 50 hinzugefügt, aber immer mit einem Fehler zurückgegeben wurde, wurde entfernt (Firefox-Bug 1315185. - Die proprietären
Firefox OS-Apps Installations-/Verwaltungs-APIs
wurden aus der Plattform entfernt (siehe Firefox-Bug 1261019). - Die proprietäre
Firefox OS-Web-Telefonie-API
wurde aus der Plattform entfernt (siehe Firefox-Bug 1309719). - Die proprietäre
Firefox OS-Web-Bluetooth-API
wurde aus der Plattform entfernt (siehe Firefox-Bug 1310020). - Die Battery Status API ist jetzt nur noch für Chrome/berechtigten Code verfügbar (siehe Firefox-Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()
wurde umbenannt inImageBitmapRenderingContext.transferFromImageBitmap()
(siehe Firefox-Bug 1304767).- Die Mitglieder
mozDash
undmozDashOffset
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'
Quellenausdruck wird jetzt fürContent-Security-Policy
-Direktiven unterstützt, wie z.B.script-src
(Firefox-Bug 1299483). - Unsichere Seiten (
http:
) können keine Cookies setzen mehr mit der "secure" Direktive gemäß der Strict Secure Cookies specification (Firefox-Bug 976073). - Die maximale Tabellengröße des HTTP/2-Header-Kompressionsformats 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 mit der
XMLDocument
Schnittstelle anstelle von SVGDocument dargestellt. Dies ist eine Änderung, die in der SVG 2-Spezifikation gemacht wurde.
Sicherheit
- Wenn Anmeldeformulare (d.h. solche, die ein
<input type="password">
Feld enthalten) so erstellt werden, dass sie unsicher gesendet würden, zeigt Firefox unter dem Passwortfeld eine kontextbezogene Warnmeldung an, um Benutzer zu warnen (Firefox-Bug 1319119). Autofill ist ebenfalls bei unsicheren Anmeldeformularen deaktiviert (Firefox-Bug 1217152). Weitere Informationen siehe Unsichere Passwörter. - 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-Pluginsupport außer Flash wurde eingestellt. Auch die Nutzung von Flash soll zukünftig 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 key
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinks
und die SchnittstellensIDroppedLinkItem
wurden hinzugefügt, um das Fallenlassen mehrerer Elemente zu handhaben (Firefox-Bug 92737).
XUL
- Die Methode
tabbrowser.loadTabs(uris, params)
Überladung wurde hinzugefügt (Firefox-Bug 92737). - Die Funktionssignatur von
browser.droppedLinkHandler
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