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 Filtern für Netzwerk-Anfragen nach Spaltenwerten und anderen Eigenschaften (Firefox Bug 1041895, Firefox Bug 1354508, Firefox Bug 1354507) sowie durch reguläre Ausdrücke (Firefox Bug 1354495).
- Möglichkeit zum Anzeigen und Ausblenden von Spalten im Network Monitor hinzugefügt (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) im Network 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 an andere moderne Browser anzugleichen (Firefox Bug 1297414). Weitere Details siehe Unterschiede in der Markup-Generierung. - Aktivieren von
dom.forms.datetime
standardmäßig in Nightly (Firefox Bug 1366188).
CSS
- Das
transform-box
-Eigenschaft wurde standardmäßig freigelegt (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 volle Klammergröße inrepeat()
(Firefox Bug 1359060). - Die logischen Werte
inline-start
undinline-end
fürfloat
/clear
, die zuvor implementiert, aber in Freigabekanä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 das CSS Variablen-Feature immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox Bug 1312328). - Das firmeneigene
-moz-context-properties
-Eigenschaft wurde implementiert (Firefox Bug 1058040). - Ein Nullwinkelwert (0) ohne Grad-Einheit wird in
linear-gradient()
nicht korrekt interpretiert (Firefox Bug 1363292). - Das
::cue
Pseudo-Element wird jetzt unterstützt; es stimmt auf Text-Hinweise ab, die in einem Medien-Element präsentiert werden (Firefox Bug 1318542).
SVG
- Das
<radialGradient>
fr
Attribut wurde implementiert (Firefox Bug 1240275).
JavaScript
- Die
SharedArrayBuffer
undAtomics
Objekte sind 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 Rest-Operator (
...
) wird nun in Objektzerlegung unterstützt und der Spread-Operator (...
) funktioniert jetzt in Objektliteralen (ECMAScript Vorschlag Stufe 3: Object Rest/Spread Properties, Firefox Bug 1339395). - Async-Generator-Methoden werden jetzt unterstützt (Firefox Bug 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()
undString.prototype.toLocaleUpperCase()
unterstützen jetzt einen optionalenlocale
-Parameter, um einen Sprach-Tag für lokal spezifische Groß-/Kleinschreibungszuordnungen anzugeben (Firefox Bug 1318403). - Das
Intl.Collator
-Objekt unterstützt jetzt diecaseFirst
-Option (Firefox Bug 866473). - Die Intl API verwendet jetzt das standardmäßige Locale des Browsers anstelle des Betriebssystems, wenn keine Locale-Einstellung bereitgestellt wird (Firefox Bug 1346674).
- Template-Call-Sites-Objekte werden jetzt pro Realm kanonisiert, basierend auf ihrer Liste der Rohstrings (Firefox Bug 1108941).
TypedArray
Konstruktoren (wieInt8Array
,Float32Array
, etc.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex
-Operation und erlauben Konstruktoren ohne Argumente, die Arrays mit null Länge zurückgeben (Firefox Bug 1317383).
APIs
Neue APIs
- Die Collaborative Scheduling of Background Tasks API (auch bekannt als Hintergrundaufgaben-API oder
requestIdleCallback
API) 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 sollen, wenn der Browser feststellt, dass vor dem nächsten Neuladen freie Zeit vorhanden ist, damit Ihr Code diese Zeit nutzen kann, ohne sichtbare Leistungsprobleme zu verursachen (Firefox Bug 1314959). - Die WebVR 1.1 API ist nun standardmäßig unter Windows aktiviert (und auf macOS in Nightly verfügbar). Diese API gibt virtuelle Realität Geräte frei — wie zum Beispiel Head-Mounted Displays wie die Oculus Rift oder HTC Vive — für Web-Apps, sodass Entwickler die Position und Bewegungsinformationen vom Display in Bewegungen um eine 3D-Szene umsetzen und Inhalte in solchen Displays präsentieren können.
- Die Intersection Observer API — die eine Möglichkeit bietet, Änderungen im Schnittpunkt eines Ziels mit einem Vorfahren-Element oder mit dem Viewport eines top-level Dokuments asynchron zu beobachten — wurde hinzugefügt (Firefox Bug 1321865).
DOM
- Die
Window
EigenschaftenscrollX
undscrollY
(sowie ihre AliassepageXOffset
undpageYOffset
) wurden aktualisiert, um subpixelgenau zu sein. Statt einen ganzzahligen Wert zurückzugeben, geben sie nun einen Fließkommawert 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 zu konvertieren. MediaQueryList
und andere verwandte Funktionen wurden aktualisiert, um dem neuesten Standard zu entsprechen. Siehe Firefox Bug 1354441, und auchMediaQueryList
undMediaQueryListEvent
.- Methoden der
DOMTokenList
, die den Listenwert ändern, entfernen nun automatisch Leerzeichen und Duplikate (Firefox Bug 869788, siehe auch Trimming of whitespace and removal of duplicates). - Die
maxLength
-Eigenschaft desHTMLInputElement
kann jetzt dynamisch mit JavaScript geändert werden, nachdem das entsprechende HTML erstellt wurde (Firefox Bug 1352799). - Der
URL()
Konstruktor kann keinenDOMString
mehr als Basis (2. Parameter) akzeptieren — er akzeptiert nur noch einenUSVString
. Er kann immer noch ein bestehendesURL
Objekt als Basis verwenden, das sich selbst auf dashref
-Attribut des Objekts umformt (Firefox Bug 1368950).
DOM-Ereignisse
- Die von der Methode
Document.createEvent()
unterstützten Ereignistypen wurden entsprechend den neuesten DOM-Spezifikationen aktualisiert (Firefox Bug 1251198). - Der Wert der
MessageEvent.origin
Eigenschaft ist jetzt vom TypUSVString
, nichtDOMString
, und dieMessageEvent.source
Eigenschaft nimmt jetzt einenMessageEventSource
Wert an (der ein WindowProxy,MessagePort
, oderServiceWorker
Objekt sein kann) (Firefox Bug 1311324). - Die Pinch-to-Zoom-Geste wurde jetzt dem
wheel
Ereignis plus der +Strg
-Taste zugeordnet. Diese Zuordnung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoomfunktionen mittels der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Trackpads zu implementieren (Mausrad +Strg
zoomt üblicherweise) (Firefox Bug 1052253).
Selection API
-
Die Selection API wurde aktualisiert, sodass sie bei der Fokusveränderung von Editier-Hosts Parität mit anderen Browsern erreicht, wenn die Auswahl in diese hineinbewegt wird (Firefox Bug 1318312). Siehe Verhalten der Selection API bezüglich Änderungen des Fokus von Editier-Hosts für weitere Details.
-
Die
Selection
API wurde aktualisiert, um einige kürzliche Spezifikationsänderungen nachzuvollziehen (Firefox Bug 1359371):- Der
offset
-Parameter der Methodencollapse()
undextend()
ist jetzt optional. - Der
node
-Parameter der Methodecollapse()
ist jetzt nullfähig. - 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 Aliasse vonSelection.removeAllRanges()
undSelection.collapse()
hinzugefügt, aus Gründen der Webkompatibilität und zur Anpassung an WebKit/Blink (Firefox Bug 1359387). -
Die Methoden
StorageManager.persist()
undStorageManager.persisted()
der Storage API wurden implementiert und inWindow
-Kontexten verfügbar gemacht (Firefox Bug 1286717).
Workers
- Workers und Shared Workers können jetzt mit einer identifizierenden
name
-Eigenschaft erstellt werden. Siehe die KonstruktorenWorker()
undSharedWorker()
, sowie die InterfacesDedicatedWorkerGlobalScope
undSharedWorkerGlobalScope
. (Firefox Bug 1364297). Window.setTimeout()
,WorkerGlobalScope.setTimeout()
,Window.setInterval()
undWorkerGlobalScope.setInterval()
unterliegen jetzt einem minimalen Intervallthrottling für Tracking-Skripte in Hintergrund-Tabs — siehe Throttling von Tracking-Timeout-Skripten (Firefox Bug 1355311).
Service Workers/Push
- Nachrichten, die an Service-Worker-Kontext gesendet werden (z. B. als das Ereignisobjekt von
onmessage
, werden jetzt durchMessageEvent
-Objekte repräsentiert, um Konsistenz mit anderen Webnachrichtenfunktionen zu erreichen. - Die Methode
PushManager.subscribe()
akzeptiert jetztArrayBuffer
s und Base64-encoded Strings alsapplicationServerKey
-Werte (Firefox Bug 1337348).
Web Audio API
- Ein nicht-standardmäßiger Konstruktor (der einen String Enum-Wert akzeptierte, um den Verwendungszweck für den Kontext anzugeben) des
AudioContext
-Interfaces warf 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 jetzt standardmäßig einen Stereo-Audiostream, wenn das Quellgerät Stereo-Sound bietet; Unterstützung, um speziell Mono-Eingang anzufordern, kommt in Firefox 56. Dies funktioniert derzeit nur auf Desktop; Mobile Firefox unterstützt derzeit keine Stereo-Audioquellen (Firefox Bug 971528).- Die Eigenschaften
autoGainControl
undnoiseSuppression
der Fähigkeiten, Einschränkungen und Einstellungen vongetUserMedia()
stimmen nun mit der Spezifikation überein; früher waren siemoz
-geprefixed (Firefox Bug 1366415). - Wenn
getUserMedia()
mit einem leeren Satz von Einschränkungen aufgerufen wurde, gab es 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
RTCInboundRTPStreamStats
-Dictionary-Feld, das frühermozRtt
genannt wurde, wurde inroundTripTime
umbenannt, um der Spezifikation zu entsprechen; zusätzlich wurde sein Verhalten angepasst, um dem Standard zu entsprechen: Es enthält einen doppelt genauen Fließkommawert, der die Round-Trip-Zeit basierend auf den RTCP-Zeitstempeln im RTCP Receiver Report misst, gemessen in Sekunden (nach dem Algorithmus beschrieben in RFC 3550, Abschnitt 6.4.1). (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 jetzt die FelderfirCount
,pliCount
, undnackCount
. Diese geben niederstufige Informationen zurück, die zur Beurteilung der Verbindungszuverlässigkeit verwendet werden können (Firefox Bug 1348657). - Das
RTCOutboundRTPStreamStats
-Dictionary enthä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). - Auf Android gibt es jetzt eine pref, um die Hardware-Videoenkodierung einzuschalten, um die Leistung von Videoanrufen zu verbessern und den Akku zu schonen. Soll in Firefox 56 standardmäßig aktiviert werden (Firefox Bug 1265755).
Encrypted Media Extensions API
- Firefox erlaubt derzeit die Nutzung 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 die Webkonsole ausgegeben, wenn dies geschieht. (Firefox Bug 1361000).
- Firefox erfordert derzeit nicht, dass mindestens ein
MediaKeySystemCapabilities
-Objekt in densuggestedConfigurations
-Parameter aufgenommen wird, der anNavigator.requestMediaKeySystemAccess()
übergeben wird, was die Spezifikation vorschreibt. Ab Firefox 55 wird eine Warnung in der Webkonsole ausgegeben, wenn eine Audio- oder Videokonfiguration ohne Angabe unterstützter Codecs spezifiziert wird. Bald wirft das Versäumnis, eine gültige Konfiguration für ein oder mehrere von Audio und Video anzugeben, eine Ausnahme Firefox Bug 1368683).
WebGL
- Die
WEBGL_compressed_texture_s3tc_srgb
Erweiterung ist jetzt 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 von gemischten Inhalten ist jetzt auf localhost erlaubt (Firefox Bug 903966).
- Das Laden von Remote-JAR-Dateien wurde wieder deaktiviert (Firefox Bug 1329336).
Plugins
- Flash-Inhalte sind jetzt "klicken-zum-aktiveren" (Firefox Bug 1317856). Dies wurde sofort für alle Nightly-Benutzer und 50% der Beta-Benutzer umgesetzt. Für die Firefox 55-Version ist geplant, dies 2 Wochen nach der Veröffentlichung für 5% der Benutzer, 4 Wochen nach der Veröffentlichung für 25% und 6 Wochen nach der Veröffentlichung für 100% der Benutzer zu aktivieren (Firefox Bug 1365714).
- Flash und andere Plugins können nicht mehr aus einem anderen URL-Schema als
http://
undhttps://
geladen werden (Firefox Bug 1335475).
Sonstiges
- Firefox unter Linux kann jetzt im Headless-Modus mit dem Flag
-headless
ausgeführt werden (siehe Firefox Bug 1356681).
Entfernungen aus der Webplattform
HTML
-
Das
xml:base
Attribut kann nicht mehr verwendet werden, um die Basis-URL für Pfade imstyle
Attribut zu setzen, zum Beispiel —<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>
(Firefox Bug 1350521). -
Das
scoped
Attribut des<style>
Elements wurde hinter einem Pref (layout.css.scoped-style.enabled
) in Inhalt-Dokumenten in Firefox 55+ versteckt, 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. Keine anderen modernen Browser unterstützen es und es verursachte Kompatibilitätsprobleme (Firefox Bug 966240).
CSS
- Die firmeneigene
:-moz-bound-element
Pseudo-Klasse wurde entfernt (Firefox Bug 1350147). - Der firmeneigene
-moz-anchor-decoration
Wert vontext-decoration-line
wurde entfernt (Firefox Bug 1355734).
APIs
- Die
UIEvent.isChar
Eigenschaft wurde nie von einem anderen Browser als Firefox unterstützt und war nie vollständig implementiert außer auf macOS. Aus diesem Grund wurde sie in Firefox 55 entfernt, um sich an andere Browser anzupassen. - 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 (die angegeben werden konnte, um ein "Find"-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
-Objekt 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 vonHTMLMediaElement
undAudioContext
entfernt (Firefox Bug 1358061).
SVG
- Die
SVGZoomEvent
undSVGZoomEvents
Schnittstellen 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
- Die
command
-Eigenschaft von contextMenus.create() ermöglicht es Ihnen, Browser-Aktions-Popups, Seiten-Aktions-Popups und Sidebars über das Kontextmenü zu öffnen. - proxy API
- Der Schlüssel
chrome_settings_overrides
ermöglicht es Ihnen, die Startseite des Browsers zu überschreiben. - Die
browser_style
-Eigenschaft ermöglicht es, Browser-ähnliches Styling für Browser-Aktions-Popups, Sidebars und Optionsseiten zu haben. - permissions API
Ältere Versionen
- Firefox 54 for developers
- Firefox 53 for developers
- Firefox 52 for developers
- Firefox 51 for developers
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers