Firefox 42 for developers
Firefox の最新の開発者向け機能をテストするには、 Firefox Developer Edition をインストールしてください Firefox 42 は、米国時間 2015 年 11 月 3 日にリリースされました。この記事では、ウェブ開発者だけでなく、 Firefox や Gecko の開発者やアドオン開発者にとっても有益な主な変更点を紹介します。
ウェブ開発者向けの変更点一覧
開発者ツール
ハイライト:
- Wi-Fi 経由で Android 版 Firefox のデバッグを行う
- WebIDE で Firefox OS シミュレーターの設定を行う
- CSS filter のプリセット
CSS
- rtl 表記の文字で、
writing-modeの縦書きをサポートしました (Firefox バグ 1131451)。 caption-sideの値はテーブルに対して相対的になり、またwriting-modeの値に従って実際の意味が変わります (Firefox バグ 1202993)。-moz-margin-startなどの非標準プロパティが、対になる標準プロパティ (margin-inline-startなど) のエイリアスになりました。以前は逆になっていました。これはCSSStyleDeclaration.cssTextが返す値やスタイルルール内のプロパティに対するイテレーションに対して影響があり、どちらも標準的な形式を使用します (Firefox バグ 1118103)。- 接頭辞付きの CSS グラデーションは、設定項目
layout.css.prefixes.gradientsをfalseにすることで無効化できるようになりました。 floatとマージンの相殺の動作に関する古くからのバグを、いくつか修正しました (Firefox バグ 478834, Firefox バグ 538194, and Firefox バグ 451791)。
HTML
<img>(Firefox バグ 1166910)、<iframe>(Firefox バグ 1175736)、<a>および<area>(Firefox バグ 1174913) 要素のreferrer属性を実験的にサポートしました。network.http.enablePerElementReferrerの既定値がfalseであるため、デフォルトでは効力がありません。
JavaScript
Reflectオブジェクトを実装しました (Firefox バグ 987514)。Proxyhandler.ownKeys()トラップの実装を、ES2015 の確定仕様に準拠するよう更新しました (Firefox バグ 1049662)。newを伴わずにMap、Set、WeakMapを呼び出すとTypeErrorが発生するようになりました (Firefox バグ 1083752)。
インターフェイス/API/DOM
DOM & HTML DOM
idを伴う画像が、Windowインターフェイスのプロパティのリストに入らないようになりました。<img id="login">はwindow.loginとしてアクセスできません。この動作は Firefox 26 で導入しており、その後変更された仕様書に合致させるために削除しました (Firefox バグ 959992)。MouseEvent.offsetXおよびMouseEvent.offsetYを追加しました (Firefox バグ 69787)。HTMLInputElementインターフェイスを、ディレクトリのアップロードを扱うよう実験的に拡張しました (Firefox バグ 1164310)。以下 4 つのメンバーは、設定項目dom.input.dirpickerをtrueに設定すると使用できます。Directoryインターフェイスを実験的に拡張しました (Firefox バグ 1177688)。Directory.pathおよびDirectory.getContentsの 2 つのメンバーは、設定項目dom.input.dirpickerをtrueに設定すると使用できます。HTMLMediaElement.mozSrcObjectをHTMLMediaElement.srcObjectに改名しました (Firefox バグ 1175523)。
Service Worker
Request.contextを削除しました (Firefox バグ 1188062)。- デスクトップ版 Firefox でプッシュ API をデフォルトで有効にしました (Firefox バグ 1153499) が、Nightly/Dev Edition/Beta チャンネルのみで有効です。コンシューマーの UX およびデバッグ機能が適切に実装されるまで、Release チャンネルではデフォルトで無効化しています (Firefox バグ 1207875)。なお、
about:configの設定項目dom.push.enabledで有効化できます。 PushManager.hasPermission()(en-US) メソッドが仕様書で非推奨になり、PushManager.permissionState()メソッドに置き換えられました。Firefox でこれを反映するように、実装を更新しました (Firefox バグ 1183853)。- Notifications API で、Service Worker に関する追加実装を行いました (Firefox バグ 1114554)。ただし、Release 版では無効化しています。
ウェブアニメーション API
ウェブアニメーション API の実験的な実装で、サポート範囲が広がりました:
AnimationPlayer.playbackRate(en-US) プロパティ (Firefox バグ 1127380)。CSSAnimation(en-US) andCSSTransition(en-US) インターフェイス (Firefox バグ 1178186)。Animation.reverse()(en-US) メソッド (Firefox バグ 1150808)。AnimationPlaybackEvent(en-US) インターフェイスを実装して、Animationでcancel(en-US) およびfinish(en-US) イベントが発生するようになりました (Firefox バグ 1178664)。
Web Components
シャドウ DOM の実験的な実装を変更しました。
ShadowRootでNode.cloneNode()を実行しようとすると、DataCloneError例外が発生します (Firefox バグ 1176757)。ShadowRootを引数としてDocument.importNode()を実行すると、NotSupportedErrorのDOMExceptionが発生します (Firefox バグ 1177914)。ShadowRootを引数としてDocument.adoptNode()を実行すると、HierarchyRequestErrorのDOMExceptionが発生します (Firefox バグ 1177991)。
WebGL
- WebGL2 の
WebGLTransformFeedback(en-US) を実装しました (Firefox バグ 1048724)。 - WebGL2 のコンテキストを得るため、
HTMLCanvasElement.getContext()は以前のexperimental-webgl2に代わりwebgl2を使用するようになりました (Firefox バグ 1187174)。
WebRTC
RTCPeerConnection.createOffer()(en-US) のオプションデータ型であるRTCOfferOptionsが、より仕様に近くなるように更新されました。他の変更点としては、voiceActivityDetectionオプションを提供するRTCOfferAnswerOptions辞書をベースにしたことです。RTCAnswerOptions辞書が追加されました。これは、createAnswer()(en-US) のoptions引数に使用される型です。RTCICECandidatePairStats.mozPriorityをRTCICECandidatePairStats.priority(en-US) に改名しました (Firefox バグ 1184426)。
新規 API
ImageBitmapインターフェイスおよびcreateImageBitmap()メソッドを実装しました。これらは通常の window スクリプトおよびウェブワーカーで有効であり、window やワーカーのコンテキスト間で効率よく画像を渡すことができます (Firefox バグ 1044102)。
その他
IDBCursorWithValueインターフェイスがウェブワーカーで使用可能になりました (Firefox バグ 1188115)。- ウェブワーカーが発したエラーイベントがバブリングしないようになりました (Firefox バグ 1188141)。
- Media Source Extensions (MSE) がホワイトリストに記載されたサイトだけでなく、すべての Web サイトで有効になりました (Firefox バグ 1185611)。
- 非標準かつ非推奨である
Window.mozRequestAnimationFrame()を削除しました (Firefox バグ 909154)。代わりに、標準のWindow.requestAnimationFrame()を使用してください。 - 音声合成 (text-to-speech) を Windows 向けのデスクトップ版 Firefox に実装しました。ただし、
about:configのmedia.webspeech.synth.enabledフラグで無効化しています (Firefox バグ 1003457)。詳しくはウェブ音声 API をご覧ください。
MathML
変更なし。
SVG
変更なし。
Audio/Video
変更なし。
HTTP
- Firefox 41 まで、HTTP/2 レスポンスに含まれる未定義または無効な疑似ヘッダフィールドを、誤って受け入れていました。これが修正され、Firefox 42 より受け入れる疑似ヘッダフィールドは仕様書に従い :status のみになります。独自のフィールドを含むレスポンスヘッダは、異常なものであると判断します (Firefox バグ 1136727)。
ネットワーク
- CSP の
upgrade-insecure-requestsディレクティブを実装しました (Firefox バグ 1139297)。
セキュリティ
- 有効期間が 39 か月を超える EV 証明書は、DV 証明書として判断および取り扱われるようになりました (Firefox バグ 1145679)。
アドオン開発者と Mozilla 開発者向けの変更点
インターフェイス
nsIContentPolicy
- Gecko 内部やアドオンのコードがさまざまなタイプの要求をより区別できるようにするため、
TYPE_EMBED定数をnsIContentPolicyに追加しました。以前はこのような場合に、TYPE_OBJECTを使用していました (Firefox バグ 1148030)。 - 同様に、
TYPE_SUBDOCUMENT定数をTYPE_FRAMEおよびTYPE_IFRAMEに分割しました (Firefox バグ 1148044)。
XUL
変更なし。
JavaScript コードモジュール
変更なし。
XPCOM
変更なし。
その他
変更なし。
過去のバージョン
- 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
- Firefox 13 for developers
- Firefox 12 for developers
- Firefox 11 for developers