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