Firefox 25 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.
DocumentTouch has been removed
ImageDocument and some XUL-related classes have been removed
ImageDocument interface, as well as the
XULTreeBuilder interfaces are no longer available from Web content.
Various interfaces are no longer available on
The following interfaces, including some non-standard XUL-related classes, are no longer exposed on the
Events in workers have been prefixed with
In order to make normal DOM events work in Web workers, the current events in workers including
ProgressEvent have been renamed to
WorkerProgressEvent. This change is temporary. Once the Firefox back-end implementation is fixed, those events will be unprefixed again.
geolocation property of the
navigator object is now absent if the API is disabled
The Geolocation API implementation has been updated to comply with the spec. If the feature is not available,
window.navigator.geolocation will return
undefined instead of
"geolocation" in navigator will be
false instead of
Constants of some IndexedDB-related interfaces have been removed
- Bug 887524 – Move IDBRequest to WebIDL
- Bug 888598 – Move IDBTransaction to WebIDL
- Bug 891944 – Move IDBCursor to WebIDL
The following constants on the
IDBCursor interfaces have been removed due to the removal from the spec:
ES6 array methods have been added
- Bug 885553 – Implement ES6 Array.prototype.find and Array.prototype.findIndex
- Bug 866849 – Implement ES6 Array.from and Array.of
As part of ECMAScript 6 support, the
Array.of methods have been added.
Array.prototype with their own methods. For now, at least one library, Sugar, is known to be affected. Sugar users should update to the latest version to avoid this conflict.
Proxy has been changed to be a function
Proxy interface has been changed from an object to a function, and now it's callable without the
new operator. You may have to care about this if you are using the
typeof operator for a feature detection, as
typeof Proxy returns
yield without a value has been deprecated
yield operator now cannot be used without an operand (its value). This change has been made to comply with the ECMAScript 6 spec, and you'll see a warning in the Web Console if no value is specified in your code. You can just use
yield undefined instead if there's no specific value to return.
keydown now cancels
preventDefault on a
keydown event didn't cancel the following
keypress event. It has been fixed to match the DOM Level 3 Events (D3E) spec as well as the behavior of other browsers.
HTMLVideoElement.videoPlaybackQuality has been changed to a method
videoPlaybackQuality attribute on the
HTMLVideoElement interface has been changed to the
getVideoPlaybackQuality method to follow the latest spec.