Firefox 33 for developers
=========================

Firefox 33 was released on October 14, 2014. 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
--------------------------

### Developer Tools

Highlights

* Event listeners popup
* @media sidebar
* Add new rule
* Edit keyframes
* Cubic bezier editor
* Transform highlighter
* Persistent disable cache
* New Commands
* Editor preferences
* WebIDE

For details please see the hacks post. Special thanks to the 33 contributors that added all the features and fixes in this release.

### CSS

* Implemented `@counter-style` rule (Firefox bug 966166).
* Unprefixed `ethiopic-numeric`, `persian`, `arabic-indic`, `devanagari`, `bengali`, `gurmukhi`, `gujarati`, `oriya`, `tamil`, `telugu`, `kannada`, `malayalam`, `thai`, `lao`, `myanmar`, `khmer`, `cjk-heavenly-stem`, `cjk-earthly-branch` in `list-style-type` (Firefox bug 985825 and Firefox bug 1063856).
* Added support for `mongolian`, `disclosure-open` and `disclosure-closed` counter styles in `list-style-type` (Firefox bug 982355 and Firefox bug 1063856).
* Fixed CSS animations with empty keyframes rule so they also dispatch events (Firefox bug 1004377).
* Added support for `rebeccapurple`, a new `<color>` name defined in CSS Colors level 4 (Firefox bug 1024642).
* Our experimental implementation of CSS Fonts Level 3 is progressing. Its activation is governed by the `layout.css.font-features.enabled` preference, enabled by default in Nightly. Newly implemented features are:
    + The fallback algorithm of `font-variant-caps`, creating synthetic alternates for missing glyphs (Firefox bug 961558).
    + The `font-synthesis` CSS property has been implemented (Firefox bug 871453).
### HTML

* Added the experimental support for `<picture>` element (Firefox bug 870022), behind the `dom.image.picture.enabled` preference (off by default).
* The `<label>`, especially without a `for` attribute, doesn't apply anymore to a `<input type=hidden>` field (Firefox bug 597650). The previous behavior wasn't spec-compliant.
* The link annotation `noreferrer` has been implemented on `<a>` elements. `<a rel="noreferrer">` will not include the URL of the referrer in the HTTP request sent to fetch it (Firefox bug 530396). Note that this works only for in-page links, not for links clicked via the UI, like via contextual menus.
* On Android, support for two new values for the `name` attribute of `<meta>` has been added: `msapplication-TileImage` and `msapplication-TileColor` (Firefox bug 1014712). Example:

```html
<meta name="msapplication-TileImage" content="images/benthepcguy-144.png" />
<meta name="msapplication-TileColor" content="#d83434" />
```

### JavaScript

* The non-standard method `Number.toInteger()` has been removed (Firefox bug 1022396).
* The `Map.prototype.set()`, `WeakMap.prototype.set()` and `Set.prototype.add()` methods are now chainable, return their equivalent objects and no longer `undefined` (Firefox bug 1031632).
* A default parameter is evaluated before function declarations inside the function body, so those functions cannot be referred from the default parameter (Firefox bug 1022962).
* Shorthand properties are now allowed in object literals: if not explicitly defined, property keys are initialized by variables of the same name. E.g. `function f(x, y) { return {x, y}; }` is equivalent to `function f(x, y) { return {x: x, y: y}; }` (Firefox bug 875002).
* The parsing of `yield` and `yield*` has been updated to conform with the latest ES2015 specification (Firefox bug 981599).
* The non-standard `hasOwn` trap has been removed (Firefox bug 980565).
### Interfaces/APIs/DOM

* The `RadioNodeList` API has been implemented and the selected radio button is accessible via `RadioNodeList.value` (Firefox bug 779723).
* The `DOMMatrix` has been added (Firefox bug 1018497).
* A non-standard (but implemented in other browsers) `DOMException.stack` property has been added. It returns a string with a human-friendly formatted stack (Firefox bug 857648), in the same format as the existing non-standard `Error.stack` property.
* For `<canvas>`, the method `CanvasPattern.setTransform()`, allowing to modify a pattern using the `DOMMatrix` representation of a linear transform (Firefox bug 1019257).
* Our experimental implementation of Media Source Extensions, behind the `media.mediasource.enabled` preference, enabled by default in Nightly and Aurora only, now supports MP4 (Firefox bug 1000686).
* The properties `HTMLMediaElement.audioTracks` and `HTMLMediaElement.videoTracks` have been experimentally implemented. They are controlled by the `media.track.enabled`, off by default (Firefox bug 744896).
* The non-standard `XMLHttpRequest.mozBackgroundRequest()` is no more accessible from websites. Only Firefox-internal code (Chrome code) can use it (Firefox bug 1035242).
* The `touchenter` and `touchleave` events, removed from the specification, have been removed (Firefox bug 1036444).
* The formerly called `loaded` event, sent on a `HTMLTrackElement` has been renamed `load` to match the specification (Firefox bug 1035505).
* The IndexedDB interface `FileHandle` has been renamed in `IDBMutableFile` (Firefox bug 1006485).
* The IndexedDB interface `LockedFile` has been renamed in `IDBFileHandle` (Firefox bug 1006485).
* The `ServiceWorker` interface has been implemented behind the `dom.serviceWorkers.enabled` flag (Firefox bug 903441).
* The `NetworkInformation.type` now also support the `"unknown"` value (Firefox bug 1023029).
### MathML

* The attributes `columnspacing`, `framespacing`, and `rowspacing` of the `<mtable>` element are now supported (Firefox bug 330964).
* Use Open Type MATH constants for fractions, stacks, radicals, and scripts (Firefox bug 961365).
### SVG

*No change.*

### Audio/Video/WebRTC

* The `RTCOfferOptions` dictionary, used to provide options when calling `RTCPeerConnection.createOffer()`, has been implemented.
### WebGL

* `EXT_blend_minmax` is now exposed. It extends blending capabilities by adding two new blend equations: producing the minimum or maximum color components of the source and destination colors (Firefox bug 973815).
Security
--------

* The CSP 1.1 `frame-ancestors` directive is now supported (Firefox bug 846978).
Changes for add-on and Mozilla developers
-----------------------------------------

* The JavaScript Debugger Service (JSD) has been removed in favor of the new Debugger API (Firefox bug 800200).
* The interface nsIX509CertDB2 has been removed and the methods from that interface have been moved to the nsIX509CertDB interface.
### Add-on SDK

#### Highlights

* Added support for context menus in panels via a new option in the `Panel` constructor.
* Added `tab.readyState`.
* Added a `BrowserWindow` parameter to `sidebar.show()` and `sidebar.hide()`, to control the window for which the sidebar will be shown or hidden.

#### Details

GitHub commits made between Firefox 32 and Firefox 33. This will not include any uplifts made after this release entered Aurora.

Bugs fixed between Firefox 32 and Firefox 33. This will not include any uplifts made after this release entered Aurora.

### Older versions

* Firefox 32 for developers
* Firefox 31 for developers
* Firefox 30 for developers
* Firefox 29 for developers
* Firefox 28 for developers
* Firefox 27 for developers
* Firefox 26 for developers
* 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