Firefox 35 for developers
=========================

Gecko 35 を搭載した Firefox 35 は、米国時間 2015 年 1 月 13 日にリリースされました。このページでは、開発者に影響する Firefox 35 の変更点をまとめています。

Web 開発者向けの変更点一覧
---------------

### 開発者ツール

ハイライト:

* インスペクタで ::before および ::after 疑似要素を確認できるようになりました。
* CSS ソースマップがデフォルトで有効になりました。
* インスペクタから "DOM プロパティの表示" が可能になりました。

Firefox 34 から Firefox 35 の間に解決した開発ツール関連のバグ一覧

### CSS

* `mask-type` プロパティをデフォルトで有効にしました (バグ 1058519)。
* `filter` プロパティをデフォルトで有効にしました (バグ 1057180)。
* `@font-face` @ 規則で WOFF2 フォントをサポートしました (バグ 1064737)。
* `symbols()` 関数記法をサポートしました (バグ 966168)。
* CSS Font Loading API を実装しました (バグ 1028497)。
* コンボボックスで `-moz-appearance` に値 `none` を指定すると、ドロップダウンボタンを表示しないようになりました (バグ 649849)。
* 他ブラウザに合致させるため、プロパティへのアクセス手段である `element.style["css-property-name"]` を追加しました (バグ 958887)。
### HTML

* `<body>`要素において廃止済みであり仕様に適合しない `bottommargin`、`leftmargin`、`rightmargin`、`topmargin` の各属性を Quirks モード以外でも有効にしました (バグ 95530)。
### JavaScript

* `let` 宣言の「一時的なデッドゾーン」を実装しました。ES6 の `let` のセマンティクスに合わせて、以下の状況ではエラーが発生します。ニュースグループでの発表や バグ 1001090 もご覧ください。
    + 関数ボディの同一スコープ内で、`let` を使用して既存の変数や引数を再度宣言すると構文エラーになります。
    + 関数ボディで `let` を使用して宣言した変数を、その宣言に到達して評価される前に使用すると、実行時エラーが発生します。
* 最近の仕様の変更に合致するよう、ES6 の `Symbols` (en-US) (Nightly チャンネルのみ有効) を更新しました (バグ 1042602):
    + `String(Symbol("1"))` で `TypeError` が発生しないようになりました。代わりに文字列 (`"Symbol(1)"`) が返ります (バグ 1058396)。
* *TypedArray* のさまざまなコンストラクタが `[[Prototype]]` として、ES6 で `%TypedArray%` と示されている単一の関数を持つようになりました (しかし、他には直接公開されません)。各 Typed Array のプロトタイプは、`%TypedArray%.prototype` から継承します。(`%TypedArray%` および `%TypedArray%.prototype` は、それぞれ `Function.prototype` および `Object.prototype` から継承しますので、Typed Array のコンストラクタやインスタンスはこれらのオブジェクトに存在するプロパティを持ちます) Typed Array 関数のプロパティは `%TypedArray%.prototype` 上に存在して、Typed Array で動作するようになります。詳しくは *TypedArray* や バグ 896116 をご覧ください。
* ES6 の、オブジェクトリテラルを使用して行うプロトタイプミューテーションを実装しました (バグ 1061853)。
    + オブジェクトリテラル構文内では、`__proto__:value` として指定するメンバーが 1 つだけであれば `[[Prototype]]` のミューテーションを行うようになりました。
    + `__proto__() {}` のようなメソッドメンバーは、`[[Prototype]]` をオーバーライトしないようになりました。
### インターフェイス/API/DOM

