Firefox 48 for developers
To test the latest developer features of Firefox, install Firefox Developer Edition Firefox 48 was released on August 2, 2016. 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
- The position of elements can now be changed within the content (Firefox bug 1139187).
- Implemented
console.clear()
to clear the console output (Firefox bug 659625). - Added HTTP log inspection to the Web Console (Firefox bug 1211525).
- Added a Firebug theme (Firefox bug 1244054).
- Added the DOM Inspector (Firefox bug 1201475).
- Font inspector has been enabled by default again (Firefox bug 1280121).
- Improved suggestions for CSS properties (Firefox bug 1168246).
- Cookies, localstorage and sessionstorage entries are editable via double-click (Firefox bug 1231154, Firefox bug 1231179, Firefox bug 1231155).
HTML
-
The
<details>
and<summary>
elements have been activated by default on Nightly and Aurora (DevTools), but not on Beta or Release:- The default style for these elements has been adapted to match the spec (Firefox bug 1258657).
- The
toggle
event is now sent to the<details>
element when this one is opened or closed (Firefox bug 1225412).
-
The
meta
attributes now also supports theno-referrer-when-downgrade
andorigin-when-cross-origin
values (Firefox bug 1178337).
CSS
-
The
calc()
has been improved to be closer to the specification:calc()
is now supported on theline-height
property (Firefox bug 594933).- Added support for nested CSS
calc()
(Firefox bug 968761).
-
Our experimental implementation of CSS grids has been updated:
- Fragmentation for grid layout has been implemented (Firefox bug 1144096).
- [css-grid] Percentage tracks are now treated as
auto
if grid container size is indefinite (Firefox bug 1264607). <fieldset>
now supports grid and flex layouts (Firefox bug 1230207).
-
The
luminance
value formask-mode
has been added; theauto
value has been renamed tomatch-source
, to match the spec (Firefox bug 1228354). -
Interpolation of
clip-path
basic shapes in CSS animations and transitions is now supported (Firefox bug 1110460). -
Support for horizontal-in-vertical (tate-chu-yoko) text has been added via the
all
value of thetext-combine-upright
property (Firefox bug 1097499). -
Support for the experimental
color-adjust
property has been added, allowing pages to specify that background colors and images should be printed (Firefox bug 1209273). -
The
::first-letter
pseudo-element now also matches punctuation characters of type Pd that precede or immediately follow the actual first letter; this is a new requirement of CSS Pseudo-element module level 4 (Firefox bug 1260366). -
Several
-webkit
prefixed properties and values have been added for web compatibility, behind the preferencelayout.css.prefixes.webkit
, defaulting tofalse
:-webkit-text-fill-color
(Firefox bug 1247777).-webkit-text-stroke
,-webkit-text-stroke-color
,-webkit-text-stroke-width
(Firefox bug 1248708).-webkit-background-clip
(as background-clip) text value (Firefox bug 759568).-webkit-box-direction
,-webkit-box-orient
(Firefox bug 1262049.- The value
-webkit-inline-box
is now an alias ofinline-flex
on thedisplay
property. (Firefox bug 1257661). -webkit-flex-direction
,-webkit-flex-wrap
,-webkit-flex-flow
,-webkit-order
,-webkit-flex
,-webkit-flex-grow
,-webkit-flex-shrink
,-webkit-flex-basis
,-webkit-justify-content
,-webkit-align-items
,-webkit-align-self
and-webkit-align-content
were added as aliases for the unprefixed properties and the values-webkit-flex
and-webkit-inline-flex
for thedisplay
property as aliases for the unprefixed values (Firefox bug 1274096).- Added
-webkit-box-flex
,-webkit-box-ordinal-group
,-webkit-box-align
and-webkit-box-pack
properties and-webkit-box
value todisplay
as aliases for modern CSS Flexbox (Firefox bug 1208635).
-
The
text
value ofbackground-clip
is now available in all type of Firefox (and not only non-release builds) (Firefox bug 1263516). -
The
absolute
value ofposition
properties on the top layer element (Firefox bug 1236828). -
Added an internal-only syntax for
@supports
to detect pref (Firefox bug 1259889).
JavaScript
New APIs
- The
String.prototype.padStart()
andString.prototype.padEnd()
methods have been implemented (Firefox bug 1260509). - The ES2015
Symbol.unscopables
andArray.prototype[Symbol.unscopables]
properties have been implemented (Firefox bug 1054759 and Firefox bug 1258163). - The ES2015
Symbol.isConcatSpreadable
symbol has been implemented (Firefox bug 1041586). - The ES2015
Array[Symbol.species]
getter has been implemented (Firefox bug 1165052). - The ES2015
ArrayBuffer[Symbol.species]
getter andTypedArray[Symbol.species]
getter have been implemented (Firefox bug 1165053). - The
Intl.getCanonicalLocales()
method of the ECMAScript Internationalization API draft has been implemented (Firefox bug 1263040).
Deprecations and removals
- The deprecated old Proxy API (
Proxy.create
andProxy.createFunction()
) has been removed. Use the standardProxy
object instead (Firefox bug 892903). - The
String.prototype.contains()
method has been removed (it was deprecated since version 40). Use theString.prototype.includes()
method instead (Firefox bug 1103588). - The non-standard
RegExp.multiline
property (notRegExp.prototype.multiline
) has been removed. Use the standard m flag instead (Firefox bug 1219757). - The
Object.prototype.__defineGetter__()
andObject.prototype.__defineSetter__()
methods can no longer be called at the global scope without any object. (Firefox bug 1253016).
Interfaces/APIs/DOM
DOM & HTML DOM
-
Dropped the "Moz" prefix from the
CSSKeyframeRule
andCSSKeyframesRule
interfaces (Firefox bug 1256178). -
The
NavigatorConcurrentHardware
mixin has been implemented, which adds theNavigator.hardwareConcurrency
property to theNavigator
interface. This lets websites and apps get at least an approximation of how many processing cores are available to runWorker
s in (Firefox bug 1008453). -
The
Node.isSameNode()
method, which was removed in Firefox 10, has returned after being added back into the specification after a lengthy absence (Firefox bug 1256299). -
Firefox now returns proper exceptions instead of numbers when things go wrong during a call to
Navigator.registerProtocolHandler()
. -
Element.animate()
is now activated by default (Firefox bug 1245000). -
The two methods
Element.insertAdjacentText()
andElement.insertAdjacentElement()
have been implemented (Firefox bug 811259). -
Document.scrollingElement
got enabled by default (Firefox bug 1265032). -
Node.localName
,Node.namespaceURI
andNode.prefix
were moved to theElement
andAttr
APIs (Firefox bug 1055776). -
Per the latest specification, the values of
KeyboardEvent.code
returned for the following keys have been changed see (Firefox bug 1264150):"OSLeft"
and"OSRight"
are now"MetaLeft"
and"MetaRight"
."VolumeDown"
,"VolumeUp"
, and"VolumeMute"
are now"AudioVolumeDown"
,"AudioVolumeUp"
, and"AudioVolumeMute"
."IntlHash"
has been removed.- All keys whose
code
values were reported as "" in earlier versions of Firefox are now reported as "Unidentified".
Canvas 2D
- The
CanvasRenderingContext2D.ellipse()
method has been implemented (Firefox bug 910138).
WebRTC
- The two methods
MediaStream.clone()
andMediaStreamTrack.clone()
have been implemented (Firefox bug 1208371). - The
iceRestart
entry is now supported in theRTCOfferOptions
code dictionary, allowingcreateOffer()
to be used to request ICE restarts (Firefox bug 906986). - The
RTCPeerConnection.createOffer()
method now prefers the VP9 video codec by default; previously VP8 was preferred (Firefox bug 1242324. - WebM/VP8 video that includes video resolution changes that has been recorded using
MediaRecorder
can now be played back successfully.
Others
- The Web Crypto API is now available in Web workers (Firefox bug 842818).
- The
CustomEvent
interface is now available in Web Workers (Firefox bug 1003432). - The
DOMApplicationsManager.getNotInstalled()
method has been removed (Firefox bug 1255036). - Several Firefox OS APIs that were erroneously exposed to the Web have now been hidden as they should have been —
mozContact
,MozContactChangeEvent
,navigator.mozContacts
,MozPowerManager
,MozSettingsEvent
(see Firefox bug 1043562, Firefox bug 1256414, and Firefox bug 1256046). - Support for UTF-16 has been removed from
TextEncoder
(Firefox bug 1257877). RTCStatsReport
is now a truemaplike
interface: in addition toforEach()
,get()
, andhas()
, the methodsentries()
,values()
,keys()
, as well as thesize
getter have been implemented (Firefox bug 906986).- The
Request.cache
property has been added allowing to control the cache behavior (Firefox bug 1120715). - Handling of dead keys on Mac OS X has been changed to work the same as other platforms; they no longer fire a
keypress
event when no text is generated when the focused element isn't editable (when the focused element is editable, dead key causes composition events instead of keyboard events on Mac OS X). Also, like on other platforms, the value ofKeyboardEvent.key
is now"Dead"
for dead keypresses which don't generate text in other situations.
HTTP
- Support for the
Upgrade-Insecure-Requests
header has been added (Firefox bug 1243586). - The
block-all-mixed-content
CSP directive has been implemented (Firefox bug 1122236)
Changes for add-on and Mozilla developers
- The Social Worker API has been removed.
- Added the
-moz-bool-pref()
CSS@supports
function to allow hiding portions of chrome stylesheets behind boolean preferences. (Firefox bug 1259889)
Older versions
- 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
- Firefox 19 for developers
- Firefox 18 for developers
- Firefox 17 for developers