Firefox 55 Versionshinweise 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
>Entwickler-Tools
- Hinzufügen von Filtern für Netzwerk-Anfragen nach Spaltenwerten und anderen Eigenschaften (Firefox Fehler 1041895, Firefox Fehler 1354508, Firefox Fehler 1354507) und durch die Verwendung von regulären Ausdrücken (Firefox Fehler 1354495).
- Möglichkeit hinzugefügt, Spalten im Network Monitor anzuzeigen und auszublenden (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 Network Monitor.
- Der
SourceMapHTTP-Header wird jetzt unterstützt (frühere Versionen unterstützten den veraltetenX-SourceMap-Header, siehe Firefox Fehler 1346936).
HTML
- Elemente, bei denen
contenteditableauftruegesetzt ist, verwenden jetzt<div>-Elemente, um verschiedene Textzeilen zu trennen, um Firefox im Einklang mit anderen modernen Browsern zu bringen (Firefox Fehler 1297414). dom.forms.datetimeist 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-contentreserviert unerwartet Platz für die volle Klammergröße inrepeat()(Firefox Fehler 1359060). - Die logischen Werte
float/clear—inline-startundinline-end— die zuvor implementiert, aber in Release-Kanälen deaktiviert waren, sind jetzt standardmäßig in allen Kanälen verfügbar (Firefox Fehler 1253919). - Die
layout.css.variables.enabled-Einstellung wurde vollständig entfernt, was bedeutet, dass das CSS-Variablen-Feature 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 Maß wird in
linear-gradient()nicht korrekt interpretiert (Firefox Fehler 1363292). - Das
::cue-Pseudo-Element wird jetzt unterstützt; es passt auf Text-Hinweise innerhalb eines Medienelements (Firefox Fehler 1318542).
SVG
- Das
<radialGradient>frAttribut wurde implementiert (Firefox Fehler 1240275).
JavaScript
- Die
SharedArrayBufferundAtomicsObjekte sind jetzt standardmäßig aktiviert. Sehen Sie A Taste of JavaScript's New Parallel Primitives für eine Einführung in JavaScript Shared Memory und Atomics. - Der Restoperator (
...) wird jetzt in Destrukturierung von Objekten unterstützt und der Spread-Operator (...) funktioniert jetzt in Objektliteralen (Stage 3 ECMAScript-Vorschlag: 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 Fallabbildungen anzugeben (Firefox Fehler 1318403). - Das
Intl.CollatorObjekt unterstützt jetzt diecaseFirstOption (Firefox Fehler 866473). - Die Intl API verwendet jetzt die Standardsprache des Browsers anstelle der des Betriebssystems, wenn keine Spracheinstellung angegeben ist (Firefox Fehler 1346674).
- Template call sites objects werden jetzt pro Realm basierend auf ihrer Liste roher Strings normalisiert (Firefox Fehler 1108941).
TypedArray-Konstruktoren (wieInt8Array,Float32Array, etc.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex-Operation und erlauben Konstruktoren ohne Argumente, die Arrays mit Länge null zurückgeben (Firefox Fehler 1317383).
APIs
Neue APIs
- Die Collaborative Scheduling of Background Tasks API (auch bekannt als Background Tasks API oder
requestIdleCallbackAPI) ist nun standardmäßig aktiviert, nachdem sie seit Firefox 53 hinter einer Präferenz verfügbar war. Diese API ermöglicht es, Aufgaben so zu terminieren, dass sie ausgeführt werden, wenn der Browser feststellt, dass vor dem nächsten Neuzeichnen 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 nun standardmäßig auf Windows aktiviert (und ist auf macOS in Nightly verfügbar). Diese API stellt Virtual-Reality-Geräte — zum Beispiel Headsets wie Oculus Rift oder HTC Vive — Web-Apps zur Verfügung, sodass Entwickler Positions- und Bewegungsinformationen vom Display in Bewegungen durch eine 3D-Szene übersetzen und Inhalte in solche Displays präsentieren können.
- Die Intersection Observer API — die eine Möglichkeit bietet, Änderungen bei der Schnittmenge eines Ziel-Elements mit einem Vorfahr-Element oder dem höchsten Dokument-Viewport asynchron zu beobachten — wurde hinzugefügt (Firefox Fehler 1321865).
DOM
- Die
WindowEigenschaftenscrollXundscrollY(sowie deren AliasepageXOffsetundpageYOffset) wurden aktualisiert, um subpixelgenaue Anzeigen zu unterstützen. Anstatt einen ganzzahligen Wert zurückzugeben, geben sie jetzt einen Gleitkommawert zurück, der die Scrollposition auf subpixelgenauen Anzeigen genauer beschreibt (Firefox Fehler 1151421). Bei Bedarf können SieMath.round()verwenden, um diese in Ganzzahlen umzuwandeln. MediaQueryList(und andere verwandte Funktionen) wurden aktualisiert, um der neuesten Spezifikation zu entsprechen. Siehe Firefox Fehler 1354441 und auchMediaQueryListundMediaQueryListEvent.- Methoden der
DOMTokenList, die den Listwert ändern, trimmen jetzt automatisch Leerzeichen und entfernen doppelte Tokens (Firefox Fehler 869788, siehe auch Trimming of whitespace and removal of duplicates). - Die
maxLength-Eigenschaft desHTMLInputElementkann jetzt dynamisch mit JavaScript verändert werden, nachdem das entsprechende HTML erstellt wurde (Firefox Fehler 1352799). - Der
URL()-Konstruktor kann keinDOMStringmehr als Basis (2. Parameter) akzeptieren — er akzeptiert nur noch einUSVString. Er kann weiterhin ein bestehendesURL-Objekt als Basis verwenden, das sich in dashref-Attribut des Objekts konvertiert (Firefox Fehler 1368950).
DOM-Ereignisse
- Die von der
Document.createEvent()-Methode unterstützten Ereignistypen wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox Fehler 1251198). - Der Wert der
MessageEvent.origin-Eigenschaft ist nun vom TypUSVString, nichtDOMString, und dieMessageEvent.source-Eigenschaft nimmt nun einenMessageEventSource-Wert (der ein WindowProxy,MessagePortoderServiceWorker-Objekt sein kann) (Firefox Fehler 1311324). - Die Pinch-to-Zoom-Geste wurde nun dem
wheel-Ereignis plus derCtrl-Taste zugeordnet. Diese Zuordnung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoom-Funktionen mithilfe der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Trackpads (Mausrad +Ctrlzoomt normalerweise) zu implementieren (Firefox Fehler 1052253).
Auswahl-API
-
Die Selection API wurde aktualisiert, um mit anderen Browsern hinsichtlich der Fokussierung von Bearbeitungshosts gleichzuziehen, wenn sich die Auswahl in ihnen bewegt (Firefox Fehler 1318312). Siehe Behavior of Selection API in terms of editing host focus changes für weitere Details.
-
Die
SelectionAPI wurde angepasst, um einige kürzlich erfolgte Änderungen in der Spezifikation widerzuspiegeln (Firefox Fehler 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
SelectionAPI wurdenSelection.empty()undSelection.setPosition()als Aliase vonSelection.removeAllRanges()undSelection.collapse()hinzugefügt, um Web-Kompatibilität und Gleichheit mit WebKit/Blink zu erreichen (Firefox Fehler 1359387). -
Die
StorageManager.persist()undStorageManager.persisted()-Methoden der Storage API wurden implementiert und inWindowKontexten verfügbar gemacht (Firefox Fehler 1286717).
Workers
- Workers und Shared Workers können jetzt mit einer identifizierenden
name-Eigenschaft erstellt werden. Siehe die KonstruktorenWorker()undSharedWorker()sowie die SchnittstellenDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope(Firefox Fehler 1364297). Window.setTimeout(),WorkerGlobalScope.setTimeout(),Window.setInterval()undWorkerGlobalScope.setInterval()unterliegen nun einer Mindestintervall-Drosselung für Tracking-Skripte in Hintergrund-Tabs — siehe Throttling of tracking scripts (Firefox Fehler 1355311).
Service Workers/Push
- Nachrichten, die an Service Worker Kontexte gesendet werden (z.B. als Ereignisobjekt von
onmessage), werden jetzt durchMessageEvent-Objekte dargestellt, um Konsistenz mit anderen Web-Messaging-Funktionen zu gewährleisten. - Die Methode
PushManager.subscribe()akzeptiert nunArrayBuffers und Base64-kodierte Zeichenfolgen alsapplicationServerKeyWerte (Firefox Fehler 1337348).
Web Audio API
- Ein nicht-standardisierter Konstruktor (der einen String-Enum-Wert akzeptierte, der den Zweck angab, für den der Kontext verwendet werden würde) für die
AudioContext-Schnittstelle verursachte Fehler, wenn deroptions-Parameter angegeben wurde. Wir haben den nicht-standardisierten Konstruktor entfernt. Bitte 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-Audio-Stream bereit, wenn das Quellgerät Stereo-Sound liefert; die Unterstützung, speziell Mono-Eingaben anzufordern, wird in Firefox 56 kommen. Dies funktioniert derzeit nur auf dem Desktop; mobile Firefox unterstützt derzeit keine Stereo-Audio-Eingabequellen (Firefox Fehler 971528).- Die Medienfähigkeiten, Beschränkungen und Einstellungen
autoGainControlundnoiseSuppressionvongetUserMedia()entsprechen jetzt der Spezifikation; früher waren sie mitmoz-Präfix (Firefox Fehler 1366415). - Wenn
getUserMedia()mit einem leeren Kontraints-Set aufgerufen wurde, gab es fälschlicherweiseNotSupportedErrorstattTypeErrorzurück. Dies wurde behoben (Firefox Fehler 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded,pliCount,nackCountundfirCount(Firefox Fehler 1348657). - Das früher
mozRttgenannte Feld imRTCInboundRTPStreamStats-Dictionary wurde inroundTripTimeumbenannt, um der Spezifikation zu entsprechen; zusätzlich wurde sein Verhalten angepasst, um dem Standard zu entsprechen: Es enthält einen Double-Precision-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 Fehler 1344970). Bitte beachten Sie jedoch, dass dieses Feld bald zu einem anderen Dictionary (RTCRemoteInboundRTPStreamStats) wechselt (Firefox Fehler 1380555). - Das
RTCRTPStreamStats-Dictionary enthält jetzt die FelderfirCount,pliCountundnackCount. Diese geben niedrigrangige Informationen zurück, die verwendet werden können, um zu bestimmen, wie zuverlässig die Verbindung ist (Firefox Fehler 1348657). - Das
RTCOutboundRTPStreamStats-Dictionary enthält jetzt das FeldframesEncoded, das die Anzahl der erfolgreich für den Stream kodierten Frames berichtet; mit diesen Informationen können Sie die Bildrate berechnen (Firefox Fehler 1348657). - Auf Android gibt es nun eine Einstellung, um die Hardware-Videokodierung zu aktivieren und so die Leistung von Videogesprächen zu verbessern und den Akku zu schonen. Dies soll standardmäßig in Firefox 56 aktiviert werden (Firefox Fehler 1265755).
Encrypted Media Extensions 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 Abwertungswarnungen in die Webkonsole ausgegeben, wenn dies der Fall ist. (Firefox Fehler 1361000).
- Firefox verlangt derzeit nicht, dass mindestens ein
MediaKeySystemCapabilities-Objekt imsuggestedConfigurations-Parameter enthalten ist, der anNavigator.requestMediaKeySystemAccess()übergeben wird, was die Spezifikation jedoch erfordert. 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 beide, Audio und Video, eine Ausnahme auslösen Firefox Fehler 1368683).
WebGL
- Die
WEBGL_compressed_texture_s3tc_srgb-Erweiterung ist jetzt für WebGL und WebGL2 Kontexte verfügbar (Firefox Fehler 1325113).
Sicherheit
- Die Geolocation API ist jetzt nur noch für sichere Kontexte verfügbar (Firefox Fehler 1072859).
- Die Storage API ist jetzt nur noch für sichere Kontexte verfügbar (Firefox Fehler 1268804).
- Das Laden von gemischten Inhalten ist jetzt auf localhost erlaubt (Firefox Fehler 903966).
- Das Laden von Remote-JAR-Dateien wurde erneut deaktiviert (Firefox Fehler 1329336).
Plugins
- Flash-Inhalte sind jetzt "Click-to-Activate" (Firefox Fehler 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 Nutzer 2 Wochen nach der Veröffentlichung, 25% der Nutzer 4 Wochen nach der Veröffentlichung und 100% der Nutzer 6 Wochen nach der Veröffentlichung zu aktivieren (Firefox Fehler 1365714).
- Flash und andere Plugins können nicht mehr von einem anderen URL-Schema geladen werden, außer von
http://undhttps://(Firefox Fehler 1335475).
Anderes
- Firefox auf Linux kann jetzt im Headless-Modus mit dem
-headless-Flag ausgeführt werden (siehe Firefox Fehler 1356681).
Entfernung aus der Web-Plattform
>HTML
-
Das
xml:base-Attribut 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 Fehler 1350521). -
Das
scoped-Attribut des<style>-Elements wurde in Inhaltsdokumenten in Firefox 55+ hinter eine Präferenz (layout.css.scoped-style.enabled) gesetzt, 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 Firefox entfernt. Kein anderer moderner Browser unterstützt es, und es verursachte Kompatibilitätsprobleme (Firefox Fehler 966240).
CSS
- Die proprietäre
:-moz-bound-element-Pseudosklasse wurde entfernt (Firefox Fehler 1350147). - Der proprietäre
-moz-anchor-decoration-Wert vontext-decoration-linewurde entfernt (Firefox Fehler 1355734).
APIs
- Die
UIEvent.isChar-Eigenschaft wurde von keinem anderen Browser als Firefox unterstützt und wurde nur auf macOS vollständig implementiert. Aus diesem Grund wurde sie in Firefox 55 entfernt, um sich an anderen Browsern auszurichten. - Die proprietäre Device Storage API von Firefox OS wurde aus der Plattform entfernt (Firefox Fehler 1299500).
- Der
aShowDialog-Parameter der nicht standardmäßigenWindow.find()-Methode (die angegeben werden konnte, um einen "Finden"-Dialog im Browser zu öffnen) wurde entfernt (Firefox Fehler 1348409). - Die Methode
HTMLFormElement.requestAutoComplete()wurde entfernt (sieheHTMLFormElement) (Firefox Fehler 1270740). - Die Mozilla-spezifischen WebRTC-Offer-Optionen
mozDontOfferDataChannelundmozBundleOnlywurden aus demRTCOfferOptions-Dictionary entfernt und werden vonRTCPeerConnection.createOffer()nicht mehr unterstützt (Firefox Fehler 1196974). - Die Unterstützung für die proprietäre Firefox OS
Audio Channels APIwurde ausHTMLMediaElementundAudioContextentfernt (Firefox Fehler 1358061).
SVG
- Die
SVGZoomEventundSVGZoomEventsSchnittstellen 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
- Mit der
command-Eigenschaft von contextMenus.create() können Sie Browser-Aktions-Popups, Seitenaktions-Popups und Sidebars aus dem Kontextmenü öffnen. - proxy API
- Mit der
chrome_settings_overrides-Eigenschaft können Sie die Homepage des Browsers überschreiben. - Die
browser_style-Eigenschaft ermöglicht es Ihnen, browserähnliches Styling für Browser-Aktions-Popups, Sidebars, und Optionsseiten zu haben. - permissions API