Firefox 28 for developers
=========================

Firefox 28 は米国時間 2014 年 3 月 18 日にリリースされました。この記事では、ウェブ開発者だけでなく、 Firefox や Gecko の開発者やアドオン開発者にとっても有益な主な変更点を紹介します。

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

### 開発者ツール

* `console.exception` プロパティを追加しました (Firefox バグ 922214)。
* `console.assert` プロパティを追加しました (Firefox バグ 760193)。
* アプリマネージャー: 新しいマニフェストエディタを追加しました。
* アプリマネージャー: アプリのデバッグ用のツールボックスを、アプリマネージャーの UI 内に組み込みました。
* ウェブコンソール: "スプリットコンソール" モードを追加しました。Escape キーを押すと、他のツール内にコンソールをすばやく開きます。
* ウェブコンソール: 出力エリア用の Dark テーマを追加しました。
* デバッガー: ミニファイされた JavaScript の整形。
* デバッガー: 変数にマウスポインターを乗せるか変数をクリックすると、現在の値をポップアップで表示します。
* インスペクター: ルールビューでのカラーピッカーや、さまざまなツールチップを追加しました。
* ブラウザツールボックス: アドオンやプラットフォームの開発者が、ブラウザ自身を対象にしてほぼすべての開発ツールを使用できるようになりました。

詳しくはこちらの投稿をご覧ください。

### CSS

* 複数行の フレックスボックスの基本概念 をサポートしました (Firefox バグ 939901)。
* 東アジア言語における長い表記ののカウンタースタイルを実装しました (Firefox バグ 934072)。
* `background-blend-mode` プロパティをサポートしました (Firefox バグ 841601)。
* `font-variant-ligatures` プロパティに値 `none` を追加しました (Firefox バグ 913264)。
* 疑似要素で `:hover` ユーザーアクション疑似クラスをサポートしました (Firefox バグ 922669)。
### HTML

* `<input type=color>` および `<input type=number>` を実装しましたが、デフォルトでは無効です。
### JavaScript

* ECMAScript 2015 の実装が続いています。
    + `Array` の新たなメソッド、 `Array.prototype.entries()` および `Array.prototype.keys()` を実装しました (Firefox バグ 894658)。
* A bug causing that `Object.getOwnPropertyNames()` did not see unresolved properties of `Error` objects has been fixed (Firefox バグ 724768).
### インターフェイス/API/DOM

* `HTMLVideoElement.canPlayType('video/webm')` が `maybe` を返すようになりました (Firefox バグ 884275)。
* `DocumentFragment.getElementById()` メソッドを実装しました。例: `document.createDocumentFragment().getElementById()` (Firefox バグ 933193)
* `KeyboardEvent.repeat` 属性を実装しました (Firefox バグ 600117)。
* `File` コンストラクターを実装しました。例: `new File(["foo"], "foo.txt")` (Firefox バグ 819900)
* プライバシーの理由により、`navigator.plugins` (en-US) が enumerable ではなくなりました (Firefox バグ 757726)。
* `Window.screenX` 属性および `Window.screenY` 属性が CSS ピクセル値を返すようになりました (デバイスピクセル値は返しません) (Firefox バグ 943668)。
* `CanvasRenderingContext2D.drawSystemFocusRing()` メソッドおよび `CanvasRenderingContext2D.drawCustomFocusRing()` (en-US) メソッドを実装しました。これらを有効にするには、設定項目 `canvas.focusring.enabled` を `true` に設定しなければなりません (Firefox バグ 540456)。
* `willReadFrequently` コンテキスト属性が "`2d`" キャンバスコンテキストで実装されました (`HTMLCanvasElement.getContext()` を参照) (Firefox バグ 884226)。
* `NavigatorID` の属性やメソッドのうち、 `appCodeName`, `product`, `taintEnabled()` (en-US) が `WorkerNavigator` に実装され、ワーカーで利用できるようになりました。 (Firefox バグ 925847)。
* `previousElementSibling` および `nextElementSibling` の各プロパティが互換性の問題により、 `DocumentType` から削除されました (Firefox バグ 932501)。
### MathML

* `mathvariant` 属性をサポートしました (Firefox バグ 114365)。
### SVG

*変更なし。*

### Audio/Video

* WebM で Opus をサポートしました (Firefox バグ 938686)。
* VP9 ビデオデコーダをサポートしました (Firefox バグ 833023)。
### ネットワーク

* `SPDY/2` のサポートを廃止しました。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

* DeferredTask.jsm のインターフェイスを変更しました。また `isPending()`、`start()`、`flush()`、`cancel()` の各メソッドを削除しました (Firefox バグ 940408)。
セキュリティ
------

* sandbox 化した iframe では、CSP が適用されていませんでした。これを修正しました (Firefox バグ 886164)。
* CSP 1.1 の試験的なディレクティブ `script-nonce` を実装しました。この機能を有効にするには、設定項目 `security.csp.experimentalEnabled` を `true` に設定してください (Firefox バグ 855326)。
関連情報
----

* Firefox 28 リリースノート
* Firefox 28 アドオン互換性情報
### 過去のバージョン

* 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