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 nützlich sind, sondern auch für Firefox- und Gecko-Entwickler sowie für Entwickler von Add-ons.

Änderungen für Webentwickler

Entwicklerwerkzeuge

HTML

CSS

Neue Funktionen

  • :focus-within Pseudoklasse hinzugefügt (Firefox-Bug 1176997).

  • Unterstützung für display:flex/grid und Columnset-Layout innerhalb von <button> Elementen hinzugefügt (Firefox-Bug 984869).

  • Umsetzung der Interpolation zwischen numerischen Farbwerten und currentcolor (Firefox-Bug 1299741).

  • Flexbox-Layout für justify-content: space-evenly und align-content: space-evenly implementiert (Firefox-Bug 1235922).

  • Unterstützung für Subpixel-Antialiasing in CSS mask / clip-path hinzugefügt (Firefox-Bug 1305259).

  • CSS Text 3 Segment-Break-Transformationsregeln implementiert (Firefox-Bug 1081858).

  • Grundform-Clipping (wie über die clip-path Eigenschaft angewendet) kann jetzt auf SVG-Inhalte angewendet werden (Firefox-Bug 1246741).

  • Flexbox-Layout für align-self und justify-self implementiert (Firefox-Bug 1221524).

  • Die touch-action Eigenschaft ist jetzt standardmäßig auf allen Plattformen aktiviert. (Für die vollständige Geschichte, siehe intent to ship mail #1 und intent to ship mail #2.)

  • Flexbox align-content Verarbeitung & Einzeilen-Größenanpassung sollten von flex-wrap abhä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).

  • baseline|last-baseline wurde zu [ first | last ]? baseline geändert (Firefox-Bug 1313254).

  • Der verwendete Wert für left/right ist start für die Blockachse (Firefox-Bug 1221565).

  • Strecken flexibler Tracks mit einer unbestimmten Blocklänge respektiert jetzt die min/max Größe (Firefox-Bug 1309407).

  • Die Anfangswerte von mask-position und mask-repeat wurden auf 0% 0% bzw. repeat geändert (Firefox-Bug 1308963).

  • Es gab eine Reihe von Änderungen an CSS <color> Werten (siehe Firefox-Bug 1295456):

    • rgba() und hsla() wurden jetzt als Aliase von rgb() und hsl() neu definiert; beide akzeptieren die gleiche Parametersyntax.
    • rgb() und hsl() akzeptieren jetzt einen optionalen Alphawert, z.B. rgb(255, 0, 0, 0.5).
    • Farbfunktionen akzeptieren jetzt leerzeichen-separierte Parameter anstatt Kommata, z.B. rgb(255 0 0 / 0.5).
    • Alphas können jetzt als Prozentsätze sowie 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 von kinderindexierten Pseudoklassen (wie :nth-child, :first-child, usw.) in Firefox wurde aktualisiert, um der CSS Selectors Level 4 Spezifikation zu entsprechen: Diese Pseudoklassen stimmen jetzt mit den entsprechenden Geschwisterelementen überein, anstatt mit den Kindern ihres übergeordneten Elements. Dies erlaubt die Verwendung dieser Pseudoklassen, wenn es kein übergeordnetes Element gibt, oder das übergeordnete Element kein Element ist (Firefox-Bug 1300374).

CSS-Grids

Änderungen und Entfernungen

JavaScript

Neue Funktionen

Änderungen und Entfernungen

WebAssembly

  • Unterstützung für WebAssembly wurde zu Gecko hinzugefügt.

DOM

Änderungen und Entfernungen

  • Die Firefox-OS-APIs, die sich mit der Verwaltung von Telefonanrufen (Kontakte, MobileConnection, Icc usw.) beschäftigen, 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 TV-Übertragungsbezogenen APIs von Firefox OS wurden entfernt (Firefox-Bug 1306778).
  • Die FM-Radio-API von Firefox OS (FMRadio, Navigator.mozFMRadio) wurde entfernt (Firefox-Bug 1306779).

