• Skip to main content
  • Select language
  • Skip to search
MDN Web Docs
  • Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • HTTP
    • APIs / DOM
    • WebExtensions
    • MathML
  • References & Guides
    • Learn web development
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • Game development
    • ...more docs
Firefox
  1. MDN
  2. Mozilla
  3. Firefox
  4. Firefox developer release notes
  5. Firefox 53 for developers

Firefox 53 for developers

In This Article
  1. Changes for Web developers
    1. Developer Tools
    2. CSS
      1. New features
      2. Other changes
    3. JavaScript
    4. Events
    5. DOM
    6. Workers and service workers
    7. WebGL
    8. Audio, video, and media
      1. General
      2. Media elements
      3. Web Audio API
      4. WebRTC
    9. HTTP/Networking
    10. SVG
  2. Removals from the web platform
    1. HTML/XML
    2. CSS
    3. JavaScript
    4. APIs
    5. Other
  3. Changes for add-on and Mozilla developers
    1. WebExtensions
    2. JavaScript code modules
  4. See also
  5. Older versions

Firefox 53 was released on April 19, 2017. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.

Changes for Web developers

Developer Tools

  • Avoid scrolling latency on highlighters given by APZ (bug 1312103).
  • Added option to copy the full CSS path of an element (bug 1323700).
  • Devtools support for css-color-4 (bug 1310681).
  • Markup view: add a visual hint between opening and closing tags of a collapsed node (bug 1323193).

CSS

New features

  • The mask-* longhand properties (see CSS Masks) are all supported and available by default (see bug 1251161).
  • Added caret-color property (bug 1063162).
  • Implemented the place-items/place-self/place-content shorthands (bug 1319958).
  • Added flow-root value to display property (bug 1322191).
  • -moz-tab-size now accepts <length> values (bug 943918), and is now animatable (bug 1308110).
  • mask-mode:luminance doesn't work on gradient masks (bug 1346265).
  • [css-grid] FR Unit in grid-template-rows not filling viewport (bug 1346699).
  • flex items aren't sorted according to "order", if they're separated by an abspos sibling (bug 1345873).

