Firefox 55 für Entwickler

Firefox 55 wurde am 8. August 2017 veröffentlicht. Dieser Artikel listet die wichtigsten Änderungen auf, die für Webentwickler nützlich sind.

Änderungen für Webentwickler

Entwicklerwerkzeuge

HTML

CSS

SVG

JavaScript

APIs

Neue APIs

  • Die Collaborative Scheduling of Background Tasks API (auch bekannt als Background Tasks API oder die requestIdleCallback API) ist nun standardmäßig aktiviert, nachdem sie seit Firefox 53 hinter einer Einstellung verfügbar war. Diese API ermöglicht es, Aufgaben auszuführen, wenn der Browser feststellt, dass vor dem nächsten Repaint freie Zeit verfügbar ist, sodass Ihr Code diese Zeit nutzen kann, ohne sichtbare Leistungseinbußen zu verursachen (Firefox-Bug 1314959).
  • Die WebVR 1.1 API ist jetzt standardmäßig unter Windows aktiviert (und auf macOS in Nightly verfügbar). Diese API ermöglicht es, Virtual-Reality-Geräte — wie z.B. Head-Mounted Displays wie das Oculus Rift oder HTC Vive — in Webanwendungen zu verwenden, sodass Entwickler Positions- und Bewegungsinformationen vom Display in Bewegungen durch eine 3D-Szene übersetzen können und Inhalte in solchen Displays präsentieren können.
  • Die Intersection Observer API — die eine Möglichkeit bietet, Änderungen am Schnittpunkt eines Zielelements mit einem Vorfahr-Element oder mit einem obersten Dokumenten-Ansichtsfenster asynchron zu überwachen — wurde hinzugefügt (Firefox-Bug 1321865).

DOM

DOM-Ereignisse

Auswahl-API

Workers

Service Workers/Push

  • Nachrichten, die an Service-Worker-Kontexte gesendet werden (z. B. als das Ereignisobjekt von onmessage), werden jetzt durch MessageEvent Objekte repräsentiert, um Konsistenz mit anderen Web-Messaging-Funktionen sicherzustellen.
  • Die Methode PushManager.subscribe() akzeptiert jetzt ArrayBuffers und Base64-kodierte Zeichenfolgen als applicationServerKey-Werte (Firefox-Bug 1337348).

Web Audio API

  • Ein nicht standardmäßiger Konstruktor (der einen String-Enum-Wert akzeptierte, der den Zweck angab, für den der Kontext verwendet werden würde) für die Schnittstelle AudioContext verursachte Fehler, wenn der options-Parameter bereitgestellt wurde. Wir haben den nicht standardmäßigen Konstruktor entfernt. Bitte beachten Sie jedoch, dass der options-Parameter in Firefox noch nicht unterstützt wird und derzeit ignoriert wird (Firefox-Bug 1361475).

WebRTC

  • getUserMedia() liefert nun standardmäßig einen Stereo-Audiostream, wenn das Quelldevise Stereo-Sound bereitstellt; die Unterstützung für spezifische Anfragen für Mono-Eingang wird in Firefox 56 verfügbar sein. Dies funktioniert derzeit nur auf dem Desktop; mobiler Firefox unterstützt derzeit keine Stereo-Audio-Eingangsquellen (Firefox-Bug 971528).
  • Die getUserMedia() media capabilities, constraints, and settings autoGainControl und noiseSuppression stimmen nun mit der Spezifikation überein; zuvor waren sie mit moz-Präfix (Firefox-Bug 1366415).
  • Bei einem Aufruf mit einem leeren Constraints-Set gab getUserMedia() fälschlicherweise NotSupportedError statt TypeError zurück. Dies wurde behoben (Firefox-Bug 1349480).
  • Die folgenden neuen WebRTC-Statistiken sind verfügbar: framesEncoded, pliCount, nackCount und firCount (Firefox-Bug 1348657).
  • Das Feld des RTCInboundRTPStreamStats-Dictionary, das früher mozRtt genannt wurde, wurde in roundTripTime umbenannt, um der Spezifikation zu entsprechen; zusätzlich wurde das Verhalten angepasst, um dem Standard zu entsprechen: es enthält einen Gleitkommawert mit doppelter Genauigkeit, der die Round-Trip-Zeit basierend auf den RTCP-Zeitstempeln im RTCP-Empfängerbericht schätzt, gemessen in Sekunden (nach dem in RFC 3550, Abschnitt 6.4.1 beschriebenen Algorithmus) (Firefox-Bug 1344970). Bitte beachten Sie jedoch, dass diese Eigenschaft bald in ein anderes Dictionary (RTCRemoteInboundRTPStreamStats) verschoben wird (Firefox-Bug 1380555).
  • Das RTCRTPStreamStats-Dictionary enthält nun die Felder firCount, pliCount und nackCount. Diese liefern Informationen auf niedriger Ebene, die genutzt werden können, um zu bestimmen, wie zuverlässig die Verbindung ist (Firefox-Bug 1348657).
  • Das RTCOutboundRTPStreamStats-Dictionary enthält nun das Feld framesEncoded, das die Anzahl an Frames meldet, die erfolgreich für den Stream kodiert wurden; mit dieser Information können Sie die Bildrate berechnen (Firefox-Bug 1348657).
  • Auf Android gibt es jetzt eine Pref, um Hardware-Videokodierung zu aktivieren und so die Leistung bei Videoanrufen zu verbessern und den Akku zu schonen. Diese wird standardmäßig in Firefox 56 aktiviert (Firefox-Bug 1265755).

