Firefox 31 was released on . While it has been developed to maintain compatibility as much as possible, the new version includes some changes affecting backward compatibility aimed at improving interoperability with the other browsers or following the latest Web standards. Here's the list of such changes — hope this helps whenever you test your sites or applications.
This article only explains the changes that may affect backward compatibility for websites. For the other new features and changes, please read the following documents:
Follow @FxSiteCompat on Twitter for further updates.
<track> has been implemented
<track> element and the
HTMLTrackElement interface, that can be used to add WebVTT format subtitles to videos, are now enabled by default. If you have a polyfill for this feature, make sure it's compatible with this native support.
The prefix of CSS variables has been changed
Since CSS Variables was landed in Firefox 29 (disabled in the Beta and Release channels), the spec has been revised to change the prefix of custom properties from
--. CSS Variables are enabled with Firefox 31 in the all channels and this version follows the updated spec.
::-moz-math-stretchy pseudo-element has been removed
The support for the non-standard
::-moz-math-stretchy pseudo-element, which allowed authors to specify a
font-family to use for stretchy operators, has been removed. A math font specified on a
<math> element is now inherited to the child nodes.
Global variables with the same name as
window properties now call the property setter when they are set
A typical impact of this change has been reported as Bug 943958. Code like
var name = 1 no longer works as expected, instead
name will return a string
"1" because of the
window.name property. This will be the same behavior as WebKit and Blink. Web developers should always avoid using global variables with the same name as
XPathNamespace have been removed
- Bug 980134 – Hide DataContainerEvent from content
- Bug 983845 – Stop exposing BrowserFeedWriter to the Web
- Bug 991690 – Remove the classinfo from EventListenerInfo
- Bug 998738 – Consider removing nsIDOMXPathNamespace (and window.XPathNamespace)
As part of the ongoing effort to standardize global objects, some interfaces have been removed from
window. The standard
CustomEvent interface should be used instead the Firefox-specific
BrowserFeedWriter was a Firefox-specific interface which should not be exposed to Web content.
EventListenerInfo was also a non-standard interface which was not intended to be a global object. The
XPathNamespace interface was part of the DOM3 XPath spec but has not been implemented.
XMLHttpRequest.sendAsBinary has been deprecated
sendAsBinary method on the
XMLHttpRequest interface is now considered deprecated and will be removed soon. The standard
send(Blob) method can be used instead.
navigator.mozKeyboard has been removed
Navigator.mozKeyboard, and its interface Keyboard, for Firefox OS, implemented since Firefox 16, has been removed. The
setValue methods have been moved to
Unimplemented methods on
window.crypto have been removed
random methods have been removed from
window.crypto. Those were part of the non-standard Crypto API of Netscape 4 but not implemented in Gecko-based Netscape 6 and Firefox, just throwing a
NS_ERROR_NOT_IMPLEMENTED exception. Note that the standardized
window.crypto.getRandomValues method is available since Firefox 21 to get cryptographically random values.
forward methods have been removed
- Bug 1012944 – User login and account creation on deezer.com broken since Firefox 30.0b1, say home.display is not a function
The non-standard, Netscape-derived
window.forward methods have been removed. The standard
history.forward methods can be used instead to manipulate the browser history.
Network Information API has been disabled on desktop
The Network Information API, implemented as
navigator.mozConnection, has been disabled on the desktop versions of Firefox since it has been accidentally exposed. Currently the API only works on Firefox for Android and Firefox OS.
Certificate verification backend has been overhauled
The new certificate verification library called mozilla::pkix has been landed on Firefox 31. See Camilo Viecco's blog post for details. If you encountered any regressions, please report the issue to Bugzilla.
Audio Data API has been removed
The experimental, non-standard Audio Data API, which has been deprecated since Firefox 22 and disabled since Firefox 28, is now completely removed. The standardized Web Audio API should be used instead.