Firefox 32 for developers
=========================

普通 Web 开发者应该注意的变化
-----------------

### 开发者工具

Highlights:

* Web Audio Editor
* Code completion and inline documentation in Scratchpad
* User agent styles in the Inspector's Rules view
* Element picker button has moved
* Node dimensions added to the Inspector's infobar
* Full page screenshot button added
* HiDPI images added to the tools
* Nodes that have `display:none` are shown differently in the Inspector

All devtools bugs fixed between Firefox 31 and Firefox 32.

### CSS

* 默认开启 `mix-blend-mode` (Firefox bug 952643)。
* 在正式版本中默认开启 `position:sticky` (之前只在 Nightly 和 Aurora 版本中才会开启) (Firefox bug 916315)。
* implement box-decoration-break: Left/right part of a box-shadow should only be drawn on the first/last continuation of an inline box (Firefox bug 613659).
* 允许 `flex-grow` / `flex-shrink` 在 0 和非 0 值之间作 transition , like 'flex-grow: 0.6'(Firefox bug 996945).
### HTML

* Experimentally implemented, behind a pref, `<img>` `srcset` property, To activate it set `dom.image.srcset.enable` to `true` (Firefox bug 870021).
* **id** and **class** are now true global attributes and also apply to XML elements, in a namespace or not (Firefox bug 741295).
### JavaScript

* The following new ECMAScript 2015 built-in methods got implemented:
* `Array.from()` (Firefox bug 904723),
* `Array.prototype.copyWithin()` (Firefox bug 934423),
* `Number.isSafeInteger()` (Firefox bug 1003764).
### Interfaces/APIs/DOM

* 实现了 `navigator.languages` (en-US) 属性和 languagechange (en-US) 事件。 (Firefox bug 889335)。
* The `Navigator.vibrate()` method behavior has been adapted to the latest specification: too long vibrations are now truncated (Firefox bug 1014581).
* `KeyboardEvent.getModifierState` (en-US)() 和 `MouseEvent.getModifierState` (en-US)() 支持了 "Accel" 虚拟修饰符 (Firefox bug 1009388)。
* 实现了 `KeyboardEvent.code` 属性，不过目前在正式版本中还是禁用状态 (Firefox bug 865649)。
* Scoped selectors for `Document.querySelector()` and `Document.querySelectorAll()`, for example `querySelector(":scope > li")`have been implemented (Firefox bug 528456).
* The experimental implementation of the `Document.timeline` interface, related to the Web Animation API, has been added (Firefox bug 998246). It is controlled by `layout.web-animations.api.enabled` preference, enabled only on Nightly and Aurora for the moment.
* The Data Store API has been made available to Web Workers (Firefox bug 949325). It still is only activated for certified applications.
* The ServiceWorker (en-US) `InstallPhaseEvent` and `InstallEvent` interfaces have been implemented (Firefox bug 967264).
* The MSISDN Verification API, only activated for privileged apps, has been added (Firefox bug 988469).
* The Gamepad API is now supported on Firefox for Android (Firefox bug 852935).
* To match the spec and the evolution of the CSS syntax, minor changes have been done to `CSS.escape()`. The identifier now can begins with `'--'` and the second dash must not be escaped. Also vendor identifier are no more escaped. (Firefox bug 1008719)
* To complete our Hit Regions implementation, `MouseEvent.region` has been implemented (Firefox bug 979692).
* The `CanvasRenderingContext2D.drawFocusIfNeeded()` method is now enabled by default (Firefox bug 1004579).
* The `Navigator.doNotTrack` properties now returns `'1'` or `'0'`, reflecting the HTTP value, instead of `'yes'` or `'no'` (Firefox bug 887703).
* XMLHttpRequest.responseURL was implemented (Firefox bug 998076).
### MathML

* 实现了 menclose 标记 `phasorangle`。
### SVG

*No change.*

### WebRTC

* New constraints for WebRTC's `getUserMedia()`, `width`, `height`, and `framerate`, have been added, to limit stream dimensions and frame rate (Firefox bug 907352):
```

{
  mandatory: {
    width: { min: 640 },
    height: { min: 480 }
  },
  optional: [
    { width: 650 },
    { width: { min: 650 }},
    { frameRate: 60 },
    { width: { max: 800 }},
  ]
}
```

* WebRTC methods which previously used callback functions as input parameters are now also available using JavaScript promises.
### Audio/Video

*No change.*

Security
--------

* Privileged code now gets Xray vision for JavaScript `Object` and `Array` instances (en-US).
附加组件 和 Mozilla 开发者应该注意的变化
-------------------------

Xray vision is now applied to JavaScript objects that are not themselves DOM objects: Xrays for JavaScript objects (en-US).

A `getDataDirectory()` method has been added to `Addon` instances. This method returns the preferred location, within the current profile, for add-ons to store data.

### Add-on SDK

#### Highlights

* Added `exclude` option to `PageMod`.
* Added `anonymous` option to `Request`.
* Add-on Debugger now includes a Console and a Scratchpad.

#### Details

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

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

### XPCOM

* The `nsIUDPSocket` interface now provides multicast support through the addition of the new `nsIUDPSocket.multicastLoopback`, `nsIUDPSocket.multicastInterface`, and `nsIUDPSocket.multicastInterfaceAddr` attributes, as well as the `nsIUDPSocket.joinMulticast()` and `nsIUDPSocket.leaveMulticast()` methods.
参见
--

* Site Compatibility for Firefox 32
### Older versions

* Firefox 31 for developers
* Firefox 30 for developers (en-US)
* Firefox 29 for developers (en-US)
* Firefox 28 for developers (en-US)
* Firefox 27 for developers
* Firefox 26 for developers
* Firefox 25 for developers
* Firefox 24 for developers
* Firefox 23 for developers (en-US)
* Firefox 22 for developers
* Firefox 21 for developers
* Firefox 20 for developers
* Firefox 19 for developers
* Firefox 18 for developers
* Firefox 17 for developers (en-US)
* Firefox 16 for developers (en-US)
* Firefox 15 for developers (en-US)
* Firefox 14 for developers
* Firefox 13 for developers (en-US)
* Firefox 12 for developers (en-US)
* Firefox 11 for developers (en-US)
* Firefox 10 for developers (en-US)
* Firefox 9 for developers (en-US)
* Firefox 8 for developers (en-US)
* Firefox 7 for developers (en-US)
* Firefox 6 for developers (en-US)
* Firefox 5 for developers (en-US)
* Firefox 4 for developers (en-US)
* Firefox 3.6 for developers (en-US)
* Firefox 3.5 for developers (en-US)
* Firefox 3 for developers
* Firefox 2 for developers (en-US)
* Firefox 1.5 for developers (en-US)