Firefox 45 for developers
=========================

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

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

### 開発者ツール

主要なもの:

* ページインスペクターでの全文検索
* メモリーツールでのヒープスナップショットの差分
* DomContentLoaded と load イベントのネットワークモニタへの表示
* アニメーションインスペクターの改良

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

### HTML

* Content Security Policy を `<meta>` 要素で直接設定できるようになりました (Firefox バグ 663570)。
* `<img>` 要素、`<area>` 要素、`<a>` 要素、`<iframe>` 要素の `referrer` 属性を、`referrerpolicy` に改名しました (Firefox バグ 1187357)。
* ビューポートの変化やリサイズにより `<img srcset>` のレスポンシブ画像の再選択が発生するようになりました (Firefox バグ 1166138)。
### CSS

* `word-spacing` でパーセント値に対応しました (Firefox バグ 1038663)。
* CSS グリッドの実装が向上し、実験的な状態ではないと判断しました。これらを Nightly および Developer Edition で既定で有効にしましたが、Beta および Release では無効です (Firefox バグ 1000592)。
    + 溝 (`grid-column-gap`, `grid-row-gap`, `grid-gap` プロパティ) を実装しました (Firefox バグ 1176792)。
    + グリッドアイテムの最小サイズ (`min-width` や `min-height` の値 `auto` の特殊な動作) を実装しました (Firefox バグ 1176775)。
    + グリッドレイアウトで `align-self` および `justify-self` に対応しました (Firefox バグ 1151213)。
    + グリッドレイアウトで `align-content` および `justify-content` に対応しました (Firefox バグ 1151214)。
    + grid-template-columns、grid-template-rows の解決値の単位がピクセルになりました (Firefox バグ 978212)。
    + 関連機能である `display`: contents は Firefox 37 から対応しています。
* CSS グリッド向けの CSS ボックス配置に完全対応するため、 `start`、`end`、`self-start`、`self-end`、`left`、`right`、`last-baseline`、`space-evenly` (Firefox バグ 1176782)。現在、 CSS ボックス配置は CSS フレックスボックスおよび CSS グリッドにのみ適用されています。
* [css-grid][css-flexbox] <fieldset> のグリッドレイアウトおよびフレックスレイアウトを実装しました (Firefox バグ 1230207)。
* `float` および `clear` で、値 `inline-start` および `inline-end` に対応しました (Firefox バグ 1122918)。Nightly、Aurora (Dev edition)、Firefox OS では、既定で有効です。Release および Beta で有効化するには設定項目 `layout.css.float-logical-values.enabled` を `true` に変更してください。
* `text-emphasis`、`text-emphasis-style`、`text-emphasis-color`、`text-emphasis-position` を実装しました。既定値は無効です (有効化するには `layout.css.text-emphasis.enabled` を true に設定してください) (Firefox バグ 1040668)。
* ウェブの互換性のためにいくつかの `-webkit` 接頭辞付きプロパティおよび値に対応しました設定項目 `layout.css.prefixes.webkit` で制御しており、既定値は `false` です。
    + ウェブ互換性のため、 `-webkit-backface-visibility`, `-webkit-perspective`, `-webkit-perspective-origin` を追加しました。設定項目 `layout.css.prefixes.webkit` で制御しており、既定値は `false` です (Firefox バグ 1179444)。
### JavaScript

* ES2015 (ES6) の クラス を既定で有効にしました (Firefox バグ 1197932)。
* 式クロージャ が非推奨になり、コンソールに警告を表示するようになりました (Firefox バグ 995610)。
* `String.prototype.replace` は関数の引数を実行した後、RegExp の静的プロパティ に値を復元しないようになりました (Firefox バグ 1226936)。
* `Math.random()` を XorShift128+ アルゴリズムにアップグレードしました (Firefox バグ 322529)。
### インターフェイス/API/DOM

#### DOM & HTML DOM

* 互換性のため、標準外のプロパティ `Node.innerText` を実装しました (Firefox バグ 264412)。
* `HTMLImageElement.srcset` がリサイズやビューポートの変化に反応しない問題を修正しました (Firefox バグ 1166138)。
* `Element.getAttributeNames()` を実装しました (Firefox バグ 1228634)。

