Site Compatibility for Firefox 27

Firefox 27 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.

CSS

-moz-grab and -moz-grabbing have been unprefixed

The unprefixed support of -moz-grab and -moz-grabbing keywords for the cursor property has been added. Those prefixed keywords will be removed after a reasonable period of time.

-moz-rgba() and -moz-hsla() have been dropped

The support of the prefixed -moz-rgba() and -moz-hsla() functional notations for color values has been removed. The standard, unprefixed rgba() and hsla() notations should be used instead.

Curly brackets are no longer allowed in style attributes

Previously, in Firefox Quirks (backward compatibility) mode, the CSS parser allowed curly brackets around the contents of style attributes like <div style="{ color: blue; }">. This behavior has been removed from Firefox 27 for interoperability.

DOM

As part of the ongoing effort to standardize global objects, the non-standard stylesheet change event interfaces, including StyleRuleChangeEvent, StyleSheetApplicableStateChangeEvent and StyleSheetChangeEvent, are no longer available from Web content. The CSSGroupRuleRuleList interface, the implementation detail of CSSRuleList, has also been removed.

atob now ignores whitespaces

The window.atob method, that decodes a Base64-encoded string, has been updated to ignore all space characters in the argument to comply with the latest HTML5 spec.

JavaScript

The iterator implementation has been updated to the latest spec

The implementation of the iterator protocol and for...of loop has been updated to comply with the ECMAScript 6 spec (moving away from the SpiderMonkey legacy iterator protocol using StopIteration). The iterator method of the Array, Map, Set and String interfaces has been renamed to @@iterator. Previously, the next method of an iterator returned a value from the array (or a key-value pair from the object), and raised a StopIteration exception when the iteration was done. The next method now returns an object like { done: false, value: value } then returns { done: true, value: undefined } when the iteration is done.

String.match and String.replace now reset RegExp.lastIndex

The String.match and String.replace methods have been refactored to resolve a spec conformance issue on RegExp.lastIndex. When those methods are called with a global regular expression, the lastIndex, if specified, will be reset to 0.

WebGL

Prefixed extensions have been deprecated

MOZ_ prefixed WebGL extension strings are now deprecated. Support for them will be removed in the future. Use unprefixed extension strings instead.

WebRTC

Deprecated RTCPeerConnection functionalities have been removed

Some non-standard functionalities deprecated since Firefox 24 have been removed from the (currently prefixed) RTCPeerConnection interface. Those include the localStreams, remoteStreams, readyState, onicechange and ongatheringchange attributes, as well as calling createAnswer or createOffer without failureCallback.

Document Tags and Contributors

Contributors to this page: kohei.yoshino, dbruant, merih, kscarfone
Last updated by: kohei.yoshino,