Firefox 52, based on Gecko 52, will ship in March 2017. This article provides information about the changes in this release that will affect developers. Nightly builds of what will become Firefox 52 are currently available on the Beta channel. Some experimental features whose release dates are uncertain or undecided are discussed on the page Experimental features in Firefox. Some features described there may be available in Firefox 52.

Items listed here are tentatively slated for Firefox 52; however, they may be held for a future release if testing shows they're not ready by the time Firefox 52 is due to ship. Please keep an eye on this page to stay up to date on the plans for Firefox 52.

Changes for Web developers

Developer Tools

All devtools bugs fixed between Firefox 51 and Firefox 52.

HTML

CSS

New features

CSS Grids

Changes and removals

  • CSS Animations can now be used to animate non-interpolable properties (see bug 1064937).
  • Unprefixed multi-column properties (and added back -moz prefixed versions as aliases, for now) (bug 1300895).
  • Changed baseline|last-baseline to [ first | last ]? baseline (bug 1313254).
  • The used value for left/right is start for the block-axis (bug 1221565).
  • Stopped wrapping abspos children of flex container in anonymous flex items(bug 1269045).
  • Implemented grid container baselines (bug 1151204).
  • Removed <flex> min-sizing from the style system (bug 1305244).
  • Stretching flexible tracks with an indefinite containing block length now respects the min/max size(bug 1309407).
  • The initial values of mask-position and mask-repeat have been changed to 0% 0% and repeat, respectively (bug 1308963).
  • Remove preference layout.css.masking.enabled (bug 1308239).
  • The proprietary -moz-images-in-menus and -moz-images-in-buttons media types have been removed (see bug 1302157).
  • Removed -moz-use-text-color value from color properties; use currentcolor instead (bug 1306214).
  • There have been a number of changes to CSS <color> values (see bug 1295456):
    • rgba() and hsla() have now been redefined as aliases of rgb() and hsl(); both accept the same parameter syntax.
    • rgb() and hsl() now accept an optional alpha value, e.g. rgb(255, 0, 0, 0.5).
    • Color functions now accept space-separated parameters rather than commas, e.g. rgb(255 0 0 / 0.5).
    • Alpha values can now be specified as percentages as well as numbers, e.g. rgb(255 0 0 / 50%).
    • The hue component in hsl() colors can now be specified as an angle, as well as a number, e.g. hsl(120deg, 60%, 70%).

JavaScript

New features

Changes and removals

WebAssembly

DOM

Service Workers and Fetch

  • The Headers.getAll() method has been removed, and Headers.get() now retrieves all values of the specified header, not just the first one (see bug 1278275). This is in accordance with the latest Fetch API spec updates.

Web Audio API

WebRTC

  • When an ICE connection is temporarily disrupted, the RTCPeerConnection.iceConnectionState property now gets set to "disconnected"; this indicates a transitory failure that may resolve itself shortly, with the connection returning to the "connected" state afterward (bug 852665).
  • The MediaDevices.ondevicechange event handler and corresponding devicechange event, which were implemented but disabled by default on Mac only in Firefox 51, have been implemented on Windows and Linux and are now enabled by default on all platforms.
  • The MediaStream.active property is now supported. This read-only Boolean property indicates whether or not at least one track on the stream is currently playing.
  • Prior to Firefox 52, the MediaStreamTrack.stop() method could only stop local tracks (that is, tracks obtained through getUserMedia()). Now a variety of tracks can be stopped, including those on a MediaStream associated with a WebRTC connection, Web Audio API stream, or CanvasCaptureMediaStream.
  • Previously, changing a TextTrack's mode repeatedly during a single pass through the Firefox event loop would result in multiple change events being delivered to the TextTrackList specified by the parent media element's textTracks property. Now these changes are consolidated into one event (bug 882674).

Other APIs

HTTP

SVG

  • SVG documents are now represented using the XMLDocument interface instead of SVGDocument. This is a change made in the SVG 2 specification.

Plugins

All NPAPI plugin support except Flash has been dropped (see Plug-in support has been dropped other than Flash for more details). Flash usage is also set to be phased out in the future.

Changes for add-on and Mozilla developers

WebExtensions

New APIs:

Interfaces

XUL

See also

Older versions

Document Tags and Contributors

 Contributors to this page: fscholz, Sheppy, Sebastianz, chrisdavidmills, wbamberg, yisibl, Ehsan, cpeterson, arai
 Last updated by: fscholz,