Firefox 26 for developers
=========================

Firefox 26 was released on December 10, 2013. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.

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

### CSS

* The `text-decoration-line` property, still prefixed, now considers `'blink'` as a valid value, though it doesn't blink the content at all (Firefox bug 812995).
* The non-standard `-moz-text-blink` property has been removed (Firefox bug 812995).
* Support for the `image-orientation` property, in its CSS Images & Values Level 4 version, that is with the `from-image` keyword and EXIF support, has been added (Firefox bug 825771).
* Experimental support for `position: sticky` has been implemented and can be enabled by pref `layout.css.sticky.enabled` (Firefox bug 886646).
* The `text-align` property now applies to the `::-moz-placeholder` pseudo-element (Firefox bug 915551).
### HTML

* The `HTMLSelectElement.selectedOptions` property has been implemented (Firefox bug 596681).
* In the `<input>` element of type `email`, values with domain labels longer than 63 chars are no more considered valid (Firefox bug 884332).
* The `HTMLInputElement.width` and `height` properties now return `0` when the `type` is not `image` (Firefox bug 905240).
* A `<fieldset>` element is now invalid, and can be styled using the `:invalid` pseudo-class, when one of the elements it contains is invalid (Firefox bug 717181).
### JavaScript

ECMAScript 2015 implementation continues!

* The ECMAScript 2015 compliant syntax for Generators (yield) has been implemented (Firefox bug 666399).
* Generator/Iterator results are now boxed like `{ value: foo, done: bool }` (Firefox bug 907744).
* New mathematical methods have been implemented on `Math`: `Math.fround()` (Firefox bug 900125).
* The reserved words cannot be used for function names:such a usage now throws a `SyntaxError` (Firefox bug 907958).
* The default parameter syntax has been updated to allow parameters without defaults after default parameters, such as `function f(x=1, y)`. See Firefox bug 777060.
* `GeneratorFunction` is implemented (Firefox bug 904701).
### Interfaces/APIs/DOM

* Make the last argument (doctype) to `DOMImplementation.createDocument` optional (Firefox bug 909859).
* Implement the new `element.classList` specification which permits adding/removing several classes with one call (Firefox bug 814014).
* The `URL()` constructor has been implemented on the `URL` interface (Firefox bug 887364).
* The properties `URLUtils.origin`, `URLUtils.password`, and `URLUtils.username` are now available to all interfaces implementing the `URLUtils` mixin: `URL`, `Location`, `HTMLAnchorElement`, and `HTMLAreaElement` (Firefox bug 887364).
* The `URL` interface is now accessible from Web Workers (Firefox bug 887364).
* IndexedDB can now be used as an "optimistic" storage area so it doesn't require any prompts and data is stored in a pool with LRU eviction policy, in short temporary storage (Firefox bug 785884).
* Support for `WaveShaperNode.oversample` has been added (Firefox bug 875277).
* Path of the persistent storage has been changed from `<profile>/indexedDB` to `<profile>/storage/persistent` (on b2g from `/data/local/indexedDB` to `/data/local/storage/persistent`).
* The `Screen.orientation` property and `Screen.lockOrientation()` method now support the `default` value, mapping to `portrait-primary` or `landscape-primary`, depending of the device (Firefox bug 908058) This works only for Firefox OS and Firefox for Android. Firefox Desktop is not supported.
* `Event` constructors can be used in Web workers (Firefox bug 910910).
* Trying to set the `Document.domain` property on a page embedded in an `<iframe>` with the `sandbox` attribute now throws a security error (Firefox bug 907892).
* The `MessageEvent` interface has been updated to comply with the latest spec. The `initMessageEvent` method has been removed while the interface has now a constructor (Firefox bug 848294).
* The HTML5 `MessageChannel` API has been implemented, behind the `dom.messageChannel.enabled` preference (Firefox bug 677638).
* Support for `VTTCue`, behind the `media.webvtt.enabled` preference, like for all WebVTT-related implementations, has been added (Firefox bug 868509).
* The Web Audio API has been made available by default (Firefox bug 885505).
### MathML

* Inconsistent renderings of `<mmultiscripts>`, `<msub>`, `<msup>` and `<msubsup>` have been unified and the error handling of these elements has been improved (Firefox bug 827713).
### SVG

* The inclusion of SVG glyphs inside OpenType, *SVG-in-OpenType*, has been updated to match the current version of the specification (Firefox bug 906521).
* The `SVGElement.ownerSVGElement()` method doesn't throw anymore (Firefox bug 835048).
Development tools
-----------------

* The Inspector is now remotable (Firefox bug 805526).
* The web console text can be selected, `::before` and `::after` now inspectable, debugger and responsive design features are planned for this release. (https://hacks.mozilla.org/2013/09/new-features-in-the-firefox-developer-tools-episode-26/)
### Older versions

* Firefox 25 for developers
* 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