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 für Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
Entwicklerwerkzeuge
- Komplett überarbeiteter Responsive Design Modus, einschließlich UA-Auswahl und Netzwerk-Drosselung.
- Der Animationsinspektor zeigt nun Timing-Funktionen an.
- Der Seiteninspektor enthält nun 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 nun auch reine Whitespace-Textknoten an.
Alle zwischen Firefox 51 und Firefox 52 behobenen Devtools-Fehler.
HTML
- Der
rel="noopener"
Linktyp wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Pseudoklasse
:focus-within
hinzugefügt (Firefox-Bug 1176997). -
Unterstützung für
display:flex/grid
und das Spaltensatz-Layout innerhalb von<button>
-Elementen hinzugefügt (Firefox-Bug 984869). -
Implementierte Interpolation zwischen numerischen Farbwerten und currentcolor (Firefox-Bug 1299741).
-
Implementierung der 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
hinzugefügt (Firefox-Bug 1305259). -
CSS Text 3 Segmentbruch-Transformationsregeln implementiert (Firefox-Bug 1081858).
-
Grundlegendes Form-Clipping (wie es über die
clip-path
-Eigenschaft angewendet wird) kann jetzt 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 nun standardmäßig auf allen Plattformen aktiviert. (Für die vollständigen Informationen siehe intent to ship mail #1 und intent to ship mail #2.) -
Flexbox-
align-content
-Handhabung & Einstreifenskalierung sollen vonflex-wrap
und nicht von der Zeilenanzahl abhängen (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 tatsächliche Wert für
left
/right
iststart
für die Block-Achse (Firefox-Bug 1221565). -
Das Dehnen flexibler Gleise mit unbestimmter Containerblocklänge respektiert jetzt die Mindest-/Maximalgröße (Firefox-Bug 1309407).
-
Die Anfangswerte von
mask-position
undmask-repeat
wurden auf0% 0%
undrepeat
, respektive, geändert (Firefox-Bug 1308963). -
Es gibt eine Reihe von Änderungen an CSS-
<color>
-Werten (siehe Firefox-Bug 1295456):rgba()
undhsla()
wurden nun als Aliasse vonrgb()
undhsl()
neu definiert; beide akzeptieren den gleichen Parameter-Syntax.rgb(
) undhsl()
akzeptieren nun einen optionalen Alphawert, z. B.rgb(255, 0, 0, 0.5)
.- Farb-Funktionen akzeptieren nun leerzeichengetrennte Parameter statt Kommata, z. B.
rgb(255 0 0 / 0.5)
. - Alphawerte können jetzt als Prozentsätze sowie 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%)
.
-
Firefoxs Implementierung von kinderindizierten Pseudoklassen (wie
:nth-child
,:first-child
, etc.) wurde aktualisiert, um der CSS Selectors Level 4-Spezifikation zu entsprechen: Diese Pseudoklassen passen jetzt zu den entsprechenden Geschwistern anstelle der Kinder ihres 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äfixierte Multi-Spalten-Eigenschaften (und fügte die
-moz
-präfixierten Versionen als Aliasse vorerst hinzu) (Firefox-Bug 1300895). - Gestoppte Umhüllung von
abspos
-Kindern des Flex-Containers in anonyme Flex-Elemente (Firefox-Bug 1269045). - Implementierte Rastervertragslinien (Firefox-Bug 1151204).
- Entfernte
<flex>
-Minimierung aus dem Stilsystem (Firefox-Bug 1305244). - Präferenz
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). - Entfernt
-moz-use-text-color
-Wert aus Farbeigenschaften; verwenden Sie stattdessencurrentcolor
(Firefox-Bug 1306214). - [css-grid] 'max-width', das auf Grid-Element gesetzt ist, lässt Text überlaufen (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für asynchrone Funktionen wurde hinzugefügt. Dies fügt die
async function
-Deklaration, denasync function
-Ausdruck und dasawait
-Schlüsselwort hinzu (Firefox-Bug 1185106). - ES2017 nachlaufende Kommas in Funktionen implementiert (Firefox-Bug 1303788).
- Rest-Parameter-Destrukturierung implementiert (Firefox-Bug 1243717).
- Der Exponentiationsoperator (**) ist jetzt standardmäßig aktiviert (Firefox-Bug 1291212).
- Man kann nun IANA-Zeitzonennamen in der
timeZone
-Option von datumbezogenen APIs wieDateTimeFormat
oderDate.toLocaleString()
verwenden (Firefox-Bug 837961).
Änderungen und Entfernungen
- Array-Destrukturierung wirft jetzt einen
SyntaxError
-Fehler, wenn bei der Destrukturierung Rest mit einem nachlaufenden Komma verwendet wird (Firefox-Bug 1041341). - Doppelte
__proto__
-Eigenschaften sind jetzt erlaubt in der Objektdestrukturierung (Firefox-Bug 1204024). Array.prototype.toLocaleString()
wurde neu implementiert, um dieIntl
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 Typed Array-Konstruktoren sind (Firefox-Bug 1122396).- Die nicht-standardisierte
ArrayBuffer.slice()
-Methode (nichtArrayBuffer.prototype.slice()
) ist veraltet und zeigt jetzt eine Warnung, wenn sie verwendet wird (Firefox-Bug 1316913). - Unicode-Codepunkt-Escapes können nun auch als Bezeichner verwendet werden (z.B. "
let \u{61} = 123
", siehe Firefox-Bug 1314037). - Zur Konformität mit ES2015,
\u2e2f
undⸯ
werfen jetzt einen Fehler, wenn sie als Identifikator 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
- Das Selection API ist vollständig ausgeliefert, einschließlich der neuen
selectstart
- undselectionchange
-Ereignisse (Firefox-Bug 1309612). - Die Eigenschaft
Event.composed
wird jetzt unterstützt; dieser boolesche Wert zeigt an, ob das Ereignis durch den Shadow Root in das Standard-DOM weiterlaufen kann (Firefox-Bug 1292063). - Nur HTML-Elemente, zusätzlich zum
<svg>
und<math>
-Element, können in den Vollbildmodus versetzt 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, weil sie eine Reihe von großen Websites beschädigten; 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 Service Worker Installationsereignis zu vermeiden (sieheoninstall
). Siehe Firefox-Bug 1309099 für weitere Details zu diesem Update. - Die
DataTransfer.types
-Eigenschaft der Drag and Drop API gibt nun ein festes Array von Zeichenfolgen zurück, anstatt einerDOMStringList
(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 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 die genauen Details).
- Die
cancelBubble
-Eigenschaft, die bisher 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 (Kontakte, MobileConnection, Icc, usw.), 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 Fernsehsendungs-APIs von Firefox OS 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 Updates der Fetch API-Spezifikation.
Web Audio API
- Die
ConstantSourceNode
-Schnittstelle wurde hinzugefügt; sie repräsentiert eine Audioquelle, die stets einen Stream von Samples ausgibt, die alle den gleichen Wert haben. Lesen Sie Kontrollieren mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie dies zur Vereinfachung einiger komplexer Audio-Flows verwendet werden kann.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen ist, wird die
RTCPeerConnection.iceConnectionState
-Eigenschaft jetzt auf"disconnected"
gesetzt; dies zeigt ein vorübergehendes Versagen an, das sich möglicherweise bald von selbst löst, wobei die Verbindung anschließend wieder in den"connected"
-Zustand wechselt (Firefox-Bug 852665). - Das
MediaDevices
-devicechange
-Ereignis und der entsprechende Handler, die in Firefox 51 nur auf dem 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 zeigt an, ob mindestens ein Track im Stream derzeit abgespielt wird. - Vor Firefox 52 konnte die
MediaStreamTrack.stop()
-Methode nur lokale Tracks stoppen (d.h. Tracks, die durchgetUserMedia()
erhalten wurden). Jetzt können eine Vielzahl von Tracks gestoppt werden, einschließlich derjenigen auf einemMediaStream
, das mit einer WebRTC-Verbindung, einem Web Audio API-Stream oder einemCanvasCaptureMediaStream
verbunden ist. - Zuvor würde das wiederholte Ändern des
mode
einesTextTrack
während einer einzigen Durchlauf der Firefox-Ereignisschleife zu mehrerenchange
-Ereignissen führen, die an die vom übergeordneten Medienelement durch dietextTracks
-Eigenschaft spezifizierteTextTrackList
geliefert werden. Jetzt werden diese Änderungen zu einem Ereignis konsolidiert (Firefox-Bug 882674).
Audio/Video/Medien
- Die
MediaError
-Objekte, die inHTMLMediaElement.error
spezifiziert sind, wenn ein Fehler beim Verarbeiten eines<audio>
- oder<video>
-Elements auftritt, enthalten jetzt einemessage
-Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Diese Zeichenfolge bietet Details, die speziell für diesen genauen Fehlerfall sind und Einblick darin bieten, warum etwas schiefgelaufen ist (Firefox-Bug 1299072). Dieses Feld ist seit Firefox 51 in Firefox Nightly-Builds enthalten, aber jetzt in allen Builds verfügbar, bis hin zur Veröffentlichung.
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-/Management-APIs
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 zuImageBitmapRenderingContext.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'
Quellausdruck wird jetzt fürContent-Security-Policy
Direktiven wiescript-src
unterstützt (Firefox-Bug 1299483). - Unsichere Seiten (
http:
) können nicht mehr Cookies setzen mit der "secure"-Direktive gemäß der Strict Secure Cookies-Spezifikation (Firefox-Bug 976073). - Die maximale Tabellengröße im HTTP/2-Header-Komprimierungsformat 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 über die
XMLDocument
-Schnittstelle anstelle von SVGDocument dargestellt. Dies ist eine Änderung, die in der SVG 2-Spezifikation vorgenommen wurde.
Sicherheit
- Wenn Anmeldeseiten (d.h. solche, die ein
<input type="password">
-Feld enthalten) erstellt werden, so dass sie unsicher übermittelt würden, zeigt Firefox eine kontextbezogene Warnmeldung unter dem Passwortfeld an, um die Benutzer zu warnen (Firefox-Bug 1319119). Autofill ist auch bei unsicheren Anmeldeseiten 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 nun zu einem
Untrusted Connection
-Fehler (Firefox-Bug 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützung außer Flash wurde eingestellt. Die Nutzung von Flash soll auch in naher Zukunft auslaufen.
Änderungen für Add-on- und Mozilla-Entwickler
WebExtensions
Neue APIs:
sessions
APItopSites
APIomnibox
APIruntime.onInstalled
undruntime.onStartup
Ereignisse- asynchrone Ereignis-Listener in webRequest
bookmarks.onMoved
,bookmarks.onCreated
,bookmarks.onChanged
Ereignisse_execute_browser_action
und_execute_page_action
im commands Manifest-Schlüsselmatch_about_blank
im content_scripts Manifest-Schlüssel
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinks
und die SchnittstellensIDroppedLinkItem
wurden hinzugefügt, um das Ablegen mehrerer Elemente zu verwalten (Firefox-Bug 92737).
XUL
- Eine Ü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).
Ältere Versionen
- Firefox 51 for developers
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers
- Firefox 21 for developers