Firefox 50 for developers
Firefox の最新の開発者向け機能を試すには、Firefox Developer Edition をインストールしてください。 Firefox 50 は、米国時間 2016 年 11 月 15 日にリリースされました。このページでは、開発者に影響する Firefox 50 の変更点をまとめています。
ウェブ開発者向けの変更点一覧
>HTML
<bdo>の既定のスタイルで、unicode-bidiの値がisolate-overrideになりました (Firefox バグ 1249497)。<track>要素のsrc属性の設定が正しく動作するようになりました (Firefox バグ 1281418)。<area>、<a>、<img>、<iframe>、<link>要素のreferrerpolicy属性を、デフォルトで有効化しました (Firefox バグ 1223838、Firefox バグ 1264165)。
CSS
- border-radius のある角が dashed および dotted スタイルであった場合、角の部分を solid スタイルではなく指定したスタイルで描画するようになりました (Firefox バグ 382721)。
- 非標準の
:-moz-full-screen-ancestor擬似クラスセレクターを削除しました (Firefox バグ 1199529)。 box-sizing: padding-boxは削除されました。仕様書から削除されたため、および実装していた主要ブラウザーが Firefox だけであったためです (Firefox バグ 1166728)。unicode-bidiプロパティの値isolate、isolate-override、plaintextの接頭辞を削除しました (Firefox バグ 1141895)。- 後方互換モードでリストのビュレットが、標準準拠モードと同様にリストのサイズを継承するようになりました (Firefox バグ 648331)。
:in-rangeおよび:out-of-range擬似クラスが、無効状態または読み取り専用の input に一致しないように動作を変更しました (Firefox バグ 1264157)。:any-link擬似クラスの接頭辞を削除しました (Firefox バグ 843579)。border-image-repeatで、値spaceを実装しました (Firefox バグ 720531)。
JavaScript
- ES2015 の
Symbol.hasInstanceプロパティを実装しました (Firefox バグ 1054906)。 - ES2017 の
Object.getOwnPropertyDescriptors()メソッドを実装しました (Firefox バグ 1245024)。 - Unicode および ignoreCase フラグを使用する
RegExpの、\W の動作を最新の仕様草案に合わせて変更しました。K、S、k、s、KELVIN SIGN (U+212A)、LATIN SMALL LETTER LONG S (U+017F) に一致しないようになりました (Firefox バグ 1281739)。
開発者ツール
HTTP
- 実験的 (および非推奨) な SPDY 3.1 をデフォルトで無効にしました (Firefox バグ 1287132)。
X-Content-Type-Optionsをサポートしました (Firefox バグ 471020)。- cookie の
__Host-および__Secure-接頭辞を実装しました。Set-Cookieおよび Firefox バグ 1283368 をご覧ください。 Referrer-Policyヘッダーを実装しました (Firefox バグ 1264164)。
セキュリティ
<a>要素のping属性が、connect-srcCSP 1.1 ポリシーディレクティブに従うようになりました (Firefox バグ 1100181)。sandboxCSP ディレクティブをサポートしました (Firefox バグ 671389)。- ワーカーにコンテンツセキュリティポリシーを設定する ことが可能になりました (Firefox バグ 959388)。
- コンテンツセキュリティポリシー の制限によりビーコンデータを送信できなかったとき、
Navigator.sendBeacon()メソッドで例外が発生しないようになりました。代わりに、想定どおりfalseを返します (Firefox バグ 1234813)。 - RC4 暗号のサポートは Firefox 36 から非推奨にしており、Firefox 44 では既定で無効にしました。1 年間の猶予期間が終了しましたので、Firefox 50 で RC4 のサポートを全面的に廃止しました (Google Chrome は 2016 年 8 月に RC4 のサポートを廃止しました)。今後、Firefox は RC4 暗号に出くわすと常に
SSL_ERROR_NO_CYPHER_OVERLAPエラーが発生します。
ネットワーク
- 非同期
XMLHttpRequestでエラーが発生したとき、XMLHttpRequest.getAllResponseHeaders()メソッドが空文字列を返すようになりました (Firefox バグ 1286744)。 - CORS または他のネットワークの制約により失敗した非同期
XMLHttpRequestはNetworkErrorを返すのではなく、他のエラーと同様にキャッチ可能なerrorが発生するようになりました (Firefox バグ 709991)。 XMLHttpRequest.getResponseHeader()およびXMLHttpRequest.getAllResponseHeaders()が、デフォルトで空のヘッダーを返すようになりました。これは設定項目network.http.keep_empty_response_headers_as_empty_stringで制御しています (Firefox バグ 918721)。Request.cacheにonly-if-cachedオプションを追加しました (Firefox バグ 1272436)。
DOM
EventTarget.addEventListener()のonceオプションをサポートしました (Firefox バグ 1287706)。NodeListインターフェイスがイテレート可能になり、forEach()、values()、NodeList.entries()、NodeList.keys()の各メソッドが使用可能になりました (Firefox バグ 1290636)。DOMTokenListインターフェイスがイテレート可能になり、forEach()、values()、DOMTokenList.entries()、DOMTokenList.keys()の各メソッドが使用可能になりました (Firefox バグ 1290636)。Document.createElement()およびDocument.createElementNS()メソッドで、カスタム要素を作成するための省略可能な引数optionsを追加しました (Firefox バグ 1276579)。
SVG
allowReorder属性を廃止して、この属性に設定されていた動作を SVG<switch>要素の既定の動作にしました (Firefox バグ 1279690)。- 最新の SVG2 仕様に従って、SVG
<image>要素のpreserveAspectRatio属性のキーワードdeferを削除しました (Firefox バグ 1280425)。
ドラッグ & ドロップ API
- HTML ドラッグ & ドロップ API を使用してドラッグアンドドロップしている複数のアイテムにアクセスできる、
DataTransfer.itemsプロパティを実装しました。これを可能にするため、DataTransferItemおよびDataTransferItemListインターフェイスもサポートしました(Firefox バグ 906420)。これはデフォルトで有効です。 - 古く廃止済みである、Firefox 固有のドラッグ & ドロップ API イベント
dragdropおよびdraggestureのサポートを廃止しました。これらを使用し続けているコードは、 HTML ドラッグ & ドロップ API を使用するように更新してください(Firefox バグ 1162050)。
ポインターロック API
- ポインターロック API の接頭辞を削除しました (Firefox バグ 991899)。
- Firefox 50 より前のバージョンではドアハンガーを使用して
requestPointerLock()を許可するかを問い合わせており、ユーザーが許可するまでポインターロックを有効化しませんでした。Firefox 50 より、ポインターロックは 全画面 API と同様に即座に許可されますが、終了方法をユーザーに説明する通知を表示します (Firefox バグ 1273351)。
IndexedDB
closeイベントが、IDBDatabaseオブジェクトで対応するデータベースが意図せず閉じられたときに、送信されるようになりました (Firefox バグ 1151017)。
Service Workers
WindowClient.navigate()メソッドを実装しました。このメソッドで、Service Worker で制御されているクライアントウィンドウに、指定した URL を開くことができます (Firefox バグ 1218148)。
WebGL
EXT_shader_texture_lodWebGL 拡張を実装しました (Firefox バグ 1111689)。- PBO (
PIXEL_UNPACK_BUFFER) を実装するため、WebGL 2 向けに texImage 関係のメソッドを更新しました (Firefox バグ 1280499)。
WebRTC
MediaStreamにトラックを追加すると、仕様書で示されているようにaddtrackイベントが発生するようになりました。このイベントはMediaStreamTrackEventタイプであり、トラックが追加されたストリームで発生します。"addtrack"イベントを扱うために、MediaStream.addEventListener('addtrack', ...)またはonaddtrackプロパティを使用できます。MediaStreamTrackインターフェイスが、endedイベントおよびそのイベントハンドラーをサポートしました。- Firefox で
MediaStreamTrack.readyStateプロパティをサポートしました。これは、トラックが生存中であるか永久に終了した状態であるかを示します。 MediaStreamTrackのgetConstraints()およびgetSettings()メソッドを実装しました。それぞれ、カスタマイズしたプロパティ制約で直近に適用された値のセットを取得する、およびトラックで制限可能なすべてのプロパティの実際の値を取得するメソッドです。付随するデータ型もドキュメントに記載しています。RTCDataChannel.streamプロパティを削除しました。これは Firefox 24 でRTCDataChannel.idに置き換えられましたが、後方互換性のためにサポートしていました。まだidプロパティを使用するようにコードを更新していない場合は、必ず更新してください。
ウェブオーディオ API
PannerNodeインターフェイスで、オーディオソースの位置 (PannerNode.positionX、PannerNode.positionY、PannerNode.positionZ) や方向性 (PannerNode.orientationX、PannerNode.orientationY、PannerNode.orientationZ) に関する 3D 直交座標系のプロパティをサポートしました。- 一般的な 無限インパルス応答 (IIR) フィルターを生成する、
IIRFilterNodeインターフェイスを実装しました。 Window.setInterval()、WorkerGlobalScope.setInterval()、Window.setTimeout()、WorkerGlobalScope.setTimeout()で作成したタイマーをバッググラウンドのタブで抑制する機能は、ウェブオーディオ API のAudioContextがアクティブで音声を再生しているときに実施しないようになりました。これは、タイミングに敏感な音声再生 (タイマーを使用して個々の音を生成する音楽プレイヤーなど) をバックグラウンドで行う際の問題を避ける助けになります (Firefox バグ 1181073)。
Audio/Video
AlignSetting列挙型 (VTTCue.alignで使用可能な値を表す) が以前、誤って"center"ではなく"middle"を含んでいました。この問題を修正しました (Firefox バグ 1276130)。- 非標準かつ実験的な
HTMLMediaElement.seekToNextFrame()メソッドが、メディア内の次のフレームを同期的ではなく非同期的にシークするようになりました。また、シークが完了すると fulfill になるPromiseを返します。 HTMLTrackElementの実装を、ドキュメント内にない場合でも<track>要素がリソースを読み込めるように修正しました (Firefox バグ 871747)。
バッテリー API
- Firefox 43 から非推奨にしていた
Navigator.batteryプロパティを廃止および削除しました。代わりに、バッテリーのPromiseを取得するnavigator.getBattery()メソッドを使用してください。これはBatteryManagerが使用可能になったときに完了します。BatteryManagerは、promise が成功した場合のハンドラーに渡されます (Firefox バグ 12593355)。
ファイルとディレクトリー
-
以前は Google Chrome との互換性しか有していなかったサイトとの互換性を向上するため、ファイルとディレクトリー項目 API のサブセットを実装しました (Firefox バグ 1265767)。
-
非同期 API インターフェイスを実装しましたが、ファイルの読み取りしかサポートしませんので注意してください。例えば
FileSystemFileEntry.createWriter()メソッドは何も行いません。 -
以下のインターフェイスを実装しました:
FileSystemFileSystemEntry(プロパティのみ。メソッドは未実装)FileSystemFileEntry(createWriter()を除く)FileSystemDirectoryEntry(removeRecursively()を除く)FileSystemDirectoryReader
-
<input>要素のwebkitdirectory属性およびHTMLInputElement.webkitdirectoryを実装しました。ファイルではなくディレクトリーを受け入れるように、file 型の input を設定できます (Firefox バグ 1258489)。 -
HTMLInputElement.webkitEntriesを実装しました。これは、選択されたアイテムを表すFileSystemEntryベースのオブジェクトの配列を返します。 -
File.webkitRelativePathを実装しました。これは、HTMLInputElement.webkitEntriesが返すリスト内のアイテムのひとつであるFileSystemDirectoryEntryに含まれているルートに対して相対的な、ファイルのパスを持ちます。 -
これらの API はデフォルトで有効です。一部の API は以前から使用できましたが、設定で無効化されていました (Firefox バグ 1288683)。
-
-
ファイルとディレクトリー項目 API の一部として、
DataTransferItem.webkitGetAsEntry()を実装しました。これは、ドロップされたファイルを表すFileSystemEntryを取得できます (Firefox バグ 1289255)。これはデフォルトで有効です。 -
ディレクトリーアップロード API 提案の一部である
HTMLInputElement.directoryプロパティをallowdirsに改名しました (Firefox バグ 1288681)。このプロパティは設定で無効化しています。