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