Firefox 40 for developers
=========================

Firefox の最新の開発者向け機能をテストするには、 Firefox Developer Edition をインストールしてください Firefox 40 は、米国時間 2015 年 8 月 11 日にリリースされました。このページでは、開発者に影響する Firefox 40 の変更点をまとめています。

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

### 開発者ツール

ハイライト:

* アニメーションビューを改良
* CSS プロパティの構文のヘルプを MDN から取得
* インスペクターでフィルターを編集
* ワーカーが発したメッセージをウェブコンソールで表示
* ネットワークモニタでー、要求を URL でフィルタリング
* ネットワークモニターで、多くの新たなコンテキストメニュー項目を追加
* ネットワークリソースがブラウザーのキャッシュから取得されたことを示す
* ページインスペクターで、ルールをフィルタリング

さらに:

* 無名の eval ソース内で、debugger; 構文でブレーク
* デバッガーのソースリストペインで、Copy URL および Open in New Tab コンテキストメニュー項目を追加
* ウェブコンソールで console.dirxml をサポート
* スタイルエディターで、スタイルシートリストのコンテキストメニューに "Open Link In New Tab" を追加
* インスペクターのセレクター検索で、CSS 接頭辞をつけなくても class や id を検索結果に表示
* ボックスモデルビューのツールチップで、どの CSS ルールによって値が決まったかを表示
* インスペクターで、Shift + クリックで色単位を切り替え
* インスペクターで、"Scroll Into View" メニュー項目を実装
* インスペクターで、url/id/resource 属性をリンクとして扱う
* ネットワークモニターで、IP アドレスをツールチップで表示

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

### CSS

* 接頭辞 (`-moz-`) 付きの `text-decoration-color`、`text-decoration-line`、`text-decoration-style` を削除しました (Firefox バグ 1097922)。
* `text-align` プロパティで `match-parent` 値をサポートしました (Firefox バグ 645642)。
* Quirks モードで `empty-cells` の既定値が、Standard モードと同様に `show` になりました (Firefox バグ 1020400)。
* `<meter>` および `<progress>` 要素で使用している非標準の `-moz-orient` プロパティが、writing-modes の縦書きに対応しました。`auto` を削除して、`inline` および `block` を追加しました。新たな既定値は `inline` です (Firefox バグ 1028716)。
* `font-size-adjust` プロパティで、値 `0` は `none` (調整を行わない、または値 `1.0` になる) と同じではなく、倍数 (高さが `0` になるため、表示されない) として扱うように修正しました (Firefox バグ 1144885)。
* 縦書きモードで text-overflow が動作しない問題を修正しました (Firefox バグ 1117227)。
### HTML

*変更なし。*

### JavaScript

* `return` 文の後方にある到達できないコード (セミコロンがない return 文 の後方にある、到達できない式を含む) について、コンソールに警告を表示します (Firefox バグ 1005110、Firefox バグ 1151931)。
* `Symbol.match` を追加しました (Firefox バグ 1054755)。
* `Symbol.match` プロパティが truthy な値であるオブジェクトを `String.prototype.startsWith`、`String.prototype.endsWith`、`String.prototype.contains` に渡すと、`TypeError` が発生するようになりました (Firefox バグ 1054755)。
* `Symbol.match` プロパティが真値であるパターンオブジェクトを使用して `new` を伴わずに `RegExp` 関数を呼び出すと、パターンそのものが返るようになりました。また、パターンオブジェクトの `constructor` プロパティは `RegExp` 関数に等しくなります (Firefox バグ 1147817)。
* JS1.7 の、for-in を使用する非標準の分割代入を廃止しました (Firefox バグ 1083498)。
* for...in ループで、非標準の初期化式を無視してコンソールに警告を表示するようになりました (Firefox バグ 748550 および Firefox バグ 1164741)。
* Unicode コードポイントのエスケープ書式 `\u{xxxxxx}` をサポートしました (Firefox バグ 320500)。
* `String.prototype.contains` は、`String.prototype.includes` に置き換えられました。`String.prototype.contains` はエイリアスとして維持します (Firefox バグ 1102219)。
* `DataView` コンストラクターを `new` 演算子を伴わない関数として呼び出した場合、ES6 に従って `TypeError` が発生するようになりました。
* Firefox 21 のリグレッションである、`get` トラップを持たずに配列から作成した Proxy が正常に動作しない問題を修正しました。`Proxy` で `get` トラップを定義していない場合は、`Array.length` が `0` を返します。また `set` トラップは呼び出されません。この問題の回避策は、必要ない場合でも `get` トラップを追加することでした。この問題は解決されました (Firefox バグ 895223)。
* ES6 仕様に従い、 `WeakMap.prototype` および `WeakSet.prototype` は通常のオブジェクトに変更しました (Firefox バグ 1055473)。
### インターフェイス/API/DOM

#### 新規 API

* プッシュ API を、実験的に実装しました (Firefox バグ 1038811)。設定項目 `services.push.enabled` で制御しており、デフォルトは無効にしています。