Other changes

  • Enable mask longhands on SVG elements (bug 1319667).
  • [css-grid] Fixed: align-self/justify-self:stretch/normal doesn't work on <table> grid items (bug 1316051).
  • Fixed: clip-path: circle() with large reference box and percentage radius does not render correctly (bug 1324713.
  • When applying a text-transform value of uppercase to Greek text, the accent on the disjunctive eta (ή) is no longer removed (see bug 1322989).
  • The availability of the contents value of display was controlled through the layout.css.display-contents.enabled pref. In Firefox 53 this pref has been removed altogether, so the value will always be available and can no longer be disabled (bug 1295788).

JavaScript

  • ECMAScript 2015 semantics for the Function.name properties have been implemented. This includes inferred names on anonymous functions (var foo = function() {}) (bug 883377).
  • ECMAScript 2015 semantics for closing iterators have been implemented. This affects the for...of loop, for example (bug 1147371).
  • The Template Literal Revision proposal that lifts escape sequence restrictions on tagged template literals has been implemented (bug 1317375).
  • The non-standard String generics now present a deprecation warning in the console. Do not use them anymore, they will be removed in the future! (bug 1319926).
  • The static length property of TypedArray objects was changed from 3 to 0 as per ES2016 (bug 1317306).
  • SharedArrayBuffer can now be used in DataView objects (bug 1246597).
  • In earlier versions of the specification, SharedArrayBuffer objects needed to be explicitly transferred during structured cloning. In the new specification they aren't transferable objects anymore and thus must not be in the transfer list. The new behavior used to present a console warning only, but will now throw an error (bug 1302037).
  • The ArrayBuffer length is now limited to Number.MAX_SAFE_INTEGER (>= 2 ** 53) (bug 1255128).
  • Error.prototype and other native error object prototypes like RangeError.prototype etc. are now ordinary objects instead of proper Error objects. (In particular, Object.prototype.toString.call(Error.prototype) is now "[object Object]" instead of "[object Error]".) (bug 1213341).

Events

  • CSS Transitions: The transitionstart, transitionrun, and transitioncancel events have been implemented (see bug 1264125 and bug 1287983).
  • The CompositionEvent constructor has been implemented (see bug 1002256).
  • The MouseEvent.x and MouseEvent.y aliases of MouseEvent.clientX/MouseEvent.clientY have been implemented (see bug 424390).
  • The auxclick event and corresponding GlobalEventHandlers.onauxclick handler have been implemented (see bug 1304044).
  • The transitioncancel event is now fired after a transition is cancelled. See GlobalEventHandlers.ontransitioncancel for more details and an example (bug 1264125).

DOM

  • The pathname and search HTMLHyperLinkElementUtils properties previously returned the wrong parts of the URL. For example, for a URL of http://z.com/x?a=true&b=false, pathname would return "/x?a=true&b=false" and search would return "", rather than "/x" and "?a=true&b=false" respectively. This has now been fixed (bug 1310483).
  • The URLSearchParams() constructor now accepts a USVString or sequence of USVStrings as an init object (bug 1330678).
  • The Selection.setBaseAndExtent() method of the Selection API is now implemented (see bug 1321623).
  • The "fakepath" addition to file type <input> values has been implemented in Gecko, giving it parity with other browsers (see bug 1274596).
  • Node.getRootNode() has been implemented, replacing the deprecated Node.rootNode property (bug 1269155).
  • Own properties of Plugin and PluginArray objects are no longer enumerable (bug 1270366).
  • Named properties of MimeTypeArray objects are no longer enumerable (bug 1270364).
  • The Permissions API now has a new permission name available — persistent-storage — as used when making a Permissions.query() (see bug 1270038). This allows an origin to use a persistent box (i.e persistent storage) for its storage, as per the Storage API.

Workers and service workers

  • The Network Information API is now available in workers (see bug 1323172).
  • Server-sent events can now be used from workers (see bug 1267903).
  • ExtendableEvent.waitUntil() can now be called asynchronously (see bug 1263304).

WebGL

  • The WEBGL_compressed_texture_astc WebGL extension has been implemented (bug 1250077).
  • The WEBGL_debug_renderer_info WebGL extension is now enabled by default (bug 1336645).

Audio, video, and media

General

  • Beginning in Firefox 53 for Android, decoding of media is handled out-of-process for improved performance on multi-core systems (bug 1333323).

Media elements

  • The HTMLMediaElement.play() method, used to begin playback of media in any media element, now returns a Promise which is fulfilled when playback begins and is rejected if an error occurs (bug 1244768).

Web Audio API

  • The AudioScheduledSourceNode interface has been added and the AudioBufferSourceNode, ConstantSourceNode, and OscillatorNode interfaces are now based on it (bug 1324568).

WebRTC

  • The RTCPeerConnection methods createOffer() and createAnswer() now return a Promise that returns an object conforming to the dictionary RTCSessionDescriptionInit instead of returning an RTCSessionDescription directly. Existing code will continue to work, but new code can be written more simply.
  • Similarly, the RTCPeerConnection methods setLocalDescription() and setRemoteDescription() now accept as input an object conforming to the dictionary RTCSessionDescriptionInit. Existing code continues to work, but can be simplified.
  • RTCPeerConnection.addIceCandidate() now accepts as input an object conforming to the RTCIceCandidateInit dictionary. This is compatible with existing code but allows new code to be written slightly more simply when used in tandem with the changes listed above (bug 1263312).
  • DTMF support is now enabled by default using RTCDTMFSender. See Using DTMF with WebRTC for more information on how this works.

HTTP/Networking

  • Gecko now has a pref available in about:config to allow users to set their default Referrer-Policy — network.http.referer.userControlPolicy (bug 1304623). Possible values are:
    • 0 — no-referrer
    • 1 — same-origin
    • 2 — strict-origin-when-cross-origin
    • 3 — no-referrer-when-downgrade (the default)
  • Support for Next Protocol Negotiation (NPN) has been removed in favor of Application-Layer Protocol Negotiation (ALPN) — see bug 1248198.
  • The Large-Allocation HTTP header is now available by default, and no longer hidden behind a pref (bug 1331083).

SVG

  • Partly implemented SVGGeometryElement interface (bug 1239100).

Removals from the web platform

HTML/XML

  • The dom.details_element.enabled pref — which controlled enabling/disabling <details> and <summary> element support in Firefox — has now been removed from about:config. These elements (which were first enabled by default in Firefox 49) can no longer be disabled. See bug 1271549.
  • The mozapp attribute of the <iframe> element/HTMLIFrameElement interface has been removed — this was used to enable a Firefox OS app to be embedded in a moz Browser API <iframe> (bug 1310845).
  • The HTMLIFrameElement.setInputMethodActive() method and InputMethod interface (used to set and manage IMEs on Firefox OS apps) has been removed (bug 1313169).

CSS

  • Removed -moz prefixed variant of :dir() pseudo-class (bug 1270406).
  • The -moz prefixed version of text-align-last got removed (bug 1276808).
  • Removed -moz prefixed variant of calc() method (bug 1331296).
  • The proprietary -moz-samplesize media fragment (added to aid in delivery of downsampled images to low memory Firefox OS devices; see bug 854795) has been removed (bug 1311246).

JavaScript

  • The non-standard ArrayBuffer.slice() method has been removed (but the standardized version ArrayBuffer.prototype.slice() is kept, see bug 1313112).

APIs

  • The Wifi information API, Speaker Manager API, and Tethering API, and Settings API have been removed from the platform (see bug 1313788, bug 1317853, bug 1313789, and bug 1313155 respectively).

Other

  • The legacycaller has been removed from the HTMLEmbedElement and HTMLObjectElement interfaces (bug 909656).

Changes for add-on and Mozilla developers

WebExtensions

New APIs:

  • browsingData
  • identity
  • contextualIdentities

Enhanced APIs:

  • storage.sync
  • page_action, browser_action, password, tab context types in contextMenus
  • webRequest.onBeforeRequest now supports requestBody
  • tabs.insertCSS now supports cssOrigin, enabling you to insert user style sheets.

JavaScript code modules

  • The asynchronous AddonManager APIs now support Promises as well as callbacks (bug 987512.

See also

  • Site Compatibility for Firefox 53

Older versions

  • Firefox 52 for developers
  • Firefox 51 for developers
  • Firefox 50 for developers
  • Firefox 49 for developers
  • Firefox 48 for developers
  • Firefox 47 for developers
  • Firefox 46 for developers
  • Firefox 45 for developers
  • Firefox 44 for developers
  • Firefox 43 for developers
  • Firefox 42 for developers
  • Firefox 41 for developers
  • Firefox 40 for developers
  • Firefox 39 for developers
  • Firefox 38 for developers
  • Firefox 37 for developers
  • Firefox 36 for developers
  • Firefox 35 for developers
  • Firefox 34 for developers
  • Firefox 33 for developers
  • Firefox 32 for developers
  • Firefox 31 for developers
  • Firefox 30 for developers
  • Firefox 29 for developers
  • Firefox 28 for developers
  • Firefox 27 for developers
  • Firefox 26 for developers
  • Firefox 25 for developers
  • Firefox 24 for developers
  • Firefox 23 for developers
  • Firefox 22 for developers

Document Tags and Contributors

Tags: 
  • Firefox
  • Mozilla
  • Release Notes
 Contributors to this page: chrisdavidmills, Sebastianz, yisibl, myakura, Sheppy, craue, fscholz, claudepache, teoli, wbamberg, kmaglione, arai
 Last updated by: chrisdavidmills, Jul 26, 2017, 5:58:05 AM
  1. Add-ons
    1. Firefox developer release notes
    2. Add-ons
    3. Add-on guidelines
    4. Add-on Manager
    5. Extensions
    6. OpenSearch plug-ins
    7. Plugins
    8. Themes
  2. Firefox internals
    1. Firefox developer release notes
    2. Mozilla project
    3. Gecko
    4. JavaScript code modules
    5. JS-ctypes
    6. MathML project
    7. MFBT
    8. Mozilla projects
    9. Preference system
    10. WebIDL bindings
    11. XPCOM
    12. XUL
  3. Building and contributing
    1. Build instructions
    2. Configuring build options
    3. How the build system works
    4. Mozilla source code
    5. Localization
    6. Mercurial
    7. Quality assurance
    8. Using Mozilla code in other projects