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 Developer Edition 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

  • Added :focus-within pseudo-class (bug 1176997).
  • clip-path shapes don't transition between percent and pixel coordinates (bug 1266570).
  • Add support for display:flex/grid and columnset layout inside <button> elements(we are the only modern web rendering engine to not have this particular behavior on <button style="display:flex">. So from a web compatibility perspective, we should probably align with the other engines on this.) (bug 984869).
  • [css-grid] Implement Grid container Baselines (bug 1151204).
  • Implement interpolation between numeric color and currentcolor (bug 1299741).
  • Remove -moz-use-text-color from color properties (bug 1306214).
  • Unprefix css3 multi-column properties (and add back -moz prefixed versions as aliases, for now) (bug 1300895).
  • [css-flexbox] Implement flexbox layout for "justify-content: space-evenly" & "align-content: space-evenly" (bug 1235922).
  • Support subpixel AA in CSS mask / clip-path (bug 1305259).
  • Implement css-text-3 segment break transformation rule (bug 1081858).
  • Support basic shapes clipping in SVG content (bug 1246741).
  • [css-grid] Remove <flex> min-sizing from the style system (bug 1305244).
  • [css-grid] Stretching flexible tracks with an indefinite containing block length should respect the min/max size(bug 1309407).
  • [css-align] Change "baseline|last-baseline" to "[ first | last ]? baseline"(bug 1313254).
  • [css-flexbox] Implement Flexbox layout for align-self|justify-self:[ first | last ]? baseline(bug 1221524).
  • [css-flexbox][css-align] The used value for 'left'/'right' is 'start' for the block-axis(bug 1221565).
  • [css-flex] Stop wrapping abspos children of flex container in anonymous flex items(bug 1269045).
  • Content with -webkit-mask-size but not -webkit-mask-repeat is clipped in Firefox, not Safari(bug 1308963).
  • Remove CSS pref layout.css.masking.enabled(bug 1308239).

JavaScript

Interfaces/APIs/DOM

DOM & HTML DOM

Canvas

No change.

WebGL

No change.

IndexedDB

No change.

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.

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.

New APIs

No change.

Others

MathML

No change.

SVG

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

Audio/Video/Media

  • 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).

HTTP

No change.

Networking

No change.

Security

No change.

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

Interfaces

XUL

No change.

JavaScript code modules

No change.

XPCOM

No change.

Other

No change.

See also

Older versions

Document Tags and Contributors

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