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 der Filterung von Netzwerkanfragen nach Spaltenwerten und anderen Eigenschaften (Firefox Fehler 1041895, Firefox Fehler 1354508, Firefox Fehler 1354507) und durch die Verwendung regulärer Ausdrücke (Firefox Fehler 1354495).
- Möglichkeit zum Ein- und Ausblenden von Spalten innerhalb des Netzwerkmonitors hinzugefügt (Firefox Fehler 862855).
- Hinzufügen von Remote-IP (Firefox Fehler 1344523), Protokoll (Firefox Fehler 1345489), Schema (Firefox Fehler 1356867), Cookies und Set-Cookies-Spalten (Firefox Fehler 1356869) zum Netzwerkmonitor.
- Der
SourceMap
HTTP-Header wird jetzt unterstützt (frühere Versionen unterstützten den veraltetenX-SourceMap
Header, siehe Firefox Fehler 1346936).
HTML
- Elemente, bei denen das Attribut
contenteditable
auftrue
gesetzt wurde, verwenden nun<div>
-Elemente, um unterschiedliche Textzeilen zu trennen und Firefox somit mit anderen modernen Browsern gleichzustellen (Firefox Fehler 1297414). dom.forms.datetime
ist standardmäßig in Nightly aktiviert (Firefox Fehler 1366188).
CSS
- Die
transform-box
-Eigenschaft ist standardmäßig verfügbar (Firefox Fehler 1208550). - Die
frames()
-Timing-Funktion wurde implementiert (Firefox Fehler 1248340). - Die
text-justify
-Eigenschaft wurde implementiert (Firefox Fehler 1343512, Firefox Fehler 276079). - [css-grid]
fit-content
reserviert unerwartet Platz für die volle Klemmlänge inrepeat()
(Firefox Fehler 1359060). - Die logischen Werte für
float
/clear
—inline-start
undinline-end
— die zuvor implementiert, aber in den Veröffentlichungskanälen deaktiviert waren, sind jetzt in allen Kanälen standardmäßig verfügbar (Firefox Fehler 1253919). - Die Einstellung
layout.css.variables.enabled
wurde vollständig entfernt, was bedeutet, dass die CSS-Variablen-Funktion immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox Fehler 1312328). - Die proprietäre
-moz-context-properties
-Eigenschaft wurde implementiert (Firefox Fehler 1058040). - Null (0) Winkelwert ohne Grad-Einheit wird in
linear-gradient()
nicht korrekt interpretiert (Firefox Fehler 1363292). - Das
::cue
-Pseudoelement wird jetzt unterstützt; es wird auf Textanweisungen angewendet, die innerhalb eines Medienelements präsentiert werden (Firefox Fehler 1318542).
SVG
- Das
<radialGradient>
fr
-Attribut wurde implementiert (Firefox Fehler 1240275).
JavaScript
- Die Objekte
SharedArrayBuffer
undAtomics
sind jetzt standardmäßig aktiviert. Sehen Sie sich A Taste of JavaScript's New Parallel Primitives für eine Einführung in JavaScript Shared Memory und Atomics an. - Der Rest-Operator (
...
) wird jetzt in Objektdestrukturierung unterstützt und der Spread-Operator (...
) funktioniert jetzt in Objektliteralen (ECMAScript Vorschlag Stufe 3: Object Rest/Spread Properties, Firefox Fehler 1339395). - Asynchrone Generator-Methoden werden jetzt unterstützt (Firefox Fehler 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()
undString.prototype.toLocaleUpperCase()
unterstützen jetzt einen optionalenlocale
-Parameter, um ein Sprach-Tag für lokalspezifische Groß- und Kleinschreibungen anzugeben (Firefox Fehler 1318403). - Das Objekt
Intl.Collator
unterstützt jetzt die OptioncaseFirst
(Firefox Fehler 866473). - Die Intl API verwendet nun die Standardsprache des Browsers anstelle der des Betriebssystems, wenn keine Spracheinstellungen angegeben sind (Firefox Fehler 1346674).
- Vorlagenaufrufstellen-Objekte werden jetzt pro Realm kanonisiert, basierend auf ihrer Liste von Rohzeichenfolgen (Firefox Fehler 1108941).
TypedArray
-Konstruktoren (wieInt8Array
,Float32Array
usw.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex
-Operation und erlauben Konstruktoren ohne Argumente, die typisierte Arrays mit null Länge zurückgeben (Firefox Fehler 1317383).
APIs
Neue APIs
- Die Collaborative Scheduling of Background Tasks API (auch bekannt als Background Tasks API oder
requestIdleCallback
API) ist nun 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, 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 Fehler 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 Realität Geräte wie z.B. Head-Mounted Displays wie das Oculus Rift oder HTC Vive für Web-Apps zugänglich und ermöglicht es Entwicklern, Positions- und Bewegungsinformationen vom Display in Bewegungen um eine 3D-Szene zu übersetzen und Inhalte in solchen Displays darzustellen.
- Die Intersection Observer API — die eine Möglichkeit bietet, Veränderungen im Schnittpunkt eines Ziel-Elements mit einem Vorfahrenelement oder mit dem obersten Dokument-Viewport asynchron zu beobachten — wurde hinzugefügt (Firefox Fehler 1321865).
DOM
- Die Eigenschaften des
Window
scrollX
undscrollY
(sowie deren AliassepageXOffset
undpageYOffset
) wurden aktualisiert, um subpixelgenau zu sein. Anstatt einen ganzzahligen Wert zurückzugeben, geben diese nun einen Gleitkommawert zurück, der die Scroll-Position auf subpixelgenauen Displays genauer beschreibt (Firefox Fehler 1151421). Falls notwendig, können SieMath.round()
verwenden, um sie in Ganzzahlen umzuwandeln. MediaQueryList
(und andere zugehörige Funktionen) wurden aktualisiert, um der neuesten Spezifikation zu entsprechen. Siehe Firefox Fehler 1354441, und auchMediaQueryList
undMediaQueryListEvent
.- Methoden der
DOMTokenList
, die den Listenwert ändern, trimmen nun automatisch Leerzeichen und entfernen doppelte Tokens (Firefox Fehler 869788, siehe auch Trimmings von Leerzeichen und Entfernen von Dubletten). - Die
maxLength
-Eigenschaft desHTMLInputElement
kann jetzt dynamisch mit JavaScript geändert werden, nachdem das entsprechende HTML erstellt wurde (Firefox Fehler 1352799). - Der
URL()
-Konstruktor kann nun keineDOMString
als Basis (2. Parameter) mehr akzeptieren — er akzeptiert nur noch einenUSVString
. Er kann jedoch weiterhin ein bestehendesURL
-Objekt als Basis verwenden, welches sich selbst in dashref
-Attribut des Objekts umwandelt (Firefox Fehler 1368950).
DOM-Ereignisse
- Die von der Methode
Document.createEvent()
unterstützten Ereignistypen wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox Fehler 1251198). - Der Eigenschaftswert von
MessageEvent.origin
ist nun vom TypUSVString
, nichtDOMString
, und die EigenschaftMessageEvent.source
akzeptiert jetzt einenMessageEventSource
-Wert (der ein WindowProxy,MessagePort
oderServiceWorker
Objekt sein kann) (Firefox Fehler 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-Funktionen unter Verwendung der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Trackpads zu implementieren (Mausrad +Ctrl
zoomt häufig) (Firefox Fehler 1052253).
Auswahl-API
-
Die Selection API wurde aktualisiert, damit sie mit anderen Browsern in Bezug auf die Art und Weise, wie Editierhosts den Fokus erhalten, wenn die Auswahl in sie hinein verschoben wird, übereinstimmt (Firefox Fehler 1318312). Siehe Verhalten der Selection-API in Bezug auf Änderungen der Editing-Host-Fokus für weitere Details.
-
Die
Selection
API wurde aktualisiert, um einige kürzliche Spezifikationsänderungen zu übernehmen (Firefox Fehler 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 Kompatibilitätsgründen mit dem Web und aus Gründen der WebKit/Blink-Parität (Firefox Fehler 1359387). -
Die Methoden
StorageManager.persist()
undStorageManager.persisted()
der Storage API wurden implementiert und fürWindow
-Kontexte zugänglich gemacht (Firefox Fehler 1286717).
Workers
- Workers und Shared Workers können nun mit einer identifizierenden
name
Eigenschaft erstellt werden. Sehen Sie die KonstruktorenWorker()
undSharedWorker()
, sowie die SchnittstellenDedicatedWorkerGlobalScope
undSharedWorkerGlobalScope
. (Firefox Fehler 1364297). Window.setTimeout()
,WorkerGlobalScope.setTimeout()
,Window.setInterval()
undWorkerGlobalScope.setInterval()
unterliegen nun der Minimalintervall-Drosselung für Tracking-Skripte in Hintergrund-Tabs — siehe Drosselung von Tracking-Skripten (Firefox Fehler 1355311).
Service Workers/Push
- Nachrichten, die an Service-Worker-Kontexte gesendet werden (z. B. als Ereignisobjekte von
onmessage
), werden jetzt durchMessageEvent
-Objekte repräsentiert, um Konsistenz mit anderen Web-Messaging-Funktionen zu gewährleisten. - Die Methode
PushManager.subscribe()
akzeptiert jetztArrayBuffer
s und Base64-codierte Zeichenfolgen alsapplicationServerKey
-Werte (Firefox Fehler 1337348).
Web Audio API
- Ein nicht standardmäßiger Konstruktor (der einen Zeichenfolgen-Enum-Wert akzeptierte, der den Verwendungszweck angibt) für die
AudioContext
-Schnittstelle verursachte Fehler, wenn deroptions
-Parameter angegeben wurde. Wir haben den nicht standardmäßigen Konstruktor entfernt. Beachten Sie jedoch, dass deroptions
-Parameter in Firefox noch nicht unterstützt wird und derzeit ignoriert wird (Firefox Fehler 1361475).
WebRTC
getUserMedia()
stellt jetzt standardmäßig einen Stereo-Audiostream bereit, wenn das Quellgerät Stereo-Sound bietet; die Unterstützung, um speziell Mono-Eingaben anzufordern, wird in Firefox 56 kommen. Dies funktioniert derzeit nur auf Desktops; mobiles Firefox unterstützt derzeit keine Stereo-Audioeingangsquellen (Firefox Fehler 971528).- Die
getUserMedia()
Medienfähigkeiten, Einschränkungen und EinstellungenautoGainControl
undnoiseSuppression
stimmen nun mit der Spezifikation überein; früher waren siemoz
-geprägt (Firefox Fehler 1366415). - Wenn
getUserMedia()
mit einem leeren Einschränkungssatz aufgerufen wurde, wurde fälschlicherweiseNotSupportedError
anstelle vonTypeError
zurückgegeben. Dies wurde behoben (Firefox Fehler 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded
,pliCount
,nackCount
undfirCount
(Firefox Fehler 1348657). - Das ehemals
mozRtt
genannte Feld desRTCInboundRTPStreamStats
-Dictionaries wurde inroundTripTime
umbenannt, um der Spezifikation zu entsprechen; zudem wurde sein Verhalten angepasst, um dem Standard zu entsprechen: Es enthält einen doppeltgenauen Fließkommawert, der die Round-Trip-Zeit basierend auf den RTCP-Zeitstempeln im RTCP-Empfängerbericht schätzt, gemessen in Sekunden (nach dem Algorithmus beschrieben in RFC 3550, Abschnitt 6.4.1). (Firefox Fehler 1344970). Beachten Sie jedoch, dass diese Eigenschaft bald in ein anderes Dictionary (RTCRemoteInboundRTPStreamStats
) verschoben wird (Firefox Fehler 1380555). - Das
RTCRTPStreamStats
-Dictionary umfasst jetzt die FelderfirCount
,pliCount
undnackCount
. Diese liefern niedrigstufige Informationen, die zur Bestimmung der Zuverlässigkeit der Verbindung verwendet werden können (Firefox Fehler 1348657). - Das
RTCOutboundRTPStreamStats
-Dictionary umfasst jetzt das FeldframesEncoded
, das die Anzahl der Frames berichtet, die erfolgreich für den Stream codiert wurden; mit diesen Informationen können Sie die Bildrate berechnen (Firefox Fehler 1348657). - Auf Android gibt es jetzt eine Voreinstellung, um die Hardware-Video-Codierung zu aktivieren, um die Videokonferenzleistung zu verbessern und die Batterie zu schonen. Soll in Firefox 56 standardmäßig aktiviert werden (Firefox Fehler 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 Warnmeldungen in der Webkonsole ausgegeben, wenn dies geschieht. (Firefox Fehler 1361000).
- Firefox verlangt derzeit nicht, dass mindestens ein
MediaKeySystemCapabilities
-Objekt imsuggestedConfigurations
-Parameter 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 ohne Angabe unterstützter Codecs angegeben wird. Bald wird das Fehlen einer gültigen Konfiguration für eines oder mehrerer Audio- und Videokonfigurationen eine Ausnahme auslösen (Firefox Fehler 1368683).
WebGL
- Die
WEBGL_compressed_texture_s3tc_srgb
Erweiterung ist nun für WebGL und WebGL2 Kontexte verfügbar (Firefox Fehler 1325113).
Sicherheit
- Die Geolocation API ist jetzt nur in sicheren Kontexten verfügbar (Firefox Fehler 1072859).
- Die Storage API ist jetzt nur in sicheren Kontexten verfügbar (Firefox Fehler 1268804).
- Das Laden von gemischten Inhalten ist jetzt auf localhost erlaubt (Firefox Fehler 903966).
- Das Laden von entfernten JAR-Dateien wurde erneut deaktiviert (Firefox Fehler 1329336).
Plugins
- Flash-Inhalte sind jetzt "klick-aktiviert" (Firefox Fehler 1317856). Dies wurde sofort für alle Nutzer von Nightly und 50 % der Beta-Nutzer umgesetzt. Bei der Veröffentlichung von Firefox 55 ist geplant, dies 2 Wochen nach der Veröffentlichung für 5 % der Nutzer zu aktivieren, 4 Wochen nach der Veröffentlichung für 25 % der Nutzer und 6 Wochen nach der Veröffentlichung für 100 % der Nutzer (Firefox Fehler 1365714).
- Flash und andere Plugins können nicht mehr von einer beliebigen URL-Schema außer
http://
undhttps://
geladen werden (Firefox Fehler 1335475).
Sonstiges
- Firefox unter Linux kann jetzt im Headless-Modus mit dem
-headless
-Flag ausgeführt werden (siehe Firefox Fehler 1356681).
Entfernungen aus der Webplattform
>HTML
-
Das
xml:base
-Attribut kann nicht mehr verwendet werden, um die Basis-URL für Pfade im :style-Attribut festzulegen, zum Beispiel –<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>
(Firefox Fehler 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 obskuren
MSThemeCompatible
-Wert des<meta>
-Elementshttp-equiv
wurde aus Firefox entfernt. Kein anderer moderner Browser unterstützt diesen Wert, und er verursachte Kompatibilitätsprobleme (Firefox Fehler 966240).
CSS
- Die proprietäre
:-moz-bound-element
Pseudo-Klasse wurde entfernt (Firefox Fehler 1350147). - Der proprietäre
-moz-anchor-decoration
Wert dertext-decoration-line
-Eigenschaft wurde entfernt (Firefox Fehler 1355734).
APIs
- Die
UIEvent.isChar
Eigenschaft wurde von keinem anderen als Firefox-Browser unterstützt, und sie wurde außer auf macOS nie vollständig implementiert. Aus diesem Grund wurde sie in Firefox 55 entfernt, um mit anderen Browsern gleichzuziehen. - Die proprietäre Firefox OS Device Storage API wurde aus der Plattform entfernt (Firefox Fehler 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 Fehler 1348409). - Die Methode
HTMLFormElement.requestAutoComplete()
wurde entfernt (sieheHTMLFormElement
) (Firefox Fehler 1270740). - Die nicht-standardmäßigen, Mozilla-spezifischen, WebRTC-Angebotsoptionen
mozDontOfferDataChannel
undmozBundleOnly
wurden aus demRTCOfferOptions
-Dictionary entfernt und werden nicht mehr vonRTCPeerConnection.createOffer()
unterstützt (Firefox Fehler 1196974). - Die Unterstützung für die proprietäre Firefox OS
Audio Channels API
wurde vonHTMLMediaElement
undAudioContext
entfernt (Firefox Fehler 1358061).
SVG
- Die
SVGZoomEvent
undSVGZoomEvents
Schnittstellen wurden aus der SVG2-Spezifikation und Gecko entfernt, zusammen mit demonzoom <svg>
Attribut (Firefox Fehler 1314388).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
- contextMenus.create()'s command property ermöglicht es Ihnen, Browser-Aktion-Popups, Seiten-Aktion-Popups und Sidebars aus dem Kontextmenü zu öffnen.
- proxy API
- chrome_settings_overrides Schlüssel ermöglicht es Ihnen, die Startseite des Browsers zu überschreiben.
- browser_style Eigenschaften ermöglicht es Ihnen, browser-ähnliche Styles für Browser Aktion-Popups, Seitenbereich und Optionen-Seiten zu haben.
- permissions API