Firefox 55 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
Entwicklerwerkzeuge
- Hinzufügen von Filterung von Netzwerk-Anfragen nach Spaltenwerten und anderen Eigenschaften (Firefox Bug 1041895, Firefox Bug 1354508, Firefox Bug 1354507) und durch Verwendung von regulären Ausdrücken (Firefox Bug 1354495).
- Möglichkeit, Spalten im Netzwerk-Monitor ein- und auszublenden (Firefox Bug 862855).
- Hinzufügen 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 nun 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). Siehe Unterschiede in der Markup-Generierung für weitere Details. - Aktivierung von
dom.forms.datetime
standardmäßig in Nightly (Firefox Bug 1366188).
CSS
- Das
transform-box
-Eigenschaft wurde standardmäßig freigegeben (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 Clamp-Größe inrepeat()
(Firefox Bug 1359060). - Die logischen Werte
inline-start
undinline-end
fürfloat
/clear
, die zuvor implementiert, aber in Release-Kanälen deaktiviert waren, sind nun 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 immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox Bug 1312328). - Die proprietäre
-moz-context-properties
-Eigenschaft wurde implementiert (Firefox Bug 1058040). - Null (0) Winkelwert ohne Maßeinheit wird in
linear-gradient()
nicht korrekt interpretiert (Firefox Bug 1363292). - Das
::cue
-Pseudoelement wird jetzt unterstützt; es stimmt mit Text-Cues innerhalb eines Medienelements überein (Firefox Bug 1318542).
SVG
- Das
<radialGradient>
fr
-Attribut wurde implementiert (Firefox Bug 1240275).
JavaScript
- Die Objekte
SharedArrayBuffer
undAtomics
sind jetzt standardmäßig aktiviert. Siehe Eine Kostprobe von JavaScripts neuen parallelen Primitiven für eine Einführung in JavaScripts geteilten Speicher und Atomics. - Der Restoperator (
...
) wird jetzt in Objektdestrukturierung unterstützt und der Spreizoperator (...
) funktioniert jetzt in Objektliteralen (ECMAScript-Vorschlag Stufe 3: Objektrest/-spreiz-Eigenschaften, Firefox Bug 1339395). - Asynchrone Generatormethoden 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 locale-spezifische Groß- und Kleinschreibung anzugeben (Firefox Bug 1318403). - Das
Intl.Collator
-Objekt unterstützt jetzt die OptioncaseFirst
(Firefox Bug 866473). - Die Intl API verwendet jetzt die Standardeinstellung des Browsers anstelle der des Betriebssystems, wenn keine Locale-Einstellung angegeben wird (Firefox Bug 1346674).
- Template Call Sites-Objekte sind jetzt pro Realm kanonisiert, basierend auf ihrer Liste von Rohzeichenfolgen (Firefox Bug 1108941).
TypedArray
-Konstruktoren (wieInt8Array
,Float32Array
, etc.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex
-Operation und erlauben Konstruktoren ohne Argumente, die null-längige typisierte 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 zu planen, die ausgeführt werden sollen, wenn der Browser entscheidet, dass genügend Zeit vor dem nächsten Neuzeichnen vorhanden 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 ist unter Nightly auf macOS verfügbar). Diese API stellt Virtual-Reality-Geräte - beispielsweise Head-Mounted Displays wie Oculus Rift oder HTC Vive - Web-Apps zur Verfügung, wodurch Entwickler Positions- und Bewegungsinformationen vom Display in Bewegungen in einem 3D-Szenario umsetzen und Inhalte in solche Displays präsentieren können.
- Die Intersection Observer API — die eine Möglichkeit bietet, Änderungen der Schnittmenge eines Zielelements mit einem Vorfahr-Element oder mit dem Ansichtsfenster eines Top-Level-Dokuments asynchron zu beobachten — wurde hinzugefügt (Firefox Bug 1321865).
DOM
- Die
Window
-EigenschaftenscrollX
undscrollY
(sowie ihre AliasepageXOffset
undpageYOffset
) wurden aktualisiert, um subpixelgenau zu sein. Anstelle einer Ganzzahl geben diese nun einen Gleitkommawert zurück, der die Scrollposition auf subpixel-genauen Displays genauer beschreibt (Firefox Bug 1151421). Falls erforderlich, können SieMath.round()
verwenden, um sie in Ganzzahlen umzuwandeln. MediaQueryList
(und andere verwandte Funktionen) wurden aktualisiert, um dem neuesten Spezifikationsstand zu entsprechen. Siehe Firefox Bug 1354441 und auchMediaQueryList
undMediaQueryListEvent
.- Methoden der
DOMTokenList
, die den Listwert ändern, trimmen nun automatisch Leerzeichen und entfernen doppelte Token (Firefox Bug 869788, siehe auch Trimmen von Leerzeichen und Entfernung von Duplikaten). - Die
maxLength
-Eigenschaft vonHTMLInputElement
kann nun dynamisch mit JavaScript geändert werden, nachdem das äquivalente HTML erstellt wurde (Firefox Bug 1352799). - Der
URL()
-Konstruktor kann keinenDOMString
mehr als Basis (2. Parameter) akzeptieren — er akzeptiert nur einenUSVString
. Es kann jedoch immer noch ein existierendesURL
-Objekt als Basis verwendet werden, welches sich zu demhref
-Attribut des Objekts stringifiziert (Firefox Bug 1368950).
DOM-Ereignisse
- Die von der Methode
Document.createEvent()
unterstützten Ereignistypen wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox Bug 1251198). - Der Wert der Eigenschaft
MessageEvent.origin
ist nun vom TypUSVString
, nichtDOMString
, und die EigenschaftMessageEvent.source
nimmt nun einenMessageEventSource
-Wert (der ein WindowProxy,MessagePort
oderServiceWorker
Objekt sein kann) (Firefox Bug 1311324). - Die Pinch-to-Zoom-Geste wurde nun auf das
wheel
-Ereignis plus die +Ctrl
-Taste abgebildet. Diese Abbildung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoom-Funktionalität mit der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Touchpads zu implementieren (Mausrad +Ctrl
zoomt normalerweise) (Firefox Bug 1052253).
Selection-API
-
Die Selection-API wurde aktualisiert, sodass sie hinsichtlich der Fokussierung von Editier-Hosts, wenn sich die Auswahl in ihnen bewegt, mit anderen Browsern gleichwertig ist (Firefox Bug 1318312). Siehe Verhalten der Selection-API hinsichtlich Änderungen der Fokussierung von Editier-Hosts für weitere Details.
-
Die
Selection
-API wurde aktualisiert, um einigen kürzlichen Spezifikationsänderungen zu entsprechen (Firefox Bug 1359371):- Die Parameter
offset
der Methodencollapse()
undextend()
sind jetzt optional. - Der
node
-Parameter der Methodecollapse()
ist jetzt nullable. - Der
partialContainment
-Parameter der MethodecontainsNode()
ist jetzt optional. - Die Methode
deleteFromDocument()
wurde hinzugefügt.
- Die Parameter
-
Ebenfalls in der
Selection
-API wurdenSelection.empty()
undSelection.setPosition()
als Aliase fürSelection.removeAllRanges()
undSelection.collapse()
hinzugefügt, aus Gründen der Webkompatibilität und der Gleichwertigkeit mit WebKit/Blink (Firefox Bug 1359387). -
Die Methoden
StorageManager.persist()
undStorageManager.persisted()
der Storage-API wurden implementiert und inWindow
-Kontexte aufgenommen (Firefox Bug 1286717).
Workers
- Workers und Shared Workers können jetzt 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 jetzt einer Mindestintervall-Drosselung für Tracking-Skripte in Hintergrundregisterkarten — siehe Drosselung von Tracking-Timeout-Skripten (Firefox Bug 1355311).
Service Worker/Push
- Nachrichten, die an Service Worker-Kontexte gesendet werden (z.B. als Ereignisobjekt von
onmessage
, werden nun durchMessageEvent
-Objekte repräsentiert, um der Konsistenz mit anderen Web-Messaging-Funktionen Rechnung zu tragen. - Die Methode
PushManager.subscribe()
akzeptiert nunArrayBuffer
s und Base64-kodierte Zeichenfolgen alsapplicationServerKey
-Werte (Firefox Bug 1337348).
Web Audio API
- Ein nicht-standardmäßiger Konstruktor (der einen Zeichenfolgen-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 noch nicht in Firefox unterstützt wird und derzeit ignoriert wird (Firefox Bug 1361475).
WebRTC
getUserMedia()
bietet nun standardmäßig einen Stereo-Audiostream, wenn das Quellgerät Stereo-Sound liefert. Unterstützung für die spezifische Anforderung von Mono-Eingaben wird ab Firefox 56 verfügbar sein. Dies funktioniert derzeit nur auf dem Desktop; mobiles Firefox unterstützt derzeit keine Stereo-Audioeingabequellen (Firefox Bug 971528).- Die
getUserMedia()
-Medieneigenschaften, -beschränkungen und -einstellungenautoGainControl
undnoiseSuppression
entsprechen jetzt der Spezifikation; früher waren siemoz
-geprefixed (Firefox Bug 1366415). - Bei Aufruf mit einem leeren Constraints-Set gab
getUserMedia()
irrtümlicherweiseNotSupportedError
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
RTCInboundRTPStreamStats
-Wörterbuchfeld, das frühermozRtt
genannt wurde, wurde inroundTripTime
umbenannt, um der Spezifikation zu entsprechen; zudem wurde sein Verhalten angepasst, um dem Standard zu entsprechen: Es enthält einen Gleitkommawert mit doppelter Genauigkeit, der die Rundlaufzeit basierend auf den RTCP-Zeitstempeln im RTCP-Empfängerbericht schätzt, gemessen in Sekunden (gemäß dem Algorithmus beschrieben in RFC 3550, Abschnitt 6.4.1). (Firefox Bug 1344970). Bitte beachten Sie jedoch, dass diese Eigenschaft bald in ein anderes Wörterbuch (RTCRemoteInboundRTPStreamStats
) verschoben wird (Firefox Bug 1380555). - Das
RTCRTPStreamStats
-Wörterbuch enthält nun die FelderfirCount
,pliCount
undnackCount
. Diese liefern niedrigstufige Informationen, die verwendet werden können, um die Zuverlässigkeit der Verbindung zu bestimmen (Firefox Bug 1348657). - Das
RTCOutboundRTPStreamStats
-Wörterbuch enthält nun das FeldframesEncoded
, das die Anzahl der erfolgreich kodierten Frames für den Stream angibt; mit diesen Informationen können Sie die Bildrate berechnen (Firefox Bug 1348657). - Auf Android gibt es jetzt eine Einstellung, um die Hardware-Videokodierung zu aktivieren, um die Leistung von Videoanrufen zu verbessern und den Akku zu schonen. Um standardmäßig aktiviert zu werden in Firefox 56 (Firefox Bug 1265755).
Verschlüsselte Medienerweiterungen API
- Firefox erlaubt 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 verlangt derzeit nicht, dass mindestens ein
MediaKeySystemCapabilities
-Objekt imsuggestedConfigurations
-Parameter enthalten ist, der inNavigator.requestMediaKeySystemAccess()
übergeben wird, was die Spezifikation vorschreibt. Ab Firefox 55 wird eine Warnung in der Webkonsole ausgegeben, wenn eine Audio- oder Videokonfiguration angegeben wird, ohne unterstützte Codecs anzugeben. Bald wird es eine Ausnahme auslösen, wenn keine gültige Konfiguration für ein oder mehrere auditive und visuelle Elemente enthalten ist (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 in sicheren Kontexten verfügbar (Firefox Bug 1072859).
- Die Storage-API ist jetzt nur in sicheren Kontexten verfügbar (Firefox Bug 1268804).
- Das Laden von gemischten Inhalten ist jetzt auf
localhost
erlaubt (Firefox Bug 903966). - Das Laden von JAR-Dateien von entfernten Standorten wurde erneut deaktiviert (Firefox Bug 1329336).
Plugins
- Flash-Inhalte sind jetzt „klick-zum-Aktivieren“ (Firefox Bug 1317856). Dies wurde sofort für alle Nutzer von Nightly umgesetzt und für 50 % der Beta-Nutzer. Für die Freigabeversion von Firefox 55 ist geplant, dies für 5 % der Nutzer 2 Wochen nach der Veröffentlichung zu aktivieren, für 25 % der Nutzer 4 Wochen nach der Veröffentlichung und für 100 % der Nutzer 6 Wochen nach der Veröffentlichung (Firefox Bug 1365714).
- Flash und andere Plugins können nicht mehr von jedem URL-Schema außer
http://
undhttps://
geladen werden (Firefox Bug 1335475).
Sonstiges
- Firefox unter Linux kann jetzt im Kopflos-Modus mit dem
-headless
-Flag betrieben werden (siehe Firefox Bug 1356681).
Entfernung von der Webplattform
HTML
-
Das
xml:base
-Attribut kann nicht mehr verwendet werden, um die Basis-URL für Pfade zu setzen, die imstyle
-Attribut erscheinen, z.B. —<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 einer Voreinstellung (layout.css.scoped-style.enabled
) versteckt, da es von keinem anderen Browser unterstützt wird. -
Die Unterstützung für den seltenen
MSThemeCompatible
-Wert deshttp-equiv
-Attributs des<meta>
-Elements wurde aus Gecko entfernt. Keine anderen modernen Browser unterstützen ihn und er verursachte Kompatibilitätsprobleme (Firefox Bug 966240).
CSS
- Die proprietäre
:-moz-bound-element
-Pseudoklasse 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 unter macOS. Aus diesem Grund wurde sie in Firefox 55 entfernt, um mit anderen Browsern übereinzustimmen. - Die proprietäre Firefox OS Device Storage API wurde von der Plattform entfernt (Firefox Bug 1299500).
- Der
aShowDialog
-Parameter der nicht-Standard-Window.find()
-Methode (die angegeben werden konnte, um einen "Suchen"-Dialog im Browser zu öffnen) wurde entfernt (Firefox Bug 1348409). - Die Methode
HTMLFormElement.requestAutoComplete()
wurde entfernt (sieheHTMLFormElement
) (Firefox Bug 1270740). - Die nicht-standardisierten, Mozilla-spezifischen WebRTC Angebotsoptionen
mozDontOfferDataChannel
undmozBundleOnly
wurden aus demRTCOfferOptions
-Wörterbuch entfernt und werden vonRTCPeerConnection.createOffer()
nicht mehr unterstützt (Firefox Bug 1196974). - Die Unterstützung für die proprietäre Firefox OS
Audio Channels API
wurde sowohl ausHTMLMediaElement
als auch ausAudioContext
entfernt (Firefox Bug 1358061).
SVG
- Die
SVGZoomEvent
undSVGZoomEvents
Schnittstellen wurden sowohl aus der SVG2-Spezifikation als auch aus Gecko entfernt, ebenso wie dasonzoom <svg>
-Attribut (Firefox Bug 1314388).
Änderungen für Add-on- und Mozilla-Entwickler
WebExtensions
- contextMenus.create()-Befehlseigenschaft ermöglicht es Ihnen, Browseraktions-Popups, Page-Aktions-Popups und Sidebars aus dem Kontextmenü zu öffnen.
- proxy API
- Der Schlüssel chrome_settings_overrides ermöglicht es Ihnen, die Startseite des Browsers zu überschreiben.
- Die Eigenschaft browser_style ermöglicht es Ihnen, browserähnliches Styling für Browseraktions-Popups, Sidebars und Optionsseiten zu haben.
- 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