Firefox 52 für Entwickler
Firefox 52 wurde am 7. März 2017 veröffentlicht. Dieser Artikel listet wesentliche Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox-, Gecko- und Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
Entwickler-Tools
- Vollständig überarbeiteter Responsiver Designmodus, einschließlich UA-Auswahl und Netzwerkauslastung.
- Der Animations-Inspektor zeigt jetzt Zeitfunktionen an.
- Der Seiteninspektor enthält jetzt einen CSS-Grid-Inspektor.
- about:debugging zeigt jetzt den Status des Service Workers.
- Der Seiteninspektor bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt Textknoten an, die nur Leerzeichen enthalten.
Alle behobenen Entwickler-Tools-Fehler zwischen Firefox 51 und Firefox 52.
HTML
- Der
rel="noopener"
Linktyp wurde implementiert (siehe Firefox Fehler 1222516).
CSS
Neue Features
-
Die
:focus-within
Pseudoklasse wurde hinzugefügt (Firefox Fehler 1176997). -
Unterstützung für
display:flex/grid
und columnset-Layout innerhalb von<button>
-Elementen wurde hinzugefügt (Firefox Fehler 984869). -
Implementierung der Interpolation zwischen numerischen Farb- und currentcolor (Firefox Fehler 1299741).
-
Flexbox-Layout für
undjustify-content
: space-evenly
implementiert (Firefox Fehler 1235922).align-content
: space-evenly -
Unterstützung für Subpixel-Kantenglättung in CSS
mask
/clip-path
hinzugefügt (Firefox Fehler 1305259). -
CSS Text 3 Segmentbreak-Transformationsregeln implementiert (Firefox Fehler 1081858).
-
Basisschneiden (wie über die
clip-path
Eigenschaft angewendet) kann nun auf SVG-Inhalte angewendet werden (Firefox Fehler 1246741). -
Flexbox-Layout für
align-self
undjustify-self
implementiert (Firefox Fehler 1221524). -
Die
touch-action
Eigenschaft ist nun 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 & einzeiliges Größenschaltens sollten vonflex-wrap
, nicht von der Anzahl der Zeilen abhängig sein (Firefox Fehler 1090031). -
CSS Animationen können nun verwendet werden, um nicht interpolierte Eigenschaften zu animieren (siehe Firefox Fehler 1064937).
-
baseline|last-baseline
wurde zu[ first | last ]? baseline
geändert (Firefox Fehler 1313254). -
Der verwendete Wert für
left
/right
iststart
für die Block-Achse (Firefox Fehler 1221565). -
Stretching flexibler Tracks mit einer unbestimmten enthaltenen Blocklänge respektiert nun die Mindest-/Höchstgröße (Firefox Fehler 1309407).
-
Die anfänglichen Werte von
mask-position
undmask-repeat
wurden zu0% 0%
undrepeat
geändert (Firefox Fehler 1308963). -
Es gab einige Änderungen an den CSS
<color>
Werten (siehe Firefox Fehler 1295456):rgba()
undhsla()
wurden nun 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)
.- Farb-Funktionen akzeptieren jetzt durch Leerzeichen getrennte Parameter anstelle von Kommata, z. B.
rgb(255 0 0 / 0.5)
. - Alpha-Werte können nun sowohl als Prozentsätze als auch als Zahlen angegeben werden, z. B.
rgb(255 0 0 / 50%)
. - Die Farbtonkomponente in
hsl()
-Farben kann nun als Winkel sowie als Zahl angegeben werden, z. B.hsl(120deg, 60%, 70%)
.
-
Firefox implementiert Kind-indizierte Pseudoklassen (wie
:nth-child
,:first-child
usw.) entsprechend der CSS Selektoren Level 4 Spezifikation: Diese Pseudoklassen stimmen nun mit den entsprechenden Geschwisterelementen überein, nicht mit den Kindern ihres übergeordneten Elements. Dies erlaubt es, diese Pseudoklassen zu verwenden, wenn kein übergeordnetes Element vorhanden ist, oder das übergeordnete Element keinElement
ist (Firefox Fehler 1300374).
CSS Grids
- CSS Grids sind implementiert.
Änderungen und Entfernen
- Unpräfixierte Mehrspalten-Eigenschaften (und
-moz
-präfixierte Versionen als Aliase, vorerst wieder hinzugefügt) (Firefox Fehler 1300895). - Wrappen von Absolutpositions-Kindern eines Flex-Containers in anonyme Flex-Elemente gestoppt(Firefox Fehler 1269045).
- Grid-Container-Baselines implementiert (Firefox Fehler 1151204).
Mindestgrößenänderung aus dem Stilsystem entfernt (Firefox Fehler 1305244). - Einstellung
layout.css.masking.enabled
entfernt (Firefox Fehler 1308239). - Die proprietären
-moz-images-in-menus
und-moz-images-in-buttons
Medientypen wurden entfernt (siehe Firefox Fehler 1302157). -moz-use-text-color
Wert von Farbeigenschaften entfernt; verwenden Sie stattdessencurrentcolor
(Firefox Fehler 1306214).- [css-grid] Maximalbreite auf Grid-Element verursacht Überlauf des Textes (Firefox Fehler 1330380).
JavaScript
Neue Features
- Unterstützung für die async-Funktionen wurde hinzugefügt. Dies fügt
async function
Deklaration,async function
Ausdruck und dasawait
Schlüsselwort hinzu (Firefox Fehler 1185106). - ES2017 nachlaufende Kommas in Funktionen implementiert (Firefox Fehler 1303788).
- Rest-Parameter-Destructuring implementiert (Firefox Fehler 1243717).
- Der Exponentiationsoperator (**) ist nun standardmäßig aktiviert (Firefox Fehler 1291212).
- Sie können nun IANA-Zeitzonennamen in der
timeZone
-Option von Datum-bezogenen APIs wieDateTimeFormat
oderDate.toLocaleString()
verwenden (Firefox Fehler 837961).
Änderungen und Entfernen
- Array Destructuring wirft jetzt einen
SyntaxError
, wenn Destructuring-Rest mit nachfolgendem Komma verwendet wird (Firefox Fehler 1041341). - Doppelte
__proto__
Eigenschaften sind nun im Objektdestructuring erlaubt (Firefox Fehler 1204024). Array.prototype.toLocaleString()
wurde neu implementiert, um die Intl API Parameterlocales
undoptions
zu unterstützen (Firefox Fehler 1130636).TypedArray
Konstruktoren akzeptieren jetzt iterables, um neue typed arrays zu erstellen (Firefox Fehler 1232266).TypedArray.from()
,TypedArray.of()
,TypedArray.prototype.filter()
,TypedArray.prototype.map()
,TypedArray.prototype.slice()
,TypedArray.prototype.subarray()
erfordern nun, dass ihrethis
-Werte gültige Typed Array Konstruktoren sind (Firefox Fehler 1122396).- Die nicht standardmäßige Methode
ArrayBuffer.slice()
(nichtArrayBuffer.prototype.slice()
) ist veraltet und zeigt jetzt eine Warnung an, wenn sie verwendet wird (Firefox Fehler 1316913). - Unicode Codepoint Escapes können nun auch als Bezeichner verwendet werden (z.B.
let \u{61} = 123
, siehe Firefox Fehler 1314037). - Um mit ES2015 konform zu sein, werfen
\u2e2f
undⸯ
jetzt einen Fehler, wenn sie als Bezeichner verwendet werden, Details siehe Firefox Fehler 917436 und Firefox Fehler 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde in Gecko hinzugefügt.
DOM
- Die Selection API ist vollständig ausgeliefert worden, inklusive der neuen
selectstart
undselectionchange
Events (Firefox Fehler 1309612). - Die Eigenschaft
Event.composed
wird jetzt unterstützt; dieser Boolean-Wert gibt an, ob das Event durch den Shadow-Root in das Standard-DOM blubbern kann (Firefox Fehler 1292063). - Nur HTML-Elemente, sowie die
<svg>
und<math>
Elemente, können in den Vollbildmodus versetzt werden, indemElement.requestFullscreen()
aufgerufen wird (Firefox Fehler 1305928). - Touch-Events wurden auf Windows-Desktop-Plattformen wieder aktiviert — siehe Firefox Fehler 1244402. (Sie wurden in Firefox 24 deaktiviert, da sie eine Anzahl von wichtigen Seiten kaputt machten; siehe Firefox Fehler 888304.)
- Die
focusin
undfocusout
Events sind nun implementiert (Firefox Fehler 687787). - Die
WorkerGlobalScope.isSecureContext
Eigenschaft wurde implementiert (siehe Firefox Fehler 1269052). - Das Web App Manifest Installationsereignis wurde in
appinstalled
umbenannt, um Verwechslungen mit dem Installationsereignis des Service Workers zu vermeiden (sieheoninstall
). Siehe Firefox Fehler 1309099 für mehr Details zu diesem Update. - Die
DataTransfer.types
Eigenschaft der Drag and Drop API gibt jetzt ein gefrorenes Array von Strings anstelle einerDOMStringList
zurück (siehe Firefox Fehler 1298243). - Die
loadstart
undloadend
Events werden nun auf<img>
-Elementen ausgelöst (siehe Firefox Fehler 1264769). - Die
Notification.requireInteraction
der Benachrichtigungs-API wurde implementiert (siehe Firefox Fehler 862395.) - Die Methode
Window.open()
hat jetzt einenoopener
Fensterfunktion verfügbar (siehe Firefox Fehler 1267339), die die Funktionalität desrel="noopener"
Link-Typs spiegelt. - Die Methode
CustomElementRegistry.get()
der Web Components API wurde implementiert (siehe Firefox Fehler 1275838). - Pointer Event
width
undheight
Eigenschaften sind jetzt standardmäßig auf den Wert 1 gesetzt (siehe Firefox Fehler 1304315). - Die Datei und Verzeichnis-Einträge API wurde aktualisiert, um Änderungen in der neuesten Spezifikation einzuschließen (siehe Firefox Fehler 1284987 für die genauen Details).
- Die
cancelBubble
Eigenschaft, die aufUIEvent
definiert wurde, ist jetzt auf derEvent
Schnittstelle definiert. Weitere Details finden Sie im Firefox Fehler 1298970.
Änderungen und Entfernen
- Die Firefox OS APIs, die sich mit der Verwaltung von Telefonanrufen befassen (Contacts, MobileConnection, Icc usw.) wurden entfernt (Firefox Fehler 1311206).
- Die Firefox OS
Identity
Schnittstelle wurde entfernt (Firefox Fehler 1309030). - Die Firefox OS Voicemail API (
MozVoicemail
,MozVoicemailEvent
,MozVoicemailStatus
,Navigator.mozVoicemail
) wurde entfernt (Firefox Fehler 1309723). - Die Firefox OS Cell Broadcast API (
MozCellBroadcast
,MozCellBroadcastEvent
,MozCellBroadcastMessage
,Navigator.mozCellBroadcast
) wurde entfernt (Firefox Fehler 1306772). - Die Firefox OS TV-Broadcast-bezogenen APIs wurden entfernt (Firefox Fehler 1306778).
- Die Firefox OS FM Radio API (
FMRadio
,Navigator.mozFMRadio
) wurde entfernt (Firefox Fehler 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 Fehler 1278275). Dies entspricht den neuesten Fetch API-Spezifikationsupdates.
Web Audio API
- Die
ConstantSourceNode
Schnittstelle wurde hinzugefügt; sie stellt eine Audioquelle dar, die immer einen Stream von Samples ausgibt, die alle denselben Wert haben. Siehe Steuerung mehrerer Parameter mit ConstantSourceNode für ein Beispiel, wie dies verwendet werden kann, um einige komplexe Audioflüsse zu vereinfachen.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen ist, wird die
RTCPeerConnection.iceConnectionState
Eigenschaft nun auf"disconnected"
gesetzt; dies weist auf ein vorübergehendes Scheitern hin, das sich möglicherweise bald selbst lösen könnte, wobei die Verbindung danach in den"connected"
-Zustand zurückkehrt (Firefox Fehler 852665). - Das
MediaDevices
devicechange
Ereignis und sein entsprechender Handler, die in Firefox 51 auf dem Mac implementiert, aber standardmäßig deaktiviert waren, wurden unter Windows und Linux implementiert und sind jetzt auf allen Plattformen standardmäßig aktiviert. - Die
MediaStream.active
Eigenschaft wird jetzt unterstützt. Diese schreibgeschützte Boolean-Eigenschaft gibt an, ob mindestens ein Track im Stream derzeit abgespielt wird. - Vor Firefox 52 konnte die
MediaStreamTrack.stop()
Methode nur lokale Tracks (d.h. übergetUserMedia()
erhaltene Tracks) stoppen. Jetzt können eine Vielzahl von Tracks gestoppt werden, einschließlich solcher auf einemMediaStream
, das mit einer WebRTC Verbindung, einem Web Audio API Stream oder einemCanvasCaptureMediaStream
verbunden ist. - Zuvor führte das wiederholte Ändern des
mode
einesTextTrack
während eines einzigen Durchlaufs der Firefox-Ereignisschleife dazu, dass mehrerechange
Ereignisse an die von der entsprechenden Medienelement-Elternkomponente angegebenetextTracks
Eigenschaft geliefert wurden. Jetzt werden diese Änderungen auf ein Ereignis konsolidiert (Firefox Fehler 882674).
Audio/Video/Medien
- Die
MediaError
Objekte, die inHTMLMediaElement.error
spezifiziert 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. Dieser String bietet Details zur exakten Fehlerursache, die Aufschluss darüber geben, warum Dinge schiefgelaufen sind (Firefox Fehler 1299072). Dieses Feld wurde in den Firefox-Nightly-Builds seit Firefox 51 enthalten, ist aber nun in allen Builds, bis hin zur 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 Fehler 1315185). - Die proprietären Firefox OS
Apps Installation/Management APIs
wurden von der Plattform entfernt (siehe Firefox Fehler 1261019). - Die proprietäre Firefox OS
Web Telephony API
wurde von der Plattform entfernt (siehe Firefox Fehler 1309719). - Die proprietäre Firefox OS
Web Bluetooth API
wurde von der Plattform entfernt (siehe Firefox Fehler 1310020). - Die Battery Status API ist jetzt nur noch für Chrome-/privilegierten Code verfügbar (siehe Firefox Fehler 1313580).
ImageBitmapRenderingContext.transferImageBitmap()
wurde inImageBitmapRenderingContext.transferFromImageBitmap()
umbenannt (siehe Firefox Fehler 1304767).- Die Mitglieder
mozDash
undmozDashOffset
wurden aus demCanvasRenderingContext2D
entfernt (siehe Firefox Fehler 931389).
HTTP
- Der
Referrer-Policy
Header unterstützt jetzt die Direktivensame-origin
,strict-origin
undstrict-origin-when-cross-origin
(Firefox Fehler 1276836). - Der
'strict-dynamic'
Quelltextausdruck wird jetzt fürContent-Security-Policy
Direktiven, wiescript-src
, unterstützt (Firefox Fehler 1299483). - Unsichere Webseiten (
http:
) können keine Cookies setzen mehr mit der "secure"-Direktive gemäß der Strict Secure Cookies Spezifikation (Firefox Fehler 976073). - Die maximale Tabellengröße des HTTP/2 Header-Kompressionsformats HPACK wurde von 4 KB auf 64 KB erhöht (Firefox Fehler 1296280).
- Der
Large-Allocation
Header wurde hinzugefügt (Firefox Fehler 1304140).
SVG
- SVG-Dokumente werden jetzt mit der
XMLDocument
Schnittstelle anstelle von SVGDocument dargestellt. Dies ist eine Änderung, die in der SVG 2 Spezifikation vorgenommen wurde.
Sicherheit
- Wenn Anmeldeseiten (d.h. Seiten, die ein
<input type="password">
-Feld enthalten) so erstellt werden, dass sie unsicher übermittelt würden, zeigt Firefox eine kontextbezogene Warnmeldung unter dem Passwortfeld an, um die Benutzer zu warnen (Firefox Fehler 1319119). Autofill ist auch bei unsicheren Anmeldeformularen deaktiviert (Firefox Fehler 1217152). Siehe Unsichere Passwörter für weitere Details. - 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 Fehler 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützung außer Flash wurde entfernt. Auch die Verwendung von Flash soll in Zukunft auslaufen.
Ä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 Befehle 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 handhaben (Firefox Fehler 92737).
XUL
tabbrowser.loadTabs(uris, params)
Methode Überladung wurde hinzugefügt (Firefox Fehler 92737).- Die Funktionssignatur der Funktion
browser.droppedLinkHandler
wurde geändert (Firefox Fehler 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