Firefox 25 for developers
=========================

Changes for Web developers
--------------------------

### New in Firefox DevTools

* The inspector now features autocompletion for CSS names and values.
* The debugger now lets you "black box" script files, to prevent breakpoints from stopping in library code you're not interested in debugging.
* The Profiler now has the ability to save and import profiling results. "Show Gecko Platform Data" is now an option in the Firefox developer tools options.
* The Network panel has a right-click context menu, with copy and resend URL commands.
* Numerous under-the-hood changes may make some rewriting necessary for addons that modify the DevTools.
### CSS

* The support for the keyword `local` as a value of the `background-attachment` CSS property has been added (Firefox bug 483446).
* Support of a non-standard Mozilla-only media query to determine the operating system version has been added: `-moz-os-version` (Firefox bug 810399). The property is currently only implemented on Windows.
* The `-moz-osx-font-smoothing` CSS property has been added (Firefox bug 857142).
* Our experimental support for `filter` now supports the `hue-rotate()` functional notation (Firefox bug 897392). It is still preffed off by default.
* `page-break-inside`: `avoid` is now working with the height of a block (Firefox bug 883676).
### HTML

* The `srcdoc` attribute of `<iframe>`, allowing the inline specification of the content of an `<iframe>`, is now supported (Firefox bug 802895).
* When used with a `"image/jpeg"` type, the method `HTMLCanvasElement.toBlob` now accepts a third attribute defining the quality of the image (Firefox bug 891884).
### JavaScript

ECMAScript 2015 implementation continues!

* The method `Array.of()` is now implemented on `Array` (Firefox bug 866849).
* Support for the methods `Array.prototype.find()` and `Array.prototype.findIndex()` has been added (Firefox bug 885553).
* The methods `Number.parseInt()` and `Number.parseFloat()` have been implemented (Firefox bug 886949)
* The methods `Map.prototype.forEach()` and `Set.prototype.forEach()` are now implemented (Firefox bug 866847).
* New mathematical methods have been implemented on `Math`: `Math.log10()`, `Math.log2()`, `Math.log1p()`, `Math.expm1()`, `Math.cosh()`, `Math.sinh()`, `Math.tanh()`, `Math.acosh()`, `Math.asinh()`, `Math.atanh()`, `Math.trunc()`, `Math.sign()` and `Math.cbrt()` (Firefox bug 717379).
* Support for binary and octal integer literals has been added: `0b10101010`, `0B1010`, `0o777`, `0O237` are now valid (Firefox bug 894026).
* The machine epsilon constant, that is the smallest representable number that added to 1 will not be 1, is now available as `Number.EPSILON` (Firefox bug 885798).
* Typed arrays have been updated to no longer search in the prototype chain for indexed properties (Firefox bug 829896).
### Interfaces/APIs/DOM

* The Web Audio API is now supported. An incomplete implementation was previously available behind a preference (Firefox bug 779297).
* Some IME related keys on Windows are supported by `KeyboardEvent.key` (Firefox bug 865565), see the key name table for the detail.
* Firefox for Metro now dispatches key events in the same way as the desktop version (Firefox bug 843236).
* `keypress` event is no longer dispatched if `preventDefault()` of preceding `keydown` event is called (Firefox bug 501496), see the document of `keydown` event for the detail.
* Renamed the `Future` interface to `Promise` (Firefox bug 884279).
* The `srcDoc` property on the `HTMLIFrameElement` interface, allowing the inline specification of the content of an `<iframe>`, is now supported (Firefox bug 802895).
* The `createTBody()` method on the `HTMLTableElement` interface, allowing to get its `<tbody>`, is now supported (Firefox bug 813034).
* The `Range.collapse()` method `toStart` parameter is now optional and default to `false`, as defined in the spec (Firefox bug 891340).
* Support of the `ParentNode` mixin on `Document` and `DocumentFragment` has been added (Firefox bug 895974).
* The `previousElementSibling` and `nextElementSibling` have been moved to the `ChildNode` mixin allowing them to be called not only on a `Element` object but also on a `CharacterData` or `DocumentType` object (Firefox bug 895974).
* The `navigator.geolocation` property has been updated to match the spec. It never returns `null`. When the preference `geo.enabled` is set to `false`, it now returns `undefined` (Firefox bug 884921).
* The `videoPlaybackQuality` attribute on the `HTMLVideoElement` interface has been changed to the `getVideoPlaybackQuality` method. (Firefox bug 889205)
* The non-standard `GlobalObjectConstructor` interface has been removed (Firefox bug 898136). This interface was used to add arguments to the constructors of APIs that Firefox add-ons were exposing on the global object. This capability has been removed; note that at this time there's no replacement for this functionality.
### MathML

*No change.*

### SVG

*No change.*

### Older versions

* Firefox 24 for developers
* Firefox 23 for developers
* Firefox 22 for developers
* Firefox 21 for developers
* Firefox 20 for developers
* Firefox 19 for developers
* Firefox 18 for developers
* Firefox 17 for developers
* Firefox 16 for developers
* Firefox 15 for developers
* Firefox 14 for developers
* Firefox 13 for developers
* Firefox 12 for developers
* Firefox 11 for developers
* Firefox 10 for developers
* Firefox 9 for developers
* Firefox 8 for developers
* Firefox 7 for developers
* Firefox 6 for developers
* Firefox 5 for developers
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers