Firefox 54, based on Gecko 54, will ship in June 13, 2017. This article provides information about the changes in this release that will affect developers. Nightly builds of what will become Firefox 54 are currently available on the Nightly 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 54.
Changes for Web developers
- Avoid scrolling latency on highlighters given by APZ (bug 1312103).
- The network request summary now includes the amount of data actually transferred ("transferred size"), as does the the performance analysis view (bug 1168376).
- Previously, an element styled with
inline-blockwith a child element of type
display:blockhad a wrong baseline (bug 1330962). This is now fixed.
- Removed the
-mozprefixed versions of
plaintextvalues for the
unicode-bidiproperty (bug 1333675).
- Firefox's implementations of CSS Flexbox and CSS alignment now implement updated spec language for interactions between the properties
align-selfas well as between
clip-pathnow supports basic shapes (bug 1247229).
<input>elements of types
: none;set on them are now non-replaced elements, and can now be styled with significantly more CSS properties including
background-color(bug 418833, bug 605985, bug 1320732).
- Related to the previous item, we've also added the standard
appearanceproperty and a
-webkitprefixed alias of it, in addition to the existing
-moz-appearanceproperty (bug 1333482).
- When Mozilla introduced dedicated content threads to Firefox (through the Electrolysis or e10s project), support for styling
<option>elements was removed temporarily. Starting in Firefox 54, you can apply foreground and background colors to
<option>elements again, using the
background-colorattributes. See bug 910022 for more information.
- CSS Animations now send the
animationcancelevent as expected when an animation aborts prematurely (bug 1302648).
- Transparent colors (i.e. those with an alpha channel of 0) were being serialized to the
transparentcolor keyword in certain situations; this has been fixed so that Firefox follows the spec (as well as other browsers' implementations). See (bug 1339394 for further information.
- The proprietary
:-moz-table-border-nonzeropseudo-class is no longer available to web content; it is now restricted to Firefox's internal UA sylesheet (bug 1341925).
- [css-grid] Intristic content with overflow:auto overlaps in grid (bug 1348857).
"i"(case insensitive) flags now treat U+017F (LATIN SMALL LETTER LONG S) and U+212A (KELVIN SIGN) as word characters (bug 1338373).
DataViewconstructor now throws a
byteOffsetparameter is out of
Number.MAX_SAFE_INTEGER(>= 2 ** 53) (bug 1317382).
Date.UTC()method has been updated to conform to ECMAScript 2017 when fewer than two arguments are provided (bug 1050755).
DOM & HTML DOM
URL.toJSON()method has been implemented (bug 1337702).
URLSearchParams()constructor now accepts a record containing
USVStrings as an init object (bug 1331580).
- Values returned in
KeyboardEvent.keyfor printable keys when the control key is also pressed have been corrected on macOS (except when the Command key is pressed) (bug 1342865).
dom.workers.latestJSVersionpreference, which was mainly implemented to work around problems using
letin workers (due to bug 855665, which has since been fixed) has been removed (see bug 1219523).
event.timeStampproperty now returns a high-resolution monotonic time (
DOMHighResTimeStamp) instead of an epoch time (
Web Workers and Service Workers
WorkerGlobalScope.closeis now available on
SharedWorkerGlobalScopeinstead. This change was made to stop
close()being available on service workers, as it isn't supposed to be used there and always throws an exception when called (see bug 1336043).
WindowOrWorkerGlobalScope.originproperty has been implemented (see bug 1306170).
Client.typeproperty has been implemented (see bug 1339844).
Clientobjects in most recently focused order (see bug 1266747).
- Some changes have been made to the observed behaviour when the
Request()constructor is passed an existing
Requestobject instance to make a new instance. The following new behaviours are designed to retain security while making the constructor less likely to throw exceptions:
- 5.1 surround sound playback is now enabled by default on Windows, macOS, and Linux (bug 1334508, bug 1321502 , and bug 1323659).
Media Capture and Streams API
URL.createObjectURL()no longer accepts a
MediaStreamobject as an input parameter (see bug 1334564).
Web Audio API
- The method
AnalyserNode.getFloatFrequencyData()now correctly represents silent samples in the returned buffer with the value
AudioParam.setValueCurveAtTime()now throws a
TypeErrorexception if any of the specified values aren't finite (bug 1308437).
Encrypted MediaExtensions API
MediaKeySession.keySystemstring has been removed from the specification, and as such we've taken it out of Firefox 54 (bug 1335555).
- Support has been added for the VP9 codec in encrypted streams using Clear Key and Widevine (bug 1338064).
- Previously, MSE was only allowed to use WebM/VP8 video if the system was considered "fast enough." Now playback of VP8-encoded
webm/videomedia is always supported, regardless of system performance.
- TCP ICE candidate support, originally added in Firefox 41, is now enabled by default. This allows the ICE layer to consider candidates that use TCP rather than the preferred UDP for transmission. This can be useful in environments in which UDP is blocked (bug 1176382). This blog post explains the feature in more details.
Removals from the web platform
Changes for add-on and Mozilla developers
- Pipelining support has been removed in FIrefox 54. Maintaining it as we make the move into a new world full of HTTP/2 and other substantial, standardized improvements to networking performance is not worthwhile given pipelining's compatibility and performance issues. The
network.http.pipeliningpreference (as well as the other preferences that start with "network.http.pipelining") is now ignored. See bug 1340655 for further information.
- 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
- Firefox 21 for developers
- Firefox 20 for developers