Firefox 41 for developers
=========================

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

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

### 開発者ツール

ハイライト:

* DOM ノードのスクリーンショットを撮影する
* HAR としてコピー/HAR として保存
* ルールビューの "Add Rule" ボタン
* タブでソースを表示 (デフォルトは無効)
* CSS ルールのコピー方法を追加
* ルールビューで画像を data: URI としてコピー
* CSP の情報を表示するコマンドを GCLI に追加

Firefox 40 から Firefox 41 の間に解決した開発ツール関連のバグ一覧: これらのバグの多く (特にパフォーマンスツールに関するバグ) の修正は Firefox 40 に前倒しされました。

### CSS

* 縦書き文章のレイアウト機能を、デフォルトで有効にしました (Firefox バグ 1138384)。以下の CSS プロパティが使用可能になりました:
    + 書字方向を選択する: `writing-mode`
    + 文字の向きを制御する: `text-orientation`.
    + 方向に依存しない `width` および `height`: `block-size` および `inline-size`
    + 方向に依存しない `min-width` および `min-height`: `min-block-size` および `min-inline-size`
    + 方向に依存しない `max-width` および `max-height`: `max-block-size` および `max-block-size`
    + 方向に依存しない `margin-top`、`margin-right`、`margin-bottom`、`margin-left`: `margin-block-start`、`margin-block-end`、`margin-inline-start`、`margin-inline-end`
    + 方向に依存しない `padding-top`、`padding-right`、`padding-bottom`、`padding-left`: `padding-block-start`、`padding-block-end`、`padding-inline-start`、`padding-inline-end`
    + 方向に依存しない `border-top`、`border-right`、`border-bottom`、`border-left` および幅、スタイル、色を個別に指定するプロパティ: `border-block-start`、`border-block-start-width`、`border-block-start-style`、`border-block-start-color`、`border-block-end`、`border-block-end-width`、`border-block-end-style`、`border-block-end-color`、`border-inline-start`、`border-inline-start-width`、`border-inline-start-style`、`border-inline-start-color`、`border-inline-end`、`border-inline-end-width`、`border-inline-end-style`、`border-inline-end-color`
    + 方向に依存しない `top`、`right`、`bottom`、`left`: `offset-block-start`、`offset-block-end`、`offset-inline-start`、`offset-inline-end`
* SVG で `transform-origin` プロパティをサポートしました。また、`transform-box` プロパティを実装しました (Firefox バグ 923193)。
### HTML

* `href` 属性を持たない `<a>` は、インタラクティブコンテンツとして分類しないようになりました。`<label>` 要素内でクリックすると、ラベル付けされたコンテンツがアクティブになります (Firefox バグ 1167816)。
* サイトアイコン (favicon およびショートカットアイコン) で、SVG アイコンをサポートしました (Firefox バグ 366324)。
* <link rel='preconnect'> で、`crossorigin` 属性をサポートしました (Firefox バグ 1174152)。
* picture 要素がリサイズやビューポートの変化に反応しない問題を修正しました (Firefox バグ 1135812)。
### JavaScript

* `Date.prototype` は `Date` のインスタンスではなく、通常のオブジェクトになりました (Firefox バグ 861219)。
* `Date.prototype.toString` は、ジェネリックなメソッドになりました (Firefox バグ 861219).
* `Symbol.species` を追加しました (Firefox バグ 1131043)。
* `Map[@@species]` および `Set[@@species]` ゲッタを追加しました (Firefox バグ 1131043)。
* 非標準の let 式を廃止しました (Firefox バグ 1023609)。
* 既定値の代入を含む、分割されたパラメータをサポートしました (Firefox バグ 1018628)。
* ES6 に従い、メソッドの定義で波括弧が必要になりました。波括弧を欠いた構文はエラーになります (Firefox バグ 1150855)。
* コンストラクタ形式のメソッド定義 (ジェネレータメソッドを除く) は不可になりました (Firefox バグ 1059908 および Firefox バグ 1166950)。
* ES6 使用への準拠の一環として `([a, b]) = [1, 2]` や `({a, b}) = { a: 1, b: 2 }` といった、括弧でくくるパターンの destructuring 構文は無効と判断され、`SyntaxError` が発生するようになりました。詳しくは Jeff Walden のブログ記事 をご覧ください。
* `new.target` 構文をサポートしました (Firefox バグ 1141865)。
### インターフェイス/API/DOM

#### HTML Editing API

* 切り取り、コピー、貼り付けのコマンド制御を改良して、JS プログラムから Web コンテンツのコピーや切り取りが可能になりました:
    + `Document.queryCommandSupported()` に引数として `'paste'` コマンドを与えると、実際に操作を行うための十分な権限がない場合に `false` を返します (Firefox バグ 1161721)。
    + `Document.queryCommandSupported()` に引数として `'cut'` または `'copy'` を与えると、ユーザが起動したコードや権限を持つコードのコンテキスト内で呼び出された場合に `true` を返すようになりました (Firefox バグ 1162952)。
    + 引数として `'cut'` または `'copy'` を与えた `Document.execCommand()` は動作しますが、ユーザが起動したコードや権限を持つコードのコンテキスト内で呼び出された場合に限ります (Firefox バグ 1012662)。
    + `Document.execCommand()` でコマンドが未サポートまたは無効である場合に、例外が発生しないようになりました (Firefox バグ 1027560)。

#### イベント

