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

Änderungen für Webentwickler

Entwicklerwerkzeuge

HTML

CSS

Neue Funktionen

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

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

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

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

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

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

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

  • Implementiertes Flexbox-Layout für align-self|justify-self: [ first | last ]? baseline (Firefox-Bug 1221524).

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

  • Flexbox-align-content-Handhabung & Einstreifenskalierung sollen von flex-wrap und nicht von der Zeilenanzahl abhängen (Firefox-Bug 1090031).

  • CSS-Animationen können nun verwendet werden, um nicht interpolierte Eigenschaften zu animieren (siehe Firefox-Bug 1064937).

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

  • Der tatsächliche Wert für left/right ist start für die Block-Achse (Firefox-Bug 1221565).

  • Das Dehnen flexibler Gleise mit unbestimmter Containerblocklänge respektiert jetzt die Mindest-/Maximalgröße (Firefox-Bug 1309407).

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

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

    • rgba() und hsla() wurden nun als Aliasse von rgb() und hsl() neu definiert; beide akzeptieren den gleichen Parameter-Syntax.
    • rgb() und hsl() akzeptieren nun einen optionalen Alphawert, z. B. rgb(255, 0, 0, 0.5).
    • Farb-Funktionen akzeptieren nun leerzeichengetrennte Parameter statt Kommata, z. B. rgb(255 0 0 / 0.5).
    • Alphawerte können jetzt als Prozentsätze sowie 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%).
  • Firefoxs Implementierung von kinderindizierten Pseudoklassen (wie :nth-child, :first-child, etc.) wurde aktualisiert, um der CSS Selectors Level 4-Spezifikation zu entsprechen: Diese Pseudoklassen passen jetzt zu den entsprechenden Geschwistern anstelle der Kinder ihres Elternelements. Dies ermöglicht die Verwendung dieser Pseudoklassen, wenn es kein Elternteil gibt oder das Elternteil 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 befassen (Kontakte, MobileConnection, Icc, usw.), 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 Fernsehsendungs-APIs von Firefox OS 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, und Headers.get() ruft jetzt alle Werte des angegebenen Headers ab, nicht nur den ersten (siehe Firefox-Bug 1278275). Dies entspricht den neuesten Updates 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 zeigt ein vorübergehendes Versagen an, das sich möglicherweise bald von selbst löst, wobei die Verbindung anschließend wieder in den "connected"-Zustand wechselt (Firefox-Bug 852665).
  • Das MediaDevices-devicechange-Ereignis und der entsprechende Handler, die in Firefox 51 nur auf dem 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 zeigt an, ob mindestens ein Track im Stream derzeit abgespielt wird.
  • Vor Firefox 52 konnte die MediaStreamTrack.stop()-Methode nur lokale Tracks stoppen (d.h. Tracks, die durch getUserMedia() erhalten wurden). Jetzt können eine Vielzahl von Tracks gestoppt werden, einschließlich derjenigen auf einem MediaStream, das mit einer WebRTC-Verbindung, einem Web Audio API-Stream oder einem CanvasCaptureMediaStream verbunden ist.
  • Zuvor würde das wiederholte Ändern des mode eines TextTrack während einer einzigen Durchlauf der Firefox-Ereignisschleife zu mehreren change-Ereignissen führen, die an die vom übergeordneten Medienelement durch die textTracks-Eigenschaft spezifizierte TextTrackList geliefert werden. Jetzt werden diese Änderungen zu einem Ereignis konsolidiert (Firefox-Bug 882674).

Audio/Video/Medien

  • Die MediaError-Objekte, die in HTMLMediaElement.error spezifiziert sind, wenn ein Fehler beim Verarbeiten eines <audio>- oder <video>-Elements auftritt, enthalten jetzt eine message-Eigenschaft, die eine spezifische Beschreibung des aufgetretenen Fehlers bietet. Diese Zeichenfolge bietet Details, die speziell für diesen genauen Fehlerfall sind und Einblick darin bieten, warum etwas schiefgelaufen ist (Firefox-Bug 1299072). Dieses Feld ist seit Firefox 51 in Firefox Nightly-Builds enthalten, aber jetzt in allen Builds verfügbar, bis hin zur Veröffentlichung.

Andere APIs

HTTP

SVG

  • SVG-Dokumente werden jetzt über die XMLDocument-Schnittstelle 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) erstellt werden, so dass sie unsicher übermittelt würden, zeigt Firefox eine kontextbezogene Warnmeldung unter dem Passwortfeld an, um die Benutzer zu warnen (Firefox-Bug 1319119). Autofill ist auch bei unsicheren Anmeldeseiten deaktiviert (Firefox-Bug 1217152). Siehe Unsichere Passwörter für weitere Details.
  • 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 nun zu einem Untrusted Connection-Fehler (Firefox-Bug 1330043).

Plugins

Alle NPAPI-Plugin-Unterstützung außer Flash wurde eingestellt. Die Nutzung von Flash soll auch in naher Zukunft auslaufen.

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

WebExtensions

Schnittstellen

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

XUL

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

Ältere Versionen