files/en-us/mozilla/firefox/releases/55/index.md
Firefox 55 was released on August 8, 2017. This article lists key changes that are useful for web developers.
X-SourceMap header, see Firefox bug 1346936).contenteditable has been set to true now use {{htmlelement("div")}} elements to separate different lines of text, to give Firefox parity with other modern browsers (Firefox bug 1297414).dom.forms.datetime by default on Nightly (Firefox bug 1366188).frames() timing function (Firefox bug 1248340).inline-start and inline-end — which were previously implemented but preffed off in release channels, are now available in all channels by default (Firefox bug 1253919).layout.css.variables.enabled preference has been removed completely meaning that the CSS variables feature is enabled all the time and can no longer be disabled (Firefox bug 1312328).-moz-context-properties property (Firefox bug 1058040)....) is now supported in object destructuring and the spread operator (...) now works in object literals (Stage 3 ECMAScript proposal: Object Rest/Spread Properties, Firefox bug 1339395).locale parameter to specify a language tag for locale-specific case mappings (Firefox bug 1318403).caseFirst option (Firefox bug 866473).ToIndex operation and allow constructors without arguments, which return zero-length typed arrays (Firefox bug 1317383).requestIdleCallback API) is now enabled by default after being available behind a preference since Firefox 53. This API lets you schedule tasks to be executed when the browser determines that there's free time available before the next repaint occurs, so that your code can make use of that time without causing visible performance lag (Firefox bug 1314959).pageXOffset and pageYOffset have been updated to be subpixel precise. Instead of returning an integer, these now return a floating-point value which more accurately describes the scroll position on subpixel-precise displays (Firefox bug 1151421). If need be, you can use {{jsxref("Math.round()")}} to convert them into integers.maxLength property can now be dynamically altered with JavaScript after the equivalent HTML has been created (Firefox bug 1352799).DOMString as its base (2nd parameter) — it only accepts a USVString. It can still use an existing {{domxref("URL")}} object for the base, which stringifies itself to the object's href attribute (Firefox bug 1368950).USVString, not DOMString, and the {{domxref("MessageEvent.source")}} property now takes a MessageEventSource value (which can be a {{glossary("WindowProxy")}}, {{domxref("MessagePort")}}, or {{domxref("ServiceWorker")}} object) (Firefox bug 1311324).Ctrl key. This mapping was implemented to allow developers to implement simple zooming functionality using the pinch-to-zoom gesture on mobile screens/trackpads (mousewheel + Ctrl commonly zooms) (Firefox bug 1052253).The Selection API has been updated so that it has parity with other browsers in terms of how editing hosts are given focus when the selection moves inside them (Firefox bug 1318312). See Behavior of Selection API in terms of editing host focus changes for more details.
The {{domxref("Selection")}} API has been updated to match some recent spec changes (Firefox bug 1359371):
offset parameter is now optional.node parameter is now nullable.partialContainment parameter is now optional.Also in the {{domxref("Selection")}} API, Selection.empty() and Selection.setPosition() have been added as aliases of {{domxref("Selection.removeAllRanges()")}} and {{domxref("Selection.collapse()")}}, for web compat and WebKit/Blink parity reasons (Firefox bug 1359387).
The {{domxref("StorageManager.persist()")}} and {{domxref("StorageManager.persisted()")}} methods of the Storage API have been implemented and exposed to Window contexts (Firefox bug 1286717).
name property. See the {{domxref("Worker.Worker", "Worker()")}} and {{domxref("SharedWorker.SharedWorker", "SharedWorker()")}} constructors, and the {{domxref("DedicatedWorkerGlobalScope")}} and {{domxref("SharedWorkerGlobalScope")}} interfaces. (Firefox bug 1364297).applicationServerKey values (Firefox bug 1337348).options parameter was provided. We have removed the non-standard constructor. However, please note that the options parameter is not yet supported in Firefox and is currently ignored (Firefox bug 1361475).getUserMedia() media capabilities, constraints, and settings autoGainControl and noiseSuppression now match the spec; formerly they were moz-prefixed (Firefox bug 1366415).getUserMedia() was incorrectly returning NotSupportedError instead of TypeError. This has been fixed (Firefox bug 1349480).framesEncoded, pliCount, nackCount, and firCount (Firefox bug 1348657).RTCInboundRTPStreamStats dictionary field formerly called mozRtt has been renamed to roundTripTime to match the specification; in addition, its behavior has been adjusted to match the standard: it contains a double-precision floating point value which estimates the round-trip time based on the RTCP timestamps in the RTCP Receiver Report, measured in seconds (following the algorithm described in {{RFC(3550, "", "6.4.1")}}). (Firefox bug 1344970). However, please be aware that this property is moving to a different dictionary (RTCRemoteInboundRTPStreamStats) soon (Firefox bug 1380555).RTCRTPStreamStats dictionary now includes the fields firCount, pliCount, and nackCount. These return low-level information that can be used to determine how reliable the connection is (Firefox bug 1348657).RTCOutboundRTPStreamStats dictionary now includes the field framesEncoded, which reports the number of frames that have been successfully encoded for the stream; with this information, you can compute the frame rate (Firefox bug 1348657).MediaKeySystemCapabilities object be included in the suggestedConfigurations parameter passed into {{domxref("Navigator.requestMediaKeySystemAccess()")}}, which the specification does mandate. Starting in Firefox 55, a warning is output to the web console when any audio or video configuration is specified without specifying supported codecs. Soon, failure to include a valid configuration for one or more of audio and video will throw an exception Firefox bug 1368683).http:// and https:// (Firefox bug 1335475).-headless flag (see Firefox bug 1356681).The xml:base attribute can no longer be used to set the base URL for paths appearing in the style attribute, for example —
<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div> (Firefox bug 1350521).
The {{htmlelement("style")}} element's scoped attribute has been hidden behind a pref (layout.css.scoped-style.enabled) in content documents in Firefox 55+, as no other browsers support it.
Support for the obscure MSThemeCompatible value of the {{htmlelement("meta")}} element's http-equiv attribute has been removed from Firefox. No other modern browsers support it, and it was causing compatibility problems (Firefox bug 966240).
:-moz-bound-element pseudo-class has been removed (Firefox bug 1350147).-moz-anchor-decoration value of {{cssxref("text-decoration-line")}} has been removed (Firefox bug 1355734).UIEvent.isChar property has never been supported by any browser but Firefox, and it has never been fully implemented except on macOS. For that reason, it was removed in Firefox 55 to align with other browsers.aShowDialog parameter of the non-standard {{domxref("Window.find()")}} method (which could be specified to open up a "Find" dialog in the browser) has been removed (Firefox bug 1348409).HTMLFormElement.requestAutoComplete() method has been removed (see {{domxref("HTMLFormElement")}}) (Firefox bug 1270740).mozDontOfferDataChannel and mozBundleOnly have been removed from the RTCOfferOptions dictionary and are no longer supported by {{domxref("RTCPeerConnection.createOffer()")}} (Firefox bug 1196974).Audio Channels API has been removed from {{domxref("HTMLMediaElement")}} and {{domxref("AudioContext")}} (Firefox bug 1358061).SVGZoomEvent and SVGZoomEvents interfaces have been removed from the SVG2 spec and Gecko, along with the onzoom <svg> attribute (Firefox bug 1314388).