Encrypted Media Extensions API

  • Firefox ermöglicht derzeit die Verwendung von Encrypted Media Extensions in unsicheren Kontexten, obwohl dies in der Spezifikation nicht erlaubt ist. Dies wird sich in naher Zukunft ändern, und ab Firefox 55 werden Deprecation-Warnungen in der Webkonsole ausgegeben, wenn dies geschieht (Firefox-Bug 1361000).
  • Firefox setzt derzeit nicht voraus, dass mindestens ein MediaKeySystemCapabilities-Objekt im suggestedConfigurations-Parameter enthalten ist, der an Navigator.requestMediaKeySystemAccess() übergeben wird, obwohl dies in der Spezifikation vorgeschrieben ist. Ab Firefox 55 wird eine Warnung in der Webkonsole ausgegeben, wenn eine Audio- oder Videokonfiguration angegeben wird, ohne unterstützte Codecs anzugeben. Bald wird das Fehlen einer gültigen Konfiguration für eines oder mehrere von Audio und Video eine Ausnahme auslösen (Firefox-Bug 1368683).

WebGL

Sicherheit

Plugins

  • Flash-Inhalte sind jetzt "Klick-zum-Aktivieren" (Firefox-Bug 1317856). Dies wurde sofort für alle Nutzer von Nightly und 50% der Beta-Nutzer umgesetzt. Für die Firefox 55 Release-Version ist geplant, dies für 5% der Benutzer zwei Wochen nach der Veröffentlichung, 25% der Benutzer vier Wochen nach der Veröffentlichung und 100% der Benutzer sechs Wochen nach der Veröffentlichung zu aktivieren (Firefox-Bug 1365714).
  • Flash und andere Plugins können nicht mehr von einer anderen URL-Schema als http:// und https:// geladen werden (Firefox-Bug 1335475).

Sonstiges

  • Firefox unter Linux kann nun im "Headless"-Modus ausgeführt werden, indem das -headless-Flag verwendet wird (siehe Firefox-Bug 1356681).

Entfernungen aus der Web-Plattform

HTML

  • Das xml:base-Attribut kann nicht mehr zur Festlegung der Basis-URL für Pfade verwendet werden, die im style-Attribut angegeben sind, zum Beispiel —

    <div xml:base="https://example.com/" style="background:url(picture.jpg)"></div> (Firefox-Bug 1350521).

  • Das scoped-Attribut des <style> Elements wurde in Inhaltsdokumenten in Firefox 55+ hinter einem Pref (layout.css.scoped-style.enabled) verborgen, da keine anderen Browser es unterstützen.

  • Die Unterstützung für den obskuren MSThemeCompatible-Wert des http-equiv-Attributs des <meta> Elements wurde aus Gecko entfernt. Kein anderer moderner Browser unterstützt es und es verursachte Kompatibilitätsprobleme (Firefox-Bug 966240).

CSS

APIs

  • Die UIEvent.isChar-Eigenschaft wurde von keinem anderen Browser außer Firefox unterstützt und war nie vollständig implementiert, außer auf macOS. Aus diesem Grund wurde sie in Firefox 55 entfernt, um mit anderen Browsern zusammenzupassen.
  • Die proprietäre Firefox OS Device Storage API wurde aus der Plattform entfernt (Firefox-Bug 1299500).
  • Der aShowDialog-Parameter der nicht standardmäßigen Window.find()-Methode (der angegeben werden konnte, um einen "Finden"-Dialog im Browser zu öffnen) wurde entfernt (Firefox-Bug 1348409).
  • Die Methode HTMLFormElement.requestAutoComplete() wurde entfernt (siehe HTMLFormElement) (Firefox-Bug 1270740).
  • Die nicht standardmäßigen, Mozilla-spezifischen WebRTC-Angebotsoptionen mozDontOfferDataChannel und mozBundleOnly wurden aus dem RTCOfferOptions-Dictionary entfernt und werden von RTCPeerConnection.createOffer() nicht mehr unterstützt (Firefox-Bug 1196974).
  • Die Unterstützung für die proprietäre Audio Channels API von Firefox OS wurde aus HTMLMediaElement und AudioContext entfernt (Firefox-Bug 1358061).

SVG

  • Die Schnittstellen SVGZoomEvent und SVGZoomEvents wurden aus der SVG2-Spezifikation und Gecko entfernt, zusammen mit dem onzoom <svg>-Attribut (Firefox-Bug 1314388).

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

WebExtensions

Ältere Versionen