Versionshinweise zu Firefox 55 für Entwickler
Firefox 55 wurde am 8. August 2017 veröffentlicht. Dieser Artikel führt wichtige Änderungen auf, die für Webentwickler nützlich sind.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Netzwerkrequests können jetzt nach Spaltenwerten und anderen Eigenschaften (Firefox-Bug 1041895, Firefox-Bug 1354508, Firefox-Bug 1354507) sowie mithilfe regulärer Ausdrücke (Firefox-Bug 1354495) gefiltert werden.
- Spalten im Netzwerkmonitor können jetzt ein- und ausgeblendet werden (Firefox-Bug 862855).
- Dem Netzwerkmonitor wurden Spalten für die Remote-IP (Firefox-Bug 1344523), das Protokoll (Firefox-Bug 1345489), das Schema (Firefox-Bug 1356867), Cookies und gesetzte Cookies (Firefox-Bug 1356869) hinzugefügt.
- Der HTTP-Header
SourceMapwird jetzt unterstützt. Frühere Versionen unterstützten den veralteten HeaderX-SourceMap(siehe Firefox-Bug 1346936).
HTML
- Elemente, bei denen
contenteditableauftruegesetzt ist, verwenden jetzt<div>-Elemente, um verschiedene Textzeilen voneinander zu trennen. Damit verhält sich Firefox wie andere moderne Browser (Firefox-Bug 1297414). dom.forms.datetimeist in Nightly jetzt standardmäßig aktiviert (Firefox-Bug 1366188).
CSS
- Die Eigenschaft
transform-boxist jetzt standardmäßig verfügbar (Firefox-Bug 1208550). - Die Timing-Funktion
frames()wurde implementiert (Firefox-Bug 1248340). - Die Eigenschaft
text-justifywurde implementiert (Firefox-Bug 1343512, Firefox-Bug 276079). - [css-grid]
fit-contentreserviert inrepeat()unerwartet Platz für die vollständige Begrenzungsgröße (Firefox-Bug 1359060). - Die logischen Werte
inline-startundinline-endfürfloatundclear, die zuvor implementiert, in den Release-Kanälen aber deaktiviert waren, sind jetzt in allen Kanälen standardmäßig verfügbar (Firefox-Bug 1253919). - Die Einstellung
layout.css.variables.enabledwurde vollständig entfernt. Damit ist die Funktion CSS-Variablen dauerhaft aktiviert und kann nicht mehr deaktiviert werden (Firefox-Bug 1312328). - Die proprietäre Eigenschaft
-moz-context-propertieswurde implementiert (Firefox-Bug 1058040). - Der Winkelwert null (0) ohne Gradeinheit wird in
linear-gradient()nicht korrekt interpretiert (Firefox-Bug 1363292). - Das Pseudoelement
::cuewird jetzt unterstützt. Es erfasst Texteinblendungen, die innerhalb eines Medienelements angezeigt werden (Firefox-Bug 1318542).
SVG
- Das Attribut
frdes Elements<radialGradient>wurde implementiert (Firefox-Bug 1240275).
JavaScript
- Die Objekte
SharedArrayBufferundAtomicssind jetzt standardmäßig aktiviert. Eine Einführung in gemeinsam genutzten Speicher und Atomics in JavaScript finden Sie unter Ein Einblick in die neuen Parallelitätsprimitiven von JavaScript. - Der Rest-Operator (
...) wird jetzt bei der Destrukturierung von Objekten unterstützt, und der Spread-Operator (...) funktioniert jetzt in Objektliteralen (ECMAScript-Vorschlag der Stufe 3: Object Rest/Spread Properties, Firefox-Bug 1339395). - Asynchrone Generatormethoden werden jetzt unterstützt (Firefox-Bug 1353693).
- Die Methoden
String.prototype.toLocaleLowerCase()undString.prototype.toLocaleUpperCase()unterstützen jetzt einen optionalen Parameterlocale, mit dem sich ein Sprach-Tag für gebietsschemaspezifische Groß- und Kleinschreibungsregeln angeben lässt (Firefox-Bug 1318403). - Das Objekt
Intl.Collatorunterstützt jetzt die OptioncaseFirst(Firefox-Bug 866473). - Die Intl-API verwendet jetzt das Standardgebietsschema des Browsers statt des Betriebssystems, wenn kein Gebietsschema angegeben wird (Firefox-Bug 1346674).
- Template-Call-Site-Objekte werden jetzt anhand ihrer Liste unverarbeiteter Strings pro Realm kanonisiert (Firefox-Bug 1108941).
- Die Konstruktoren von
TypedArray(etwaInt8Array,Float32Arrayusw.) wurden an ES2017 angepasst. Sie verwenden jetzt die OperationToIndexund erlauben Aufrufe ohne Argumente, die typisierte Arrays der Länge null zurückgeben (Firefox-Bug 1317383).
APIs
Neue APIs
- Die API zur kooperativen Planung von Hintergrundaufgaben (auch als Background Tasks API oder
requestIdleCallback-API bekannt) ist jetzt standardmäßig aktiviert, nachdem sie seit Firefox 53 über eine Einstellung verfügbar war. Mit dieser API können Sie Aufgaben für Zeiträume einplanen, in denen der Browser vor der nächsten Neudarstellung freie Zeit feststellt. So kann Ihr Code diese Zeit nutzen, ohne sichtbare Leistungseinbußen zu verursachen (Firefox-Bug 1314959). - Die WebVR 1.1 API ist unter Windows jetzt standardmäßig aktiviert (und unter macOS in Nightly verfügbar). Diese API macht Virtual-Reality-Geräte – beispielsweise Head-Mounted Displays wie Oculus Rift oder HTC Vive – für Webanwendungen zugänglich. Entwickler können damit Positions- und Bewegungsdaten des Displays in Bewegungen durch eine 3D-Szene umsetzen und Inhalte auf solchen Displays darstellen.
- Die Intersection Observer API wurde hinzugefügt. Sie ermöglicht es, Änderungen an der Überschneidung eines Zielelements mit einem übergeordneten Element oder mit dem Viewport eines übergeordneten Dokuments asynchron zu beobachten (Firefox-Bug 1321865).
DOM
- Die Eigenschaften
scrollXundscrollYvonWindowsowie ihre AliasepageXOffsetund `pageYOffset wurden für Subpixelgenauigkeit aktualisiert. Statt einer Ganzzahl geben sie jetzt einen Gleitkommawert zurück, der die Scrollposition auf subpixelgenauen Displays präziser beschreibt (Firefox-Bug 1151421). Bei Bedarf können Sie die Werte mitMath.round()in Ganzzahlen umwandeln. MediaQueryListund weitere zugehörige Funktionen wurden an die neueste Spezifikation angepasst. Siehe Firefox-Bug 1354441 sowieMediaQueryListundMediaQueryListEvent.- Methoden von
DOMTokenList, die den Listenwert ändern, entfernen jetzt automatisch überflüssige Leerzeichen und doppelte Tokens (Firefox-Bug 869788; siehe auch Entfernen von Leerzeichen und Duplikaten). - Die Eigenschaft
maxLengthvonHTMLInputElementkann jetzt nach dem Erstellen des entsprechenden HTML dynamisch mit JavaScript geändert werden (Firefox-Bug 1352799). - Der Konstruktor
URL()akzeptiert für die Basis (den zweiten Parameter) keinenDOMStringmehr, sondern nur noch einenUSVString. Ein vorhandenesURL-Objekt kann weiterhin als Basis verwendet werden; es wird dabei in den Wert seineshref-Attributs umgewandelt (Firefox-Bug 1368950).
DOM-Ereignisse
- Die von der Methode
Document.createEvent()unterstützten Ereignistypen wurden gemäß der neuesten DOM-Spezifikation aktualisiert (Firefox-Bug 1251198). - Der Wert der Eigenschaft
MessageEvent.originist jetzt vom TypUSVStringstattDOMString. Die EigenschaftMessageEvent.sourcenimmt jetzt einen Wert vom TypMessageEventSourcean, der ein WindowProxy-,MessagePort- oderServiceWorker-Objekt sein kann (Firefox-Bug 1311324). - Die Geste zum Zoomen mit zwei Fingern wird jetzt auf das Ereignis
wheelzusammen mit der TasteCtrlabgebildet. Dadurch können Entwickler einfache Zoomfunktionen für diese Geste auf mobilen Bildschirmen und Trackpads implementieren (auch Mausrad +Ctrlwird häufig zum Zoomen verwendet) (Firefox-Bug 1052253).
Selection API
-
Die Selection API wurde aktualisiert, damit Firefox sich beim Fokussieren editierbarer Bereiche, in die eine Auswahl verschoben wird, wie andere Browser verhält (Firefox-Bug 1318312). Weitere Einzelheiten finden Sie unter Verhalten der Selection API bei Fokusänderungen editierbarer Bereiche.
-
Die
Selection-API wurde an einige aktuelle Änderungen der Spezifikation angepasst (Firefox-Bug 1359371):- Der Parameter
offsetder Methodencollapse()undextend()ist jetzt optional. - Der Parameter
nodeder Methodecollapse()kann jetztnullsein. - Der Parameter
partialContainmentder MethodecontainsNode()ist jetzt optional. - Die Methode
deleteFromDocument()wurde hinzugefügt.
- Der Parameter
-
Außerdem wurden der
Selection-APISelection.empty()undSelection.setPosition()als Aliase fürSelection.removeAllRanges()beziehungsweiseSelection.collapse()hinzugefügt, um die Webkompatibilität und die Angleichung an WebKit/Blink zu verbessern (Firefox-Bug 1359387). -
Die Methoden
StorageManager.persist()undStorageManager.persisted()der Storage API wurden implementiert und sind inWindow-Kontexten verfügbar (Firefox-Bug 1286717).
Worker
- Worker und Shared Worker können jetzt mit einer identifizierenden Eigenschaft
nameerstellt werden. Siehe die KonstruktorenWorker()undSharedWorker()sowie die SchnittstellenDedicatedWorkerGlobalScopeundSharedWorkerGlobalScope(Firefox-Bug 1364297). - Für
Window.setTimeout(),WorkerGlobalScope.setTimeout(),Window.setInterval()undWorkerGlobalScope.setInterval()gilt bei Tracking-Skripten in Hintergrund-Tabs jetzt eine Drosselung durch Mindestintervalle – siehe Drosselung von Tracking-Skripten (Firefox-Bug 1355311).
Service Worker/Push
- Nachrichten, die an Service-Worker-Kontexte gesendet werden (etwa als Ereignisobjekt von
onmessage), werden jetzt durchMessageEvent-Objekte dargestellt. Dies entspricht anderen Web-Messaging-Funktionen. - Die Methode
PushManager.subscribe()akzeptiert jetztArrayBuffer-Objekte und Base64-kodierte Strings als Werte fürapplicationServerKey(Firefox-Bug 1337348).
Web Audio API
- Ein nicht standardisierter Konstruktor der Schnittstelle
AudioContext, der einen String-Enum-Wert für den Verwendungszweck des Kontexts akzeptierte, führte zu Fehlern, wenn der Parameteroptionsangegeben wurde. Dieser Konstruktor wurde entfernt. Beachten Sie jedoch, dass der Parameteroptionsin Firefox noch nicht unterstützt wird und derzeit ignoriert wird (Firefox-Bug 1361475).
WebRTC
getUserMedia()stellt jetzt standardmäßig einen Stereo-Audiostream bereit, sofern das Quellgerät Stereoton liefert. Die Möglichkeit, ausdrücklich Mono-Eingabe anzufordern, folgt in Firefox 56. Derzeit funktioniert dies nur auf Desktopgeräten; Firefox für Mobilgeräte unterstützt derzeit keine Stereo-Audioeingabequellen (Firefox-Bug 971528).- Die Medienfähigkeiten, Constraints und Einstellungen
autoGainControlundnoiseSuppressionvongetUserMedia()entsprechen jetzt der Spezifikation; zuvor trugen sie das Präfixmoz(Firefox-Bug 1366415). - Bei einem Aufruf mit einer leeren Menge von Constraints gab
getUserMedia()fälschlicherweiseNotSupportedErrorstattTypeErrorzurück. Dies wurde behoben (Firefox-Bug 1349480). - Die folgenden neuen WebRTC-Statistiken sind verfügbar:
framesEncoded,pliCount,nackCountundfirCount(Firefox-Bug 1348657). - Das früher
mozRttgenannte Feld des DictionariesRTCInboundRTPStreamStatswurde entsprechend der Spezifikation inroundTripTimeumbenannt. Auch sein Verhalten wurde an den Standard angepasst: Es enthält einen Gleitkommawert mit doppelter Genauigkeit, der die anhand der RTCP-Zeitstempel im RTCP Receiver Report geschätzte Umlaufzeit in Sekunden angibt (gemäß dem in RFC 3550, Abschnitt 6.4.1 beschriebenen Algorithmus) (Firefox-Bug 1344970). Beachten Sie jedoch, dass diese Eigenschaft demnächst in ein anderes Dictionary (RTCRemoteInboundRTPStreamStats) verschoben wird (Firefox-Bug 1380555). - Das Dictionary
RTCRTPStreamStatsenthält jetzt die FelderfirCount,pliCountundnackCount. Sie liefern Informationen auf niedriger Ebene, anhand derer sich die Zuverlässigkeit der Verbindung beurteilen lässt (Firefox-Bug 1348657). - Das Dictionary
RTCOutboundRTPStreamStatsenthält jetzt das FeldframesEncoded. Es gibt an, wie viele Frames für den Stream erfolgreich kodiert wurden; daraus können Sie die Bildrate berechnen (Firefox-Bug 1348657). - Unter Android gibt es jetzt eine Einstellung, mit der sich die Hardware-Videokodierung aktivieren lässt, um die Leistung von Videoanrufen zu verbessern und Akku zu sparen. In Firefox 56 soll sie standardmäßig aktiviert werden (Firefox-Bug 1265755).
Encrypted Media Extensions API
- Firefox erlaubt derzeit die Verwendung von Encrypted Media Extensions in unsicheren Kontexten, obwohl die Spezifikation dies nicht zulässt. Dies wird sich in naher Zukunft ändern. Seit Firefox 55 wird bei einer solchen Verwendung eine Warnung über die bevorstehende Einstellung in der Webkonsole ausgegeben (Firefox-Bug 1361000).
- Firefox verlangt derzeit nicht, dass der an
Navigator.requestMediaKeySystemAccess()übergebene ParametersuggestedConfigurationsmindestens einMediaKeySystemCapabilities-Objekt enthält, obwohl die Spezifikation dies vorschreibt. Seit Firefox 55 wird in der Webkonsole eine Warnung ausgegeben, wenn eine Audio- oder Videokonfiguration ohne Angabe unterstützter Codecs festgelegt wird. In Kürze wird eine Ausnahme ausgelöst, wenn für Audio oder Video keine gültige Konfiguration angegeben wird (Firefox-Bug 1368683).
WebGL
- Die Erweiterung
WEBGL_compressed_texture_s3tc_srgbist jetzt 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 gemischter Inhalte ist auf localhost jetzt erlaubt (Firefox-Bug 903966).
- Das Laden entfernter JAR-Dateien wurde erneut deaktiviert (Firefox-Bug 1329336).
Plugins
- Flash-Inhalte müssen jetzt per Klick aktiviert werden (Firefox-Bug 1317856). Dies wurde sofort für alle Nutzer von Nightly und für 50 % der Beta-Nutzer wirksam. Für die Release-Version von Firefox 55 war geplant, die Funktion zwei Wochen nach der Veröffentlichung für 5 % der Nutzer, nach vier Wochen für 25 % und nach sechs Wochen für 100 % zu aktivieren (Firefox-Bug 1365714).
- Flash und andere Plugins können nicht mehr über andere URL-Schemata als
http://undhttps://geladen werden (Firefox-Bug 1335475).
Sonstiges
- Firefox kann unter Linux jetzt mit dem Flag
-headlessim Headless-Modus ausgeführt werden (siehe Firefox-Bug 1356681).
Entfernungen von der Webplattform
>HTML
-
Das Attribut
xml:basekann nicht mehr verwendet werden, um die Basis-URL für Pfade im Attributstylefestzulegen, beispielsweise bei:<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>(Firefox-Bug 1350521). -
Das Attribut
scopeddes Elements<style>ist in Inhaltsdokumenten ab Firefox 55 hinter einer Einstellung (layout.css.scoped-style.enabled) verborgen, da es von keinem anderen Browser unterstützt wird. -
Die Unterstützung für den wenig gebräuchlichen Wert
MSThemeCompatibledes Attributshttp-equivdes Elements<meta>wurde aus Firefox entfernt. Kein anderer moderner Browser unterstützt ihn, und er verursachte Kompatibilitätsprobleme (Firefox-Bug 966240).
CSS
- Die proprietäre Pseudoklasse
:-moz-bound-elementwurde entfernt (Firefox-Bug 1350147). - Der proprietäre Wert
-moz-anchor-decorationfürtext-decoration-linewurde entfernt (Firefox-Bug 1355734).
APIs
- Die Eigenschaft
UIEvent.isCharwurde außer von Firefox von keinem Browser unterstützt und war außer unter macOS nie vollständig implementiert. Daher wurde sie in Firefox 55 entfernt, um das Verhalten an andere Browser anzugleichen. - Die proprietäre Firefox-OS-API Device Storage wurde von der Plattform entfernt (Firefox-Bug 1299500).
- Der Parameter
aShowDialogder nicht standardisierten MethodeWindow.find(), mit dem sich ein Suchdialog im Browser öffnen ließ, wurde entfernt (Firefox-Bug 1348409). - Die Methode
HTMLFormElement.requestAutoComplete()wurde entfernt (sieheHTMLFormElement) (Firefox-Bug 1270740). - Die nicht standardisierten, Mozilla-spezifischen WebRTC-Offer-Optionen
mozDontOfferDataChannelundmozBundleOnlywurden aus dem DictionaryRTCOfferOptionsentfernt und werden vonRTCPeerConnection.createOffer()nicht mehr unterstützt (Firefox-Bug 1196974). - Die Unterstützung für die proprietäre Firefox-OS-API
Audio Channels APIwurde ausHTMLMediaElementundAudioContextentfernt (Firefox-Bug 1358061).
SVG
- Die Schnittstellen
SVGZoomEventundSVGZoomEventssowie das Attributonzoom <svg>wurden aus der SVG2-Spezifikation und aus Gecko entfernt (Firefox-Bug 1314388).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
- Mit der Eigenschaft
commandvoncontextMenus.create()können Sie Browser-Action-Popups, Page-Action-Popups und Seitenleisten über das Kontextmenü öffnen. - Proxy-API
- Mit dem Schlüssel
chrome_settings_overrideskönnen Sie die Startseite des Browsers überschreiben. - Mit der Eigenschaft
browser_stylekönnen Sie Browser-Action-Popups, Seitenleisten und Optionsseiten im Stil des Browsers gestalten. - Berechtigungs-API