#### WebGL

WebGL2 の実装が進展しました。

* プログラムやシェーダーに対応しました (Firefox バグ 1048743)。
* ユニフォームや属性に対応しました (Firefox バグ 1048745)。
* Framebuffer オブジェクトを実装しました (Firefox バグ 1048732)。
* Renderbuffer オブジェクトを実装しました (Firefox バグ 1048733)。

#### IndexedDB

*変更なし。*

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

* `Clients.get()` および `FetchEvent.clientId` を実装しました (Firefox バグ 1222464)。
* `Clients.openWindow()` を実装しました (Firefox バグ 1172870)。
* `Clients.matchAll()` を呼び出す際に引数として渡すことができる options オブジェクトに、`includeUncontrolled` プロパティを含めることが可能になりました。これは論理値です。`true` を設定すると、比較操作により現在のサービスワーカーと同じオリジンを共有するすべてのサービスワーカークライアントを返します。それ以外の場合は、サービスワーカーによって制御されるサービスワーカークライアントのみを返します。既定値は `false` です。

#### WebRTC

*変更なし。*

#### 新規 API

*変更なし。*

#### その他

* ウェブ音声合成 API を、デスクトップ版 Firefox で実装しました (Firefox バグ 1003439)。
* `Window.onstorage` (en-US) イベントハンドラーを追加しました。
* ウェブアニメーション API の実験的な実装で、`ComputedTiming` インターフェイスを追加しました (Firefox バグ 1108055)。
* `Document.onselectionchange` イベントハンドラーを追加しました (Firefox バグ 1231193)。
* `MediaStream.removeTrack()` (en-US) を呼び出してメディアストリームから映像トラックを削除した後に、`MediaStream.addTrack()` を使用して別の映像トラックを追加して、再生することが可能になりました (Firefox バグ 1223696)。
### MathML

*変更なし。*

### SVG

* Moz2D のバックエンドが cairo であるときに、 SVG stroke hit-testing でバグが多い問題を修正しました (Firefox バグ 676001)。
* transform / translate の値が大きい要素と対話できない問題を修正しました (Firefox バグ 1217012)。
### Audio/Video

* 修正: 継続時間の丸め誤差により、音声再生が途切れることがある不具合（Firefox 41 以降）。 (Firefox バグ 1222866)。
HTTP
----

* ウェブコンテンツにアクセスした際に、`jar:` プロトコルが既定で無効になりました。`jar:` プロトコルを有効化したい場合は、設定項目 `network.jar.block-remote-files` を `false` に変更してください (Firefox バグ 1215235)。
セキュリティ
------

* `Content-Security-Policy` を `<meta>` 要素で指定できるようになりました (Firefox バグ 663570)。
* CSP のポリシーディレクティブ `child-src` を実装しました (Firefox バグ 1045891)。
* 有効期間が 27 か月を超える EV 証明書は、DV 証明書として判断され、取り扱われるようになりました (Firefox バグ 1222903)。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

### インターフェイス

*変更なし。*

### XUL

* タブグループを 削除しました。
### JavaScript コードモジュール

*変更なし。*

### XPCOM

*変更なし。*

### 検索プラグイン

* Firefox 45 より、ユーザープロファイルの `searchplugins` ディレクトリー内にある検索プラグインは起動時に自動的に読み込みません。代わりにユーザーがインストールしたプラグインの一覧が整備され、リスト内にあるプラグインのみ読み込みます。事実上、新たな検索プラグインをインストールする方法は、Firefox の UX でユーザーがインストールする (例えば OpenSearch による検出) か、アドオンによるインストールに限られます。また新しいプラグインをインストールしたとき、プロファイルのデバッグやクリーニングツールで将来使用するために、プラグインのインストール元に関する付加情報を記録します。
### その他

* chrome コンテキストでは、WebIDL コンストラクターを `new` 演算子なしで呼び出せました。Firefox 30 より、ウェブコンテンツではそのようなコードで `TypeError` が発生するようになりました。例えば `var req = XMLHttpRequest();` は `var req = new XMLHttpRequest();` としなければなりません。
過去のバージョン
--------

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