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
- dashed および dotted スタイルのボーダーに border-radius を設定したとき、角の部分を solid スタイルではなく指定したスタイルで描画するようになりました (Firefox バグ 382721)。
- 非標準の
:-moz-full-screen-ancestor
擬似クラスセレクターを削除しました (Firefox バグ 1199529)。 - 仕様書から削除されたため、および実装していた主要ブラウザーが Firefox だけであったため、
box-sizing
: padding-box
を削除しました (Firefox バグ 1166728)。 unicode-bidi
プロパティの値isolate
、isolate-override
、plaintext
の接頭辞を削除しました (Firefox バグ 1141895)。- Quirk モードでリストのビュレットが、標準準拠モードと同様にリストのサイズを継承するようになりました (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-src
CSP 1.1 ポリシーディレクティブに従うようになりました (Firefox バグ 1100181)。sandbox
CSP ディレクティブをサポートしました (Firefox バグ 671389)。- workers に content security policy を設定する ことが可能になりました (Firefox バグ 959388)。
- Content Security Policy の制限によりビーコンデータを送信できなかったとき、
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 Drag and Drop 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_lod
WebGL 拡張を実装しました (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
インターフェイスを実装しました。 setInterval()
および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()
メソッドは何も行いません。 -
以下のインターフェイスを実装しました:
FileSystem
FileSystemEntry
(プロパティのみ。メソッドは未実装)FileSystemFileEntry
(createWriter()
を除く)FileSystemDirectoryEntry
(removeRecursively()
を除く)FileSystemDirectoryReader
-
<input>
要素のwebkitdirectory
属性およびHTMLInputElement.webkitdirectory
を実装しました。ファイルではなくディレクトリーを受け入れるように、file 型の input を設定できます (Firefox バグ 1258489)。 -
HTMLInputElement.webkitEntries
を実装しました。これは、選択されたアイテムを表すFileSystemEntry
ベースのオブジェクトの配列を返します。 -
File.webkitRelativePath
を実装しました。これは、HTMLInputElement.webkitGetEntries()
が返すリスト内のアイテムのひとつであるFileSystemDirectoryEntry
に含まれているルートに対して相対的な、ファイルのパスを持ちます。 -
この API で何をサポートしているかについて、詳しくは Firefox におけるファイルとディレクトリー項目 API をご覧ください。
-
これらの API はデフォルトで有効です。一部の API は以前から使用できましたが、設定で無効化されていました (Firefox バグ 1288683)。
-
-
ファイルとディレクトリー項目 API の一部として、
DataTransferItem.webkitGetAsEntry()
を実装しました。これは、ドロップされたファイルを表すFileSystemEntry
を取得できます (Firefox バグ 1289255)。これはデフォルトで有効です。 -
ディレクトリーアップロード API 提案の一部である
HTMLInputElement.directory
プロパティをallowdirs
に改名しました (Firefox バグ 1288681)。このプロパティは設定で無効化しています。
過去のバージョン
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- 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