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 für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie Add-On-Entwickler nützlich sind.
Änderungen für Webentwickler
>Entwickler-Tools
- Vollständig überarbeiteter Responsiver Design-Modus, einschließlich UA-Auswahl und Netzwerkdrosselung.
- Der Animationsinspektor zeigt jetzt Timing-Funktionen an.
- Der Seiteninspektor enthält jetzt einen CSS-Rasterinspektor.
- about:debugging zeigt jetzt den Status des Service Workers an.
- Der Seiteninspektor bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt Textknoten an, die nur aus Leerzeichen bestehen.
Alle Devtools-Bugs zwischen Firefox 51 und Firefox 52 behoben.
HTML
- Der
rel="noopener"Link-Typ wurde implementiert (siehe Firefox Bug 1222516).
CSS
Neue Funktionen
-
Hinzugefügt:
:focus-withinPseudo-Klasse (Firefox Bug 1176997). -
Unterstützung für
display:flex/gridund columnset-Layout innerhalb von<button>Elementen hinzugefügt (Firefox Bug 984869). -
Implementierte Interpolation zwischen numerischen Farben 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-Antialiasing in CSS
mask/clip-pathhinzugefügt (Firefox Bug 1305259). -
Implementierte CSS Text 3-Segmentbruch-Transformationsregeln (Firefox Bug 1081858).
-
Basisformen-Clipping (wie angewendet über die
clip-pathEigenschaft) kann nun auf SVG-Inhalte angewendet werden (Firefox Bug 1246741). -
Implementierte Flexbox-Layout für
align-selfundjustify-self(Firefox Bug 1221524). -
Die
touch-actionEigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Für die gesamte Geschichte siehe intent to ship mail #1 und intent to ship mail #2.) -
Flexbox
align-contentHandhabung & Einzeilengröße sollte 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 Block-Achse (Firefox Bug 1221565). -
Dehnende flexible Spuren mit unbestimmter Containing-Block-Länge achten jetzt auf die Min/Max-Größe (Firefox Bug 1309407).
-
Die Anfangswerte von
mask-positionundmask-repeatwurden jeweils auf0% 0%undrepeatgeändert (Firefox Bug 1308963). -
Es gab eine Reihe von Änderungen an CSS
<color>Werten (siehe Firefox Bug 1295456):rgba()undhsla()wurden jetzt als Alias vonrgb()undhsl()neu definiert; beide akzeptieren den gleichen Parametersyntax.rgb() undhsl()akzeptieren jetzt einen optionalen Alphawert, z.B.rgb(255, 0, 0, 0.5).- Farbfunktionsparameter können nun durch Leerzeichen getrennt sein anstatt durch Kommas, z.B.
rgb(255 0 0 / 0.5). - Alphawerte können nun sowohl als Prozentsätze als auch als Zahlen angegeben werden, z.B.
rgb(255 0 0 / 50%). - Der Farbton in
hsl()Farben kann jetzt als Winkel sowie als Zahl angegeben werden, z.B.hsl(120deg, 60%, 70%).
-
Die Implementierung von Firefox für kinderindizierte Pseudo-Klassen (wie
:nth-child,:first-childund so weiter) wurde aktualisiert, um der Spezifikation der CSS-Selektoren Level 4 zu entsprechen: Diese Pseudo-Klassen passen jetzt zu den entsprechenden Geschwisterelementen anstatt zu den Kindern ihres Elternelements. Dies ermöglicht die Verwendung dieser Pseudo-Klassen, wenn kein übergeordnetes Element vorhanden ist oder das übergeordnete Element keinElementist (Firefox Bug 1300374.
CSS Grids
- CSS Grids sind implementiert.
Änderungen und Entfernungen
- Unprefixed Multi-Column-Eigenschaften (und die
-moz-präfixierten Versionen vorübergehend als Aliase hinzugefügt) (Firefox Bug 1300895). - Stoppen des Verpackens von abspos-Kindern eines Flex-Containers in anonyme Flex-Items (Firefox Bug 1269045).
- Implementierte Grundlinien von Grid-Containern (Firefox Bug 1151204).
- Entfernt
<flex>Mindestgröße aus dem Stilsystem (Firefox Bug 1305244). - Entfernen Sie die Voreinstellung
layout.css.masking.enabled(Firefox Bug 1308239). - Die proprietären
-moz-images-in-menusund-moz-images-in-buttonsMedientypen wurden entfernt (siehe Firefox Bug 1302157). - Entfernt den
-moz-use-text-colorWert aus Farbeigenschaften; verwenden Sie stattdessencurrentColor(Firefox Bug 1306214). - [css-grid] 'max-width', das auf Rasterelement gesetzt ist, verursacht Textüberlauf (Firefox Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für asynchrone Funktionen wurde hinzugefügt. Dies umfasst die Deklaration
async function, den Ausdruckasync functionund das Schlüsselwortawait(Firefox Bug 1185106). - Implementiert ES2017 nachgestellte Kommata in Funktionen (Firefox Bug 1303788).
- Implementiert Restparameter Destrukturierung (Firefox Bug 1243717).
- Der Exponentialoperator (
**) ist jetzt standardmäßig aktiviert (Firefox Bug 1291212). - Sie können jetzt IANA-Zeitzonennamen in der
timeZone-Option von datumsbezogenen APIs wieDateTimeFormatoderDate.toLocaleString()verwenden (Firefox Bug 837961).
Änderungen und Entfernungen
- Array-Destrukturierung wirft jetzt einen
SyntaxError, wenn bei der Destrukturierung von rest mit nachgestelltem Komma verwendet wird (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-Parameterlocalesundoptionszu unterstützen (Firefox Bug 1130636).TypedArrayKonstruktoren akzeptieren jetzt iterables, um neue Typ-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 Typ-Array-Konstruktoren sind (Firefox Bug 1122396).- Die nicht standardmäßige
ArrayBuffer.slice()Methode (nichtArrayBuffer.prototype.slice()) ist veraltet und zeigt jetzt eine Warnung an, wenn sie verwendet wird (Firefox Bug 1316913). - Unicode-Codepunkt-Escapes können jetzt auch als Bezeichner verwendet werden (z.B.
let \u{61} = 123, siehe Firefox Bug 1314037). - Um mit ES2015 konform zu sein,
\u2e2fundⸯwerfen jetzt eine Fehlermeldung, wenn sie als Bezeichner verwendet werden, Details finden Sie in Firefox Bug 917436 und Firefox Bug 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde in Gecko hinzugefügt.
DOM
- Die Selektions-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 den Shadow-Root in den Standard-DOM bubbling 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-Ereignisse wurden auf Windows-Plattformen auf dem Desktop wieder aktiviert — siehe Firefox Bug 1244402. (Sie wurden in Firefox 24 deaktiviert, da sie eine Reihe bedeutender Websites beeinträchtigten; 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 Installationsereignis wurde in
appinstalledumbenannt, um Verwechslungen mit dem Service Worker-Installationsereignis zu vermeiden (sieheoninstall). Siehe Firefox Bug 1309099 für mehr Details zu diesem Update. - Die
DataTransfer.typesEigenschaft der Drag and drop API gibt jetzt ein eingefrorenes 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 einnoopenerFenster-Feature verfügbar (siehe Firefox Bug 1267339), das die Funktionalität desrel="noopener"Link-Typs widerspiegelt. - Die
CustomElementRegistry.get()Methode der Web Components API wurde implementiert (siehe Firefox Bug 1275838). - Pointer Event
widthundheightEigenschaften haben jetzt einen Standardwert von 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 die exakten Details).
- Die
cancelBubbleEigenschaft, die aufUIEventdefiniert war, ist jetzt auf derEventSchnittstelle definiert. Siehe Firefox Bug 1298970 für mehr Details.
Änderungen und Entfernungen
- Die Firefox OS-APIs zur Verwaltung von Telefonanrufen (Kontakte, MobileConnection, Icc, etc.) 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 Zell-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 Worker 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 Spezifikationsaktualisierungen.
Web Audio API
- Die
ConstantSourceNodeSchnittstelle wurde hinzugefügt; sie stellt eine Audioquelle dar, die immer einen Stream von Samples ausgibt, die alle denselben Wert haben. Siehe Steuern mehrerer Parameter mit ConstantSourceNode für ein Beispiel, das zeigt, wie diese verwendet werden kann, um einige komplexe Audioflüsse zu vereinfachen.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend gestört ist, wird die
RTCPeerConnection.iceConnectionStateEigenschaft jetzt auf"disconnected"gesetzt; dies zeigt einen transitorischen Fehler an, der sich möglicherweise bald selbst behebt, wobei die Verbindung anschließend in den"connected"-Status zurückkehrt (Firefox Bug 852665). - Das
MediaDevicesdevicechangeEreignis und sein entsprechender Handler, die in Firefox 51 auf dem Mac implementiert, aber standardmäßig deaktiviert waren, sind jetzt auf Windows und Linux implementiert und auf allen Plattformen standardmäßig aktiviert. - Die
MediaStream.activeEigenschaft wird jetzt unterstützt. Diese schreibgeschützte boolesche Eigenschaft zeigt an, ob auf dem Stream mindestens ein Track derzeit abgespielt wird. - Vor Firefox 52 konnte die
MediaStreamTrack.stop()Methode nur lokale Tracks stoppen (d.h. Tracks, die übergetUserMedia()erhalten wurden). Jetzt können verschiedene Tracks gestoppt werden, einschließlich derer auf einemMediaStream, das mit einer WebRTC-Verbindung, einem Web Audio API Stream oder einemCanvasCaptureMediaStreamverbunden ist. - Zuvor würde das mehrfache Ändern des
TextTrackmodewährend einer einzigen Schleife durch das Firefox-Ereignis vielechangeEreignisse an dieTextTrackListliefern, die von dertextTracks-Eigenschaft des Medien-Parents angegeben wird. Jetzt werden diese Änderungen in ein 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 Details, die speziell für diesen genauen Fehlerfall sind und Einblicke bieten, warum etwas schief gelaufen ist (Firefox Bug 1299072). Dieses Feld wurde in den nächtlichen Builds von Firefox seit Firefox 51 integriert, ist jedoch jetzt in allen Builds verfügbar, bis hin zu den Release-Builds.
Andere APIs
- Die Methode
FileSystemFileEntry.createWriter(), die in Firefox 50 hinzugefügt, aber immer einen Fehler zurückgegeben hat, wurde entfernt (Firefox Bug 1315185). - Die proprietären
Apps installation/management APIsvon Firefox OS wurden von der Plattform entfernt (siehe Firefox Bug 1261019). - Die proprietäre
Web Telephony APIvon Firefox OS wurde von der Plattform entfernt (siehe Firefox Bug 1309719). - Die proprietäre
Web Bluetooth APIvon Firefox OS wurde von der Plattform entfernt (siehe Firefox Bug 1310020). - Die API zum Batteriestatus 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
mozDashundmozDashOffsetMitglieder wurden ausCanvasRenderingContext2Dentfernt (siehe Firefox Bug 931389).
HTTP
- Der
Referrer-PolicyHeader unterstützt jetzt die Direktivensame-origin,strict-origin, undstrict-origin-when-cross-origin(Firefox Bug 1276836). - Der
'strict-dynamic'Quellenausdruck wird jetzt fürContent-Security-PolicyDirektiven unterstützt, wie z.B.script-src(Firefox Bug 1299483). - Unsichere Webseiten (
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-Komprimierungsformats 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 sind jetzt unter Verwendung der
XMLDocumentSchnittstelle anstelle von SVGDocument darstellbar. Dies ist eine Änderung, die in der SVG 2-Spezifikation vorgenommen wurde.
Sicherheit
- Wenn Anmeldeformulare (d.h. solche, die ein
<input type="password">Feld enthalten) erstellt werden, sodass sie unsicher übermittelt werden würden, zeigt Firefox eine Warnmeldung im Kontext unter dem Passwortfeld an, um Benutzer zu warnen (Firefox Bug 1319119). Autofill ist ebenfalls auf unsicheren Anmeldeformularen deaktiviert (Firefox Bug 1217152). - 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
Untrusted Connection-Fehler (Firefox Bug 1330043).
Plugins
Alle NPAPI-Plugin-Unterstützung außer Flash wurde eingestellt. Auch die Nutzung von Flash soll künftig auslaufen.
Ä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 commands manifest keymatch_about_blankim content_scripts manifest key
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinksund die SchnittstellensIDroppedLinkItemwurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox Bug 92737).
XUL
- Eine Überladung der Methode
tabbrowser.loadTabs(uris, params)wurde hinzugefügt (Firefox Bug 92737). - Die Funktionssignatur von
browser.droppedLinkHandlerwurde geändert (Firefox Bug 92737).