Versionshinweise zu Firefox 52 für Entwickler
Firefox 52 wurde am 7. März 2017 veröffentlicht. Dieser Artikel führt 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
- Der Modus „Responsives Design“ wurde vollständig überarbeitet, einschließlich der Auswahl des User Agents und der Netzwerkdrosselung.
- 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 bietet eine einfache Möglichkeit, das ausgewählte Element hervorzuheben.
- Der Seiteninspektor zeigt Textknoten an, die nur aus Leerraum bestehen.
Alle zwischen Firefox 51 und Firefox 52 behobenen Fehler in den Entwicklerwerkzeugen.
HTML
- Der Linktyp
rel="noopener"wurde implementiert (siehe Firefox-Fehler 1222516).
CSS
Neue Funktionen
-
Die Pseudoklasse
:focus-withinwurde hinzugefügt (Firefox-Fehler 1176997). -
Unterstützung für
display:flex/gridund ein Columnset-Layout innerhalb von<button>-Elementen wurde hinzugefügt (Firefox-Fehler 984869). -
Die Interpolation zwischen numerischen Farbwerten und
currentColorwurde implementiert (Firefox-Fehler 1299741). -
Das Flexbox-Layout für
undjustify-content: space-evenlywurde implementiert (Firefox-Fehler 1235922).align-content: space-evenly -
Unterstützung für Subpixel-Antialiasing bei CSS-
maskund CSS-clip-pathwurde hinzugefügt (Firefox-Fehler 1305259). -
Die Regeln zur Umwandlung von Segmentumbrüchen aus CSS Text 3 wurden implementiert (Firefox-Fehler 1081858).
-
Das Beschneiden mit Grundformen (angewendet über die Eigenschaft
clip-path) kann jetzt auch auf SVG-Inhalte angewendet werden (Firefox-Fehler 1246741). -
Das Flexbox-Layout für
align-selfundjustify-selfwurde implementiert (Firefox-Fehler 1221524). -
Die Eigenschaft
touch-actionist jetzt auf allen Plattformen standardmäßig aktiviert. (Weitere Hintergründe finden Sie in der ersten Ankündigung zur Einführung und der zweiten Ankündigung zur Einführung.) -
Die Verarbeitung von
align-contentund die Größenberechnung bei einzeiligen Flexbox-Layouts sollten vonflex-wrapabhängen, nicht von der Anzahl der Zeilen (Firefox-Fehler 1090031). -
Mit CSS-Animationen können jetzt auch nicht interpolierbare Eigenschaften animiert werden (siehe Firefox-Fehler 1064937).
-
baseline|last-baselinewurde in[ first | last ]? baselinegeändert (Firefox-Fehler 1313254). -
Der verwendete Wert für
left/rightist auf der Blockachsestart(Firefox-Fehler 1221565). -
Beim Strecken flexibler Spuren mit einer unbestimmten Länge des umgebenden Blocks werden jetzt die Mindest- und Höchstgrößen berücksichtigt (Firefox-Fehler 1309407).
-
Die Anfangswerte von
mask-positionundmask-repeatwurden in0% 0%beziehungsweiserepeatgeändert (Firefox-Fehler 1308963). -
An CSS-
<color>-Werten wurden mehrere Änderungen vorgenommen (siehe Firefox-Fehler 1295456):rgba()undhsla()wurden als Aliase vonrgb()undhsl()neu definiert; beide akzeptieren dieselbe Parametersyntax.rgb()undhsl()akzeptieren jetzt einen optionalen Alphawert, beispielsweisergb(255, 0, 0, 0.5).- Farbfunktionen akzeptieren jetzt durch Leerzeichen statt durch Kommas getrennte Parameter, beispielsweise
rgb(255 0 0 / 0.5). - Alphawerte können jetzt sowohl als Prozentwerte als auch als Zahlen angegeben werden, beispielsweise
rgb(255 0 0 / 50%). - Die Farbtonkomponente von
hsl()-Farben kann jetzt sowohl als Winkel als auch als Zahl angegeben werden, beispielsweisehsl(120deg, 60%, 70%).
-
Die Firefox-Implementierung von Pseudoklassen, die sich auf die Position unter Geschwisterelementen beziehen (wie
:nth-child,:first-childusw.), wurde an die Spezifikation CSS Selectors Level 4 angepasst: Diese Pseudoklassen stimmen jetzt mit den entsprechenden Geschwisterelementen überein, statt mit den Kindern ihres Elternelements. Dadurch können sie auch verwendet werden, wenn kein Elternelement vorhanden ist oder der Elternknoten keinElementist (Firefox-Fehler 1300374).
CSS-Grids
- CSS-Grids wurden implementiert.
Änderungen und Entfernungen
- Mehrspalten-Eigenschaften sind jetzt ohne Präfix verfügbar; Varianten mit dem Präfix
-mozwurden vorerst als Aliase wieder hinzugefügt (Firefox-Fehler 1300895). - Absolut positionierte Kindelemente von Flex-Containern werden nicht mehr in anonyme Flex-Elemente eingeschlossen (Firefox-Fehler 1269045).
- Grundlinien für Grid-Container wurden implementiert (Firefox-Fehler 1151204).
- Die Mindestgrößenberechnung für
<flex>wurde aus dem Stilsystem entfernt (Firefox-Fehler 1305244). - Die Einstellung
layout.css.masking.enabledwurde entfernt (Firefox-Fehler 1308239). - Die proprietären Medientypen
-moz-images-in-menusund-moz-images-in-buttonswurden entfernt (siehe Firefox-Fehler 1302157). - Der Wert
-moz-use-text-colorwurde aus Farbeigenschaften entfernt; verwenden Sie stattdessencurrentColor(Firefox-Fehler 1306214). - [css-grid] Ein auf einem Grid-Element gesetztes
max-widthführt dazu, dass Text überläuft (Firefox-Fehler 1330380).
JavaScript
Neue Funktionen
- Unterstützung für asynchrone Funktionen wurde hinzugefügt. Dazu gehören die Deklaration
async function, der Ausdruckasync functionund das Schlüsselwortawait(Firefox-Fehler 1185106). - ES2017-Abschlusskommas in Funktionen wurden implementiert (Firefox-Fehler 1303788).
- Destrukturierung von Rest-Parametern wurde implementiert (Firefox-Fehler 1243717).
- Der Potenzierungsoperator (
**) ist jetzt standardmäßig aktiviert (Firefox-Fehler 1291212). - Sie können jetzt IANA-Zeitzonennamen in der Option
timeZonedatumsbezogener APIs wieDateTimeFormatoderDate.toLocaleString()verwenden (Firefox-Fehler 837961).
Änderungen und Entfernungen
- Bei der Array-Destrukturierung wird jetzt ein
SyntaxErrorausgelöst, wenn auf ein Rest-Element ein Abschlusskomma folgt (Firefox-Fehler 1041341). - Doppelte
__proto__-Eigenschaften sind bei der Objekt-Destrukturierung jetzt zulässig (Firefox-Fehler 1204024). Array.prototype.toLocaleString()wurde neu implementiert, um die Intl-API-Parameterlocalesundoptionszu unterstützen (Firefox-Fehler 1130636).TypedArray-Konstruktoren akzeptieren jetzt iterierbare Objekte, um neue typisierte Arrays zu erstellen (Firefox-Fehler 1232266).TypedArray.from(),TypedArray.of(),TypedArray.prototype.filter(),TypedArray.prototype.map(),TypedArray.prototype.slice()undTypedArray.prototype.subarray()setzen jetzt voraus, dass ihrethis-Werte gültige Typed-Array-Konstruktoren sind (Firefox-Fehler 1122396).- Die nicht standardisierte Methode
ArrayBuffer.slice()(nichtArrayBuffer.prototype.slice()) ist veraltet und gibt bei Verwendung jetzt eine Warnung aus (Firefox-Fehler 1316913). - Escape-Sequenzen für Unicode-Codepunkte können jetzt auch als Bezeichner verwendet werden (z. B.
let \u{61} = 123; siehe Firefox-Fehler 1314037). - Um ES2015 zu entsprechen, lösen
\u2e2fundⸯbei Verwendung als Bezeichner jetzt einen Fehler aus. Einzelheiten finden Sie unter Firefox-Fehler 917436 und Firefox-Fehler 1197230.
WebAssembly
- Gecko unterstützt jetzt WebAssembly.
DOM
- Die Selection API ist jetzt vollständig verfügbar, einschließlich der neuen Ereignisse
selectstartundselectionchange(Firefox-Fehler 1309612). - Die Eigenschaft
Event.composedwird jetzt unterstützt. Dieser boolesche Wert gibt an, ob das Ereignis von der Shadow Root aus in das reguläre DOM aufsteigen kann (Firefox-Fehler 1292063). - Nur HTML-Elemente sowie die Elemente
<svg>und<math>können durch Aufruf vonElement.requestFullscreen()in den Vollbildmodus versetzt werden (Firefox-Fehler 1305928). - Touch-Ereignisse wurden auf Windows-Desktopplattformen wieder aktiviert – siehe Firefox-Fehler 1244402. (Sie wurden in Firefox 24 deaktiviert, weil sie mehrere große Websites beeinträchtigten; siehe Firefox-Fehler 888304.)
- Die Ereignisse
focusinundfocusoutwurden implementiert (Firefox-Fehler 687787). - Die Eigenschaft
WorkerGlobalScope.isSecureContextwurde implementiert (siehe Firefox-Fehler 1269052). - Das install-Ereignis des Web App Manifest wurde in
appinstalledumbenannt, um Verwechslungen mit dem install-Ereignis von Service Workern zu vermeiden (sieheoninstall). Weitere Einzelheiten zu dieser Änderung finden Sie unter Firefox-Fehler 1309099. - Die Eigenschaft
DataTransfer.typesder Drag-and-Drop-API gibt jetzt statt einerDOMStringListein eingefrorenes Array von Zeichenfolgen zurück (siehe Firefox-Fehler 1298243). - Die Ereignisse
loadstartundloadendwerden jetzt für<img>-Elemente ausgelöst (siehe Firefox-Fehler 1264769). Notification.requireInteractionaus der Notifications API wurde implementiert (siehe Firefox-Fehler 862395).- Für die Methode
Window.open()ist jetzt das Fenstermerkmalnoopenerverfügbar (siehe Firefox-Fehler 1267339). Es bietet dieselbe Funktion wie der Linktyprel="noopener". - Die Methode
CustomElementRegistry.get()der Web Components API wurde implementiert (siehe Firefox-Fehler 1275838). - Die Eigenschaften
widthundheightvon Pointer Events haben jetzt standardmäßig den Wert 1 (siehe Firefox-Fehler 1304315). - Die File and Directory Entries API wurde entsprechend den Änderungen in der neuesten Spezifikation aktualisiert (Einzelheiten finden Sie unter Firefox-Fehler 1284987).
- Die Eigenschaft
cancelBubble, die bisher aufUIEventdefiniert war, ist jetzt stattdessen auf dem InterfaceEventdefiniert. Weitere Einzelheiten finden Sie unter Firefox-Fehler 1298970.
Änderungen und Entfernungen
- Die Firefox-OS-APIs zur Verwaltung von Telefonanrufen (Contacts, MobileConnection, Icc usw.) wurden entfernt (Firefox-Fehler 1311206).
- Das Firefox-OS-Interface
Identitywurde 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-APIs für Fernsehausstrahlungen wurden entfernt (Firefox-Fehler 1306778).
- Die Firefox-OS-FM-Radio-API (
FMRadio,Navigator.mozFMRadio) wurde entfernt (Firefox-Fehler 1306779).
Service Worker und Fetch
- Die Methode
Headers.getAll()wurde entfernt.Headers.get()ruft jetzt alle Werte des angegebenen Headers ab, nicht nur den ersten (siehe Firefox-Fehler 1278275). Dies entspricht den neuesten Änderungen an der Fetch-API-Spezifikation.
Web Audio API
- Das Interface
ConstantSourceNodewurde hinzugefügt. Es stellt eine Audioquelle dar, die kontinuierlich einen Strom von Samples mit jeweils demselben Wert ausgibt. Ein Beispiel dafür, wie sich damit komplexe Audioabläufe vereinfachen lassen, finden Sie unter Mehrere Parameter mit ConstantSourceNode steuern.
WebRTC
- Wenn eine ICE-Verbindung vorübergehend unterbrochen wird, erhält die Eigenschaft
RTCPeerConnection.iceConnectionStatejetzt den Wert"disconnected". Dieser Wert kennzeichnet einen vorübergehenden Ausfall, der sich möglicherweise bald von selbst behebt; anschließend kehrt die Verbindung in den Zustand"connected"zurück (Firefox-Fehler 852665). - Das
MediaDevices-Ereignisdevicechangeund der zugehörige Handler waren in Firefox 51 nur auf dem Mac implementiert und standardmäßig deaktiviert. Sie wurden jetzt auch unter Windows und Linux implementiert und sind auf allen Plattformen standardmäßig aktiviert. - Die Eigenschaft
MediaStream.activewird jetzt unterstützt. Diese schreibgeschützte boolesche Eigenschaft gibt an, ob derzeit mindestens ein Track des Streams wiedergegeben wird. - Vor Firefox 52 konnte die Methode
MediaStreamTrack.stop()nur lokale Tracks stoppen, also Tracks, die übergetUserMedia()bezogen wurden. Jetzt können verschiedene Tracks gestoppt werden, darunter auch solche einesMediaStream, der mit einer WebRTC-Verbindung, einem Stream der Web Audio API oder einemCanvasCaptureMediaStreamverknüpft ist. - Wurde zuvor die Eigenschaft
modeeinesTextTrackwährend eines einzigen Durchlaufs der Firefox-Ereignisschleife mehrfach geändert, wurden mehrerechange-Ereignisse an dieTextTrackListübermittelt, die durch die EigenschafttextTracksdes übergeordneten Medienelements angegeben wird. Diese Änderungen werden jetzt zu einem einzigen Ereignis zusammengefasst (Firefox-Fehler 882674).
Audio/Video/Medien
- Die
MediaError-Objekte, die bei einem Fehler bei der Verarbeitung eines<audio>- oder<video>-Elements inHTMLMediaElement.errorangegeben werden, enthalten jetzt eine Eigenschaftmessage. Sie liefert eine konkrete Beschreibung des aufgetretenen Fehlers. Diese Zeichenfolge enthält Details zum jeweiligen Fehlerfall und hilft dabei, dessen Ursache zu verstehen (Firefox-Fehler 1299072). Das Feld war seit Firefox 51 in den Nightly-Builds enthalten und ist jetzt in allen Builds bis hin zur Release-Version verfügbar.
Weitere APIs
- Die in Firefox 50 hinzugefügte Methode
FileSystemFileEntry.createWriter(), die allerdings immer einen Fehler zurückgab, wurde entfernt (Firefox-Fehler 1315185). - Die proprietären Firefox-OS-
Apps installation/management APIswurden von der Plattform entfernt (siehe Firefox-Fehler 1261019). - Die proprietäre Firefox-OS-
Web Telephony APIwurde von der Plattform entfernt (siehe Firefox-Fehler 1309719). - Die proprietäre Firefox-OS-
Web Bluetooth APIwurde von der Plattform entfernt (siehe Firefox-Fehler 1310020). - Die Battery Status API ist jetzt nur noch für Chrome-Code beziehungsweise privilegierten Code verfügbar (siehe Firefox-Fehler 1313580).
ImageBitmapRenderingContext.transferImageBitmap()wurde inImageBitmapRenderingContext.transferFromImageBitmap()umbenannt (siehe Firefox-Fehler 1304767).- Die Member
mozDashundmozDashOffsetwurden ausCanvasRenderingContext2Dentfernt (siehe Firefox-Fehler 931389).
HTTP
- Der Header
Referrer-Policyunterstützt jetzt die Direktivensame-origin,strict-originundstrict-origin-when-cross-origin(Firefox-Fehler 1276836). - Der Quellausdruck
'strict-dynamic'wird jetzt fürContent-Security-Policy-Direktiven wiescript-srcunterstützt (Firefox-Fehler 1299483). - Unsichere Websites (
http:) können gemäß der Strict-Secure-Cookies-Spezifikation keine Cookies mehr mit der Direktive „secure“ setzen (Firefox-Fehler 976073). - Die maximale Tabellengröße des HTTP/2-Header-Komprimierungsformats HPACK wurde von 4 KB auf 64 KB erhöht (Firefox-Fehler 1296280).
- Der Header
Large-Allocationwurde hinzugefügt (Firefox-Fehler 1304140).
SVG
- SVG-Dokumente werden jetzt durch das Interface
XMLDocumentstatt durch SVGDocument repräsentiert. Diese Änderung wurde in der SVG-2-Spezifikation vorgenommen.
Sicherheit
- Wenn Anmeldeseiten, also Seiten mit einem
<input type="password">-Feld, so gestaltet sind, dass die Formulardaten unsicher übermittelt würden, zeigt Firefox unter dem Passwortfeld eine kontextbezogene Warnung für Benutzer an (Firefox-Fehler 1319119). Bei unsicheren Anmeldeformularen ist außerdem das automatische Ausfüllen deaktiviert (Firefox-Fehler 1217152). - Die Unterstützung für SHA-1-SSL-Zertifikate wurde entfernt. Beim Aufruf einer sicheren Seite, die ein SHA-1-Zertifikat verwendet, wird jetzt der Fehler
Untrusted Connectionangezeigt (Firefox-Fehler 1330043).
Plugins
Die Unterstützung für alle NPAPI-Plugins außer Flash wurde eingestellt. Auch die Nutzung von Flash soll künftig schrittweise eingestellt werden.
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
sessions-APItopSites-APIomnibox-API- Ereignisse
runtime.onInstalledundruntime.onStartup - asynchrone Ereignis-Listener in webRequest
- Ereignisse
bookmarks.onMoved,bookmarks.onCreatedundbookmarks.onChanged _execute_browser_actionund_execute_page_actionim Manifest-Schlüssel commandsmatch_about_blankim Manifest-Schlüssel content_scripts
Interfaces
- Die Methode
nsIDroppedLinkHandler.dropLinksund das InterfacensIDroppedLinkItemwurden hinzugefügt, um das Ablegen mehrerer Elemente zu verarbeiten (Firefox-Fehler 92737).
XUL
- Eine Überladung der Methode
tabbrowser.loadTabs(uris, params)wurde hinzugefügt (Firefox-Fehler 92737). - Die Signatur der Funktion
browser.droppedLinkHandlerwurde geändert (Firefox-Fehler 92737).