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 für Entwickler von Add-ons.
Änderungen für Webentwickler
Entwicklerwerkzeuge
- Vollständig überarbeiteter Responsive Design-Modus, einschließlich UA-Auswahl und Netzwerkauslastung.
- Der Animationsinspektor zeigt jetzt Timing-Funktionen an.
- Der Seiteninspektor enthält jetzt einen CSS-Grid-Inspektor.
- about:debugging zeigt jetzt den Status von Serviceworkern an.
- Der Seiteninspektor bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt nur aus Leerzeichen bestehende Textknoten an.
Alle zwischen Firefox 51 und Firefox 52 behobenen Devtools-Bugs.
HTML
- Der
rel="noopener"
Linktyp wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
:focus-within
Pseudoklasse hinzugefügt (Firefox-Bug 1176997). -
Unterstützung für
display:flex/grid
und Columnset-Layout innerhalb von<button>
Elementen hinzugefügt (Firefox-Bug 984869). -
Umsetzung der Interpolation zwischen numerischen Farbwerten und currentcolor (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 Segment-Break-Transformationsregeln implementiert (Firefox-Bug 1081858).
-
Grundform-Clipping (wie über die
clip-path
Eigenschaft angewendet) kann jetzt auf SVG-Inhalte angewendet werden (Firefox-Bug 1246741). -
Flexbox-Layout für
align-self
undjustify-self
implementiert (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
Verarbeitung & Einzeilen-Größenanpassung sollten 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).
-
baseline|last-baseline
wurde zu[ first | last ]? baseline
geändert (Firefox-Bug 1313254). -
Der verwendete Wert für
left
/right
iststart
für die Blockachse (Firefox-Bug 1221565). -
Strecken flexibler Tracks mit einer unbestimmten Blocklänge respektiert jetzt die min/max Größ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 Parametersyntax.rgb(
) undhsl()
akzeptieren jetzt einen optionalen Alphawert, z.B.rgb(255, 0, 0, 0.5)
.- Farbfunktionen akzeptieren jetzt leerzeichen-separierte Parameter anstatt Kommata, z.B.
rgb(255 0 0 / 0.5)
. - Alphas können jetzt als Prozentsätze sowie als Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%)
. - Die Farbkomponente in
hsl()
Farben kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%)
.
-
Die Implementierung von kinderindexierten Pseudoklassen (wie
:nth-child
,:first-child
, usw.) in Firefox wurde aktualisiert, um der CSS Selectors Level 4 Spezifikation zu entsprechen: Diese Pseudoklassen stimmen jetzt mit den entsprechenden Geschwisterelementen überein, anstatt mit den Kindern ihres übergeordneten Elements. Dies erlaubt die Verwendung dieser Pseudoklassen, wenn es kein übergeordnetes Element gibt, oder das übergeordnete Element keinElement
ist (Firefox-Bug 1300374).
CSS-Grids
- CSS-Grids sind implementiert.
Änderungen und Entfernungen
- Unpräfixierte Mehrspalteneigenschaften (und
-moz
präfixierte Versionen vorerst als Aliase hinzugefügt) (Firefox-Bug 1300895). - Beendetes Umhüllen von abpos Kindern des Flex-Containers in anonymen Flex-Elementen (Firefox-Bug 1269045).
- Implementierte Basislinien für Gittercontainer (Firefox-Bug 1151204).
- Entferntes
<flex>
Mindestgrößenabmessung aus dem Stilsystem (Firefox-Bug 1305244). - Entfernte Präferenz
layout.css.masking.enabled
(Firefox-Bug 1308239). - Die firmeneigenen
-moz-images-in-menus
und-moz-images-in-buttons
Medientypen wurden entfernt (siehe Firefox-Bug 1302157). - Der
-moz-use-text-color
Wert wurde aus Farbeigenschaften entfernt; verwenden Sie stattdessencurrentcolor
(Firefox-Bug 1306214). - [css-grid] 'max-width' auf Gitterelement gesetzt verursacht Textüberlauf (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für asynchrone Funktionen wurde hinzugefügt. Dies fügt die
async function
Deklaration,async function
Ausdruck, und dasawait
Schlüsselwort hinzu (Firefox-Bug 1185106). - ES2017 Abschließende Kommas in Funktionen implementiert (Firefox-Bug 1303788).
- Rest-Parameter Destrukturierung implementiert (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-Desturkturierung löst jetzt einen
SyntaxError
aus, wenn Rest der Destrukturierung mit abschließendem Komma verwendet wird (Firefox-Bug 1041341). - Doppelte
__proto__
Eigenschaften sind jetzt in Objektdestrukturierungen 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 bei der Verwendung an (Firefox-Bug 1316913). - Unicode-Zeichenpunkt-Escapes können jetzt auch als Bezeichner verwendet werden (z.B.
let \u{61} = 123
, siehe Firefox-Bug 1314037). - Zur Konformität mit ES2015 führen
\u2e2f
undⸯ
jetzt zu einem Fehler, 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 verfügbar, 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 Event durch die Schattenwurzel in das Standard-DOM blubbern kann (Firefox-Bug 1292063). - Nur HTML-Elemente, sowie die
<svg>
und<math>
Elemente, können in den Vollbildmodus versetzt werden, indemElement.requestFullscreen()
aufgerufen wird (Firefox-Bug 1305928). - Touch-Events wurden auf Windows-Desktopplattformen wieder aktiviert — siehe Firefox-Bug 1244402. (Sie wurden in Firefox 24 deaktiviert, da sie eine Reihe von großen Sites störten; 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 Installationsereignis im Web App Manifest wurde in
appinstalled
umbenannt, um Verwechslungen mit dem Serviceworker-Installationsereignis zu vermeiden (sieheoninstall
). Weitere Details zu diesem Update finden Sie in Firefox-Bug 1309099. - Die
DataTransfer.types
Eigenschaft der Drag-and-Drop-API gibt jetzt ein gefrorenes Array von Strings anstatt 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 Benachrichtigungs-API wurde implementiert (siehe Firefox-Bug 862395). - Die
Window.open()
Methode verfügt nun über einnoopener
Fenster-Feature (siehe Firefox-Bug 1267339), das die Funktionalität desrel="noopener"
Linktyps widerspiegelt. - Die
CustomElementRegistry.get()
Methode der Webcomponents-API wurde implementiert (siehe Firefox-Bug 1275838). - Die Pointer Event
width
undheight
Eigenschaften haben jetzt standardmäßig den Wert 1 (siehe Firefox-Bug 1304315). - Die Datei- und Verzeichniseinträge-API wurde aktualisiert, um Veränderungen in der neuesten Spezifikation zu enthalten (siehe Firefox-Bug 1284987 für die genauen Details).
- Die
cancelBubble
Eigenschaft, die aufUIEvent
definiert war, ist jetzt stattdessen auf derEvent
Schnittstelle definiert. Weitere Details finden Sie in Firefox-Bug 1298970.
Änderungen und Entfernungen
- Die Firefox-OS-APIs, die sich mit der Verwaltung von Telefonanrufen (Kontakte, MobileConnection, Icc usw.) beschäftigen, 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 TV-Übertragungsbezogenen APIs von Firefox OS wurden entfernt (Firefox-Bug 1306778).
- Die FM-Radio-API von Firefox OS (
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 spezifizierten Headers ab, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Aktualisierungen der Fetch API Spezifikation.
Web Audio API
- Die
ConstantSourceNode
Schnittstelle wurde hinzugefügt; sie stellt eine Audioquelle dar, die immer einen Strom von Proben ausgibt, die alle den gleichen Wert haben. Siehe Steuern mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie dies zur Vereinfachung einiger komplexer Audioflüsse verwendet werden kann.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen ist, wird die
RTCPeerConnection.iceConnectionState
Eigenschaft jetzt auf"disconnected"
gesetzt; dies deutet auf einen vorübergehenden Ausfall hin, der sich möglicherweise bald von selbst löst, 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 auf Mac implementiert, aber standardmäßig deaktiviert waren, wurden unter 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 gerade abgespielt wird. - Vor Firefox 52 konnte die
MediaStreamTrack.stop()
Methode nur lokale Tracks (das sind Tracks, die übergetUserMedia()
abgerufen wurden) stoppen. Jetzt können Sie auch eine Vielzahl von Tracks stoppen, einschließlich denen auf einemMediaStream
, der mit einer WebRTC Verbindung, einem Web Audio API Stream oder einemCanvasCaptureMediaStream
verbunden ist. - Vorher führte das wiederholte Ändern des
TextTrack
mode
während eines einzigen Durchgangs durch die Ereignisschleife von Firefox dazu, dass mehrerechange
Ereignisse an dieTextTrackList
übergeben wurden, die von dertextTracks
Eigenschaft des übergeordneten Medienelements spezifiziert wird. Jetzt werden diese Änderungen in ein einziges Ereignis konsolidiert (Firefox-Bug 882674).
Audio/Video/Medien
- Die
MediaError
Objekte, die inHTMLMediaElement.error
angegeben sind, wenn bei der Handhabung eines<audio>
oder<video>
Elements ein Fehler auftritt, enthalten jetzt einemessage
Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Diese Zeichenkette bietet Details, die genau zu diesem Fehlerereignis gehören und Einblick in die Ursache bieten, warum etwas schiefgelaufen ist (Firefox-Bug 1299072). Dieses Feld wurde bereits seit Firefox 51 in den Nightly-Builds von Firefox enthalten, ist jedoch jetzt in allen Builds bis hin zur Veröffentlichungsvariante verfügbar.
Andere APIs
- Die Methode
FileSystemFileEntry.createWriter()
, die in Firefox 50 hinzugefügt wurde (aber immer nur einen Fehler zurückgab), wurde entfernt (Firefox-Bug 1315185). - Die firmeneigenen
Apps installation/management APIs
von Firefox OS wurden von der Plattform entfernt (siehe Firefox-Bug 1261019). - Die firmeneigene
Web Telephony API
von Firefox OS wurde von der Plattform entfernt (siehe Firefox-Bug 1309719). - Die firmeneigene
Web Bluetooth API
von Firefox OS wurde von der Plattform entfernt (siehe Firefox-Bug 1310020). - Die Batteriestatus-API ist jetzt nur 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 Ausdruck
'strict-dynamic'
für dieContent-Security-Policy
Direktiven, wiescript-src
, wird jetzt 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 mit der
XMLDocument
Schnittstelle 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 unter dem Passwortfeld, um Benutzer zu warnen (Firefox-Bug 1319119). Automatisches Ausfüllen wird auch in unsicheren Login-Formularen deaktiviert (Firefox-Bug 1217152). Weitere Informationen finden Sie unter Unsichere Passwörter. - Die 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
Die Unterstützung für alle NPAPI-Plugins außer Flash wurde eingestellt. Die Nutzung von Flash soll in Zukunft ebenfalls auslaufen.
Änderungen für Add-on- und Mozilla-Entwickler
WebExtensions
Neue APIs:
sessions
APItopSites
APIomnibox
APIruntime.onInstalled
undruntime.onStartup
Events- Asynchrone Ereignislistener in webRequest
bookmarks.onMoved
,bookmarks.onCreated
,bookmarks.onChanged
Events_execute_browser_action
und_execute_page_action
im commands manifest keymatch_about_blank
im content_scripts manifest key
Schnittstellen
nsIDroppedLinkHandler.dropLinks
Methode undnsIDroppedLinkItem
Schnittstelle wurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox-Bug 92737).
XUL
tabbrowser.loadTabs(uris, params)
Methodenvorlage wurde hinzugefügt (Firefox-Bug 92737).- Die Signatur der
browser.droppedLinkHandler
Funktion wurde geändert (Firefox-Bug 92737).