Firefox 53 for developers
Firefox 53 は、米国時間 2017 年 4 月 19 日にリリースされました。この記事では、ウェブ開発者だけでなく、Firefox や Gecko の開発者、アドオン開発者にとっても有益な変更点を掲載しています。
ウェブ開発者向けの変更
開発者ツール
- 非同期パン/ズームによって、ハイライト表示でスクロールに待ち時間が発生する問題を解消しました (Firefox バグ 1312103)。
- 要素の すべての CSS パスをコピーする メニュー項目を追加しました (Firefox バグ 1323700)。
- 開発ツールで CSS Color Module Level 4 をサポートしました (Firefox バグ 1310681)。
- マークアップビュー: 折りたたんでいるノードの開始タグと終了タグの間に、視覚的なヒントを追加しました (Firefox バグ 1323193)。
CSS
新機能
- すべての
mask-*
個別指定プロパティ (CSS マスク をご覧ください) が、デフォルトで使用可能になりました (Firefox バグ 1251161)。 caret-color
プロパティを追加しました (Firefox バグ 1063162)。place-items
/place-self
/place-content
一括指定プロパティを実装しました (Firefox バグ 1319958)。display
プロパティに値flow-root
を追加しました (Firefox バグ 1322191)。-moz-tab-size
が<length>
値を受け入れるようになりました (Firefox バグ 943918)。また、アニメーションが可能になりました (Firefox バグ 1308110)。mask-mode
:luminance がグラデーションのマスクで動作しない問題を修正しました (Firefox バグ 1346265)。- [css-grid]
grid-template-rows
で、fr 単位を使用するとビューポートが埋まらない問題を修正しました (Firefox バグ 1346699)。 - flex アイテムが絶対位置指定の兄弟要素で隔てられているとき、"order" に従って並べ替えられない問題を修正しました (Firefox バグ 1345873)。
その他の変更点
- mask 関係の個別指定プロパティを SVG 要素に対して有効化しました (Firefox バグ 1319667)。
- [css-grid] グリッドアイテムが
<table>
であるときにalign-self
/justify-self:stretch
/normal
が動作しない問題を修正しました (Firefox バグ 1316051)。 - 大きなリファレンスボックスで半径をパーセンテージで示した
clip-path: circle()
が正しくレンダリングされない問題を修正しました (Firefox バグ 1324713)。 - ギリシャ文字に対して
text-transform
の値uppercase
を適用したとき、単独のエータについたアクセント (ή) が取り除かれないようになりました (Firefox バグ 1322989)。 display
の値contents
を使用できるかは、設定項目layout.css.display-contents.enabled
で制御していました。Firefox 53 でこの設定項目を削除しましたので常に有効になり、無効化できなくなりました (Firefox バグ 1295788)。
JavaScript
Function.name
プロパティの、ECMAScript 2015 のセマンティクスを実装しました。これは、無名関数で推測した名前 (var foo = function() {}
) を含みます (Firefox バグ 883377)。- closing iterators の、ECMAScript 2015 のセマンティクスを実装しました。これは、例えば
for...of
ループに影響があります (Firefox バグ 1147371)。 - タグ付けされたテンプレートリテラルでエスケープシーケンスの制限を取り去る、Template Literal Revision 提案 を実装しました (Firefox バグ 1317375)。
- 非標準の String ジェネリック について、コンソールで非推奨の警告を表示するようになりました。将来削除する予定ですので、今後は使用しないでください! (Firefox バグ 1319926)
TypedArray
オブジェクトの静的なプロパティlength
の値を、ES2016 に従って 3 から 0 に変更しました (Firefox バグ 1317306)。DataView
でSharedArrayBuffer
が使用可能になりました (Firefox バグ 1246597)。- 旧版の仕様書では、
SharedArrayBuffer
オブジェクトは構造化複製の間に、明示的に転送しなければなりませんでした。新しい仕様では移譲可能なオブジェクトではなくなり、転送リストに含まれてはなりません。新しい動作について以前はコンソールで警告を表示するだけでしたが、今後はエラーが発生します (Firefox バグ 1302037)。 ArrayBuffer
の長さを、Number.MAX_SAFE_INTEGER
に制限しました (>= 2 ** 53) (Firefox バグ 1255128)。Error
やほかのネイティブエラーオブジェクトのプロトタイプ (RangeError
など) が、固有の Error オブジェクトではなく通常のオブジェクトになりました (特に、Object.prototype.toString.call(Error.prototype)
は"[object Error]"
ではなく"[object Object]"
になります) (Firefox バグ 1213341)。
イベント
- CSS トランジション:
transitionstart
、transitionrun
、transitioncancel
イベントを実装しました (Firefox バグ 1264125、Firefox バグ 1287983)。 CompositionEvent
コンストラクターを実装しました (Firefox バグ 1002256)。MouseEvent.clientX
/MouseEvent.clientY
の別名であるMouseEvent.x
およびMouseEvent.y
を実装しました (Firefox バグ 424390)。auxclick
イベントと、これに対応するイベントハンドラーを実装しました (Firefox バグ 1304044)。transitioncancel
イベントが、トランジション をキャンセルした後に発生するようになりました。
DOM
- 以前は
HTMLHyperLinkElementUtils
のpathname
およびsearch
プロパティが、URL の誤った部分を返していました。例えばhttp://z.com/x?a=true&b=false
の URL について、pathname
は "/x
" ではなく "/x?a=true&b=false
"、search
は "?a=true&b=false
" ではなく "" を返していました。これらを修正しました (Firefox バグ 1310483)。 URLSearchParams()
コンストラクターが、init オブジェクトとして文字列や一連の文字列を受け入れるようになりました (Firefox バグ 1330678)。- Selection API の
Selection.setBaseAndExtent()
メソッドを実装しました (Firefox バグ 1321623)。 file
型の<input>
のvalue
に"fakepath" を追加する機能を、Gecko に実装しました。ほかのブラウザーと同等になります (Firefox バグ 1274596)。- 非推奨の
Node.rootNode
プロパティを置き換える、Node.getRootNode()
を実装しました (Firefox バグ 1269155)。 Plugin
およびPluginArray
オブジェクト特有のプロパティが、enumerable ではなくなりました (Firefox バグ 1270366)。MimeTypeArray
オブジェクトの名前付きプロパティが、enumerable ではなくなりました (Firefox バグ 1270364)。- 権限 API の
Permissions.query()
で使用するパーミッション名で、新たにpersistent-storage
が使用可能になりました (Firefox バグ 1270038)。これは Storage API による、持続的なボックス (すなわち persistent storage) をオリジンに許可します。
ワーカーおよびサービスワーカー
- ネットワーク情報 API が、ワーカーで使用可能になりました (Firefox バグ 1323172)。
- サーバー送信イベント がワーカーから使用可能になりました (Firefox バグ 1267903)。
ExtendableEvent.waitUntil()
が、非同期呼び出し可能になりました (Firefox バグ 1263304)。
WebGL
WEBGL_compressed_texture_astc
WebGL 拡張を実装しました (Firefox バグ 1250077)。WEBGL_debug_renderer_info
WebGL 拡張をデフォルトで有効にしました (Firefox バグ 1336645)。
Audio/Video/Media
全般
- Android 版 Firefox 53 より、マルチコアシステムでパフォーマンスを高めるため、メディアのデコードを外部プロセスで制御します (Firefox バグ 1333323)。
メディア要素
- メディア要素でメディアの再生を開始するために使用する
HTMLMediaElement.play()
メソッドが、Promise
を返すようになりました。この Promise は再生を開始すると fulfilled 状態、エラーが発生すると rejected 状態になります (Firefox バグ 1244768)。
Web Audio API
AudioScheduledSourceNode
インターフェイスを実装して、AudioBufferSourceNode
、ConstantSourceNode
、OscillatorNode
インターフェイスはこのインターフェイスを基にするようになりました (Firefox バグ 1324568)。
WebRTC
RTCPeerConnection
のcreateOffer()
およびcreateAnswer()
メソッドが、RTCSessionDescription
を直接返すのではなく、RTCSessionDescriptionInit
辞書に従うオブジェクトを返すPromise
を返すようになりました。既存のコードは引き続き動作しますが、新しいコードはよりシンプルに記述できます。- 同様に、
RTCPeerConnection
のsetLocalDescription()
およびsetRemoteDescription()
メソッドが、RTCSessionDescriptionInit
辞書に従うオブジェクトを受け入れるようになりました。既存のコードは引き続き動作しますが、シンプルにできます。 RTCPeerConnection.addIceCandidate()
が、RTCIceCandidateInit
辞書に従うオブジェクトを受け入れるようになりました。これは既存のコードと互換性がありますが、上記の変更点と並んで使用するとコードをよりシンプルに記述できます (Firefox バグ 1263312)。RTCDTMFSender
を使用する DTMF のサポートを、デフォルトで有効にしました。詳細や動作について、Using DTMF with WebRTC をご覧ください。
HTTP/ネットワーク
-
Referrer-Policy
の既定値をユーザーが設定できる設定項目network.http.referer.userControlPolicy
を、Gecko のabout:config
に追加しました (Firefox バグ 1304623)。以下の値を使用できます:- 0 —
no-referrer
- 1 —
same-origin
- 2 —
strict-origin-when-cross-origin
- 3 —
no-referrer-when-downgrade
(既定値)
- 0 —
-
Application-Layer Protocol Negotiation (ALPN) を支持するため、Next Protocol Negotiation (NPN) のサポートを廃止しました (Firefox バグ 1248198)。
-
Large-Allocation
HTTP ヘッダーをデフォルトで有効にして、設定で無効化しないようになりました (Firefox バグ 1331083)。
SVG
SVGGeometryElement
インターフェイスを部分的に実装しました (Firefox バグ 1239100)。
ウェブプラットフォームから廃止
HTML/XML
- 設定項目
dom.details_element.enabled
(Firefox で<details>
および<summary>
要素のサポートを有効化/無効化します) をabout:config
から削除しました。これらの要素 (Firefox 49 からデフォルトで有効化) は無効化できません。Firefox バグ 1271549 をご覧ください。 <iframe>
要素およびHTMLIFrameElement
インターフェイスのmozapp
属性を削除しました。これは、moz Browser API の<iframe>
に Firefox OS アプリを埋め込めるようにするために使用しました (Firefox バグ 1310845)。HTMLIFrameElement.setInputMethodActive()
メソッドおよびInputMethod
インターフェイス (Firefox OS アプリで IME を設定および制御するために使用しました) を削除しました (Firefox バグ 1313169)。
CSS
:dir()
擬似クラスの、-moz
接頭辞がついた派生形を削除しました (Firefox バグ 1270406)。text-align-last
の、-moz
接頭辞がついた派生形を削除しました (Firefox バグ 1276808)。calc()
メソッドの、-moz
接頭辞がついた派生形を削除しました (Firefox バグ 1331296)。- 独自仕様である
-moz-samplesize
media fragment (メモリーが少ない Firefox OS 端末にダウンサンプリングした画像を提供することを支援するために追加しました。Firefox バグ 854795 をご覧ください) を削除しました (Firefox バグ 1311246)。
JavaScript
- 非標準の
ArrayBuffer.slice()
を削除しました (ただし、標準化されたArrayBuffer.prototype.slice()
を維持しています) (Firefox バグ 1313112)。
API
- Wifi information API、Speaker Manager API、Tethering API、Settings API をプラットフォームから削除しました (Firefox バグ 1313788、Firefox バグ 1317853、Firefox バグ 1313789、Firefox バグ 1313155)。
その他
HTMLEmbedElement
およびHTMLObjectElement
インターフェイスからlegacycaller
を削除しました (Firefox バグ 909656)。
アドオン開発者と Mozilla 開発者向けの変更点
WebExtensions
新規 API:
向上した API:
storage.sync
contextMenus
の context タイプ としてpage_action
、browser_action
、password
,tab
webRequest.onBeforeRequest
でrequestBody
をサポートtabs.insertCSS
でcssOrigin
をサポート。ユーザースタイルシートが挿入可能になります。
JavaScript コードモジュール
- 非同期の AddonManager API で、コールバックだけでなく
Promise
もサポートしました (Firefox バグ 987512。
過去のバージョン
- Firefox 52 for developers
- Firefox 51 for developers
- 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