Service Worker und Fetch

  • Die Headers.getAll() Methode wurde entfernt, und Headers.get() ruft jetzt alle Werte des spezifizierten Headers ab, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Aktualisierungen der Fetch API Spezifikation.

Web Audio API

WebRTC

  • Wenn eine ICE-Verbindung vorübergehend unterbrochen ist, wird die RTCPeerConnection.iceConnectionState Eigenschaft jetzt auf "disconnected" gesetzt; dies deutet auf einen vorübergehenden Ausfall hin, der sich möglicherweise bald von selbst löst, wobei die Verbindung danach in den "connected" Zustand zurückkehrt (Firefox-Bug 852665).
  • Das MediaDevices devicechange Ereignis und sein entsprechender Handler, die in Firefox 51 auf Mac implementiert, aber standardmäßig deaktiviert waren, wurden unter Windows und Linux implementiert und sind jetzt standardmäßig auf allen Plattformen aktiviert.
  • Die MediaStream.active Eigenschaft wird jetzt unterstützt. Diese schreibgeschützte Boolesche Eigenschaft gibt an, ob mindestens ein Track im Stream gerade abgespielt wird.
  • Vor Firefox 52 konnte die MediaStreamTrack.stop() Methode nur lokale Tracks (das sind Tracks, die über getUserMedia() abgerufen wurden) stoppen. Jetzt können Sie auch eine Vielzahl von Tracks stoppen, einschließlich denen auf einem MediaStream, der mit einer WebRTC Verbindung, einem Web Audio API Stream oder einem CanvasCaptureMediaStream verbunden ist.
  • Vorher führte das wiederholte Ändern des TextTrack mode während eines einzigen Durchgangs durch die Ereignisschleife von Firefox dazu, dass mehrere change Ereignisse an die TextTrackList übergeben wurden, die von der textTracks Eigenschaft des übergeordneten Medienelements spezifiziert wird. Jetzt werden diese Änderungen in ein einziges Ereignis konsolidiert (Firefox-Bug 882674).

Audio/Video/Medien

  • Die MediaError Objekte, die in HTMLMediaElement.error angegeben sind, wenn bei der Handhabung eines <audio> oder <video> Elements ein Fehler auftritt, enthalten jetzt eine message Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Diese Zeichenkette bietet Details, die genau zu diesem Fehlerereignis gehören und Einblick in die Ursache bieten, warum etwas schiefgelaufen ist (Firefox-Bug 1299072). Dieses Feld wurde bereits seit Firefox 51 in den Nightly-Builds von Firefox enthalten, ist jedoch jetzt in allen Builds bis hin zur Veröffentlichungsvariante verfügbar.

Andere APIs

HTTP

SVG

  • SVG-Dokumente werden jetzt mit der XMLDocument Schnittstelle statt SVGDocument dargestellt. Dies ist eine Änderung, die in der SVG 2-Spezifikation vorgenommen wurde.

Sicherheit

  • Wenn Login-Seiten (d.h. solche, die ein <input type="password"> Feld enthalten) so erstellt werden, dass sie unsicher übermittelt werden, zeigt Firefox eine Warnmeldung im Kontext unter dem Passwortfeld, um Benutzer zu warnen (Firefox-Bug 1319119). Automatisches Ausfüllen wird auch in unsicheren Login-Formularen deaktiviert (Firefox-Bug 1217152). Weitere Informationen finden Sie unter Unsichere Passwörter.
  • Die 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

Die Unterstützung für alle NPAPI-Plugins außer Flash wurde eingestellt. Die Nutzung von Flash soll in Zukunft ebenfalls auslaufen.

Änderungen für Add-on- und Mozilla-Entwickler

WebExtensions

Schnittstellen

  • nsIDroppedLinkHandler.dropLinks Methode und nsIDroppedLinkItem Schnittstelle wurden hinzugefügt, um das Ablegen mehrerer Elemente zu handhaben (Firefox-Bug 92737).

XUL

  • tabbrowser.loadTabs(uris, params) Methodenvorlage wurde hinzugefügt (Firefox-Bug 92737).
  • Die Signatur der browser.droppedLinkHandler Funktion wurde geändert (Firefox-Bug 92737).