#### ウェブアニメーション API

主に最新の仕様変更に合わせて、ウェブアニメーションの実験的な実装を改良しました:

* `AnimationPlayer.currentTime` (en-US) が設定可能になりました (Firefox バグ 1072037)。
* `Element` で使用できる `Animatable.getAnimationPlayers()` を、`Element.getAnimations()` に改名しました (Firefox バグ 1145246)。
* `Animation` および `AnimationEffect` を、新たに作成した `KeyframeEffectReadOnly` に統合しました (Firefox バグ 1153734)。
* `AnimationPlayer` を `Animation` に改名しました (Firefox バグ 1154615)。
* `AnimationTimeline` (en-US) は、`DocumentTimeline` (en-US) を唯一実装する抽象クラスになりました (Firefox バグ 1152171)。

#### CSSOM

* CSS Font Loading API を、Nightly および Developer Edition ではデフォルトで有効にしました (Firefox バグ 1088437)。Beta および Release では、引き続き無効です。
* `CSSCharsetRule` インターフェイスを削除しました。このオブジェクトは CSSOM で使用できなくなりました (Firefox バグ 1148694)。これは仕様書 (最近の変更) および Chrome の動作に合致します。

#### WebRTC

* WebRTC の `negotiationneeded` (en-US) イベントは、再ネゴシエーション時だけでなく初期ネゴシエーション時にも送るようになりました (Firefox バグ 1149838)。

#### DOM & HTML DOM

* 最新の仕様書の要求に従い、`srcset` をパースできないときに `HTMLImageElement.currentSrc` メソッドは `null` ではなく `""` を返すようになりました (Firefox バグ 1139560)。
* 画像と同様に、Firefox は非表示の `<iframe>` に対して `Window.requestAnimationFrame()` を抑制するようになりました (Firefox バグ 1145439)。
* `Navigator.taintEnabled` (en-US) はウェブワーカーで使用できなくなりました (Firefox バグ 1154878)。

#### ウェブオーディオ API

ウェブオーディオ API の新たな拡張です。

* `AudioContext.state`、`AudioContext.onstatechange` プロパティと `AudioContext.suspend()`、`AudioContext.resume()`、`AudioContext.close()` メソッドを実装しました (Firefox バグ 1094764)。
* `AudioBufferSourceNode` に `AudioBufferSourceNode.detune` k-rate 属性を実装しました (Firefox バグ 1153783)。

#### ウェブワーカー

* サービスワーカー API を少々改良しました。`update()` メソッドを、`ServiceWorkerGlobalScope` から `ServiceWorkerRegistration` に移動しました (Firefox バグ 1131350)。
* `ServiceWorkerRegistration` をウェブワーカーで使用できます (Firefox バグ 1131327)。
* `DataStore` をウェブワーカーで使用できます (Firefox バグ 916196)。

#### IndexedDB

* `IDBTransaction` は、デフォルトで永続的ではなくなりました (Firefox バグ 1112702)。これは信頼性よりパフォーマンスを重視するものであり、また他のブラウザの動作に合致します。詳しくは durability の定義をご覧ください。

#### 開発者ツール

* `console.timeStamp` プロパティを追加しました (Firefox バグ 922221)。
### MathML

*変更なし。*

### SVG

*変更なし。*

### Audio/Video

*変更なし。*

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

*変更なし。*

セキュリティ
------

* CSP でアスタリスク (`*`) を使用した場合に、`data:`、`blob:`、`:filesystem` の各スキーマは提供元のマッチング対象に含まれなくなりました。これらのスキーマを CSP でマッチさせるには、関連するヘッダで明示的に定義しなければなりません (Firefox バグ 1086999)。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

### XUL

* 透過したトップレベル window を生成することができなくなりました (Firefox バグ 1162649)。
### JavaScript コードモジュール

* Dict.jsm を削除しました (Firefox バグ 1123309)。代わりに `Map` を使用してください。
### XPCOM

* `nsClassInfo::GetImplementationLanguage()` 関数とともに `nsIClassInfo.implementationLanguage` 属性を削除しました。
* 以下の XPCOM インターフェイスを削除しました。代わりに標準 HTML インターフェイスを使用してください。
    + `nsIDOMHTMLBRElement`
    + `nsIDOMDivElement`
    + `nsIDOMHTMLHeadingElement`
    + `nsIDOMHTMLTableCaptionElement`
    + `nsIDOMHTMLTableElement`
    + `nsIDOMHTMLTitleElement`
### その他

* Keywords API は非推奨になりました。まもなく削除します (Firefox バグ 1140395)。
* 自動テストシステムで、個体テスト関数のスキップをサポートしました。Conditionally running a test の XPCShell testing をご覧ください。
過去のバージョン
--------

* 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
* Firefox 13 for developers
* Firefox 12 for developers
* Firefox 11 for developers
* Firefox 10 for developers
* Firefox 9 for developers