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
- Hinzufügen der Filterung von Netzwerk-Anfragen nach Spaltenwerten und anderen Eigenschaften (Firefox-Bug 1041895, Firefox-Bug 1354508, Firefox-Bug 1354507) sowie unter Verwendung von regulären Ausdrücken (Firefox-Bug 1354495).
- Es ist jetzt möglich, Spalten im Netzwerk-Monitor ein- und auszublenden (Firefox-Bug 862855).
- Hinzufügung von Remote-IP (Firefox-Bug 1344523), Protokoll (Firefox-Bug 1345489), Schema (Firefox-Bug 1356867), Cookies und Set-Cookies-Spalten (Firefox-Bug 1356869) zum Netzwerk-Monitor.
- Der
SourceMap
HTTP-Header wird jetzt unterstützt (frühere Versionen unterstützten den veraltetenX-SourceMap
-Header, siehe Firefox-Bug 1346936).
HTML
- Elemente, bei denen
contenteditable
auftrue
gesetzt wurde, verwenden nun<div>
-Elemente, um verschiedene Textzeilen zu trennen, um Firefox mit anderen modernen Browsern gleichzustellen (Firefox-Bug 1297414). Weitere Informationen finden Sie unter Unterschiede in der Markup-Generierung. dom.forms.datetime
ist nun standardmäßig in Nightly aktiviert (Firefox-Bug 1366188).
CSS
- Die
transform-box
-Eigenschaft ist nun standardmäßig verfügbar (Firefox-Bug 1208550). - Die
frames()
-Timing-Funktion wurde implementiert (Firefox-Bug 1248340). - Die
text-justify
-Eigenschaft wurde implementiert (Firefox-Bug 1343512, Firefox-Bug 276079). - [css-grid]
fit-content
reserviert unerwartet Platz für die vollständige Klammergröße inrepeat()
(Firefox-Bug 1359060). - Die logischen Werte
float
/clear
—inline-start
undinline-end
—, die zuvor implementiert waren, aber in Release-Kanälen deaktiviert waren, sind jetzt standardmäßig in allen Kanälen verfügbar (Firefox-Bug 1253919). - Die Einstellung
layout.css.variables.enabled
wurde vollständig entfernt, was bedeutet, dass die Funktion CSS-Variablen jetzt 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 Winkelwert von Null (0) ohne Grad-Einheit wird in
linear-gradient()
nicht korrekt interpretiert (Firefox-Bug 1363292). - Das
::cue
-Pseudoelement wird jetzt unterstützt; es trifft auf Text-Cues zu, die innerhalb eines Medienelements angezeigt werden (Firefox-Bug 1318542).
SVG
- Das
<radialGradient>
-Attributfr
wurde implementiert (Firefox-Bug 1240275).
JavaScript
- Die Objekte
SharedArrayBuffer
undAtomics
sind jetzt standardmäßig aktiviert. Sehen Sie sich Eine Einführung in JavaScripts neue parallele Primitiven an für eine Einführung in JavaScripts geteilten Speicher und Atomics. - Der Rest-Operator (
...
) wird jetzt bei der Objektdestructuring unterstützt und der Spread-Operator (...
) funktioniert jetzt bei Objektliteralen (Stage 3 ECMAScript-Vorschlag: Object Rest/Spread Eigenschaften, Firefox-Bug 1339395). - Asynchrone Generatormethoden werden jetzt unterstützt (Firefox-Bug 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()
undString.prototype.toLocaleUpperCase()
unterstützen jetzt ein optionaleslocale
-Parameter zur Angabe eines Sprachcodes für lokalspezifische Umwandlungen (Firefox-Bug 1318403). - Das
Intl.Collator
-Objekt unterstützt jetzt die OptioncaseFirst
(Firefox-Bug 866473). - Die Intl API verwendet nun die Standard-Lokalisierung des Browsers anstelle der des Betriebssystems, wenn keine Lokalisierung angegeben wird (Firefox-Bug 1346674).
- Template-Aufrufstellenobjekte werden nun pro Realm basierend auf ihrer Liste roher Zeichenfolgen kanonisiert (Firefox-Bug 1108941).
- Die Konstruktoren von
TypedArray
(wieInt8Array
,Float32Array
, usw.) wurden auf ES2017 aktualisiert. Sie verwenden nun dieToIndex
-Operation und erlauben Konstruktoren ohne Argumente, die null-lange getypte Arrays zurückgeben (Firefox-Bug 1317383).
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
- Die
Window
-EigenschaftenscrollX
undscrollY
(sowie ihre AliasepageXOffset
undpageYOffset
) wurden aktualisiert, um subpixial präzise zu sein. Anstelle eines Integers geben diese nun einen Gleitkommawert zurück, der die Scrollposition auf subpixial-präzisen Displays genauer beschreibt (Firefox-Bug 1151421). Bei Bedarf können SieMath.round()
verwenden, um sie in ganze Zahlen zu konvertieren. MediaQueryList
(und andere verwandte Funktionen) wurden aktualisiert, um der neuesten Spezifikation zu entsprechen. Siehe Firefox-Bug 1354441 und auchMediaQueryList
sowieMediaQueryListEvent
.- Methoden der
DOMTokenList
, die den Listenwert modifizieren, trimmen jetzt automatisch Leerzeichen und entfernen doppelte Tokens (Firefox-Bug 869788, siehe auch Trimming von Leerzeichen und Entfernen von Duplikaten). - Die
maxLength
-Eigenschaft vonHTMLInputElement
kann jetzt mit JavaScript dynamisch verändert werden, nachdem das entsprechende HTML erstellt wurde (Firefox-Bug 1352799). - Der
URL()
-Konstruktor kann keinDOMString
mehr als Basis (2. Parameter) akzeptieren — er akzeptiert nur noch einUSVString
. Er kann immer noch ein vorhandenesURL
-Objekt als Basis verwenden, welches sich in das Attributhref
des Objekts umwandelt (Firefox-Bug 1368950).
DOM-Ereignisse
- Die Ereignistypen, die von der Methode
Document.createEvent()
unterstützt werden, wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox-Bug 1251198). - Der Wert der Eigenschaft
MessageEvent.origin
ist jetzt vom TypUSVString
, nichtDOMString
; und die EigenschaftMessageEvent.source
akzeptiert nun einenMessageEventSource
-Wert (der ein WindowProxy,MessagePort
oderServiceWorker
Objekt sein kann) (Firefox-Bug 1311324). - Die Pinch-to-Zoom-Geste wurde nun dem
wheel
-Ereignis plus der +Strg
-Taste zugeordnet. Diese Zuordnung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoom-Funktionalitäten unter Verwendung der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Trackpads (Mausrad +Strg
zoomt normalerweise) zu implementieren (Firefox-Bug 1052253).
Auswahl-API
-
Die Auswahl-API wurde aktualisiert, sodass sie in Bezug auf die Fokussierung von Bearbeitungskontexten beim Verschieben der Auswahl mit anderen Browsern gleichwertig ist (Firefox-Bug 1318312). Weitere Details finden Sie unter Verhalten der Auswahl-API in Bezug auf Fokusänderungen des Bearbeitungskontexts.
-
Die
Selection
-API wurde aktualisiert, um einige aktuelle Spezifikationsänderungen zu übernehmen (Firefox-Bug 1359371):- Der
offset
-Parameter der Methodencollapse()
undextend()
ist jetzt optional. - Der
node
-Parameter der Methodecollapse()
ist jetzt nullable. - Der
partialContainment
-Parameter der MethodecontainsNode()
ist jetzt optional. - Die Methode
deleteFromDocument()
wurde hinzugefügt.
- Der
-
Ebenfalls in der
Selection
-API wurdenSelection.empty()
undSelection.setPosition()
als Aliase fürSelection.removeAllRanges()
undSelection.collapse()
hinzugefügt, aus Gründen der Web-Kompatibilität und der Parität mit WebKit/Blink (Firefox-Bug 1359387). -
Die Methoden
StorageManager.persist()
undStorageManager.persisted()
der Storage-API wurden implementiert und sind nun inWindow
-Kontexten verfügbar (Firefox-Bug 1286717).
Workers
- Workers und Shared Workers können nun mit einer identifizierenden
name
Eigenschaft erstellt werden. Siehe die KonstruktorenWorker()
undSharedWorker()
, sowie die SchnittstellenDedicatedWorkerGlobalScope
undSharedWorkerGlobalScope
. (Firefox-Bug 1364297). Window.setTimeout()
,WorkerGlobalScope.setTimeout()
,Window.setInterval()
undWorkerGlobalScope.setInterval()
unterliegen nun einem Mindestintervall-Throttling für Tracking-Skripte in Hintergrund-Tabs — siehe Throttling von Tracking-Timeout-Skripten (Firefox-Bug 1355311).
Service Workers/Push
- Nachrichten, die an Service-Worker-Kontexte gesendet werden (z. B. als das Ereignisobjekt von
onmessage
), werden jetzt durchMessageEvent
Objekte repräsentiert, um Konsistenz mit anderen Web-Messaging-Funktionen sicherzustellen. - Die Methode
PushManager.subscribe()
akzeptiert jetztArrayBuffer
s und Base64-kodierte Zeichenfolgen alsapplicationServerKey
-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 deroptions
-Parameter bereitgestellt wurde. Wir haben den nicht standardmäßigen Konstruktor entfernt. Bitte beachten Sie jedoch, dass deroptions
-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 settingsautoGainControl
undnoiseSuppression
stimmen nun mit der Spezifikation überein; zuvor waren sie mitmoz
-Präfix (Firefox-Bug 1366415). - Bei einem Aufruf mit einem leeren Constraints-Set gab
getUserMedia()
fälschlicherweiseNotSupportedError
stattTypeError
zurück. Dies wurde behoben (Firefox-Bug 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded
,pliCount
,nackCount
undfirCount
(Firefox-Bug 1348657). - Das Feld des
RTCInboundRTPStreamStats
-Dictionary, das frühermozRtt
genannt wurde, wurde inroundTripTime
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 FelderfirCount
,pliCount
undnackCount
. 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 FeldframesEncoded
, 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 imsuggestedConfigurations
-Parameter enthalten ist, der anNavigator.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
- Die Erweiterung
WEBGL_compressed_texture_s3tc_srgb
ist nun für WebGL und WebGL2 Kontexte verfügbar (Firefox-Bug 1325113).
Sicherheit
- Die Geolocation API ist jetzt nur noch für sichere Kontexte verfügbar (Firefox-Bug 1072859).
- Die Storage API ist jetzt nur noch für sichere Kontexte verfügbar (Firefox-Bug 1268804).
- Das Laden gemischter Inhalte ist nun auf Localhost erlaubt (Firefox-Bug 903966).
- Das Laden von JAR-Dateien aus der Ferne ist erneut deaktiviert worden (Firefox-Bug 1329336).
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://
undhttps://
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 imstyle
-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 deshttp-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
- Die proprietäre
:-moz-bound-element
Pseudo-Klasse wurde entfernt (Firefox-Bug 1350147). - Der proprietäre
-moz-anchor-decoration
Wert vontext-decoration-line
wurde entfernt (Firefox-Bug 1355734).
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äßigenWindow.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 (sieheHTMLFormElement
) (Firefox-Bug 1270740). - Die nicht standardmäßigen, Mozilla-spezifischen WebRTC-Angebotsoptionen
mozDontOfferDataChannel
undmozBundleOnly
wurden aus demRTCOfferOptions
-Dictionary entfernt und werden vonRTCPeerConnection.createOffer()
nicht mehr unterstützt (Firefox-Bug 1196974). - Die Unterstützung für die proprietäre
Audio Channels API
von Firefox OS wurde ausHTMLMediaElement
undAudioContext
entfernt (Firefox-Bug 1358061).
SVG
- Die Schnittstellen
SVGZoomEvent
undSVGZoomEvents
wurden 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()'-Befehleigenschaft ermöglicht es, Browser-Action-Popups, Seiten-Aktions-Popups und Seitenleisten im Kontextmenü zu öffnen.
- proxy API
- chrome_settings_overrides-Schlüssel ermöglicht es, die Startseite des Browsers zu überschreiben.
- Die browser_style-Eigenschaft ermöglicht es, browserähnliche Stile für Browser-Action-Popups, Seitenleisten und Optionsseiten zu nutzen.
- permissions API
Ältere Versionen
- Firefox 54 für Entwickler
- Firefox 53 für Entwickler
- Firefox 52 für Entwickler
- Firefox 51 für Entwickler
- Firefox 50 für Entwickler
- Firefox 49 für Entwickler
- Firefox 48 für Entwickler
- Firefox 47 für Entwickler
- Firefox 46 für Entwickler
- Firefox 45 für Entwickler
- Firefox 44 für Entwickler
- Firefox 43 für Entwickler
- Firefox 42 für Entwickler
- Firefox 41 für Entwickler
- Firefox 40 für Entwickler
- Firefox 39 für Entwickler
- Firefox 38 für Entwickler
- Firefox 37 für Entwickler
- Firefox 36 für Entwickler
- Firefox 35 für Entwickler
- Firefox 34 für Entwickler
- Firefox 33 für Entwickler
- Firefox 32 für Entwickler
- Firefox 31 für Entwickler
- Firefox 30 für Entwickler
- Firefox 29 für Entwickler
- Firefox 28 für Entwickler
- Firefox 27 für Entwickler
- Firefox 26 für Entwickler
- Firefox 25 für Entwickler
- Firefox 24 für Entwickler