Firefox 52 Versionshinweise für Entwickler
Firefox 52 wurde am 7. März 2017 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur nützlich für Webentwickler sind, sondern auch für Firefox- und Gecko-Entwickler sowie für Add-on-Entwickler.
Änderungen für Webentwickler
>Entwickler-Tools
- Komplett überarbeiteter Modus für responsives Design, einschließlich UA-Auswahl und Netzwerk-Drosselung.
- Der Animationsinspektor zeigt jetzt Timing-Funktionen an.
- Der Seiteninspektor enthält jetzt einen CSS-Grid-Inspektor.
- about:debugging zeigt jetzt den Status von Service Workern an.
- Der Seiteninspektor enthält 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-Fehler.
HTML
- Der
rel="noopener"Linktyp wurde implementiert (siehe Firefox Bug 1222516).
CSS
Neue Funktionen
-
Hinzugefügt:
:focus-withinPseudo-Klasse (Firefox Bug 1176997). -
Unterstützung für
display:flex/gridund Spaltensatz-Layout innerhalb von<button>Elementen hinzugefügt (Firefox Bug 984869). -
Implementierte Interpolation zwischen numerischer Farbe und
currentColor(Firefox Bug 1299741). -
Implementierter 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(Firefox Bug 1305259) hinzugefügt. -
Implementiert CSS Text 3 Segmentumbruch-Transformationsregeln (Firefox Bug 1081858).
-
Grundform-Clipping (wie durch die
clip-pathEigenschaft angewendet) kann jetzt auf SVG-Inhalt angewendet werden (Firefox Bug 1246741). -
Flexbox-Layout für
align-selfundjustify-selfimplementiert (Firefox Bug 1221524). -
Die
touch-actionEigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Die vollständige Geschichte finden Sie in Nutzergruppen-Mail #1 und Nutzergruppen-Mail #2.) -
Flexbox
align-content-Handhabung & Einzeilen-Größenanpassung sollten vonflex-wrapabhä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).
-
Geändert
baseline|last-baselinezu[ first | last ]? baseline(Firefox Bug 1313254). -
Der verwendete Wert für
left/rightiststartfür die Blockachse (Firefox Bug 1221565). -
Dehnen von flexiblen Spuren mit unbestimmter enthaltenen Blocklänge respektiert jetzt die Mindest-/Höchstgröße (Firefox Bug 1309407).
-
Die Anfangswerte von
mask-positionundmask-repeatwurden auf0% 0%bzw.repeatgeä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 denselben Parametersyntax.rgb() undhsl()akzeptieren jetzt einen optionalen Alphawert, z.B.rgb(255, 0, 0, 0.5).- Farb-Funktionen akzeptieren nun raumgetrennte Parameter anstatt Kommas, z.B.
rgb(255 0 0 / 0.5). - Alphawerte können jetzt auch als Prozentsätze sowie als Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%). - Die Farbtonkomponente in
hsl()-Farben kann jetzt sowohl als Winkel als auch als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%).
-
Firefox' Implementierung von kind-indizierten Pseudo-Klassen (wie
:nth-child,:first-childund so weiter) wurde aktualisiert, um der CSS-Selektoren Level 4 Spezifikation zu entsprechen: Diese Pseudo-Klassen entsprechen jetzt den entsprechenden Geschwisterelementen anstatt den Kindern ihres Elternelements. Dies erlaubt es, diese Pseudo-Klassen zu verwenden, wenn es kein Elternelement gibt oder das Elternelement keinElementist (Firefox Bug 1300374.
CSS Grids
- CSS Grids sind implementiert.
Änderungen und Entfernungen
- Ungekennzeichnete Multi-Column-Eigenschaften (und fügte vorläufig wieder
-moz-präfixierte Versionen als Aliase hinzu) (Firefox Bug 1300895). - Stopped wrapping abspos children of flex container in anonymous flex items(Firefox Bug 1269045).
- Implementierte Gittercontainer-Baselines (Firefox Bug 1151204).
- Entfernte
<flex>Min-Größenänderung aus dem Stylesystem (Firefox Bug 1305244). - Entfernte die Einstellung
layout.css.masking.enabled(Firefox Bug 1308239). - Die propritären
-moz-images-in-menusund-moz-images-in-buttonsMedientypen wurden entfernt (siehe Firefox Bug 1302157). - Entfernte den Wert
-moz-use-text-coloraus Farbeigenschaften; verwenden Sie stattdessencurrentColor(Firefox Bug 1306214). - [css-grid] 'max-width' gesetzt auf ein Gitterelement verursacht Textüberschreitung (Firefox Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für die
asyncFunktionen wurde hinzugefügt. Dies fügt dieasync functionDeklaration,async functionAusdruck und dasawaitSchlüsselwort hinzu (Firefox Bug 1185106). - Implementiertes ES2017 nachlaufende Kommata in Funktionen (Firefox Bug 1303788).
- Implementiertes Restparameter Destrukturierung (Firefox Bug 1243717).
- Der Exponentiationsoperator (
**) ist jetzt standardmäßig aktiviert (Firefox Bug 1291212). - Sie können jetzt IANA Zeitzonen-Namen in der
timeZone-Option von datumsbezogenen APIs wieDateTimeFormatoderDate.toLocaleString()verwenden (Firefox Bug 837961).
Änderungen und Entfernungen
- Array Destrukturierung wirft jetzt einen
SyntaxError, wenn Destrukturierungs-Rest mit einem nachlaufenden Komma verwendet wird (Firefox Bug 1041341). - Doppelte
__proto__-Eigenschaften sind jetzt im Objektdestrukturierung erlaubt (Firefox Bug 1204024). Array.prototype.toLocaleString()wurde neu implementiert, um die Intl API-Parameterlocalesundoptionszu unterstützen (Firefox Bug 1130636).TypedArrayKonstruktoren 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 präsentiert jetzt eine Warnung bei Verwendung (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 Konformität mit ES2015 werfen
\u2e2fundⸯjetzt eine Fehlermeldung, wenn sie als Bezeichner verwendet werden, Einzelheiten 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 ausgeliefert, einschließlich der neuen
selectstartundselectionchangeEreignisse (Firefox Bug 1309612). - Die Eigenschaft
Event.composedwird jetzt unterstützt; dieser boolesche Wert gibt an, ob das Ereignis durch das Shadow-Root zum Standard-DOM blubbern kann (Firefox Bug 1292063). - Nur HTML-Elemente, plus die
<svg>und<math>Elemente, können mit einem Aufruf vonElement.requestFullscreen()im Vollbildmodus angezeigt werden (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 wichtigen Websites beschädigt haben; siehe Firefox Bug 888304.)
- Die
focusinundfocusoutEreignisse sind jetzt implementiert (Firefox Bug 687787). - Die
WorkerGlobalScope.isSecureContextEigenschaft wurde implementiert (siehe Firefox Bug 1269052). - Das Web App Manifest Installations-Ereignis wurde in
appinstalledumbenannt, um Verwechslungen mit dem Service Worker Installations-Ereignis zu vermeiden (sieheoninstall). Siehe Firefox Bug 1309099 für weitere Details zu diesem Update. - Die
DataTransfer.typesEigenschaft der Drag and Drop API gibt jetzt ein gefrorenes Array von Strings anstelle einerDOMStringListzurück (siehe Firefox Bug 1298243). - Die
loadstartundloadendEreignisse werden jetzt auf<img>Elementen ausgelöst (siehe Firefox Bug 1264769). - Die
Notification.requireInteractionder Notifications API wurde implementiert (siehe Firefox Bug 862395.) - Die
Window.open()Methode hat jetzt einenoopenerWindow-Funktion verfügbar (siehe Firefox Bug 1267339), die die Funktionalität desrel="noopener"Linktyps spiegelt. - Die
CustomElementRegistry.get()Methode der Web Components API wurde implementiert (siehe Firefox Bug 1275838). - Pointer Event
widthundheightEigenschaften 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 aufzunehmen (siehe Firefox Bug 1284987 für die genauen Details).
- Die
cancelBubbleEigenschaft, die aufUIEventdefiniert war, ist jetzt auf demEventInterface definiert. Einzelheiten finden Sie unter Firefox Bug 1298970.
Änderungen und Entfernungen
- Die Firefox OS APIs, die Telefonanrufe verwalten (Kontakte, MobileConnection, Icc, etc.) wurden entfernt (Firefox Bug 1311206).
- Das Firefox OS
IdentityInterface 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 Fernseh-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
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 Fetch API-Spezifikationsupdates.
Web Audio API
- Das
ConstantSourceNodeInterface wurde hinzugefügt; es stellt eine Audioquelle dar, die immer einen Strom von Proben ausgibt, die alle denselben Wert haben. Siehe Kontrolle mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie dies verwendet werden kann, um einige komplexe Audioabläufe zu vereinfachen.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen wird, wird die Eigenschaft
RTCPeerConnection.iceConnectionStatejetzt auf"disconnected"gesetzt; dies weist auf einen vorübergehenden Fehler hin, der sich möglicherweise bald von selbst löst, woraufhin die Verbindung wieder in den Zustand"connected"zurückkehrt (Firefox Bug 852665). - Das
MediaDevicesdevicechangeEreignis und sein entsprechender Handler, die in Firefox 51 implementiert, aber standardmäßig nur auf Mac deaktiviert waren, wurden auf Windows und Linux implementiert und sind jetzt standardmäßig auf allen Plattformen aktiviert. - Die
MediaStream.activeEigenschaft 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 stoppen (also Tracks, die übergetUserMedia()erhalten wurden). Jetzt können verschiedene Tracks gestoppt werden, einschließlich solcher auf einemMediaStream, die mit einer WebRTC-Verbindung, einem Web Audio API-Stream oder einemCanvasCaptureMediaStreamverbunden sind. - Bisher würde das wiederholte Ändern des
TextTrack-modewährend eines einzigen Durchlaufs durch die Firefox-Ereignisschleife dazu führen, dass mehrerechange-Ereignisse an dieTextTrackListübergeben werden, die durch dietextTracks-Eigenschaft des übergeordneten Medienelements angegeben wird. Jetzt werden diese Änderungen in einem einzigen Ereignis zusammengefasst (Firefox Bug 882674).
Audio/Video/Media
- Die
MediaErrorObjekte, die inHTMLMediaElement.errorangegeben sind, wenn ein Fehler bei der Handhabung eines<audio>oder<video>Elements auftritt, enthalten jetzt einemessageEigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Dieser String bietet Einzelheiten, die genau auf diesen bestimmten Fehlerfall zugeschnitten sind, und gibt Einblicke, warum etwas schief gelaufen ist (Firefox Bug 1299072). Dieses Feld ist seit den Firefox Nightly-Builds von Firefox 51 enthalten, steht aber jetzt in allen Builds zur Verfügung, 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-/Verwaltungs-APIswurden von der Plattform entfernt (siehe Firefox Bug 1261019). - Die proprietäre Firefox OS
Web Telephony APIwurde von der Plattform entfernt (siehe Firefox Bug 1309719). - Die proprietäre Firefox OS
Web Bluetooth APIwurde von der Plattform entfernt (siehe Firefox Bug 1310020). - Die Battery Status API ist jetzt nur für Chrome-/privilegierten Code verfügbar (siehe Firefox Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()wurde inImageBitmapRenderingContext.transferFromImageBitmap()umbenannt (siehe Firefox Bug 1304767).- Die
mozDashundmozDashOffsetMitglieder wurden ausCanvasRenderingContext2Dentfernt (siehe Firefox Bug 931389).
HTTP
- Der
Referrer-PolicyHeader unterstützt jetzt die Direktivensame-origin,strict-originundstrict-origin-when-cross-origin(Firefox Bug 1276836). - Der
'strict-dynamic'Quellenausdruck wird jetzt fürContent-Security-PolicyDirektiven wiescript-srcunterstü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-Kompressionsformats HPACK wurde von 4 KB auf 64 KB erhöht (Firefox Bug 1296280).
- Der
Large-AllocationHeader wurde hinzugefügt (Firefox Bug 1304140).
SVG
- SVG-Dokumente werden jetzt über das
XMLDocumentInterface 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 eingereicht werden, zeigt Firefox eine kontextuelle Warnmeldung unterhalb des Passwortfelds an, um Benutzer zu warnen (Firefox Bug 1319119). Autofill ist auch bei unsicheren Anmeldeformularen deaktiviert (Firefox Bug 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 jetzt zu einem
Nicht vertrauenswürdige Verbindung-Fehler (Firefox Bug 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützung außer Flash wurde eingestellt. Die Nutzung von Flash soll ebenfalls in Zukunft eingestellt werden.
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
sessionsAPItopSitesAPIomniboxAPIruntime.onInstalledundruntime.onStartupEreignisse- asynchrone Ereignis-Listener in webRequest
bookmarks.onMoved,bookmarks.onCreated,bookmarks.onChangedEreignisse_execute_browser_actionund_execute_page_actionim Befehle Manifest-Schlüsselmatch_about_blankim content_scripts Manifest-Schlüssel
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinksund das InterfacensIDroppedLinkItemwurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox Bug 92737).
XUL
- Die Methode
tabbrowser.loadTabs(uris, params)Überladung wurde hinzugefügt (Firefox Bug 92737). - Die Funktionssignatur für
browser.droppedLinkHandlerwurde geändert (Firefox Bug 92737).