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 Modus für responsives Design, einschließlich Auswahl des User-Agents und Netzwerkdrosselung.
- Der Animationsinspektor zeigt jetzt Zeitfunktionen an.
- Der Page Inspector enthält jetzt einen CSS-Grid-Inspektor.
- about:debugging zeigt jetzt den Status von Service Workern an.
- Der Page Inspector enthält eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Page Inspector zeigt nur aus Leerzeichen bestehende Textknoten an.
Alle zwischen Firefox 51 und Firefox 52 behobenen Devtools-Bugs.
HTML
- Der
rel="noopener"
Link-Typ wurde implementiert (siehe Firefox Bug 1222516).
CSS
Neue Funktionen
-
Hinzugefügt: die Pseudoklasse
:focus-within
(Firefox Bug 1176997). -
Unterstützung für
display:flex/grid
und das Layout von Spaltensätzen innerhalb von<button>
-Elementen hinzugefügt (Firefox Bug 984869). -
Implementierte Interpolation zwischen numerischen Farbwerten und currentcolor (Firefox Bug 1299741).
-
Implementiertes Flexbox-Layout für
undjustify-content
: space-evenly
(Firefox Bug 1235922).align-content
: space-evenly -
Unterstützung von Subpixel-Antialiasing in CSS
mask
/clip-path
hinzugefügt (Firefox Bug 1305259). -
Implementierte CSS Text 3 Segment-Trennungsregeln (Firefox Bug 1081858).
-
Basisform-Clippen (wie über die
clip-path
-Eigenschaft angewendet) kann jetzt auf SVG-Inhalte angewendet werden (Firefox Bug 1246741). -
Implementiertes Flexbox-Layout für
align-self
undjustify-self
(Firefox Bug 1221524). -
Die
touch-action
-Eigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Für die komplette Geschichte siehe Versandintention Mail #1 und Versandintention Mail #2.) -
Flexbox
align-content
-Verarbeitung & Single-Line-Sizing sollten vonflex-wrap
, nicht von der Anzahl der Linien abhängen (Firefox Bug 1090031). -
CSS-Animationen können jetzt verwendet werden, um nicht interpolierte Eigenschaften zu animieren (siehe Firefox Bug 1064937).
-
Änderung
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). -
Die Dehnung flexibler Spuren mit einer unbestimmten Länge des umschließenden Blocks respektiert jetzt die Min-/Max-Größe (Firefox Bug 1309407).
-
Die Anfangswerte von
mask-position
undmask-repeat
wurden geändert auf0% 0%
bzw.repeat
(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 Alpha-Wert, 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)
. - Alphawerte können jetzt sowohl als Prozentsätze als auch 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 der CSS-Pseudo-Klassen für Kinder-Index (wie
:nth-child
,:first-child
usw.) in Firefox wurde aktualisiert, um der CSS-Selektoren-Level-4-Spezifikation zu entsprechen: Diese Pseudoklassen stimmen jetzt mit den entsprechenden Geschwisterelementen überein anstatt mit den Kindern ihres übergeordneten Elements. Dies ermöglicht die Verwendung dieser Pseudoklassen, wenn kein übergeordnetes Element vorhanden ist, oder das übergeordnete Element keinElement
ist (Firefox Bug 1300374).
CSS Grids
- CSS Grids sind implementiert.
Änderungen und Entfernungen
- Nicht-präfixierte Multi-Spalten-Eigenschaften (und fügten vorerst
-moz
-präfixierte Versionen als Aliase wieder hinzu) (Firefox Bug 1300895). - Das Wrappen von absolut positionierten Kindern eines Flex-Containers in anonyme Flex-Elemente wurde gestoppt (Firefox Bug 1269045).
- Implementierte Rastercontainer-Basislinien (Firefox Bug 1151204).
<flex>
-Minimierung aus dem Stilsystem entfernt (Firefox Bug 1305244).- Die Präferenz
layout.css.masking.enabled
wurde entfernt (Firefox Bug 1308239). - Die proprietären Medientypen
-moz-images-in-menus
und-moz-images-in-buttons
wurden entfernt (siehe Firefox Bug 1302157). - Der
-moz-use-text-color
-Wert wurde aus den Farbeigenschaften entfernt; verwenden Sie stattdessencurrentcolor
(Firefox Bug 1306214). - [css-grid] 'max-width', das auf ein Rasterelement gesetzt ist, verursacht einen Textoverflow (Firefox Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für die async Funktionen wurde hinzugefügt. Dies fügt die Deklaration
async function
, den Ausdruckasync function
und das Schlüsselwortawait
hinzu (Firefox Bug 1185106). - Implementierte ES2017 abschließende Kommata in Funktionen (Firefox Bug 1303788).
- Implementierte Rest-Parameter-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 wirft nun einen
SyntaxError
, wenn die Destrukturierungs-Rest-Syntax mit einem abschließenden Komma verwendet wird (Firefox Bug 1041341). - Doppelte
__proto__
-Eigenschaften sind jetzt bei der Objektdestrukturierung erlaubt (Firefox Bug 1204024). Array.prototype.toLocaleString()
wurde umgebaut, 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 Methode
ArrayBuffer.slice()
(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). - Um mit ES2015 konform zu sein, werfen
\u2e2f
undⸯ
nun einen Fehler, wenn sie als Bezeichner verwendet werden, für Einzelheiten 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 ausgeliefert, einschließlich der neuen Ereignisse
selectstart
undselectionchange
(Firefox Bug 1309612). - Die Eigenschaft
Event.composed
wird jetzt unterstützt; dieser Boolesche Wert gibt an, ob das Ereignis durch die Schattenwurzel in das Standard-DOM aufsteigen kann oder nicht (Firefox Bug 1292063). - Nur HTML-Elemente sowie die Elemente
<svg>
und<math>
können durch Aufruf vonElement.requestFullscreen()
im Vollbildmodus dargestellt werden (Firefox Bug 1305928). - Touch-Ereignisse wurden auf Windows-Desktop-Plattformen wieder aktiviert — siehe Firefox Bug 1244402. (Sie wurden in Firefox 24 deaktiviert, weil sie eine Reihe bedeutender Seiten beschädigten; siehe Firefox Bug 888304.)
- Die Ereignisse
focusin
undfocusout
sind jetzt implementiert (Firefox Bug 687787). - Die Eigenschaft
WorkerGlobalScope.isSecureContext
wurde implementiert (siehe Firefox Bug 1269052). - Das Installationsereignis des Web App Manifests 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 Eigenschaft
DataTransfer.types
der Drag and Drop API gibt jetzt ein festes Array von Zeichenfolgen anstelle einerDOMStringList
zurück (siehe Firefox Bug 1298243). - Die Ereignisse
loadstart
undloadend
werden jetzt auf<img>
-Elementen ausgelöst (siehe Firefox Bug 1264769). - Die
Notification.requireInteraction
des Notifications API wurde implementiert (siehe Firefox Bug 862395.) - Die Methode
Window.open()
hat jetzt einnoopener
-Fensterfeature (window feature) (siehe Firefox Bug 1267339), welches die Funktionalität desrel="noopener"
Link-Typs widerspiegelt. - Die Methode
CustomElementRegistry.get()
der Web Components API wurde implementiert (siehe Firefox Bug 1275838). - Die Pointer Event Eigenschaften
width
undheight
haben jetzt standardmäßig den Wert 1 (siehe Firefox Bug 1304315). - Die File and Directory Entries API wurde aktualisiert, um Änderungen in der neuesten Spezifikation zu berücksichtigen (siehe Firefox Bug 1284987 für genauere Details).
- Die Eigenschaft
cancelBubble
, die aufUIEvent
definiert war, ist jetzt auf derEvent
-Schnittstelle definiert. Weitere Details finden Sie unter Firefox Bug 1298970.
Änderungen und Entfernungen
- Die Firefox OS APIs, die mit der Verwaltung von Telefonanrufen (Kontakte, MobileConnection, Icc, etc.) zu tun haben, 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 Methode
Headers.getAll()
wurde entfernt, undHeaders.get()
ruft jetzt alle Werte des spezifizierten Headers ab, nicht nur den ersten (siehe Firefox Bug 1278275). Dies ist in Übereinstimmung mit den neuesten Fetch API-Spezifikationsänderungen.
Web Audio API
- Die Schnittstelle
ConstantSourceNode
wurde hinzugefügt; sie repräsentiert eine Audioquelle, die immer einen Strom von Samples ausgibt, der alle den gleichen Wert haben. Siehe Controlling multiple parameters with ConstantSourceNode für ein Beispiel, das zeigt, wie dies verwendet werden kann, um einige komplexe Audioflüsse zu vereinfachen.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen wird, wird die Eigenschaft
RTCPeerConnection.iceConnectionState
jetzt auf"disconnected"
gesetzt; dies weist auf ein vorübergehendes Problem hin, das sich möglicherweise kurzzeitig selbst behebt, wobei die Verbindung später wieder in den"connected"
-Zustand zurückkehrt (Firefox Bug 852665). - Das
MediaDevices
-Ereignisdevicechange
und sein entsprechender Handler, der in Firefox 51 unter Mac implementiert, aber standardmäßig deaktiviert war, wurde auf Windows und Linux implementiert und ist jetzt standardmäßig auf allen Plattformen aktiviert. - Die Eigenschaft
MediaStream.active
wird jetzt unterstützt. Diese schreibgeschützte boolesche Eigenschaft gibt an, ob mindestens ein Track im Stream derzeit abgespielt wird. - Vor Firefox 52 konnte die Methode
MediaStreamTrack.stop()
nur lokale Tracks (d.h. Tracks, die durchgetUserMedia()
abgerufen wurden) stoppen. Jetzt können verschiedene Arten von Tracks gestoppt werden, einschließlich derjenigen auf einemMediaStream
, das mit einer WebRTC-Verbindung assoziiert ist, einem Web Audio API-Stream, oder einemCanvasCaptureMediaStream
. - Früher führte das mehrfache Ändern des
mode
einesTextTrack
während eines einzigen Durchlaufs durch die Firefox-Ereignisdurchlauf zu mehrerenchange
-Ereignissen, die an dieTextTrackList
gesendet wurden, die durch dietextTracks
-Eigenschaft des übergeordneten Medienelements spezifiziert wurde. Jetzt werden diese Änderungen zu einem Ereignis konsolidiert (Firefox Bug 882674).
Audio/Video/Media
- Die in
HTMLMediaElement.error
angegebenenMediaError
-Objekte, wenn ein Fehler bei der Verarbeitung eines<audio>
oder<video>
-Elements auftritt, enthalten jetzt einemessage
-Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Dieser String bietet Details, die speziell für diesen genauen Fehlerfall sind und Einsicht darüber geben, warum etwas schief gelaufen ist (Firefox Bug 1299072). Dieses Feld ist seit Firefox 51 in Nightly-Builds enthalten, aber es ist jetzt in allen Builds verfügbar, bis hin zur Freigabe.
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-/Verwaltungs-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 inImageBitmapRenderingContext.transferFromImageBitmap()
umbenannt (siehe Firefox Bug 1304767).- Die Mitglieder
mozDash
undmozDashOffset
wurden vonCanvasRenderingContext2D
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 keine Cookies setzen mehr mit der Direktive "secure" gemäß der Strict Secure Cookies-Spezifikation (Firefox Bug 976073). - Die maximale Tabellenformatgröß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 unter Verwendung der
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) so erstellt werden, dass sie unsicher übermittelt würden, zeigt Firefox eine kontextbezogene Warnmeldung unterhalb des Passwortfeldes an, um Benutzer zu warnen (Firefox Bug 1319119). Autofill ist auch auf unsicheren Anmeldeformularen deaktiviert (Firefox Bug 1217152). Siehe Unsichere Passwörter für weitere Details. - Unterstützung für SHA-1 SSL-Zertifikate wurde entfernt; der Versuch auf eine sichere Seite zu navigieren, die ein SHA-1-Zertifikat verwendet, führt jetzt zu einem
Untrusted Connection
-Fehler (Firefox Bug 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützungen außer für Flash wurden 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
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 Befehlsmanifest-Schlüsselmatch_about_blank
im manifest-Schlüssel content_scripts
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinks
und die SchnittstellensIDroppedLinkItem
wurden zum Handling von mehreren Drucken hinzugefügt (Firefox Bug 92737).
XUL
- Die Methode
tabbrowser.loadTabs(uris, params)
Überladung wurde hinzugefügt (Firefox Bug 92737). - Die Signatur der Funktion
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