* 非標準の `CloseEvent.initCloseEvent()` メソッド、および `Event.createEvent('CloseEvent')` メソッドを使用して `CloseEvent` を生成する機能を削除しました。代わりに、標準のコンストラクタである `CloseEvent()` を使用してください (Firefox バグ 1161950)。
* デスクトップ版の Nightly で、`PointerEvent` がデフォルトで有効になりました。Developer Edition、Beta、Release では無効であり、少なくともいくつかのバージョンの間は有効化しない予定です。(Firefox バグ 1166347)
* 接頭辞なしの `MouseEvent.movementX` および `MouseEvent.movementY` を追加しました。接頭辞つきのプロパティは非推奨になり、将来のある時点で削除する予定です (Firefox バグ 1164981)。

#### Web Crypto

* `SubtleCrypto.importKey()` および `SubtleCrypto.exportKey()` で `ECDH` 鍵をサポートしました (Firefox バグ 1050175)。

#### Canvas API

* `HTMLCanvasElement.captureStream()` および `CanvasCaptureMediaStream` (en-US) を追加して、`<canvas>` の表示内容をリアルタイムに流すことが可能になりました (Firefox バグ 1032848)。
* `MediaStream.id` が、ストリームのユニークな ID を返すようになりました (Firefox バグ 1089798)。
* `CanvasRenderingContext2D.filter` (en-US) の初期値が、正しく `none` が設定されるようになりました (Firefox バグ 1163124)。

#### Service Worker

* Service Worker の実験的な実装を改良しました:
    + `ServiceWorkerGlobalScope.skipWaiting()` を実装しました (Firefox バグ 1131352)。
    + `Clients.claim()` を追加しました (Firefox バグ 1130684)。
    + Service Worker で機能する上記以外のイベントは `ExtendableEvent` から継承しており、`waitUntil()` メソッドにアクセスできます (Firefox バグ 1160527)。
* `CacheStorage` および `Cache` インターフェイスをサポートしました (Firefox バグ 1110144)。

#### WebGL

* WebGL コンテキスト属性 `failIfMajorPerformanceCaveat` を追加しました。また、システムのパフォーマンスが低い場合にコンテキスト生成を失敗させることを示すために、`HTMLCanvasElement.getContext()` で WebGL コンテキストを生成する際にこの属性を設定できるようになりました (Firefox バグ 1164970)。

#### その他

* OS X および Windows で、`Navigator.onLine` はネットワーク接続の状態に応じて変化するようになりました (以前は "オフライン作業" モードを選択しなければ常に `true` を返していました) (Firefox バグ 654579)。
* `MessagePort` および `MessageChannel` が Web workers で使用可能になりました。また、デフォルトですべての状況で有効になりました (Firefox バグ 952139 および Firefox バグ 911972)。
* User Timing API が Web workers で使用可能になりました (Firefox バグ 1155761)。
* Notifications API が Web workers で使用可能になりました (Firefox バグ 916893)。
* `DOMRequest` および `DOMCursor` が Web workers で使用可能になりました (Firefox バグ 1167650)。
* CSS Font Loading API (en-US) を全面的に実装して、デフォルトで有効にしました (Firefox バグ 1149381)。
* Shared workers が、プライベートドキュメント (すなわち、プライベートウィンドウで開いているドキュメント) と非プライベートドキュメントとの間で共有されないようになりました (Firefox バグ 1177621)。
* `URLUtilsSearchParams.searchParams` プロパティが読み取り専用になりました (Firefox バグ 1174731)。
* `URLUtils.hash` プロパティが、URL フラグメントをデコードしないようになりました (Firefox バグ 1093611)。
### MathML

#### 新たな既定フォントとフォールバックフォントの制御

数式では特別なフォントが必要です。これまで、そのフォントは `mathml.css` ユーザエージェントスタイルシート (`<math>` タグに font-family を設定) および設定項目 `font.mathfont-family` (伸縮する大型演算子で使用するフォールバックフォントを設定) でハードコードされていました。Firefox 41 より `<math>` タグへ自動的に設定される `x-math` 内部言語と、それに対応する設定項目 (例えば `font.name.serif.x-math`) を導入しました。ユーザエージェントスタイルシートでは `<math>` タグの font-family を serif に設定して、設定項目 `font.mathfont-family` を `font.name.serif.x-math` で置き換えました。また、すべてのプラットフォームで、フォールバックフォントは基本的に "Latin Modern Math" が先頭にある同一のリストを使用するようになりました。既定フォント/フォールバックフォントは、標準の言語別フォント設定メニューで設定できます。詳しくは Firefox バグ 947654 および Firefox バグ 1160456 をご覧ください。

### SVG

* サイトアイコン (favicon、ショートカットアイコン) で SVG をサポートしました (Firefox バグ 366324)。
### Audio/Video

* 設定項目 `media.autoplay.enabled` が、信頼されていない `HTMLMediaElement.play()` の起動 (ユーザ以外が作動したスクリプトから呼び出される場合) に対しても適用されるようになりました (Firefox バグ 659285)。
ネットワーク
------

* `X-Content-Duration` ヘッダのサポートを廃止しました (Firefox バグ 1160695)。
* HTTP/2 プロトコルの草案版のサポートを廃止しました (Firefox バグ 1132357)。
セキュリティ
------

* CSP 1.1 の `manifest-src` ディレクティブをサポートしました (Firefox バグ 1089255)。
アドオン開発者と Mozilla 開発者向けの変更点
--------------------------

### XUL

*変更なし。*

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

*変更なし。*

### XPCOM

*変更なし。*

### インターフェイス

*変更なし。*

### その他

* window のルートウィジェットを `<canvas>` に描画するための、新たな chrome コンテキスト限定の内部 API である `CanvasRenderingContext2D.drawWidgetAsOnScreen()` を追加しました。この API は、オンスクリーンのウィジェットを取得するために OS を使用します。詳しくは Firefox バグ 1167477 をご覧ください。
関連情報
----

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

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