Firefox 46 for developers
=========================

Firefox の最新の開発者向け機能を試すには、 Firefox Developer Edition をインストールしてください。Firefox 46 は、米国時間 2016 年 4 月 26 日にリリースされました。この記事では、ウェブ開発者だけでなく、 Firefox や Gecko の開発者、アドオン開発者にとっても有用な主な変更点を挙げています。

ウェブ開発者向けの変更点一覧
--------------

### 開発者ツール

主要なもの:

* メモリーツールのドミネーター表示
* パフォーマンスツールのアロケーションビュー
* スタイルエディターで @media ルールの条件をワンクリックで適用可能

Firefox 45 と Firefox 46 の間で修正された開発ツールのすべてのバグ。

### HTML

* `<ul>` で `type` の値が無効であるときは `decimal` を割り付けず、`type` の値が指定されていないとみなすようになりました (Firefox バグ 241719)。
* `<input>` の `pattern` 属性は、`"u"` (unicode) フラグを付与した正規表現として扱うようになりました (Firefox バグ 1227906)。
### CSS

* CSS グリッドの実装を更新しました。
    + キーワード `auto-fill` および `auto-fit` を、`repeat()` 関数内で使用できるようになりました (Firefox バグ 1118820)。
    + 値 `true` を `unsafe` に改名しました。これは `justify-content`、`align-content`、`justify-self`、`align-self`、`justify-items`、`align-items` の各プロパティに影響します (Firefox バグ 1230478)。
* `text-emphasis`、`text-emphasis-style`、`text-emphasis-color`、`text-emphasis-position` の各プロパティを、既定で有効にしました (Firefox バグ 1231485)。
* Gecko が、`-webkit-` 接頭辞を付加した 数種類のプロパティ を受け入れるようになりました。ただし `layout.css.prefixes.webkit` を `true` に切り替えなければなりません (Firefox バグ 1213126)。
* (`@font` の) `font-display` 記述子を実験的に実装しました。使用するには `layout.css.font-display.enabled` を `true` に切り替えなければなりません (Firefox バグ 1157064)。
* 3D Transform のサポートを表すメディアクエリーとして `@media (-webkit-transform-3d)` に対応しました。ただし about:config の設定 `layout.css.prefixes.webkit` を `true` に切り替えなければなりません (Firefox バグ 1239799)。
* `linear-gradient()` で、`0deg` の単位を省略した表記に対応しました (Firefox バグ 1239153)。
* ウェブ互換性のため、`-webkit-filter` を追加しました。設定項目 `layout.css.prefixes.webkit` で制御しており、既定値は `false` です (Firefox バグ 1236506)。
* [css-align] "unsafe start" (以前は "true start") を "start" などにシリアライズするようになりました (Firefox バグ 1230398)。
### JavaScript

* ES2015 の、RegExp の unicode (u) フラグを実装しました (Firefox バグ 1135377)。
* ES2015 のブロックレベル関数を実装しました (Firefox バグ 1071646)。
* ES2015 の `TypedArray.prototype.sort()` メソッドを実装しました (Firefox バグ 1121937)。
* ES2015 の `arguments[@@iterator]` を実装しました (Firefox バグ 1067049)。
* EcmaScript Shared Memory API を実験的に実装しました。`SharedArrayBuffer` および `Atomics` オブジェクトをご覧ください。この実験的な API を使用するには、about:config で `javascript.options.shared_memory` に `true` を設定します。
* ECMAScript 仕様に従い、`[let](/ja/docs/Web/JavaScript/Reference/Statements/let)` および `[const](/ja/docs/Web/JavaScript/Reference/Statements/const)` によって変数を再宣言すると `TypeError` ではなく `SyntaxError` が発生するようになりました (Firefox バグ 1198833)。
* 厳格モードにおいて、プリミティブ値にプロパティを設定すると `TypeError` が発生するようになりました (Firefox バグ 603201)。
* 非標準の `WeakMap.prototype.clear()` および `WeakSet.prototype.clear()` メソッドを削除しました (Firefox バグ 1101817)。
* 非標準の `RegExp.multiline` プロパティが非推奨になりました (Firefox バグ 1220457)。
* 組み込みアクセサー関数の名称に "get" または "set" 接頭辞を付加しました (Firefox バグ 1180290、Firefox バグ 1235656)。
* JS1.7/JS1.8 (旧式) の配列内包 (en-US) および JS1.7/JS1.8 (旧式) のジェネレーター内包 (en-US) を削除しました (Firefox バグ 1220564)。
### インターフェイス/API/DOM

#### DOM & HTML DOM

