Firefox 20 for developers

Firefox 20 was released on April, 2nd 2013. This article provides information about the changes in this release that will affect developers.

Changes for Web developers

HTML

JavaScript

CSS

  • CSS Flexbox is now available by default in pre-release builds only (excluding beta versions). It can be enabled in release and beta versions by setting the layout.css.flexbox.enabled about:config preference to true.
  • The mask-type property from the CSS Masking specification has been added (Firefox bug 793617).
  • Experimental support for the :scope pseudo-class has been added. Enabled by default in Aurora and Nightly, it can be enabled in release and beta versions by setting the layout.css.scope-pseudo.enabled about:config preference to true (Firefox bug 648722).

DOM/APIs

SVG

  • The implementation of the contentScriptType and contentStyleType properties has been removed from SVGSVGElement along with the removal from SVG2 (Firefox bug 819731).

MathML

  • To help MathML authors debugging "invalid-markup" errors in their documents, MathML parsing errors (such as having too many / too few child elements) and warnings about deprecated attributes or wrong attribute values are now reported to the error console.
  • The scriptminsize attribute now accepts unitless values and percent values. They are interpreted as multiples of the default value ("8pt").
  • Unitless values are now also allowed for the mathsize and fontsize attributes; they multiply the default value.

Changes for add-on and Mozilla developers

  • EcmaScript for XML (E4X) is now fully disabled for all chrome and content scripts. It was previously disabled for content in Firefox 17 and has been removed entirely for Firefox 21. Use DOMParser/DOMSerializer or a non-native JXON algorithm instead.
  • The nsIDOMParserJS interface no longer exists (Firefox bug 816410). See nsIDOMParser for alternatives.
  • Content Preferences: The nsIContentPrefService interface is now deprecated and the asynchronous nsIContentPrefService2 storage API has been implemented.
  • The nsIProfile and nsIProfileChangeStatus interfaces have been removed, along with other code supporting the pre-Firefox profile management system. You probably weren't using these interfaces, but if you were, you should stop doing so. This prevents defunct parts of the profile management system from vetoing the shutdown process.
  • The nsIEventSource interface no longer exists (Firefox bug 819639).

See also

Older versions