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 reguläre Ausdrücke (Firefox Bug 1354495).
- Möglichkeit zum Anzeigen und Verstecken von Spalten im Netzwerkmonitor hinzugefügt (Firefox Bug 862855).
- Remote-IP (Firefox Bug 1344523), Protokoll (Firefox Bug 1345489), Schema (Firefox Bug 1356867), Cookies und Set-Cookies-Spalten zum Netzwerkmonitor hinzugefügt (Firefox Bug 1356869).
- Der
SourceMapHTTP-Header wird jetzt unterstützt (vorherige Versionen unterstützten den veraltetenX-SourceMap-Header, siehe Firefox Bug 1346936).
HTML
- Elemente, bei denen
contenteditableauftruegesetzt wurde, verwenden jetzt<div>-Elemente, um verschiedene Textzeilen zu trennen, um Firefox auf Augenhöhe mit anderen modernen Browsern zu bringen (Firefox Bug 1297414). dom.forms.datetimeist jetzt standardmäßig in Nightly aktiviert (Firefox Bug 1366188).
CSS
- Das
transform-box-Eigenschaft ist jetzt standardmäßig verfügbar (Firefox Bug 1208550). - Die
frames()-Zeitfunktion wurde implementiert (Firefox Bug 1248340). - Die
text-justify-Eigenschaft 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 von
float/clear—inline-startundinline-end— die zuvor implementiert, aber in Release-Kanälen abgeschaltet waren, sind jetzt in allen Kanälen standardmäßig verfügbar (Firefox Bug 1253919). - Die Einstellung
layout.css.variables.enabledwurde vollständig entfernt, was bedeutet, dass die Funktion CSS-Variablen immer aktiviert ist und nicht mehr deaktiviert werden kann (Firefox Bug 1312328). - Die proprietäre Eigenschaft
-moz-context-propertieswurde implementiert (Firefox Bug 1058040). - Ein Null (0) Winkelwert ohne Gradenheit wird in
linear-gradient()nicht korrekt interpretiert (Firefox Bug 1363292). - Das
::cuePseudo-Element wird jetzt unterstützt; es entspricht den Textmarkierungen, die innerhalb eines Medienelements präsentiert werden (Firefox Bug 1318542).
SVG
- Das
<radialGradient>frAttribut wurde implementiert (Firefox Bug 1240275).
JavaScript
- Die
SharedArrayBuffer- undAtomics-Objekte sind jetzt standardmäßig aktiviert. Siehe Ein Vorgeschmack auf die neuen parallelen Primitiven von JavaScript für eine Einführung in die gemeinsame Nutzung von JavaScript-Speicher und Atomics. - Der Rest-Operator (
...) wird jetzt in Objektzerlegung unterstützt, und der Spread-Operator (...) funktioniert nun in Objektliteralen (Stufe 3 ECMAScript-Vorschlag: Objekt-Rest/Spread-Eigenschaften, Firefox Bug 1339395). - Asynchrone Generator-Methoden werden jetzt unterstützt (Firefox Bug 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()undString.prototype.toLocaleUpperCase()unterstützen jetzt einen optionalenlocale-Parameter zur Angabe eines Sprachcodes für lokalspezifische Groß-/Kleinschreibungsmappings (Firefox Bug 1318403). - Das Objekt
Intl.Collatorunterstützt jetzt diecaseFirst-Option (Firefox Bug 866473). - Die Intl-API verwendet jetzt die Standard-Lokale des Browsers statt der des Betriebssystems, wenn keine Lokaleinstellung angegeben wird (Firefox Bug 1346674).
- Template-Call-Sites-Objekte werden jetzt pro Realm kanonisiert, basierend auf ihrer Liste von Rohstrings (Firefox Bug 1108941).
- Die Konstruktoren von
TypedArray(wieInt8Array,Float32Arrayusw.) wurden auf ES2017 aktualisiert. Sie verwenden jetzt dieToIndex-Operation und erlauben Konstruktoren ohne Argumente, die null lange typisierte Arrays zurückgeben (Firefox Bug 1317383).
APIs
Neue APIs
- Die API zur kollaborativen Planung von Hintergrundaufgaben (auch bekannt als Background Tasks API oder
requestIdleCallbackAPI) ist jetzt standardmäßig aktiviert, nachdem sie seit Firefox 53 über eine Einstellung verfügbar war. Diese API ermöglicht es Ihnen, Aufgaben zu planen, die ausgeführt werden, wenn der Browser feststellt, dass freie Zeit verfügbar ist, bevor der nächste Neuzeichenvorgang stattfindet, 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 auf Windows aktiviert (und auf macOS in Nightly verfügbar). Diese API gibt Web-Apps Zugriff auf Virtual-Reality-Geräte — beispielsweise Head-Mounted-Displays wie Oculus Rift oder HTC Vive — und ermöglicht es Entwicklern, Positions- und Bewegungsinformationen vom Display in Bewegungen in einer 3D-Szene zu übersetzen und Inhalte in solche Displays zu präsentieren.
- Die Intersection Observer API — die eine Möglichkeit bietet, asynchron Änderungen an der Schnittmenge eines Ziel-Elements mit einem Vorfahren-Element oder mit dem Viewport eines Dokuments auf oberster Ebene zu beobachten — wurde hinzugefügt (Firefox Bug 1321865).
DOM
- Die
WindowEigenschaftenscrollXundscrollY(sowie ihre AliasepageXOffsetundpageYOffset) wurden aktualisiert, um subpixelgenau zu sein. Statt eines ganzzahligen Werts geben diese jetzt einen Fließkomma-Wert zurück, der die Scrollposition auf subpixelgenauen Bildschirmen genauer beschreibt (Firefox Bug 1151421). Falls erforderlich, können SieMath.round()verwenden, um sie in Ganzzahlen zu konvertieren. MediaQueryList(und andere verwandte Funktionen) wurden aktualisiert, um der neuesten Spezifikation zu entsprechen. Siehe Firefox Bug 1354441 und besuchen Sie auchMediaQueryListundMediaQueryListEvent.- Methoden der
DOMTokenList, die den Listwert ändern, trimmen jetzt automatisch Leerzeichen und entfernen doppelte Token (Firefox Bug 869788, siehe auch Trimming von Leerzeichen und Entfernen von Duplikaten). - Die
maxLength-Eigenschaft vonHTMLInputElementkann jetzt nach Erstellen des entsprechenden HTML-Dokuments dynamisch mit JavaScript geändert werden (Firefox Bug 1352799). - Der
URL()-Konstruktor kann keinenDOMStringmehr als Basis (2. Parameter) akzeptieren — es wird nur noch einUSVStringakzeptiert. Er kann jedoch weiterhin ein existierendesURL-Objekt als Basis verwenden, welches sich selbst zu demhref-Attribut des Objekts konvertiert (Firefox Bug 1368950).
DOM-Ereignisse
- Die Ereignistypen, die von der Methode
Document.createEvent()unterstützt werden, wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox Bug 1251198). - Der Wert der Eigenschaft
MessageEvent.originist jetzt vom TypUSVString, nichtDOMString, und die EigenschaftMessageEvent.sourcenimmt nun einenMessageEventSource-Wert an (dies kann ein WindowProxy,MessagePortoderServiceWorker-Objekt sein) (Firefox Bug 1311324). - Die Geste zum Zoomen durch Zusammendrücken wurde jetzt dem
wheel-Ereignis plus derCtrl-Taste zugeordnet. Diese Zuordnung wurde implementiert, um Entwicklern zu ermöglichen, einfache Zoomfunktionen mithilfe der Pinch-to-Zoom-Geste auf Mobilbildschirmen/Trackpads zu implementieren (Mausrad +Ctrlzoomt gewöhnlich) (Firefox Bug 1052253).
Selection API
-
Die Selection API wurde aktualisiert, sodass sie in Bezug auf die Fokussierung von Bearbeitungs-Hosts, wenn die Auswahl in ihnen verschoben wird, mit anderen Browsern gleichwertig ist (Firefox Bug 1318312). Siehe Verhalten der Selection API in Bezug auf Änderungen des Fokus des Bearbeitungshosts für weitere Details.
-
Die
SelectionAPI wurde aktualisiert, um einige jüngste Spezifikationsänderungen zu berücksichtigen (Firefox Bug 1359371):- Der
offset-Parameter der Methodencollapse()undextend()ist jetzt optional. - Der
node-Parameter der Methodecollapse()ist nun nullable. - Der
partialContainment-Parameter der MethodecontainsNode()ist jetzt optional. - Die Methode
deleteFromDocument()wurde hinzugefügt.
- Der
-
Auch innerhalb der
SelectionAPI wurdenSelection.empty()undSelection.setPosition()als Aliase vonSelection.removeAllRanges()undSelection.collapse()hinzugefügt, aus Gründen der Web-Kompatibilität und um Parität mit WebKit/Blink zu erreichen (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 geteilte Workers können nun mit einer identifizierenden
name-Eigenschaft erstellt werden. Siehe die KonstruktorenWorker()undSharedWorker()sowie die SchnittstellenDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope. (Firefox Bug 1364297). Window.setTimeout(),WorkerGlobalScope.setTimeout(),Window.setInterval()undWorkerGlobalScope.setInterval()unterliegen jetzt Mindestintervall-Drosselung für Tracking-Skripte in Hintergrund-Tabs — siehe Drosselung von Tracking-Skripten (Firefox Bug 1355311).
Service Worker/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 Strings alsapplicationServerKey-Werte (Firefox Bug 1337348).
Web Audio API
- Ein nicht-standardmäßiger Konstruktor (der einen String-Enum-Wert akzeptierte, der angab, zu welchem Zweck der Kontext verwendet werden sollte) für die
AudioContext-Schnittstelle verursachte Fehler, als 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()stellt nun standardmäßig einen Stereo-Audiostream bereit, wenn das Quellgerät Stereo-Sound liefert; Unterstützung zur gezielten Anforderung von Mono-Eingang wird in Firefox 56 kommen. Dies funktioniert derzeit nur auf dem Desktop; mobil unterstützt Firefox derzeit keine Stereo-Audioeingabegeräte (Firefox Bug 971528).- Die Mediafähigkeiten, Beschränkungen und Einstellungen
autoGainControlundnoiseSuppressionvongetUserMedia()entsprechen jetzt der Spezifikation; früher waren sie mitmoz-Präfix versehen (Firefox Bug 1366415). - Wenn
getUserMedia()mit einem leeren Constraints-Set aufgerufen wurde, wurde fälschlicherweiseNotSupportedErrorstattTypeErrorzurückgegeben. Dies wurde behoben (Firefox Bug 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded,pliCount,nackCountundfirCount(Firefox Bug 1348657). - Das ehemals
mozRttgenannte Feld desRTCInboundRTPStreamStats-Dictionaries wurde inroundTripTimeumbenannt, um der Spezifikation zu entsprechen; außerdem wurde sein Verhalten an die Standards angepasst: es enthält einen doppelt genauen Fließkommawert, der die Round-Trip-Zeit basierend auf den RTCP-Zeitstempeln im RTCP-Empfängerbericht schätzt, gemessen in Sekunden (laut dem in RFC 3550, Abschnitt 6.4.1 beschriebenen Algorithmus). (Firefox Bug 1344970). Allerdings sei darauf hingewiesen, dass diese Eigenschaft bald zu einem anderen Dictionary (RTCRemoteInboundRTPStreamStats) bewegt wird (Firefox Bug 1380555). - Das
RTCRTPStreamStats-Dictionary enthält jetzt die FelderfirCount,pliCountundnackCount. Diese geben niedrigstufige 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 erfolgreich für den Stream kodierten Frames meldet; mit diesen Informationen können Sie die Bildrate berechnen (Firefox Bug 1348657). - Auf Android gibt es jetzt eine Pref, um Hardware-Video-Encoding zu aktivieren, um die Videoanrufleistung zu verbessern und Energie zu sparen. Um standardmäßig in Firefox 56 aktiviert zu werden (Firefox Bug 1265755).
Verschlüsselte Medienerweiterungen API
- Firefox erlaubt derzeit die Verwendung von verschlüsselten Medienerweiterungen 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 Web-Konsole ausgegeben, wenn dies erfolgt. (Firefox Bug 1361000).
- Firefox verlangt derzeit nicht, dass mindestens ein
MediaKeySystemCapabilities-Objekt imsuggestedConfigurations-Parameter enthalten ist, der inNavigator.requestMediaKeySystemAccess()übergeben wird, was die Spezifikation vorschreibt. Ab Firefox 55 wird eine Warnung in die Web-Konsole 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 mehrere von Audio und 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 nun nur in sicheren Kontexten verfügbar (Firefox Bug 1072859).
- Die Storage API ist nun nur in sicheren Kontexten verfügbar (Firefox Bug 1268804).
- Das Laden von Mixed Content ist jetzt auf localhost erlaubt (Firefox Bug 903966).
- Das Laden von Remote-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 Nutzer von Nightly und 50% der Beta-Nutzer in Kraft gesetzt. Für die Freigabeversion 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 Bug 1365714).
- Flash und andere Plugins können nicht mehr von einem anderen URL-Schema außer
http://undhttps://geladen werden (Firefox Bug 1335475).
Sonstiges
- Firefox auf Linux kann jetzt im Kopflos-Modus mit der
-headless-Flagge 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 festzulegen, 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 Firefox 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 dertext-decoration-line-Eigenschaft wurde entfernt (Firefox Bug 1355734).
APIs
- Die
UIEvent.isChar-Eigenschaft wurde außer vom Firefox-Browser von keinem anderen Browser 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 aus der Plattform entfernt (Firefox Bug 1299500).
- Der
aShowDialog-Parameter der nicht-standardmäßigenWindow.find()-Methode (der angegeben werden konnte, um ein "Suchen"-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-Angebotsoptionen
mozDontOfferDataChannelundmozBundleOnlywurden aus demRTCOfferOptionsDictionary 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
SVGZoomEvent- undSVGZoomEvents-Schnittstellen wurden aus dem SVG2-Spezifikationsentwurf und Gecko entfernt, zusammen mit demonzoom <svg>-Attribut (Firefox Bug 1314388).
Änderungen für Add-On und Mozilla-Entwickler
>WebExtensions
- contextMenus.create()'s Befehlseigenschaft ermöglicht es Ihnen, Browser-Aktions-Popups, Seiten-Aktions-Popups und Sidebars aus dem Kontextmenü zu öffnen.
- proxy API
- chrome_settings_overrides key ermöglicht es Ihnen, die Homepage des Browsers zu überschreiben.
- Die browser_style-Eigenschaft ermöglicht es Ihnen, eine browserähnliche Gestaltung für Browser-Aktions-Popups, Sidebars und Optionsseiten zu haben.
- permissions API