* 非推奨の `Window.showModalDialog()` メソッドが、マルチプロセスモード (e10s) の Firefox で使用できなくなりました (Firefox バグ 1234700)。
* `Document.elementsFromPoint` に対応しました (Firefox バグ 1164427)。
* `<select>` 要素に存在しない option をプログラムで選択したときに誤って何も変更しないままにしていましたが、`selectedIndex` の値を `-1` に、`selectedOptions` を空の `HTMLCollection` に、そして `value` を空文字列に変更するようになりました (Firefox バグ 1203668)。

#### Canvas

* 実験的な `OffscreenCanvas` (en-US) API で未実装であった部分を実装しました。新機能: `OffscreenCanvas()` (en-US) コンストラクター、`OffscreenCanvas.toBlob()` (en-US)、`OffscreenCanvas.transferToImageBitmap()` (en-US)。これらの実験的な API を使用するには、about:config で `gfx.offscreencanvas.enabled` を `true` に設定します (Firefox バグ 1172796)。
* `ImageBitmap.close()` メソッドに対応しました (Firefox バグ 1172796)。
* 新たなレンダリングコンテキスト `ImageBitmapRenderingContext` (en-US) を実装しました。このコンテキストを得るには、`OffscreenCanvas.getContext()` (en-US) または `HTMLCanvasElement.getContext()` で `"bitmaprenderer"` を指定します (Firefox バグ 1172796)。

#### WebGL

* `WEBGL_compressed_texture_etc` (en-US) 拡張を実装しました。ETC2 テクスチャ圧縮方式 を使用できます (Firefox バグ 917505)。この拡張を使用するには、about:config で `webgl.enable-draft-extensions` を `true` に設定してください。

#### IndexedDB

*変更なし。*

#### サービスワーカー

* `FetchEvent.request` を、null にしてはいけないようにしました (Firefox バグ 1238213)。
* `Navigator.serviceWorker` を SameObject としてマークしました (Firefox バグ 1238205)。
* `ExtendableMessageEvent.ports` を SameObject としてマークしました (Firefox バグ 1238225)。

#### Fetch

* `Request.mode` で、新しい値 `navigate` が使用可能になりました。ドキュメント間のナビゲート中のリクエスト生成に対応します (Firefox バグ 1209081)。

#### WebRTC

* `RTCPeerConnection.createOffer()` (en-US) メソッドが VP9 ビデオコーデックに対応するようになりましたが、これは既定では無効になっています。有効にするには、 `about:config` で `media.peerconnection.video.vp9_enabled` 設定を `true` に設定します。有効化すると、VP9 が優先されるコーデックになります。以前は VP8 が優先されていました (Firefox バグ 1242324)。
* `RTCRtpSender.setParameters()` (en-US) というメソッドを追加し、 `RTCRtpSender` (en-US) を最初に作成した後に引数の値を変更できるようにしました。

#### 新規 API

* SVG で、`SVGStyleElement` (en-US) インターフェイスに `LinkStyle` (en-US) を実装しました (Firefox バグ 1239128)。

#### その他

* 非同期の `FileReader` を、Web workers で使用できるようになりました (Firefox バグ 901097)。
* Web Animations API の実験的な実装を更新しました。
    + `AnimationEffectTimingReadOnly` および `AnimationEffectReadOnly.timing` を実装しました (Firefox バグ 1214536)。
* Permissions API が、Nightly だけでなくすべてのリリース版で、既定で有効になりました (Firefox バグ 1221106)。
* WOFF フォントのサニタイズ処理を、少々緩和しました (Firefox バグ 1244693)。
### MathML

*変更なし。*

### SVG

*変更なし。*

### Audio/Video

*変更なし。*

HTTP
----

*変更なし。*

ネットワーク
------

* RFC 7686 に対応しました。既定では、TLD が `.onion` であるドメインの名前解決を試みません。これは設定項目 `network.dns.blockDotOnion` で制御します。Tor に対応するアドオンは、この設定を変更できます (Firefox バグ 1228457)。
セキュリティ
------

*変更なし。*

アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

### インターフェイス

*変更なし。*

### XUL

*変更なし。*

### JavaScript コードモジュール

*変更なし。*

### XPCOM

*変更なし。*

### その他

*変更なし。*

過去のバージョン
--------

* Firefox 45 for developers
* Firefox 44 for developers
* Firefox 43 for developers
* Firefox 42 for developers
* Firefox 41 for developers
* Firefox 40 for developers
* Firefox 39 for developers
* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers
* Firefox 35 for developers
* Firefox 34 for developers
* Firefox 33 for developers
* 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