Firefox 55 Versionshinweise für Entwickler
Firefox 55 wurde am 8. August 2017 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die für Webentwickler nützlich sind.
Änderungen für Webentwickler
>Entwickler-Tools
- Filterung von Netzwerkanforderungen nach Spaltenwerten und anderen Eigenschaften hinzugefügt (Firefox-Bug 1041895, Firefox-Bug 1354508, Firefox-Bug 1354507) und durch die Verwendung regulärer Ausdrücke (Firefox-Bug 1354495).
- Möglichkeit hinzugefügt, Spalten im Netzwerk-Monitor ein- und auszublenden (Firefox-Bug 862855).
- Remote-IP (Firefox-Bug 1344523), Protokoll (Firefox-Bug 1345489), Schema (Firefox-Bug 1356867), Cookies und Set-Cookies-Spalten zum Netzwerk-Monitor hinzugefügt (Firefox-Bug 1356869).
- Der
SourceMapHTTP-Header wird nun unterstützt (vorherige Versionen unterstützten den veraltetenX-SourceMap-Header, siehe Firefox-Bug 1346936).
HTML
- Elemente, bei denen
contenteditableauftruegesetzt ist, verwenden jetzt-Elemente, um verschiedene Textzeilen zu trennen, um Firefox eine Parität mit anderen modernen Browsern zu ermöglichen (Firefox-Bug 1297414).<div> - Aktivierung von
dom.forms.datetimestandardmäßig in Nightly (Firefox-Bug 1366188).
CSS
- Die Eigenschaft
transform-boxist jetzt standardmäßig sichtbar (Firefox-Bug 1208550). - Die
frames()Timing-Funktion wurde implementiert (Firefox-Bug 1248340). - Die Eigenschaft
text-justifywurde implementiert (Firefox-Bug 1343512, Firefox-Bug 276079). - [css-grid]
fit-contentreserviert unerwartet Platz für die vollständige Klammergröße inrepeat()(Firefox-Bug 1359060). - Die logischen Werte von
float/clear—inline-startundinline-end— die vorher implementiert, aber in Freigabekanälen deaktiviert waren, sind jetzt standardmäßig in allen Kanälen verfügbar (Firefox-Bug 1253919). - Die Präferenz
layout.css.variables.enabledwurde vollständig entfernt, was bedeutet, dass die CSS-Variablen Funktion immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox-Bug 1312328). - Die proprietäre
-moz-context-properties-Eigenschaft wurde implementiert (Firefox-Bug 1058040). - Ein Null (0) Winkelwert ohne Grad-Einheit wird in
linear-gradient()nicht korrekt interpretiert (Firefox-Bug 1363292). - Das pseudo-Element
::cuewird jetzt unterstützt; es stimmt mit Texthinweisen überein, die innerhalb eines Medienelements präsentiert werden (Firefox-Bug 1318542).
SVG
- Das Attribut
frdes<radialGradient>-Elements wurde implementiert (Firefox-Bug 1240275).
JavaScript
- Die Objekte
SharedArrayBufferundAtomicssind jetzt standardmäßig aktiviert. Siehe A Taste of JavaScript's New Parallel Primitives für eine Einführung in JavaScript Shared Memory und Atomics. - Der Restoperator (
...) wird jetzt in Objekt-Destrukturierung unterstützt und der Spread-Operator (...) funktioniert jetzt in Objektliteralen (Stage 3 ECMAScript-Vorschlag: Object Rest/Spread Properties, Firefox-Bug 1339395). - Asynchrone Generator-Methoden werden jetzt unterstützt (Firefox-Bug 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()undString.prototype.toLocaleUpperCase()unterstützen jetzt einen optionalenlocale-Parameter, um ein Sprach-Tag für sprachspezifische Groß-/Kleinschreibungen anzugeben (Firefox-Bug 1318403). - Das Objekt
Intl.Collatorunterstützt jetzt diecaseFirst-Option (Firefox-Bug 866473). - Die Intl-API verwendet jetzt die Standard-Spracheinstellung des Browsers anstelle der Standard-Spracheinstellung des Betriebssystems, wenn keine Spracheinstellung angegeben ist (Firefox-Bug 1346674).
- Template Call Sites-Objekte werden jetzt pro Realm kanonisiert, basierend auf ihrer Liste roher Zeichenfolgen (Firefox-Bug 1108941).
- Die Konstruktoren von
TypedArray(wieInt8Array,Float32Array, usw.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex-Operation und erlauben Konstruktoren ohne Argumente, die null-längen Typed Arrays zurückgeben (Firefox-Bug 1317383).
APIs
Neue APIs
- Die Collaborative Scheduling of Background Tasks API (auch bekannt als Background Tasks API oder
requestIdleCallbackAPI) ist jetzt standardmäßig aktiviert, nachdem sie seit Firefox 53 hinter einer Präferenz verfügbar war. Diese API ermöglicht es Ihnen, Aufgaben zu planen, die ausgeführt werden, wenn der Browser feststellt, dass vor dem nächsten Repaint Zeit verfügbar ist, sodass Ihr Code diese Zeit nutzen kann, ohne sichtbare Leistungsprobleme zu verursachen (Firefox-Bug 1314959). - Die WebVR 1.1 API ist jetzt standardmäßig auf Windows aktiviert (und ist auf macOS in Nightly verfügbar). Diese API macht virtuelle Reality-Geräte — zum Beispiel Head-Mounted Displays wie Oculus Rift oder HTC Vive — für Webanwendungen zugänglich und ermöglicht es Entwicklern, Positions- und Bewegungsinformationen vom Display in Bewegungen innerhalb einer 3D-Szene zu übersetzen und Inhalte in solchen Displays zu präsentieren.
- Die Intersection Observer API — die eine Möglichkeit bietet, Änderungen im Schnittpunkt eines Ziel-Elements mit einem Vorfahren-Element oder mit einem Top-Level-Dokumenten-Viewport asynchron zu beobachten — wurde hinzugefügt (Firefox-Bug 1321865).
DOM
- Die Eigenschaften
scrollXundscrollYvonWindow(sowie ihre AliasepageXOffsetundpageYOffset) wurden aktualisiert, um subpixelgenau zu sein. Sie geben jetzt einen Gleitkommawert zurück, der die Scrollposition auf subpixelgenauen Displays genauer beschreibt (Firefox-Bug 1151421). Bei Bedarf können SieMath.round()verwenden, um sie in ganze Zahlen umzuwandeln. MediaQueryList(und andere verwandte Funktionen) wurden aktualisiert, um dem neuesten Standard zu entsprechen. Siehe Firefox-Bug 1354441, und auchMediaQueryListundMediaQueryListEvent.- Methoden der
DOMTokenList, die den Listenwert ändern, trimmen jetzt automatisch Leerzeichen und entfernen doppelte Token (Firefox-Bug 869788, siehe auch Trimming of whitespace and removal of duplicates). - Die
maxLength-Eigenschaft vonHTMLInputElementkann jetzt dynamisch mit JavaScript geändert werden, nachdem das entsprechende HTML erstellt wurde (Firefox-Bug 1352799). - Der
URL()Konstruktor kann keinenDOMStringmehr als Basis (2. Parameter) akzeptieren — er akzeptiert nur einenUSVString. Er kann jedoch weiterhin ein bestehendesURL-Objekt als Grundlage verwenden, das sich zumhref-Attribut des Objekts in Zeichen verwandelt (Firefox-Bug 1368950).
DOM-Ereignisse
- Die von der Methode
Document.createEvent()unterstützten Ereignistypen wurden gemäß dem neuesten DOM-Standard aktualisiert (Firefox-Bug 1251198). - Der Eigenschaftswert
MessageEvent.originist jetzt vom TypUSVString, nichtDOMString, und die EigenschaftMessageEvent.sourcenimmt jetzt einenMessageEventSource-Wert (der ein WindowProxy,MessagePortoderServiceWorker-Objekt sein kann) (Firefox-Bug 1311324). - Die Pinch-to-Zoom-Geste wurde nun auf das
wheel-Ereignis sowie dieCtrl-Taste abgebildet. Diese Zuordnung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoom-Funktionalität mit der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Trackpads zu implementieren (Mousewheel +Ctrlzoomt üblicherweise) (Firefox-Bug 1052253).
Auswahl-API
-
Die Auswahl-API wurde aktualisiert, sodass sie in Bezug darauf, wie Bearbeitungshosts den Fokus erhalten, wenn die Auswahl sich in ihnen bewegt, mit anderen Browsern vergleichbar ist (Firefox-Bug 1318312). Siehe Verhalten der Auswahl-API in Bezug auf die Fokusänderungen von Bearbeitungshosts für weitere Details.
-
Die
Selection-API wurde aktualisiert, um einige der jüngsten Änderungen des Standards widerzuspiegeln (Firefox-Bug 1359371):- Der
offset-Parameter der Methodencollapse()undextend()ist jetzt optional. - Der
node-Parameter der Methodecollapse()ist jetzt nullbar. - Der
partialContainment-Parameter der MethodecontainsNode()ist jetzt optional. - Die Methode
deleteFromDocument()wurde hinzugefügt.
- Der
-
Auch in der
Selection-API wurdenSelection.empty()undSelection.setPosition()als Aliase vonSelection.removeAllRanges()undSelection.collapse()hinzugefügt, aus Gründen der Web-Kompatibilität und Parität mit WebKit/Blink (Firefox-Bug 1359387). -
Die Methoden
StorageManager.persist()undStorageManager.persisted()der Storage-API wurden implementiert und inWindow-Kontexten zur Verfügung gestellt (Firefox-Bug 1286717).
Worker
- Worker und Shared Worker können jetzt mit einer identifizierenden
name-Eigenschaft erstellt werden. Siehe die KonstruktorenWorker()undSharedWorker(), sowie die SchnittstellenDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope. (Firefox-Bug 1364297). Window.setTimeout(),WorkerGlobalScope.setTimeout(),Window.setInterval()undWorkerGlobalScope.setInterval()unterliegen jetzt einem minimalen Intervall-Drosseln für Tracking-Skripts in Hintergrund-Registerkarten — siehe Drosselung von Tracking-Skripten (Firefox-Bug 1355311).
Service Worker/Push
- Nachrichten, die an Service Worker-Kontexte gesendet werden (z. B. als Ereignisobjekt von
onmessage), werden jetzt durchMessageEvent-Objekte dargestellt, um konsistent mit anderen Web-Messaging-Funktionen zu sein. - Die Methode
PushManager.subscribe()akzeptiert jetztArrayBuffers und Base64-kodierte Zeichenfolgen alsapplicationServerKey-Werte (Firefox-Bug 1337348).
Web-Audio-API
- Ein nicht standardisierter Konstruktor (der einen String-Enum-Wert akzeptierte, der den Verwendungszweck des Kontexts angab) für die
AudioContext-Schnittstelle verursachte Fehler, wenn deroptions-Parameter bereitgestellt wurde. Wir haben den nicht standardisierten Konstruktor entfernt. Bitte beachten Sie jedoch, dass deroptions-Parameter noch nicht in Firefox unterstützt wird und derzeit ignoriert wird (Firefox-Bug 1361475).
WebRTC
getUserMedia()liefert jetzt standardmäßig einen Stereo-Audio-Stream, wenn das Quellgerät Stereo-Sound bereitstellt; Unterstützung zum spezifischen Anfordern der Mono-Eingabe wird in Firefox 56 verfügbar sein. Dies funktioniert derzeit nur auf dem Desktop; Mobile Firefox unterstützt derzeit keine Stereo-Audio-Eingangsquellen (Firefox-Bug 971528).- Die
getUserMedia()Medienfähigkeiten, Einschränkungen und EinstellungenautoGainControlundnoiseSuppressionentsprechen jetzt der Spezifikation; früher waren sie mitmoz-Präfix versehen (Firefox-Bug 1366415). - Bei Aufrufen mit einem leeren Einschränkungsset gab
getUserMedia()fälschlicherweiseNotSupportedErrorstattTypeErrorzurück. Dies wurde behoben (Firefox-Bug 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded,pliCount,nackCountundfirCount(Firefox-Bug 1348657). - Das früher als
mozRttbezeichnete FeldRTCInboundRTPStreamStatswurde inroundTripTimeumbenannt, um mit der Spezifikation übereinzustimmen; zudem wurde sein Verhalten angepasst, um dem Standard zu entsprechen: Es enthält einen Gleitkomma-Doppelpräzisions-Wert, der basierend auf den RTCP-Zeitstempeln im RTCP-Empfängerbericht die Round-Trip-Zeit schätzt, gemessen in Sekunden (folgt dem Algorithmus im RFC 3550, Abschnitt 6.4.1). (Firefox-Bug 1344970). Bitte beachten Sie jedoch, dass sich diese Eigenschaft bald in ein anderes Wörterbuch (RTCRemoteInboundRTPStreamStats) verschieben wird (Firefox-Bug 1380555). - Das Wörterbuch
RTCRTPStreamStatsenthält jetzt die FelderfirCount,pliCountundnackCount. Diese liefern Informationen auf niedriger Ebene, die zur Bestimmung der Zuverlässigkeit der Verbindung verwendet werden können (Firefox-Bug 1348657). - Das Wörterbuch
RTCOutboundRTPStreamStatsenthält jetzt das FeldframesEncoded, das die Anzahl der erfolgreich für den Stream kodierten Frames angibt; mit dieser Information können Sie die Bildrate berechnen (Firefox-Bug 1348657). - Unter Android gibt es jetzt eine Präferenz, um die Hardware-Video-Codierung zu aktivieren, um die Leistung von Videoanrufen zu verbessern und den Akku zu schonen. Um in Firefox 56 standardmäßig aktiviert zu werden (Firefox-Bug 1265755).
API für verschlüsselte Medienerweiterungen
- Firefox erlaubt derzeit die Verwendung von verschlüsselten Medienerweiterungen 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 im Webkonsole ausgegeben, wenn dies geschieht. (Firefox-Bug 1361000).
- Firefox erfordert derzeit nicht, dass mindestens ein
MediaKeySystemCapabilities-Objekt imsuggestedConfigurations-Parameter enthalten ist, der anNavigator.requestMediaKeySystemAccess()übergeben wird, was die Spezifikation forciert. Ab Firefox 55 wird eine Warnung im Webkonsole ausgegeben, wenn jede Audio- oder Videokonfiguration angegeben wird, ohne unterstützte Codecs zu spezifizieren. Bald wird das Fehlen einer gültigen Konfiguration für eines oder mehrere der Audio- und Videoelemente eine Ausnahme auslösen Firefox-Bug 1368683).
WebGL
- Die Erweiterung
WEBGL_compressed_texture_s3tc_srgbist jetzt in WebGL- und WebGL2-Kontexten verfügbar (Firefox-Bug 1325113).
Sicherheit
- Die Geolocation-API ist jetzt nur noch in sicheren Kontexten verfügbar (Firefox-Bug 1072859).
- Die Storage API ist jetzt nur noch in sicheren Kontexten verfügbar (Firefox-Bug 1268804).
- Das Laden gemischter Inhalte ist nun auf localhost erlaubt (Firefox-Bug 903966).
- Das Laden von Remote-JAR-Dateien wurde erneut deaktiviert (Firefox-Bug 1329336).
Plugins
- Flash-Inhalte sind jetzt "click-to-activate" (Firefox-Bug 1317856). Dies wurde sofort für alle Nutzer von Nightly und 50% der Beta-Nutzer wirksam. Für die Firefox 55 Freigabeversion ist geplant, dies für 5% der Nutzer 2 Wochen nach Freigabe, für 25% der Nutzer 4 Wochen nach Freigabe und für 100% der Nutzer 6 Wochen nach Freigabe zu aktivieren (Firefox-Bug 1365714).
- Flash und andere Plugins können nicht mehr von einem URL-Schema außer
http://undhttps://geladen werden (Firefox-Bug 1335475).
Sonstiges
- Firefox unter Linux kann jetzt im Headless-Modus mit dem
-headless-Flag ausgeführt werden (siehe Firefox-Bug 1356681).
Entfernungen von der Webplattform
>HTML
-
Das
xml:baseAttribut kann nicht mehr verwendet werden, um die Basis-URL für Pfade festzulegen, die imstyle-Attribut erscheinen, zum Beispiel —<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>(Firefox-Bug 1350521). -
Das
scoped-Attribut des<style>-Elements ist in Inhaltsdokumenten in Firefox 55+ hinter einer Präferenz (layout.css.scoped-style.enabled) versteckt, da es von keinem anderen Browser unterstützt wird. -
Unterstützung für den obskuren
MSThemeCompatibleWert des<meta>-Elementshttp-equiv-Attributs wurde aus Firefox entfernt. Kein anderer moderner Browser unterstützt es, und es verursachte Kompatibilitätsprobleme (Firefox-Bug 966240).
CSS
- Die proprietäre
:-moz-bound-elementPseudoklasse wurde entfernt (Firefox-Bug 1350147). - Der proprietäre
-moz-anchor-decorationWert vontext-decoration-linewurde entfernt (Firefox-Bug 1355734).
APIs
- Die Eigenschaft
UIEvent.isCharwurde nie von einem anderen Browser als Firefox unterstützt und nie vollständig implementiert außer auf macOS. Aus diesem Grund wurde sie in Firefox 55 entfernt, um sich mit anderen Browsern abzugleichen. - Die proprietäre Firefox OS Device Storage API wurde von der Plattform entfernt (Firefox-Bug 1299500).
- Der
aShowDialogParameter der nicht standardisiertenWindow.find()Methode (die angegeben werden konnte, um im Browser einen "Find"-Dialog zu öffnen) wurde entfernt (Firefox-Bug 1348409). - Die Methode
HTMLFormElement.requestAutoComplete()wurde entfernt (sieheHTMLFormElement) (Firefox-Bug 1270740). - Die nicht standardisierten, Mozilla-spezifischen WebRTC-Angebotsoptionen
mozDontOfferDataChannelundmozBundleOnlywurden aus demRTCOfferOptionsWörterbuch entfernt und werden nicht mehr vonRTCPeerConnection.createOffer()unterstützt (Firefox-Bug 1196974). - Die Unterstützung für die proprietäre Firefox OS
Audio Channels APIwurde ausHTMLMediaElementundAudioContextentfernt (Firefox-Bug 1358061).
SVG
- Die Schnittstellen
SVGZoomEventundSVGZoomEventswurden aus der SVG2-Spezifikation und Gecko entfernt, zusammen mit demonzoom <svg>Attribut (Firefox-Bug 1314388).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
- contextMenus.create()'s command property enables you to open browser action popups, page action popups, and sidebars from the context menu.
- proxy API
- chrome_settings_overrides key enables you to override the browser's homepage.
- browser_style property enables you to have browser-like styling for browser action popups, sidebars, and options pages.
- permissions API