Firefox 49 は、米国時間 2016 年 9 月 20 日にリリースされました。このページでは、開発者に影響する Firefox 49 の変更点をまとめています。
ウェブ開発者向けの変更点一覧
開発者ツール
- コンソールに記録された JavaScript のエラーで、デバッグのためのヒントを [Learn more] リンクで提供します (バグ 1179876)。
- CSS オートコンプリート: オートコンプリートのポップアップで、より多くの候補を表示します (バグ 1260419)。
- アニメーションインスペクターで、アニメーションのパフォーマンス情報を提供する ようになりました (バグ 1254408)。
- インスペクターのコンテキストメニュー を、よりきれいで使いやすくなるように再編しました (バグ 1211613)。
- インスペクターで、
#RRGGBBAAおよび#RGBA構文の色の値をサポートしました (バグ 1271191)。 - HTML のページでは開発ツールで、self-closing タグ (
<br>や<img>など) が終了タグを持つかのように表示しないようになりました。XHTML ページではこの動作を変更していません (バグ 820926)。 - アクセシビリティが向上しました。
- ツールボックスで、キーボードフォーカスが見やすくなるように対処しました (バグ 1242851)。
- アクセシビリティのラベルがついていないコントロールに、ラベルを追加しました (バグ 1242715)。
- インスペクターのマークアップビューに、適切なツリービューの意味とキーボードナビゲーションを追加しました (バグ 1242694)。
- ネットワークモニター に Cause 列を追加しました。個々のネットワークリクエストを発生させたのは何かを示します (バグ 1134073)。
- about:debugging のアドオンページで、再読み込みボタンは一時的なアドオンに限り使用できるようになりました。他のアドオンでは無効になります (バグ 1273184)。
- about:debugging の Workers ページで、現在のブラウザーの設定に対して 互換性がない service worker について、警告メッセージを Service Workers セクションに表示するようになりました (バグ 1266415)。
- about:debugging で、新たに Tabs ページ が使用可能になりました。現在の Firefox のインスタンスで開いている、デバッグ可能なタブを一覧表示します (バグ 1266128)。
- ツールボックスの詳細設定 のキャッシュを無効化を、Disable HTTP Cache に改名しました。HTTP キャッシュに影響があり、Service Workers や Cache API には影響がないことを明確にするためです (bug(1253018))。
- ストレージインスペクターのコンテキストメニューで IndexedDB データベースを削除できるようになりました (バグ 1205123)。また、何らかの理由で IndexedDB が削除できない (例えばアクティブな接続が存在する) 場合に警告メッセージを表示します (バグ 1268460)。
HTML
<details>要素および<summary>要素をサポートしました (バグ 1226455)。<input>要素のpattern属性は、背後の JavaScriptRegExpで'u'パラメーターを使用するようになりました (バグ 1227906)。- 仕様書の変更に合わせて、
<track>要素のkind属性で無効な値は、'subtitles'ではなく'metadata'と同様に扱うようになりました (バグ 1269712)。 <iframe>要素のsandbox属性で値'allow-popups-to-escape-sandbox'および'allow-modals'をサポートしました (バグ 1190641)。- microdata 属性および Microdata API のサポートを廃止しました (バグ 909633)。
<a>要素のreferrerpolicy属性で値'no-referrer-when-downgrade' および'origin-when-cross-origin'をサポートしました (バグ 1178337)。<label>要素のformコンテンツ属性を削除しました。HTMLLabelElement.formはまだ存在していますが、コントロールが存在する (およびそのコントロールがフォームに関連付けられている) 場合に、ラベルのコントロールが関連付けられているフォームを返すようになりました (バグ 1268852)。
CSS
- 背景画像を描画する位置のオフセットを水平方向および垂直方向に分けて指定できる、
background-position-xプロパティおよびbackground-position-yプロパティをサポートしました。これらはbackground-positionを構成します (バグ 550426)。 background-repeatで、キーワードroundおよびspaceをサポートしました (バグ 548372)。background-clipで、キーワードtextをデフォルトで有効化しました (バグ 1264905)。- 4 桁および 8 桁の 16 進数による CSS 色 の値 (#RRGGBBAA や #RGBA) による、アルファチャンネルを含む色の指定をサポートしました (バグ 567283)。
:dir()疑似クラスの接頭辞を外しました (バグ 859301)。clip-pathの実験的な実装 (デフォルトで有効化していません) で、複数の<basic-shape>値の間で補間処理が可能になりました (バグ 1110460)。- 長さの単位
qをサポートしました (バグ 1274526)。 text-align-lastプロパティの接頭辞を削除しました (バグ 1039541)。overflow-wrapをサポートしました。word-wrapを置き換えるものですが、こちらも別名としてサポートを続けます (バグ 955857)。- CSS Grids の実験的な実装が進展しました:
grid-gap、grid-row-gap、grid-column-gapプロパティで<percentage>をサポートしました (バグ 1266268)。align、justify-self:baseline、last-baseline("baseline self-alignment" として知られる) でグリッドレイアウトをサポートしました (バグ 1221525)。- グリッドアイテムの Baseline Content Alignment を実装しました (バグ 1256429)。
- CSS Masks の実験的な実装が進展しました:
mask-originプロパティの初期値を、仕様書に合わせてpadding-boxからborder-boxに変更しました (バグ 1258286)。mask-repeatプロパティで値spaceおよびroundをサポートしました (バグ 1258626)。mask-position属性でアニメーションを行えない問題を修正しました (バグ 1273804)。
text-emphasisを制御する設定項目を削除しました。このプロパティを無効化することはできません (バグ 1229609)。
JavaScript
- ES2015 (ES6) の
ProxyのトラップであるgetPrototypeOf()およびsetPrototypeOf()を実装しました (バグ 888969)。 - ES2015 (ES6) の
RegExp.prototype[@@match]()、RegExp.prototype[@@replace]()、RegExp.prototype[@@search]()、RegExp.prototype[@@split]()メソッドおよびRegExp[@@species]getter を実装しました (バグ 887016)。 - 非推奨かつ非標準である、
String.prototype.match/search/replaceのflags引数を廃止しました (バグ 1108382)。 - Google Chrome ブラウザとの相互運用性を高めるため
Date.parse()で、2 桁で表す年の処理を変更しました (バグ 1265136)。
インターフェイス/API/DOM
DOM & HTML DOM
DOMTokenList.supports()メソッドを追加しました (バグ 1257849)。DOMTokenList.replace()メソッドを追加しました (バグ 1224186)。URLSearchParams()コンストラクタのパラメータで、先頭の'?'文字は無視するようになりました (バグ 1268361)。URL.origin、HTMLAnchorElement.origin、HTMLAreaElement.originでblob:スキームの URL を使用した場合の戻り値が、誤った値であるnullではなく、先頭のblob:を除いた URL のオリジンになりました (バグ 1270451)。- プリレンダリングモードで、
Document.visibilityStateプロパティが'prerender'を返すようになりました (バグ 1069772)。 Window.isSecureContextプロパティを実装しました (バグ 1162772)。- DOM4 の
ChildNode.before()、ChildNode.after()、ChildNode.replaceWith()、ParentNode.append()、ParentNode.prepend()メソッドを実装しました (バグ 911477)。 TouchList.identifiedTouch()メソッドを削除しました (バグ 1188539)。Window.open()を呼び出した際に、Windowのscrollbars特性をデフォルトで有効にしました。従来から、これは有効化することが強く推奨されていましたが、デフォルトでは有効化していませんでした (バグ 1257887)。- 動画コンテンツの frame-by-frame シークを可能にする、実験的かつ非標準の
HTMLMediaElement.seekToNextFrame()メソッドを追加しました (バグ 1235301。これがどれだけ役に立つかを私たちが理解するのを助けるために試用することをお勧めしますが、製品版のコードでは使用しないでください! HTMLLabelElement.formプロパティが、コントロールが存在する (およびそのコントロールがフォームに関連付けられている) 場合に、ラベルのコントロールが関連付けられているフォームを返すようになりました。以前は、このプロパティを使用して label を直接フォームに関連付けていました (バグ 1268852)。EventTarget.addEventListener()の第 3 引数でサポートする値に、BooleanおよびEventListenerOptionsを追加しました (バグ 1266164 および バグ 1266066)。KeyboardEvent.keyで、音量に関する値を改名しました。"VolumeDown"は"AudioVolumeDown"に、"VolumeUp"は"AudioVolumeUp"に、"VolumeMute"は"AudioVolumeMute"に変わりました。この変更により、Firefox が UI Events 仕様の最新ドラフトに準拠しました (バグ 1272578)。使用可能なすべてのキーコードについては、"Code values" in KeyboardEvent.code をご覧ください。- 以前は
"MozHomeScreen"、"MozCameraFocusAdjust"、"MozPhoneCall"として参照されていたキーに、UI Events 仕様で公式な名称がつきました。"GoHome"、"CameraFocus"、"Call"になります。Firefox 49 で、新しい名称を使用するように更新しました (バグ 1272599)。使用可能なすべてのキーコードについては、"Code values" in KeyboardEvent.code をご覧ください。 - キーの値
"Separator"および"MediaSkip"は、非推奨になったうえに使用されていませんので、削除しました (バグ 1232919)。 - キーの値
"Hyper"および"Super"とそれらに対応するキーコードを、過去のモディファイアキーを表すように追加しました (バグ 1232919)。 - マルチメディア数値キーパッド用に、2 つのキーの値を追加しました:
"Key11"、"Key12"(バグ 1232919)。 - オーディオコントロールキー用に、以下の新たなキーの値を追加しました:
"AudioBassBoostToggle"、"AudioTrebleDown"、"AudioTrebleUp"(バグ 123919)。 - マイクコントロールキー用に、以下のキーの値を追加しました:
"MicrophoneToggle"、"MicrophoneVolumeDown"、"MicrophoneVolumeUp"、"MicrophoneVolumeMute"(バグ 123919)。 - 音声認識デバイス用に、以下の新たなキーの値を追加しました: "
SpeechCorrectionList"、"SpeechInputToggle"(バグ 1232919)。 - 電話機の特殊キーをサポートするため、以下のキーの値を追加しました:
"AppSwitch"、"Call"、"CameraFocus"、"EndCall"、"GoBack"、"GoHome"、"HeadsetHook"、"LastNumberRedial"、"Notification"、"MannerMode"、"VoiceDial"(バグ 1232919)。 - アプリケーションキー用に、以下のキーの値を追加しました:
"LaunchContacts"、"LaunchPhone"(バグ 1232919)。 - テレビデバイス用に、以下の新たなキーの値を追加しました:
"TV3DMode"、"TVAntennaCable"、"TVAudioDescription"、"TVAudioDescriptionMixDown"、"TVAudioDescriptionMixUp"、"TVContentsMenu"、"TVDataService"、"TVInput"、"TVInputComponent1"、"TVInputComponent2"、"TVInputComposite1"、"TVInputComposite2"、"TVInputHDMI1"、"TVInputHDMI2"、"TVInputHDMI3"、"TVInputHDMI4"、"TVInputVGA1"、"TVMediaContext"、"TVNetwork"、"TVNumberEntry"、"TVRadioService"、"TVSatellite"、"TVSatelliteBS"、"TVSatelliteCS"、"TVSatelliteToggle"、"TVTerrestrialAnalog"、"TVTerrestrialDigital"、"TVTimer"、"DVR"(バグ 1232919)。 - キーの値
"MediaSelect"を、標準のキーの値である"LaunchMediaPlayer"に置き換えました (バグ 1272592)。 - メディアプレイヤーの付加機能キーの値を追加しました。
"MediaAudioTrack"、"MediaSkipBackward"、"MediaSkipForward"、"MediaStepBackward"、"MediaStepForward"、"MediaTopMenu"、"NavigateIn"、"NavigateNext"、"NavigateOut"、"NavigatePrevious"です (バグ 1232919)。
Canvas
- Canvas にフィルターを追加する機能を提供する
CanvasRenderingContext2D.filterプロパティがデフォルトで有効になり、設定の切り替えが不要になりました (バグ 1173545)。
WebGL
- WebGL 2 の
EXT_color_buffer_float拡張を実装しました (バグ 1129332)。 - WebGL コンテキストの作成が失敗したときに発生する、
webglcontextcreationerrorイベントを実装しました (バグ 1271478)。デバッグや製品版のエラー制御において、何が誤っているかの理解を助けるために使用してください。
IndexedDB
- IndexedDB のインデックスがリネーム可能になりました。
IDBIndex.nameプロパティが読み書き可能になっています (バグ 1118028)。 IDBObjectStoreもリネーム可能になりました。IDBObjectStore.nameプロパティが読み書き可能になっています (バグ 1118028)。
Service Worker 関連
- Fetch API の
Responseオブジェクトに、リダイレクトされたリクエストのレスポンスであるかを示すredirectedプロパティを実装しました。このプロパティを使用する前に、ドキュメントでセキュリティ関連の注意事項を確認してください (バグ 1243792)。 - Permissions API で、Firefox は
PermissionDescriptorディクショナリータイプの 'push' のサポートを廃止しました (仕様書ではPushPermissionDescriptorとして言及されています)。Firefox はuserVisibleOnlyステータスの制御で代わりにクォータシステムに依存しており、PushPermissionDescriptorインスタンスに出くわしたときにエラーが発生していたためです (バグ 1266821)。このディクショナリの削除により、Firefox は単に無視するようになりました。
Media Stream
- 以前はユーザーが 2 種類のハードウェアのうち一方しか使用できない状況で、音声および映像を要求する
MediaDevices.getUserMedia()の呼び出しが成功していました。この問題を修正しました (バグ 802326)。 - 以前のバージョンの Firefox では、合致するデバイスのうち (両方ではなく) 一方のアクセスが拒否されたにもかかわらず、音声および映像を要求する
MediaDevices.getUserMedia()の呼び出しが成功していました。この問題を修正しました (バグ 802326)。これはユーザーインターフェイスを若干変更させており、ユーザーが許可を求められる際の選択肢で "No audio" や "No video" を削除しました。 MediaStream.getTrackById()メソッドを実装しました (バグ 1208390)。
WebRTC
- 指定したストリームを構成していないトラックをコネクションへ追加できるように、
RTCPeerConnection.addTrack()メソッドを更新しました。代わりに、コネクションの受信側でトラックをまとめるためにストリームが使用されます (バグ 1271669)。
新規 API
PerformanceObserverAPI を、Nightly でデフォルトで有効にしました (バグ 1271487)。他のバージョンの Firefox 49 では、デフォルトで無効化しています (バグ 1271487)。
その他
XMLHttpRequest.getResponseHeader()およびXMLHttpRequest.getAllResponseHeaders()で、設定項目network.http.keep_empty_response_headers_as_empty_stringがtrueに設定されている場合は、空のヘッダーを返すようになりました (バグ 669259)。- Firefox OS 限定の Data Store API を削除しました (バグ 1261009)。
- Fullscreen API の
Document.onfullscreenchange、Document.onfullscreenerrorイベントハンドラーを、Elementから削除しました。そこでは発生していなかったためです。ただし、接頭辞付きのイベントハンドラーは互換性のために維持しています (バグ 1270386)。これは設定項目full-screen-api.unprefix.enabledで制御されており、デフォルトで有効化していないことに注意してください (バグ 1268749)。 - 廃止済みの
Document.mozFullScreenプロパティの接頭辞を削除して、Document.fullscreenとしました (バグ 1269157}。これは設定項目full-screen-api.unprefix.enabledで制御されており、デフォルトで有効化していないことに注意してください (バグ 1268749)。 - 読み取り専用の
Document.fullscreenElementおよびDocument.fullscreenEnabledプロパティで、値を変更しようとしても例外が発生しないようになりました。代わりに新しい値は暗黙的に無視され、setter 関数は何も行いません (バグ 1269798)。 DataTransfer.getData()で、どのような種類のデータでもクリップボードから取り出せるようになりました。以前は、特定の MIME タイプのデータのみ取り出し可能でした (バグ 860857)。PerformanceCompositeTimingおよびPerformanceRenderTimingの 2 つのインターフェイスで構成される、Frame Timing API の実装を削除しました。仕様書が全面的に書き直されたためです (バグ 1271846)。- 仕様書に合わせて、
VTTCue.positionAlignプロパティがAlign列挙型ではなくPositionAlign列挙型を返すようになりました (バグ 1276129)。 - Web Speech API の、音声合成の部分をサポートしました (バグ 1268633)。
- Performance Timeline API を、Nightly でデフォルトで有効化しました (Aurora、Beta、Release では無効です)。
installイベントおよびWindow.oninstallイベントハンドラーを Web Manifests 向けにサポートしました (バグ 1265279)。- Web Audio API の
AudioContext.createPeriodicWave()メソッドを使用するとき、結果の周期的な波形をノーマライズすべきかを、第 3 引数にディクショナリーオブジェクトを含めることで指定可能になりました。このオブジェクトにはひとつのパラメータを含めて{disableNormalization: true}のようにします (バグ 1265405)。 - WebVTT API で
VTTCue.positionAlignが、仕様書どおりに正しくPositionAlignSetting列挙型を返すようになりました。以前はAlignSetting列挙型を返していました (バグ 1276129)。 - Web Speech API の音声合成の部分を、すべてのデスクトップブラウザーでデフォルトで有効にしました (バグ 1268633)。
- Web Animations API の
Animation()コンストラクターが、null タイムラインを受け入れるようになりました (バグ 1096776)。
MathML
変更なし。
SVG
- 非推奨の
<altGlyph>、<altGlyphDef>、<altGlyphItem>要素のサポートを廃止しました (バグ 1260032)。
Audio/Video
変更なし。
HTTP
Cache-Control: immutableディレクティブを実装しました (バグ 1267474)。詳しくは ブログ記事 もご覧ください。
ネットワーク
- Proxy Auto-Configuration (PAC) の実装を更新しました。
weekdayRange、dateRange、timeRangeで "リバースレンジ" をサポートしました。例えばweekdayRange("SAT", "MON")は、当日が土曜日、日曜日、月曜日である場合にtrueになります (バグ 1251332)。
セキュリティ
- secure contexts を必要とする機能を使用できるコンテキストであるかを示す、
Window.isSecureContextプロパティを実装しました (バグ 1162772)。
互換性
既存のコンテンツとの互換性を高めるために、一部の webkit 接頭辞つきプロパティおよび属性を Firefox で受け入れるようになりました。
- 以下のプロパティは、-webkit 接頭辞がついていても動作します:
-webkit-align-items-webkit-align-content-webkit-align-self-webkit-animation-webkit-animation-delay-webkit-animation-direction-webkit-animation-duration-webkit-animation-fill-mode-webkit-animation-iteration-count-webkit-animation-name-webkit-animation-play-state-webkit-animation-timing-function-webkit-backface-visibility-webkit-background-clip-webkit-background-origin-webkit-background-size-webkit-border-bottom-left-radius-webkit-border-bottom-right-radius-webkit-border-image-webkit-border-top-left-radius-webkit-border-top-right-radius-webkit-border-radius-webkit-box-shadow-webkit-filter-webkit-flex-webkit-flex-basis-webkit-flex-direction-webkit-flex-flow-webkit-flex-grow-webkit-flex-shrink-webkit-flex-wrap-webkit-justify-content-webkit-order-webkit-perspective-webkit-perspective-origin-webkit-text-size-adjust-webkit-transform-webkit-transform-origin-webkit-transform-style-webkit-transition-webkit-transition-delay-webkit-transition-duration-webkit-transition-property-webkit-transition-timing-function-webkit-user-select
- 以下のプロパティは、同等の接頭辞つきプロパティに紐づけています:
<image>の値について:- 以下の関数は、接頭辞なしの同等物に紐づけています:
-webkit-linear-gradient()、-webkit-radial-gradient()、-webkit-repeating-linear-gradient()、-webkit-repeating-radial-gradient()。 - 旧式の
-webkit-gradientをサポートします (また、正規のグラデーションに変換します)。
- 以下の関数は、接頭辞なしの同等物に紐づけています:
- 以下の
displayの値を変換します:-webkit-boxを-moz-boxに変換-webkit-flexをflexに変換-webkit-inline-boxをinline-flexに変換-webkit-inline-flexを-moz-inline-flexに変換
- 以下のプロパティをサポートします (接頭辞なしの同等物に紐づけません):
WebKitCSSMatrixインターフェイスをDOMMatrixの別名にしました。- 以下のメディアクエリー特性を実装しました:
-webkit-min-device-pixel-ratioをmin-resolutionの別名として、同じ値 (dppx) で実装しました。ただし、この機能は デフォルトで無効 です (about:config の設定layout.css.prefixes.device-pixel-ratio-webkitで制御)。-webkit-max-device-pixel-ratioをmax-resolutionの別名として、同じ値 (dppx) で実装しました。この機能も about:config の同じ設定で、デフォルトで無効にしています。-webkit-transform-3dがマッチするようになりました。3D Transform をサポートすることを示します。
アドオン開発者と Mozilla 開発者向けの変更点
WebExtensions
historyをサポートしました。この機能でブラウザーの履歴にアクセスでき、履歴の検索、以前アクセスしたページの情報を取得、履歴項目の追加や削除を可能にするメソッドがあります。- tabs API に
tabs.removeCSS()メソッドを追加しました。このメソッドで、以前にtabs.insertCSS()を呼び出して挿入した CSS を削除できます。
インターフェイス
EventTarget.addEventListener()で、XBL または Firefox の chrome で実行するコードに限り有効化されている値mozSystemGroupをサポートしました。これは、リスナーがシステムグループに追加されるかを示すBooleanです (バグ 1274520)。
その他
変更なし。
関連情報
過去のバージョン
- 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