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 @MozWebCompat 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 {{ cssxref("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
Some CSS-related interfaces have been removed
- Bug 872934 – convert style sheet change event interfaces to Web IDL and stick [NoInterfaceObject] on them
- Bug 916871 – Remove classinfo bits for CSSGroupRuleRuleList
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 {{ domxref("CSSRuleList") }}, has also been removed.
atob
now ignores whitespaces
The {{ domxref("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) {{ domxref("RTCPeerConnection") }} interface. Those include the localStreams
, remoteStreams
, readyState
, onicechange
and ongatheringchange
attributes, as well as calling createAnswer
or createOffer
without failureCallback
.