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
- 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 Textknoten nur mit Leerzeichen an.
Alle Devtools-Bugs, die zwischen Firefox 51 und Firefox 52 behoben wurden.
HTML
- Der
rel="noopener"Linktyp wurde implementiert (siehe Firefox-Bug 1222516).
CSS
Neue Funktionen
-
Die
:focus-withinPseudoklasse wurde hinzugefügt (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 Vorschriften für Segmentbruchtransformationen in CSS Text 3 (Firefox-Bug 1081858).
-
Grundform-Zuschneidung (wie über die
clip-pathEigenschaft angewendet) 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. (Die vollständige Geschichte finden Sie in intent to ship mail #1 und intent to ship mail #2.) -
Flexbox
align-content-Handhabung & Einzelzeilen-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-baselinein[ first | last ]? baseline(Firefox-Bug 1313254). -
Der verwendete Wert für
left/rightiststartfür die Block-Achse (Firefox-Bug 1221565). -
Das Strecken von flexiblen Spuren mit einer unbestimmten Länge des enthaltenden Blocks achtet jetzt auf die min/max Größ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 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 statt Kommas, 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%).
-
Firefox' Implementierung der kinder-indexierten Pseudoklassen (wie
:nth-child,:first-child, und so weiter) wurde aktualisiert, um der CSS-Selektoren-Level 4-Spezifikation zu entsprechen: Diese Pseudoklassen passen jetzt die passenden Geschwisterelemente statt der Kinder ihres übergeordneten Elements. Dies ermöglicht die Verwendung dieser Pseudoklassen, wenn es keine Eltern gibt oder das Elternteil keinElementist (Firefox-Bug 1300374.
CSS-Grids
- CSS-Grids sind implementiert.
Änderungen und Entfernungen
- Unpräfischierte Mehrspalten-Eigenschaften (und die
-moz-präfixierten Versionen als Aliase wieder hinzugefügt, vorerst) (Firefox-Bug 1300895). - Hören Sie auf, abs. Kinder des Flex-Containers in anonyme Flex-Items einzuwickeln (Firefox-Bug 1269045).
- Implementiert Baselines für Gittercontainer (Firefox-Bug 1151204).
- Entfernt
<flex>Min-Größeneinstellung aus dem Stilsystem (Firefox-Bug 1305244). - Einstellung
layout.css.masking.enabledentfernt (Firefox-Bug 1308239). - Die proprietären
-moz-images-in-menusund-moz-images-in-buttonsMedientypen wurden entfernt (siehe Firefox-Bug 1302157). - Entfernter
-moz-use-text-colorWert aus den Farbeigenschaften; verwenden SiecurrentColorstattdessen (Firefox-Bug 1306214). - [css-grid] 'max-width' auf Gitterelement gesetzt, führt zum Überlaufen des Textes (Firefox-Bug 1330380).
JavaScript
Neue Funktionen
- Unterstützung für asynchrone Funktionen wurde hinzugefügt. Dies fügt die Deklaration
async function, den Ausdruckasync functionund das Schlüsselwortawaithinzu (Firefox-Bug 1185106). - Implementierte ES2017 nachgestellte 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 wieDateTimeFormatoderDate.toLocaleString()verwenden (Firefox-Bug 837961).
Änderungen und Entfernungen
- Array-Destrukturierung löst jetzt einen
SyntaxErroraus, wenn bei der Verwendung der Destrukturierungsrest mit Komma benutzt 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).TypedArray-Konstruktoren akzeptieren jetzt iterierbare Objekte, um neue typed 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 Standard
ArrayBuffer.slice()Methode (nichtArrayBuffer.prototype.slice()) ist veraltet und zeigt jetzt eine Warnung an, wenn sie verwendet wird (Firefox-Bug 1316913). - Unicode Codepoint-Escapes können jetzt auch als Bezeichner verwendet werden (z.B.
let \u{61} = 123, siehe Firefox-Bug 1314037). - Um den ES2015-Standards zu entsprechen, werfen
\u2e2fundⸯjetzt einen Fehler, wenn sie als Bezeichner verwendet werden. Nähere Details siehe Firefox-Bug 917436 und Firefox-Bug 1197230.
WebAssembly
- Unterstützung für WebAssembly wurde in Gecko hinzugefügt.
DOM
- Die Selection API wurde vollständig eingeführt, einschließlich der neuen
selectstartundselectionchangeEreignisse (Firefox-Bug 1309612). - Die Eigenschaft
Event.composedwird jetzt unterstützt; dieser boolesche Wert zeigt an, ob das Ereignis durch den Schattenstamm in den Standard-DOM aufsteigen kann oder nicht (Firefox-Bug 1292063). - Nur HTML-Elemente sowie die
<svg>und<math>Elemente können im Vollbildmodus angezeigt werden, indemElement.requestFullscreen()aufgerufen wird (Firefox-Bug 1305928). - Touch-Events wurden auf Windows-Desktopplattformen erneut aktiviert — siehe Firefox-Bug 1244402. (Sie wurden in Firefox 24 deaktiviert, da sie eine Reihe von großen Websites beschädigten; siehe Firefox-Bug 888304.)
- Die
focusinundfocusoutEreignisse sind jetzt implementiert (Firefox-Bug 687787). - Die
WorkerGlobalScope.isSecureContextEigenschaft wurde implementiert (siehe Firefox-Bug 1269052). - Das Installationsereignis des Web App Manifest wurde in
appinstalledumbenannt, um Verwechslungen mit dem Installationsereignis des Service Workers zu vermeiden (sieheoninstall). Nähere Details zu diesem Update finden Sie im Firefox-Bug 1309099. - Die
DataTransfer.typesEigenschaft der Drag and Drop API gibt jetzt ein eingefrorenes Array von Strings zurück, anstelle einerDOMStringList(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 Methode
Window.open()hat jetzt einnoopenerFenstermerkmal verfügbar (siehe Firefox-Bug 1267339), das die Funktionalität desrel="noopener"Linktyps widerspiegelt. - Die Methode
CustomElementRegistry.get()der Web Components API wurde implementiert (siehe Firefox-Bug 1275838). - Die Pointer-Events
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 einzuschließen (siehe Firefox-Bug 1284987 für die genauen Details).
- Die
cancelBubbleEigenschaft, die aufUIEventdefiniert war, ist jetzt auf derEventSchnittstelle definiert. Weitere Details finden Sie im Firefox-Bug 1298970.
Änderungen und Entfernungen
- Die Firefox OS APIs, die mit der Verwaltung von Telefonanrufen (Kontakte, MobileConnection, Icc usw.) zu tun haben, wurden entfernt (Firefox-Bug 1311206).
- Die
IdentitySchnittstelle von Firefox OS 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 broadcast-bezogenen APIs von Firefox OS TV 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 nun alle Werte des angegebenen Headers auf, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Updates der Fetch API-Spezifikation.
Web Audio API
- Die
ConstantSourceNodeSchnittstelle wurde hinzugefügt; sie stellt eine Audioquelle dar, die immer einen Strom von Samples ausgibt, die alle den gleichen Wert haben. Siehe Steuerung 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 ist, wird die
RTCPeerConnection.iceConnectionStateEigenschaft jetzt auf"disconnected"gesetzt; dies zeigt einen vorübergehenden Fehler an, der sich möglicherweise bald selbst behebt, wobei die Verbindung danach in den"connected"Zustand zurückkehrt (Firefox-Bug 852665). - Das
MediaDevicesdevicechangeEreignis und dessen entsprechender Handler, die in Firefox 51 implementiert, aber standardmäßig nur auf Mac deaktiviert waren, wurden jetzt auf Windows und Linux implementiert und sind standardmäßig auf allen Plattformen aktiviert. - Die
MediaStream.activeEigenschaft 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 Methode
MediaStreamTrack.stop()nur lokale Tracks (d.h. Tracks, die übergetUserMedia()erlangt wurden) stoppen. Jetzt können eine Vielzahl von Tracks gestoppt werden, einschließlich solcher auf einemMediaStream, der mit einer WebRTC-Verbindung, einem Web Audio API-Stream oder einemCanvasCaptureMediaStreamverbunden ist. - Zuvor führte das wiederholte Ändern des
TextTrackmodewährend eines einzigen Durchgangs durch die Firefox-Ereignisschleife dazu, dass mehrerechangeEreignisse an die durch dietextTracksEigenschaft des übergeordneten Medienelements angegebeneTextTrackListgesendet wurden. Jetzt werden diese Änderungen in ein Ereignis zusammengefasst (Firefox-Bug 882674).
Audio/Video/Medien
- Die
MediaErrorObjekte, die inHTMLMediaElement.errorangegeben werden, wenn ein Fehler beim Umgang mit einem<audio>oder<video>Element auftritt, enthalten jetzt einemessageEigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Dieser String bietet Details zu genau diesem Fehlerereignis und ermöglicht Einsicht, warum die Dinge schiefgelaufen sind (Firefox-Bug 1299072). Dieses Feld war in Firefox Nightly-Builds seit Firefox 51 enthalten, ist aber jetzt 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-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-Telefonie-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 noch für Chrome/privilegierten Code verfügbar (siehe Firefox-Bug 1313580).
ImageBitmapRenderingContext.transferImageBitmap()wurde zuImageBitmapRenderingContext.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'-Quelleausdruck wird jetzt fürContent-Security-PolicyDirektiven unterstützt, wiescript-src(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-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 werden jetzt mit der
XMLDocumentSchnittstelle 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 Warnmeldung unterhalb des Passwort-Feldes 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; das Navigieren zu einer sicheren Seite, die ein SHA-1 Zertifikat verwendet, führt jetzt zu einem
Untrusted ConnectionFehler (Firefox-Bug 1330043).
Plugins
Unterstützung für alle NPAPI-Plugins außer Flash wurde beendet. Auch die Nutzung von Flash wird 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 commands manifest-Schlüsselmatch_about_blankim content_scripts Manifest-Schlüssel
Schnittstellen
- Die Methode
nsIDroppedLinkHandler.dropLinksund diensIDroppedLinkItemSchnittstelle wurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox-Bug 92737).
XUL
- Überladung der Methode
tabbrowser.loadTabs(uris, params)wurde hinzugefügt (Firefox-Bug 92737). - Funktionssignatur
browser.droppedLinkHandlerwurde geändert (Firefox-Bug 92737).