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überwachung anzuzeigen 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 (vorherige 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 auf den neuesten Stand mit anderen modernen Browsern zu bringen (Firefox Bug 1297414). Siehe Unterschiede in der Markup-Generierung für weitere Details. dom.forms.datetime
ist standardmäßig in Nightly aktiviert (Firefox Bug 1366188).
CSS
- Die Eigenschaft
transform-box
ist jetzt standardmäßig verfügbar (Firefox Bug 1208550). - Die
frames()
Timing-Funktion wurde implementiert (Firefox Bug 1248340). - Die Eigenschaft
text-justify
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
inline-start
undinline-end
der Eigenschaftenfloat
/clear
, die vorher implementiert, aber in den Release-Kanälen deaktiviert waren, sind jetzt standardmäßig in allen Kanälen verfügbar (Firefox Bug 1253919). - Die
layout.css.variables.enabled
-Einstellung wurde vollständig entfernt, was bedeutet, dass das CSS-Variablen Feature jetzt immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox Bug 1312328). - Das proprietäre
-moz-context-properties
wurde implementiert (Firefox Bug 1058040). - Der Winkelwert Null (0) ohne Einheit wird in
linear-gradient()
nicht korrekt interpretiert (Firefox Bug 1363292). - Das
::cue
Pseudoelement wird nun unterstützt; es stimmt mit Textmarkierungen überein, die in einem Medienelement präsentiert werden (Firefox Bug 1318542).
SVG
- Das
<radialGradient>
fr
-Attribut wurde implementiert (Firefox Bug 1240275).
JavaScript
- Die Objekte
SharedArrayBuffer
undAtomics
sind jetzt standardmäßig aktiviert. Siehe Ein Vorgeschmack auf Javascripts neue Parallelprimitiven für eine Einführung in JavaScript Shared Memory und Atomics. - Der Rest-Operator (
...
) wird nun in Objekt-Destrukturierung unterstützt, und der Spread-Operator (...
) funktioniert jetzt in Objekt-Literalen (ECMAScript Vorschlag: Object Rest/Spread Properties, Firefox Bug 1339395). - Asynchrone Generatormethoden werden nun unterstützt (Firefox Bug 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()
undString.prototype.toLocaleUpperCase()
unterstützen jetzt einen optionalenlocale
-Parameter, um ein Sprachkennzeichen für gebietsspezifische Fallzuordnungen anzugeben (Firefox Bug 1318403). - Das Objekt
Intl.Collator
unterstützt nun die OptioncaseFirst
(Firefox Bug 866473). - Die Intl API verwendet nun das Standardgebietsschema des Browsers anstelle des Standardgebietsschemas des Betriebssystems, wenn keine Gebietsschema-Einstellung angegeben wird (Firefox Bug 1346674).
- Vorlagenaufrufstellenobjekte werden jetzt pro Realm kanonisiert, basierend auf ihrer Liste der Rohstrings (Firefox Bug 1108941).
TypedArray
-Konstruktoren (wieInt8Array
,Float32Array
, usw.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex
-Operation und erlauben Konstruktoren ohne Argumente, die typisierte Arrays mit der Länge Null zurückgeben (Firefox Bug 1317383).
APIs
Neue APIs
- Die API für die kooperative Planung von Hintergrundaufgaben (auch bekannt als Background Tasks API oder
requestIdleCallback
API) ist jetzt standardmäßig aktiviert, nachdem sie seit Firefox 53 hinter einer Einstellung 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 Neuzeichnen 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 ist in Nightly unter macOS verfügbar). Diese API stellt virtuelle Realitätsgeräte – beispielsweise head-mounted Displays wie Oculus Rift oder HTC Vive – Web-Apps zur Verfügung und ermöglicht es Entwicklern, Positions- und Bewegungsinformationen des Displays in Bewegungen in einer 3D-Szene zu übersetzen und Inhalte in solchen Displays darzustellen.
- Die Intersection Observer API — die eine Möglichkeit bietet, Änderungen des Schnittpunkts eines Ziel-Elements mit einem Vorfahren-Element oder mit dem Ansichtsfenster eines top-level Dokuments asynchron zu beobachten — wurde hinzugefügt (Firefox Bug 1321865).
DOM
- Die Eigenschaften
scrollX
undscrollY
desWindow
(sowie deren AliasepageXOffset
undpageYOffset
) sind jetzt Unterpixel-genau. Anstelle einer ganzen Zahl geben diese jetzt einen Gleitkommawert zurück, der die Scrollposition auf Unterpixel-genauen 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, sowieMediaQueryList
undMediaQueryListEvent
.- Methoden der
DOMTokenList
, die den Listenwert ändern, trimmen nun automatisch Leerzeichen und entfernen doppelte Token (Firefox Bug 869788, siehe auch Trimming von Leerzeichen und Entfernung von Duplikaten). - Die
maxLength
-Eigenschaft desHTMLInputElement
kann jetzt dynamisch mit JavaScript geändert werden, nachdem das äquivalente HTML erstellt wurde (Firefox Bug 1352799). - Der
URL()
-Konstruktor kann keineDOMString
mehr als seine Basis (2. Parameter) akzeptieren — er akzeptiert nurUSVString
. Es kann weiterhin ein bestehendesURL
-Objekt für die Basis verwendet werden, das sich in dashref
-Attribut des Objekts umwandelt (Firefox Bug 1368950).
DOM-Ereignisse
- Die vom
Document.createEvent()
-Methode unterstützten Ereignistypen wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox Bug 1251198). - Der Wert der
MessageEvent.origin
-Eigenschaft ist jetzt vom TypUSVString
, nichtDOMString
, und dieMessageEvent.source
-Eigenschaft verwendet nun einenMessageEventSource
-Wert (der ein WindowProxy,MessagePort
oderServiceWorker
-Objekt sein kann) (Firefox Bug 1311324). - Die Geste "Pinch-to-Zoom" wurde nun auf das
wheel
-Ereignis plus dieStrg
-Taste abgebildet. Diese Abbildung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoom-Funktionalitäten mit 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, um die Fokussierung von Editierhosts mit anderen Browsern abzugleichen, wenn die Auswahl in diese bewegt wird (Firefox Bug 1318312). Siehe Verhalten der Selection-API in Bezug auf Änderungen der Editierhost-Fokussierung für mehr Details.
-
Die
Selection
API wurde aktualisiert, um einige kürzliche spezifikationsbedingte Änderungen widerzuspiegeln (Firefox Bug 1359371):- Die
offset
-Parameter 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
-
Ebenfalls in der
Selection
API wurdenSelection.empty()
undSelection.setPosition()
als Aliase fürSelection.removeAllRanges()
undSelection.collapse()
hinzugefügt, um die Kompatibilität mit dem Web und die Parität mit WebKit/Blink sicherzustellen (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 SchnittstellenDedicatedWorkerGlobalScope
undSharedWorkerGlobalScope
. (Firefox Bug 1364297). Window.setTimeout()
,WorkerGlobalScope.setTimeout()
,Window.setInterval()
undWorkerGlobalScope.setInterval()
unterliegen nun einem Mindestintervall-Drosselung für Tracking-Skripte in Hintergrund-Tabs — siehe Drosselung von Tracking-Timeout-Skripten (Firefox Bug 1355311).
Service Workers/Push
- Nachrichten, die an Service-Worker-Kontexte gesendet werden (z. B. als Ereignisobjekt von
onmessage
), werden nun durchMessageEvent
-Objekte dargestellt, um Konsistenz mit anderen Web-Messaging-Funktionen zu gewährleisten. - Die Methode
PushManager.subscribe()
akzeptiert nunArrayBuffer
s und Base64-codierte Strings alsapplicationServerKey
-Werte (Firefox Bug 1337348).
Web Audio API
- Ein nicht-standardmäßiger Konstruktor (der einen String-Enum-Wert akzeptierte, der den Zweck angibt, für den der Kontext verwendet werden würde) für die
AudioContext
-Schnittstelle verursachte Fehler, wenn deroptions
-Parameter bereitgestellt wurde. Wir haben den nicht-standardmäßigen Konstruktor entfernt. Beachten Sie jedoch, dass deroptions
-Parameter derzeit in Firefox nicht unterstützt wird und ignoriert wird (Firefox Bug 1361475).
WebRTC
getUserMedia()
liefert jetzt einen Stereo-Audiostream standardmäßig, wenn das Quellgerät Stereo-Sound bereitstellt; die Unterstützung für gezielt monomatischen Eingang wird in Firefox 56 kommen. Dies funktioniert derzeit nur auf dem Desktop; mobiler Firefox unterstützt derzeit keine Stereo-Audioeingangsquellen (Firefox Bug 971528).- Die
getUserMedia()
Medienfähigkeit-, Einschränkungen- und EinstellungenautoGainControl
undnoiseSuppression
entsprechen jetzt der Spezifikation; früher waren siemoz
-geprägt (Firefox Bug 1366415). - Wenn mit einem leeren Einschränkungssatz aufgerufen, 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
RTCInboundRTPStreamStats
-Dictionary-Feld, frühermozRtt
genannt, 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 Gleitkommawert, der die Round-Trip-Zeit basierend auf den RTCP-Zeitstempeln im RTCP-Empfängerbericht schätzt, gemessen in Sekunden (gemäß dem in RFC 3550, Abschnitt 6.4.1 beschriebenen Algorithmus). (Firefox Bug 1344970). Es sollte jedoch darauf hingewiesen werden, dass diese Eigenschaft bald zu einem anderen Dictionary (RTCRemoteInboundRTPStreamStats
) verschoben wird (Firefox Bug 1380555). - Das
RTCRTPStreamStats
-Dictionary enthält jetzt die FelderfirCount
,pliCount
undnackCount
. Diese geben Niedriglevel-Informationen zurück, die verwendet werden können, um zu bestimmen, wie zuverlässig die Verbindung ist (Firefox Bug 1348657). - Das
RTCOutboundRTPStreamStats
-Dictionary enthält jetzt das FeldframesEncoded
, das die Anzahl der Frames meldet, die erfolgreich für den Stream codiert wurden; mit diesen Informationen können Sie die Bildrate berechnen (Firefox Bug 1348657). - Auf Android gibt es jetzt eine Einstellmöglichkeit, um die Hardware-Videocodierung zu aktivieren, um die Leistung von Videoanrufen zu verbessern und die Akkulaufzeit zu verlängern. Wird standardmäßig in Firefox 56 aktiviert (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 zugelassen ist. Dies wird in naher Zukunft geändert, und ab Firefox 55 werden Deprecation-Warnungen auf die Webkonsole ausgegeben, wenn dies geschieht. (Firefox Bug 1361000).
- Derzeit erfordert Firefox nicht, dass mindestens ein
MediaKeySystemCapabilities
-Objekt im ParametersuggestedConfigurations
enthalten ist, der anNavigator.requestMediaKeySystemAccess()
übergeben wird, was die Spezifikation vorschreibt. Ab Firefox 55 wird eine Warnung an die Webkonsole ausgegeben, wenn eine Audio- oder Videokonfiguration angegeben ist, ohne unterstützte Codecs anzugeben. Bald wird das Nicht-Einschließen einer gültigen Konfiguration für Audio und/oder Video eine Ausnahme auslösen (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 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 nun auf
localhost
erlaubt (Firefox Bug 903966). - Das Laden von remote JAR-Dateien wurde erneut deaktiviert (Firefox Bug 1329336).
Plugins
- Flash-Inhalte sind jetzt "klick-zum-Aktivieren" (Firefox Bug 1317856). Dies wurde sofort für alle Benutzer von Nightly in Kraft gesetzt, und 50 % der Beta-Benutzer. Für die Release-Version von Firefox 55 ist geplant, dies für 5 % der Benutzer 2 Wochen nach der Veröffentlichung, für 25 % der Benutzer 4 Wochen nach der Veröffentlichung und für 100 % der Benutzer 6 Wochen nach der Veröffentlichung zu aktivieren (Firefox Bug 1365714).
- Flash und andere Plugins können nicht mehr von einem anderen URL-Schema als
http://
undhttps://
geladen werden (Firefox Bug 1335475).
Sonstiges
- Firefox unter Linux kann jetzt im sogenannten Headless-Modus mit dem
-headless
-Flag ausgeführt werden (siehe Firefox Bug 1356681).
Entfernungen aus der Web-Plattform
HTML
-
Das Attribut
xml:base
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 wurde in Inhaltsdokumenten in Firefox 55+ hinter einer Einstellung (layout.css.scoped-style.enabled
) versteckt, da es von keinem anderen Browser unterstützt wird. -
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 in Einklang zu stehen. - Die proprietäre Firefox OS Device Storage API wurde von der Plattform entfernt (Firefox Bug 1299500).
- Der
aShowDialog
-Parameter der nicht standardmäßigenWindow.find()
-Methode (der angegeben werden konnte, um ein Suchdialog 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 Angeboten Optionen
mozDontOfferDataChannel
undmozBundleOnly
wurden aus demRTCOfferOptions
-Dictionary entfernt und werden vonRTCPeerConnection.createOffer()
nicht mehr unterstützt (Firefox Bug 1196974). - Unterstützung für die proprietäre Firefox OS
Audio Channels API
wurde ausHTMLMediaElement
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 Ihnen, Browser-Aktions-Popups, Page-Aktions-Popups und Sidebars aus dem Kontextmenü zu öffnen. - proxy API
- Der chrome_settings_overrides Schlüssel ermöglicht Ihnen, die Startseite des Browsers zu überschreiben.
- Die
browser_style
-Eigenschaft ermöglicht Ihnen, browserartige Stile für Browser-Aktions-Popups, Sidebars und Optionenseiten 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