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 Add-on-Entwickler.
Änderungen für Webentwickler
Entwicklertools
- Vollständig überarbeiteter Modus für responsives Design, einschließlich UA-Auswahl und Netzwerklimitierung.
- Der Animationsinspektor zeigt nun Zeitfunktionen an.
- Der Seiteninspektor enthält nun einen CSS-Grid-Inspektor.
- about:debugging zeigt nun Service-Worker-Status an.
- Der Seiteninspektor bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt nun Textknoten an, die nur aus Leerzeichen bestehen.
Alle in Firefox 51 bis Firefox 52 behobenen Entwicklertools-Bugs.
HTML
- Der
rel="noopener"
Linktyp wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Die Pseudo-Klasse
:focus-within
wurde hinzugefügt (Firefox-Bug 1176997). -
Unterstützung für
display:flex/grid
und Spaltenlayout innerhalb von<button>
-Elementen wurde hinzugefügt (Firefox-Bug 984869). -
Implementierte Interpolation zwischen numerischen Farbwerten und currentcolor (Firefox-Bug 1299741).
-
Implementierte Flexbox-Layout für
undjustify-content
: space-evenly
(Firefox-Bug 1235922).align-content
: space-evenly -
Unterstützung für Subpixel-Kantenglättung in CSS-
mask
/clip-path
wurde hinzugefügt (Firefox-Bug 1305259). -
CSS Text 3 Segment-Break-Transformationsregeln wurden implementiert (Firefox-Bug 1081858).
-
Grundform-Clipping (wie über die
clip-path
-Eigenschaft angewendet) kann nun auf SVG-Inhalte angewendet werden (Firefox-Bug 1246741). -
Implementiertes Flexbox-Layout für
align-self
|justify-self
: [ first | last ]? baseline (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 & Einzel-Zeilen-Größen sollten vonflex-wrap
abhängen, nicht von der Anzahl der Zeilen (Firefox-Bug 1090031). -
CSS-Animationen können nun 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 Block-Achse (Firefox-Bug 1221565). -
Flexiblen Spuren mit unbegrenzter enthaltender Blocklänge nun die minimale/maximale Größe (Firefox-Bug 1309407) respektieren.
-
Die Anfangswerte von
mask-position
undmask-repeat
wurden auf0% 0%
bzw.repeat
geändert (Firefox-Bug 1308963). -
Es gab einige Ä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)
.- Farbwerte akzeptieren jetzt leerzeichengetrennte Parameter anstelle von Kommas, z.B.
rgb(255 0 0 / 0.5)
. - Alphawerte können jetzt als Prozentangaben sowie Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%)
. - Die Farbkomponente in
hsl()
-Farbwerten kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%)
.
-
Firefoxs Implementierung von pseudo-elementiertem kindindexierten Selektoren (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 Geschwistern anstatt zu den Kindern des Elternelements. Dies ermöglicht die Verwendung dieser Pseudo-Klassen, wenn kein Elternelement vorhanden ist oder das Elternelement keinElement
ist (Firefox-Bug 1300374.
CSS-Grids
- CSS-Grids sind implementiert.
Änderungen und Entfernungen
- Unpräfixierte Multi-Column-Eigenschaften (und
-moz
-präfixierte Versionen als Aliase, vorerst) hinzugefügt (Firefox-Bug 1300895). - Aufhörendes Einbetten von Positionierungs-Kindern in anonymen Flexobjekten (Firefox-Bug 1269045).
- Implementierte Grid-Container-Basislinien (Firefox-Bug 1151204).
- Entfernte
<flex>
Min-Größeneinstellung aus dem Stilsystem (Firefox-Bug 1305244). - Entfernte Voreinstellung
layout.css.masking.enabled
(Firefox-Bug 1308239). - Die proprietären Medientypen
-moz-images-in-menus
und-moz-images-in-buttons
wurden entfernt (siehe Firefox-Bug 1302157). - Entfernte
-moz-use-text-color
Wert aus Farbeigenschaften; Verwenden Sie stattdessencurrentcolor
(Firefox-Bug 1306214). - [css-grid] 'max-width' auf Rasterelement gesetzt verursacht Überlauf von Text (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für async-Funktionen wurde hinzugefügt. Dies fügt die Deklaration von
async function
, den Ausdruckasync function
und das Schlüsselwortawait
hinzu (Firefox-Bug 1185106). - Implementierte ES2017 nachgestellte Kommas in Funktionen (Firefox-Bug 1303788).
- Implementierte Rest-Parameter-Destrukturierung (Firefox-Bug 1243717).
- Der Potenzierungsoperator (**) 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 wirft jetzt einen
SyntaxError
, wenn destrukturierte Rest-Parameter mit nachgestelltem Komma verwendet werden (Firefox-Bug 1041341). - Doppelte
__proto__
-Eigenschaften sind jetzt in der Objektdestrukturierung erlaubt (Firefox-Bug 1204024). Array.prototype.toLocaleString()
wurde neu implementiert, um die Intl-API-Parameter "locales
" und "options
" 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 Typisierte Array-Konstruktoren sind (Firefox-Bug 1122396).- Die nicht standardmäßige Methode
ArrayBuffer.slice()
(nichtArrayBuffer.prototype.slice()
) ist veraltet und zeigt jetzt eine Warnung bei Verwendung an (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
\u2e2f
undⸯ
jetzt einen Fehler, wenn sie als Bezeichner verwendet werden, 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 eingeführt, einschließlich der neuen Ereignisse
selectstart
undselectionchange
(Firefox-Bug 1309612). - Die Eigenschaft
Event.composed
wird nun unterstützt; dieser Boolean-Wert gibt an, ob das Ereignis durch den Shadow-Root in den Standard-DOM blubbern kann (Firefox-Bug 1292063). - Nur HTML-Elemente sowie die Elemente
<svg>
und<math>
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, weil sie eine Reihe wichtiger Webseiten unterbrachen; siehe Firefox-Bug 888304.)
- Die Ereignisse
focusin
undfocusout
sind nun implementiert (Firefox-Bug 687787). - Die Eigenschaft
WorkerGlobalScope.isSecureContext
wurde implementiert (siehe Firefox-Bug 1269052). - Das Web App Manifest-Installationsereignis wurde umbenannt in
appinstalled
, um Verwechslungen mit dem Service Worker-Installationsereignis zu vermeiden (sieheoninstall
). Siehe Firefox-Bug 1309099 für weitere Details zu diesem Update. - Die Eigenschaft
DataTransfer.types
der Drag and Drop API gibt jetzt ein gefrorenes Array von Strings zurück statt einerDOMStringList
(siehe Firefox-Bug 1298243). - Die Ereignisse
loadstart
undloadend
werden jetzt auf<img>
-Elementen ausgelöst (siehe Firefox-Bug 1264769). - Die Eigenschaft
Notification.requireInteraction
der Notifications API wurde implementiert (siehe Firefox-Bug 862395.) - Die Methode
Window.open()
hat jetzt einnoopener
Window-Feature verfügbar (siehe Firefox-Bug 1267339), die die Funktionalität desrel="noopener"
Linktyps widerspiegelt. - Die Methode
CustomElementRegistry.get()
der Web Components API wurde implementiert (siehe Firefox-Bug 1275838). - Die Eigenschaften Pointer Event
width
undheight
haben jetzt einen Standardwert von 1 (siehe Firefox-Bug 1304315). - Die File and Directory Entries API wurde aktualisiert, um Änderungen in der neuesten Spezifikation einzubeziehen (siehe Firefox-Bug 1284987 für die genauen Details).
- Die Eigenschaft
cancelBubble
, die aufUIEvent
definiert war, wird jetzt stattdessen auf derEvent
-Schnittstelle definiert. Siehe Firefox-Bug 1298970 für weitere Details.
Änderungen und Entfernungen
- Die Firefox-OS-APIs, die sich mit dem Verwalten von Telefonanrufen befassen (Contacts, MobileConnection, Icc usw.) wurden entfernt (Firefox-Bug 1311206).
- Die Firefox-OS
Identity
-Schnittstelle wurde entfernt (Firefox-Bug 1309030). - Die Firefox-OS-Mailbox-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-Übertragungs-bezogenen APIs in Firefox OS wurden entfernt (Firefox-Bug 1306778).
- Die Firefox OS FM-Radio-API (
FMRadio
,Navigator.mozFMRadio
) wurde entfernt (Firefox-Bug 1306779).
Service Worker und Fetch
- Die Methode
Headers.getAll()
wurde entfernt, undHeaders.get()
ruft nun alle Werte des angegebenen Headers ab, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Fetch-API-Spezifikations-Updates.
Web Audio API
- Die Schnittstelle
ConstantSourceNode
wurde hinzugefügt; sie stellt eine Audioquelle dar, die immer einen Strom von Samples ausgibt, die alle denselben Wert haben. Sehen Sie unter Steuern mehrerer Parameter mit ConstantSourceNode nach einem Beispiel, das zeigt, wie dies verwendet werden kann, um einige komplexe Audioflüsse zu vereinfachen.
WebRTC
- Bei einer vorübergehenden Unterbrechung einer ICE-Verbindung wird jetzt die Eigenschaft
RTCPeerConnection.iceConnectionState
auf"disconnected"
gesetzt; dies zeigt einen vorübergehenden Fehler an, der sich möglicherweise selbst behebt und die Verbindung anschließend in den"connected"
-Zustand zurückkehrt (Firefox-Bug 852665). - Das
MediaDevices
-Ereignisdevicechange
und der entsprechende Handler, die in Firefox 51 nur auf dem Mac implementiert, aber standardmäßig deaktiviert waren, wurden nun unter Windows und Linux implementiert und sind jetzt auf allen Plattformen standardmäßig aktiviert. - Die Eigenschaft
MediaStream.active
wird nun unterstützt. Dieser read-only Boolean-Wert gibt an, ob mindestens ein Track im Stream derzeit abgespielt wird. - Vor Firefox 52 konnte die Methode
MediaStreamTrack.stop()
nur lokale Tracks stoppen (d. h. Tracks, die übergetUserMedia()
erhalten wurden). Jetzt können verschiedene Tracks gestoppt werden, einschließlich derjenigen auf einemMediaStream
, der mit einer WebRTC-Verbindung, einem Web Audio API-Stream oder einemCanvasCaptureMediaStream
verbunden ist. - Zuvor führte das wiederholte Ändern eines [
TextTrack
]-mode
-Werts während eines einzelnen Durchlaufs durch die Firefox-Ereignisschleife, dazu, dass mehrerechange
-Ereignisse an die vom übergeordneten Medienelement angegebenetextTracks
-Eigenschaft gesendet wurden. Jetzt werden diese Änderungen in einem Ereignis konsolidiert (Firefox-Bug 882674).
Audio/Video/Medien
- Die [
MediaError
]-Objekte](/de/docs/Web/API/MediaError), die inHTMLMediaElement.error
angegeben werden, wenn ein Fehler beim Verarbeiten eines<audio>
oder<video>
-Elements auftritt, enthalten jetzt einemessage
-Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers liefert. Diese Zeichenkette bietet Einsichten für diesen genauen Fehler, warum etwas schiefgegangen ist (Firefox-Bug 1299072). Dieses Feld war in Nightly-Builds von Firefox seit Firefox 51 enthalten, ist jetzt jedoch in allen Builds, einschließlich der Veröffentlichung, verfügbar.
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 Firefox OS
Web-Telephony-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-privilegierten Code verfügbar (siehe Firefox-Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()
wurde umbenannt inImageBitmapRenderingContext.transferFromImageBitmap()
(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'
-Source-Ausdruck wird jetzt fürContent-Security-Policy
-Direktiven unterstützt, wie zum Beispielscript-src
(Firefox-Bug 1299483). - Unsichere Seiten (
http:
) können keine Cookies setzen, die die Direktive "secure" enthalten, 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 der
XMLDocument
-Schnittstelle anstelle von SVGDocument dargestellt. Dies ist eine Änderung in der SVG-2-Spezifikation.
Sicherheit
- Wenn Anmeldeseiten (d.h. Seiten, die ein
<input type="password">
-Feld enthalten) so erstellt werden, dass sie unsicher gesendet werden, zeigt Firefox eine Kontext-Warnmeldung unterhalb des Passwortfeldes an, um die Nutzer zu warnen (Firefox-Bug 1319119). Die Autoausfüllung ist auch auf unsicheren Anmeldeformularen deaktiviert (Firefox-Bug 1217152). Siehe Unsichere Passwörter für weitere Details. - 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
Nicht vertrauenswürdige Verbindung
-Fehler (Firefox-Bug 1330043).
Plugins
Die Unterstützung für alle NPAPI-Plugins außer Flash wurde eingestellt. Auch die Nutzung von Flash soll in Zukunft schrittweise eingestellt werden.
Änderungen für Add-on- und Mozilla-Entwickler
WebExtensions
Neue APIs:
sessions
APItopSites
APIomnibox
API- Ereignisse
runtime.onInstalled
undruntime.onStartup
- Asynchrone Ereignis-Listener in webRequest
- Ereignisse
bookmarks.onMoved
,bookmarks.onCreated
,bookmarks.onChanged
_execute_browser_action
und_execute_page_action
im Befehle Manifests-Schlüsselmatch_about_blank
imcontent_scripts
-Manifests-Schlüssel
Schnittstellen
- Methode
nsIDroppedLinkHandler.dropLinks
und SchnittstellensIDroppedLinkItem
wurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox-Bug 92737).
XUL
- Überladung der Methode
tabbrowser.loadTabs(uris, params)
wurde hinzugefügt (Firefox-Bug 92737). - 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