Firefox 29 was released on April 29, 2014. 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
Major changes include:
- Vastly improved web console - Arrays are shown inline without clicking to bring up in the right inspector, window objects show their url, etc.
- Added the console API to Web Workers (bug 620935). Now you can log messages to the Web Console from Web Workers.
- The Network Monitor tool now shows performance statistics using pie charts (bug 846599).
- On the Inspector, preview tooltips of CSS transforms are now available (bug 726427).
- DOM elements seen in the debugger and console can be removed or inspected directly, via the new buttons to the right of the variable listing.
- A CSS source map is now supported by the Style Editor (bug 926014).
- Autocompletion of CSS properties and values has been added to the Style Editor (bug 717369).
See the Mozilla Hacks blog post for details and other smaller changes.
CSS
- CSS variables have been implemented (bug 773296). Mozilla Hacks article can be found here. They are enabled by default only for non-release builds (on release builds flip the pref
layout.css.variables.enabled
totrue
if you want to play with them). - Flexboxes now support
visibility
: collapse
(bug 783470). - The
box-sizing
property has been unprefixed (bug 243412). - The
will-change
property, a hint to that something will animate has been added. The preferencelayout.css.will-change.enabled
must be switched totrue
to enable it. (bug 940842) - Scientific exponential notation, like
3e1
or10e+0
, is now supported for<number>
values and derivatives, like<percentage>
and unit values, but not<integer>
(bug 964529). - Images of type
<gradient>
are now supported inborder-image
(bug 709587). - The
touch-action
property has been implemented. It is not activated by default; thelayout.css.touch_action.enabled
pref controls it. (bug 795567) - Remove redundant default style for <pre> element from quirk.css (bug 948914).
- CSS Variables fallback incorrectly implemented (primary cycles) (bug 950497).
- @supports conditions with tokens after a declaration's priority should evaluate to false (bug 909170).
HTML
<input type=color>
and<input type=number>
are available by default.- Support for the non standard
<pre cols>
has been removed, as well as the layout effect of<pre wrap>
. Both effects can, and should, be achieved using CSS. (bug 949879)
JavaScript
- New ECMAScript 2015 String methods:
String.prototype.codePointAt()
andString.prototype.fromCodePoint()
have been implemented (bug 918879). - The ECMAScript Internationalization API (ECMA-402) has been implemented and is now enabled by default in Firefox Desktop (bug 853301):
- To match the updated ECMAScript 2015 draft specification, the
Map
andSet
objects now treat-0
and+0
as the same when checking for key and value equality. Promise
has been enabled by default (bug 918806).- Completed generators now return an
IteratorResult
object instead of throwing (bug 958951). - A malformed JSON string parsed by
JSON.parse()
now yields a more detailed error message containing the line and column number that caused the parsing error. This is useful when debugging large JSON data. - The
ArrayBuffer.isView()
method has been added (bug 896105).
Interfaces/APIs/DOM
- A new type of workers,
SharedWorker
, is now available by default (bug 924089). - The
URLUtils
interface now supports thesearchParams
property returning aURLSearchParams
object, allowing to modify the search params of an URL (bug 887836). TheURLSearchParams
constructor allows easier parsing of query strings. - The
NavigatorOnLine.onLine
property is now supported onWorkerNavigator
, allowing to know the online/offline status in workers (bug 925437). - As part of the implementation of Web Components, the
HTMLShadowElement
interface has been implemented behind thedom.webcomponents.enabled
. Flip it totrue
if you want to use it. (bug 887538). - The read-only property
HTMLIFrameElement.sandbox
is no longer astring
but anHTMLSettableToken
(bug 845057). - On
HTMLCanvasElement.getContext()
, the valuemoz-webgl
is no longer supported. Use the standardwebgl
value (bug 913597). - The constructor for
ImageData
has been added. This interface can be used in aWorker
. (bug 959958) - The property
location.origin
is now available in workers (viaWorkerLocation
) (bug 964148). - The
ValidityState.badInput
property has been implemented (bug 827161). - The deprecated
Window.pkcs11
property has been removed; it was returningnull
since Firefox 3.0.14. (bug 964964) - The
Node.cloneNode()
andDocument.importNode()
methods take the Booleandeep
argument. Until now, if omitted, these methods acted as if the value ofdeep
wastrue
. But this behavior has been changed as per the latest spec, and if omitted, the methods will act as if the value wasfalse
. (bug 937461) Window._content
is no longer available to Web content (bug 946564).URLUtils.port
behavior has been slightly changed: set to''
will set it to the default port associated with the protocol, and0
to0.
(bug 930450)Document.referrer
is now based on the incumbent script (bug 887928).- The Gamepad API is enabled by default (bug 878828).
- The
CanvasRenderingContext2D.drawSystemFocusRing()
method got renamed toCanvasRenderingContext2D.drawFocusIfNeeded()
(bug 959820).
MathML
No change.
SVG
No change.
Security
- The CSP 1.1 experimental
hash-source
directive has been implemented. The preferencesecurity.csp.experimentalEnabled
should be set totrue
to enable this functionality (bug 883975).
Changes for add-on and Mozilla developers
- Australis and add-on compatibility - This is a major Firefox theme change that affects most extensions that involving the Firefox user interface.
nsISecurityCheckedComponent
has been removed (bug 794943). Most consumers can simply remove nsISecurityCheckedComponent from their interface definition and they will continue to work.
Non-Australis changes TBD.
See also
Older versions
- 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
- Firefox 16 for developers
- Firefox 15 for developers
- Firefox 14 for developers
- Firefox 13 for developers
- Firefox 12 for developers
- Firefox 11 for developers
- Firefox 10 for developers
- Firefox 9 for developers
- Firefox 8 for developers
- Firefox 7 for developers
- Firefox 6 for developers
- Firefox 5 for developers
- Firefox 4 for developers
- Firefox 3.6 for developers
- Firefox 3.5 for developers
- Firefox 3 for developers
- Firefox 2 for developers
- Firefox 1.5 for developers
Document Tags and Contributors
Tags:
Contributors to this page:
Sebastianz,
kdex,
mrstork,
kohei.yoshino,
fscholz,
teoli,
yisi,
MKaply,
mnoorenberghe,
mattbrundage,
Sheppy,
sylvestre,
jmclerck,
claudepache,
Luke314,
mihaisucan,
fbender,
merih,
Anwesh
Last updated by:
Sebastianz,