* `NavigatorLanguage` インターフェイスが、`WorkerNavigator` によって Workers から使用可能になりました (バグ 925849)。
* `Element.closest()` メソッドは、カレント要素にもっとも近い祖先要素を返します (バグ 1055533)。
* `CanvasRenderingContext2D.filter` (en-US) プロパティを実験的にサポートしました。設定項目 `canvas.filters.enabled` で制御されます (バグ 927892)。
* `Animation.target` プロパティの実装により、Web Animations の実験的にな実装が進展しました。設定項目 `dom.animations-api.core.enabled` で制御されており、デフォルトで無効化されています (バグ 1067701)。
* 仕様書の定めにより、`hasAttributes()` メソッドを `Node` から `Element` に移しました (バグ 1055773)。
* `HTMLImageElement`、`HTMLLinkElement`、`HTMLMediaElement`、`HTMLScriptElement`、`SVGScriptElement` (en-US) の `crossOrigin` 属性は有効な値のみを受け入れるようになりました。`""` は有効ではなく、代わりに `null` を使用します (バグ 880997)。
* Resource Timing API をデフォルトで有効にしました (バグ 1002855)。
* 仕様に合致させるため、`Selection.containsNode()` (en-US) の第一引数を `null` にすることはできなくなりました (バグ 1068058)。
* `ImageCapture` (en-US) API を新たに実装しました。`ImageCapture.takePhoto()` (en-US) を使用できます (バグ 916643)。
* HTTP 以外の `XMLHttpRequest` 要求が成功した場合は (誤りである `0` に代わり) `200` を返すようになりました (バグ 716491)。
* `XMLHttpRequest.responseURL` を最新の仕様に適合させて、URL のフラグメント (`'#xyz'`) は存在しても含めないようになりました (バグ 1073882)。
* 内部で使用している非標準の `File.mozFullPath` プロパティは content から参照できなくなりました (バグ 1048293)。
* `File` のコンストラクタを、仕様に準拠するよう拡張しました (バグ 1047483)。
* 自身を生成したものとは別のエンティティによってアボートされることが可能な Promise である、`AbortablePromise` を実験的に実装しました。接頭辞 `Moz` を付加しており、設定項目 `dom.abortablepromise.enabled` (既定値は `false`) で制御されます (バグ 1035060)。
* 非標準の `Navigator.mozIsLocallyAvailable` プロパティを削除しました (バグ 1066826)。
* 設定項目 `network.websocket.enabled` (既定値は `true`) を削除しました。今後は Websocket API を無効化できません (バグ 1091016)。
* `Window.crypto` の非標準メソッドおよび非標準プロパティを削除しました (バグ 1030963)。標準の WebCrypto API で定義されているメソッドおよびプロパティのみが残ります。
* WebGL 2.0 の実験的な実装を進めています!
    + `WebGL2RenderingContext.copyBufferSubData()` (en-US) メソッドを実装しました (バグ 1048668)。
### MathML

* 文字が重ねて置かれる場合 (例えば数学のハット記号がついた、ドットがない i) に、OpenType の `dtls` 機能 (デフォルト CSS スタイルシートの `font-feature-settings` による) が MathML 要素へ自動的に適用されるようになりました。
### SVG

*変更なし。*

### Audio/Video

*変更なし。*

ネットワークおよびセキュリティ
---------------

* AEAD 暗号化方式を使用する場合に限り、HTTP/2 を実装および有効化しました (バグ 1027720 および バグ 1047594)。
* HTTP/2 の `alt-svc` ヘッダをサポートしました (バグ 1003448)。
* HTTP の Public Key Pinning 拡張 (HPKP) を実装しました (バグ 787133)。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

### XUL およびアドオン

* `tabbrowser` のプライベートなメソッドである `_getTabForBrowser()` が非推奨になりました。代わりに、パブリックなメソッドである `getTabForBrowser` を新たに追加しました。予想されているとおり、このメソッドは指定した `browser` を包含する `tab` 要素を返します。
* `Performance.now()` と対等である `Components.utils.now()` を、window 以外の chrome コード向けに実装しました (バグ 969490)。
### Add-on SDK

#### ハイライト

* コンテキストメニューのアクセスキーを追加できます。
* `BrowserWindow` から `isPrivateBrowsing` を削除しました。

#### 詳細

Firefox 34 から Firefox 35 の間に行われた GitHub コミット。この一覧は Aurora 移行後に上流で行われた内容が含まれていないでしょう。

Firefox 34 から Firefox 35 の間に解決したバグ。この一覧は Aurora 移行後に上流で行われた内容が含まれていないでしょう。

関連情報
----

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

* 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
* 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