Firefox 55 Versionshinweise 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 Netzwerk-Anfragen nach Spaltenwerten und anderen Eigenschaften (Firefox Bug 1041895, Firefox Bug 1354508, Firefox Bug 1354507) und durch die Verwendung von regulären Ausdrücken (Firefox Bug 1354495).
- Ermöglichen, Spalten im Network Monitor 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 Network Monitor.
- Der
SourceMapHTTP-Header wird nun unterstützt (vorherige Versionen unterstützten den veraltetenX-SourceMapHeader, siehe Firefox Bug 1346936).
HTML
- Elemente, bei denen
contenteditableauftruegesetzt wurde, verwenden nun<div>-Elemente, um verschiedene Textzeilen zu trennen und Firefox damit an andere moderne Browser anzugleichen (Firefox Bug 1297414). - Aktivierung von
dom.forms.datetimestandardmäßig in Nightly (Firefox Bug 1366188).
CSS
- Die
transform-boxEigenschaft ist jetzt standardmäßig verfügbar (Firefox Bug 1208550). - Die
frames()Timing-Funktion wurde implementiert (Firefox Bug 1248340). - Die
text-justifyEigenschaft wurde implementiert (Firefox Bug 1343512, Firefox Bug 276079). - [css-grid]
fit-contentreserviert unerwartet Platz für die volle Klammergröße inrepeat()(Firefox Bug 1359060). - Die logischen Werte
inline-startundinline-endfürfloat/clear, die zuvor implementiert, aber in den Release-Kanälen deaktiviert waren, sind nun standardmäßig in allen Kanälen verfügbar (Firefox Bug 1253919). - Die Einstellung
layout.css.variables.enabledwurde vollständig entfernt, was bedeutet, dass die CSS-Variablen-Funktion immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox Bug 1312328). - Die proprietäre
-moz-context-propertiesEigenschaft wurde implementiert (Firefox Bug 1058040). - Ein Winkelwert von Null (0) ohne Grad-Einheit wird in
linear-gradient()nicht korrekt interpretiert (Firefox Bug 1363292). - Das
::cuePseudoelement wird jetzt unterstützt; es stimmt zu den im Medienelement präsentierten Text-Cues überein (Firefox Bug 1318542).
SVG
- Das
<radialGradient>frAttribut wurde implementiert (Firefox Bug 1240275).
JavaScript
- Die
SharedArrayBufferundAtomicsObjekte sind jetzt standardmäßig aktiviert. Weitere Informationen über das neue Kommunikationsverfahren in JavaScript Shared Memory und Atomics finden Sie in A Taste of JavaScript's New Parallel Primitives. - Der Rest-Operator (
...) wird jetzt im Objektdestructuring unterstützt und der Spread-Operator (...) funktioniert nun in Objektliteralen (Stage 3 ECMAScript Vorschlag: Object Rest/Spread Properties, Firefox Bug 1339395). - Asynchrone Generatorfunktionen werden nun unterstützt (Firefox Bug 1353693).
- Die
String.prototype.toLocaleLowerCase()undString.prototype.toLocaleUpperCase()Methoden unterstützen jetzt einen optionalenlocaleParameter, um ein Sprach-Tag für sprachenspezifische Groß-/Kleinschreibwandlungen anzugeben (Firefox Bug 1318403). - Das
Intl.CollatorObjekt unterstützt jetzt die OptioncaseFirst(Firefox Bug 866473). - Die Intl API verwendet nun, wenn keine Locale-Einstellung angegeben ist, die Standard-Locale des Browsers anstelle der des Betriebssystems (Firefox Bug 1346674).
- Template Call Site Objekte werden jetzt pro Realm kanonisiert, basierend auf ihrer Liste von Rohstrings (Firefox Bug 1108941).
TypedArrayKonstruktoren (wieInt8Array,Float32Arrayusw.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndexOperation 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
requestIdleCallbackAPI) 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, wenn der Browser feststellt, dass vor dem nächsten Repaint Zeit verfügbar ist, sodass Ihr Code diese Zeit nutzen kann, ohne sichtbare Leistungsprobleme zu verursachen (Firefox Bug 1314959). - Die WebVR 1.1 API ist jetzt standardmäßig auf Windows aktiviert (und auf macOS in Nightly verfügbar). Diese API macht Virtual-Reality-Geräte – beispielsweise Head-Mounted-Displays wie Oculus Rift oder HTC Vive – für Web-Apps zugänglich und ermöglicht Entwicklern, Positions- und Bewegungsinformationen vom Display in Bewegungen durch eine 3D-Szene zu übersetzen und Inhalte auf solchen Displays zu präsentieren.
- Die Intersection Observer API, die eine Möglichkeit bietet, Änderungen im Schnittbereich eines Ziel-Elements mit einem Vorfahren oder mit dem Viewport eines Top-Level-Dokuments asynchron zu beobachten, wurde hinzugefügt (Firefox Bug 1321865).
DOM
- Die
WindowEigenschaftenscrollXundscrollY(sowie ihre AliasepageXOffsetundpageYOffset) wurden aktualisiert, um subpixelgenau zu sein. Anstelle eines ganzzahligen Wertes geben diese nun einen Gleitkommawert 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 der neuesten Spezifikation zu entsprechen. Siehe Firefox Bug 1354441, und auchMediaQueryListundMediaQueryListEvent.- Methoden der
DOMTokenList, die den Listenwert ändern, trimmen nun automatisch Leerzeichen und entfernen doppelte Tokens (Firefox Bug 869788, siehe auch Trimming of whitespace and removal of duplicates). - Die
maxLength-Eigenschaft desHTMLInputElementkann jetzt dynamisch mit JavaScript geändert werden, nachdem das entsprechende HTML erstellt wurde (Firefox Bug 1352799). - Der
URL()Konstruktor kann keinDOMStringmehr als Basis (2. Parameter) akzeptieren – es wird nur noch einUSVStringakzeptiert. Es kann immer noch ein existierendesURLObjekt als Basis verwenden, das sich zu demhrefAttribut des Objekts zu einem String wandelt (Firefox Bug 1368950).
DOM-Ereignisse
- Die von der Methode
Document.createEvent()unterstützten Ereignistypen wurden entsprechend der neuesten DOM-Spezifikation aktualisiert (Firefox Bug 1251198). - Der Wert der
MessageEvent.originEigenschaft ist nun vom TypUSVString, nichtDOMString, und dieMessageEvent.sourceEigenschaft nimmt jetzt einenMessageEventSourceWert (der ein WindowProxy,MessagePortoderServiceWorkerObjekt sein kann) (Firefox Bug 1311324). - Die Pinch-to-Zoom-Geste wurde jetzt mit dem
wheelEreignis und der +Ctrl-Taste verbunden. Diese Zuordnung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoom-Funktionen mit der Pinch-to-Zoom-Geste auf mobilen Bildschirmen/Trackpads zu implementieren (Mousewheel +Ctrlzoomt typischerweise) (Firefox Bug 1052253).
Selection API
-
Die Selection API wurde aktualisiert, sodass sie nun Parität mit anderen Browsern aufweist, in Bezug auf, wie Bearbeitungs-Hosts fokussiert werden, wenn die Auswahl innerhalb dieser verschoben wird (Firefox Bug 1318312). Siehe Behavior of Selection API in terms of editing host focus changes für weitere Details.
-
Die
SelectionAPI wurde aktualisiert, um einige Änderungen in der neuesten Spezifikation zu berücksichtigen (Firefox Bug 1359371):- Die Parameter
offsetder Methodencollapse()undextend()sind nun optional. - Der Parameter
nodeder Methodecollapse()ist nun nullable. - Der Parameter
partialContainmentder MethodecontainsNode()ist jetzt optional. - Die Methode
deleteFromDocument()wurde hinzugefügt.
- Die Parameter
-
Ebenfalls in der
SelectionAPI wurdenSelection.empty()undSelection.setPosition()als Aliase vonSelection.removeAllRanges()undSelection.collapse()hinzugefügt, um die Webkompatibilität zu verbessern und Parität zu WebKit/Blink herzustellen (Firefox Bug 1359387). -
Die Methoden
StorageManager.persist()undStorageManager.persisted()der Storage API wurden implementiert und inWindowKontexten verfügbar gemacht (Firefox Bug 1286717).
Workers
- Workers und Shared Workers können nun mit einer unterscheidenden
nameEigenschaft erstellt werden. Siehe die KonstruktorenWorker()undSharedWorker()sowie die SchnittstellenDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope. (Firefox Bug 1364297). Window.setTimeout(),WorkerGlobalScope.setTimeout(),Window.setInterval()undWorkerGlobalScope.setInterval()unterliegen nun einem Mindestintervall Drosselung für Tracking-Skripte in Hintergrund-Tabs — siehe Throttling of tracking scripts (Firefox Bug 1355311).
Service Workers/Push
- Nachrichten, die an Service-Worker-Kontexte gesendet werden (z.B. als Ereignis-Objekt von
onmessage), werden nun durchMessageEventObjekte dargestellt, um eine Konsistenz mit anderen Webmessaging-Funktionen zu erzielen. - Die Methode
PushManager.subscribe()akzeptiert nunArrayBuffers und Base64-kodierte Strings alsapplicationServerKeyWerte (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 sollte) für das
AudioContextInterface verursachte Fehler, wenn deroptionsParameter angegeben wurde. Wir haben den nicht standardmäßigen Konstruktor entfernt. Beachten Sie jedoch bitte, dass deroptionsParameter in Firefox noch nicht unterstützt wird und derzeit ignoriert wird (Firefox Bug 1361475).
WebRTC
getUserMedia()liefert nun standardmäßig einen Stereo-Audiostream, wenn das Quellgerät Stereo-Ton bereitstellt; die Unterstützung, ausdrücklich Mono-Eingang anzufordern, kommt in Firefox 56. Dies funktioniert derzeit nur auf dem Desktop; mobile Firefox-Versionen unterstützen derzeit keine Stereo-Audioeingangsquellen (Firefox Bug 971528).- Die
getUserMedia()Medienfähigkeiten, -einschränkungen und -einstellungenautoGainControlundnoiseSuppressionentsprechen nun der Spezifikation; zuvor waren siemoz-präfixiert (Firefox Bug 1366415). - Beim Aufruf mit einem leeren Einschränkungs-Set gab
getUserMedia()fälschlicherweiseNotSupportedErroranstelle vonTypeErrorzurück. Dies wurde behoben (Firefox Bug 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded,pliCount,nackCountundfirCount(Firefox Bug 1348657). - Das
RTCInboundRTPStreamStatsWörterbuchfeld, das zuvormozRttgenannt wurde, wurde inroundTripTimeumbenannt, um der Spezifikation zu entsprechen; zusätzlich wurde sein Verhalten angepasst, um dem Standard zu entsprechen: es enthält einen Gleitkommawert mit doppelter Präzision, 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 Bug 1344970). Beachten Sie jedoch, dass diese Eigenschaft bald in ein anderes Wörterbuch (RTCRemoteInboundRTPStreamStats) verschoben wird (Firefox Bug 1380555). - Das
RTCRTPStreamStatsWörterbuch enthält nun die FelderfirCount,pliCountundnackCount. Diese geben Informationen auf niedriger Ebene zurück, die verwendet werden können, um festzustellen, wie zuverlässig die Verbindung ist (Firefox Bug 1348657). - Das
RTCOutboundRTPStreamStatsWörterbuch enthält nun das FeldframesEncoded, das die Anzahl der Frames meldet, die für den Stream erfolgreich kodiert wurden; mit diesen Informationen können Sie die Bildrate berechnen (Firefox Bug 1348657). - Auf Android gibt es jetzt eine Pref, um die Hardware-Video-Codierung zu aktivieren, um die Leistung von Videoanrufen zu verbessern und die Akkulaufzeit zu verlängern. In Firefox 56 wird sie standardmäßig aktiviert sein (Firefox Bug 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 Warnungen in der Webkonsole ausgegeben, wenn dies geschieht (Firefox Bug 1361000).
- Firefox erfordert derzeit nicht, dass mindestens ein
MediaKeySystemCapabilitiesObjekt imsuggestedConfigurationsParameter enthalten ist, das anNavigator.requestMediaKeySystemAccess()übergeben wird, was die Spezifikation verlangt. 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 Versäumnis, eine gültige Konfiguration für eines oder mehrere von Audio und Video anzugeben, eine Ausnahme auslösen (Firefox Bug 1368683).
WebGL
- Die
WEBGL_compressed_texture_s3tc_srgbErweiterung ist nun für WebGL und WebGL2 Kontexte verfügbar (Firefox Bug 1325113).
Sicherheit
- Die Geolocation API ist jetzt nur noch in sicheren Kontexten verfügbar (Firefox Bug 1072859).
- Die Storage API ist jetzt nur noch in sicheren Kontexten verfügbar (Firefox Bug 1268804).
- Das Laden von gemischten Inhalten ist jetzt auf localhost erlaubt (Firefox Bug 903966).
- Das Laden von entfernten JAR-Dateien wurde erneut deaktiviert (Firefox Bug 1329336).
Plugins
- Flash-Inhalte sind jetzt "click-to-activate" (Firefox Bug 1317856). Dies wurde sofort für alle Nightly-Nutzer und 50% der Beta-Nutzer umgesetzt. Für die Firefox 55 Freigabeversion wird geplant, diese Funktion für 5% der Nutzer 2 Wochen nach der Freigabe zu aktivieren, für 25% der Nutzer 4 Wochen nach der Freigabe und für 100% der Nutzer 6 Wochen nach der Freigabe (Firefox Bug 1365714).
- Flash und andere Plugins können nicht mehr aus einer anderen URL-Schema als
http://undhttps://geladen werden (Firefox Bug 1335475).
Sonstiges
- Firefox unter Linux kann jetzt im headless Modus mit dem
-headlessFlag ausgeführt werden (siehe Firefox Bug 1356681).
Entfernungen aus der Webplattform
>HTML
-
Das
xml:baseAttribut kann nicht mehr verwendet werden, um die Basis-URL für Pfade festzulegen, die imstyleAttribut erscheinen, zum Beispiel —<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>(Firefox Bug 1350521). -
Das
scopedAttribut des<style>Elements wurde in Inhaltsdokumenten in Firefox 55+ hinter einem Pref (layout.css.scoped-style.enabled) versteckt, da es in keinem anderen Browser unterstützt wird. -
Die Unterstützung für den obskuren
MSThemeCompatibleWert des<meta>Elements in demhttp-equivAttribut wurde aus Firefox entfernt. Kein anderer moderner Browser unterstützt es und es verursachte Kompatibilitätsprobleme (Firefox Bug 966240).
CSS
- Die proprietäre
:-moz-bound-elementPseudo-Klasse wurde entfernt (Firefox Bug 1350147). - Der proprietäre
-moz-anchor-decorationWert vontext-decoration-linewurde entfernt (Firefox Bug 1355734).
APIs
- Die Eigenschaft
UIEvent.isCharwurde nur von Firefox unterstützt und war niemals vollständig implementiert, außer auf macOS. Daher wurde sie in Firefox 55 entfernt, um mit anderen Browsern in Einklang zu kommen. - Die proprietäre Firefox OS Device Storage API wurde aus der Plattform entfernt (Firefox Bug 1299500).
- Der
aShowDialogParameter der nicht standardmäßigenWindow.find()Methode (der angegeben werden konnte, um ein "Finden"-Dialog 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-Offer-Optionen
mozDontOfferDataChannelundmozBundleOnlywurden aus demRTCOfferOptionsWö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 APIwurde ausHTMLMediaElementundAudioContextentfernt (Firefox Bug 1358061).
SVG
- Die
SVGZoomEventundSVGZoomEventsSchnittstellen 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
- contextMenus.create()'s command property enables you to open browser action popups, page action popups, and sidebars from the context menu.
- proxy API
- Der chrome_settings_overrides Schlüssel ermöglicht es Ihnen, die Startseite des Browsers zu überschreiben.
- Die browser_style-Eigenschaft ermöglicht es Ihnen, browserähnliche Stilierung für Browser-Aktions-Popups, Sidebars und Optionsseiten zu verwenden.
- Berechtigungen API