Firefox 55 for developers
Firefox 55 は、米国時間 2017 年 8 月 8 日にリリースされました。このページでは、開発者に影響する Firefox 55 の変更点をまとめています。
ウェブ開発者向けの変更点一覧
開発者ツール
- ネットワーク要求を、列の値や他のプロパティでフィルタリング可能になりました (Firefox バグ 1041895、Firefox バグ 1354508、Firefox バグ 1354507)。また、正規表現を使用してフィルタリングできるようになりました (Firefox バグ 1354495)。
- ネットワークモニター で列を隠したり表示したりできるようになりました (Firefox バグ 862855)。
- ネットワークモニターに Remote IP (Firefox バグ 1344523)、Protocol (Firefox バグ 1345489)、Scheme (Firefox バグ 1356867)、Cookies および Set-Cookies (Firefox バグ 1356869) の列を追加しました。
SourceMap
HTTP ヘッダーをサポートしました (以前のバージョンでは、非推奨であるX-SourceMap
ヘッダーをサポートしていました。Firefox バグ 1346936)。
HTML
contenteditable
をtrue
に設定した要素で、テキストの別の行を分けるために<div>
要素を使用するようになりました。これは、他の現行ブラウザーに Firefox を合わせるためです (Firefox バグ 1297414)。詳しくはマークアップ生成の違い をご覧ください。- Nightly で、
dom.forms.datetime
をデフォルトで有効にしました (Firefox バグ 1366188)。
CSS
transform-box
プロパティをデフォルトで有効にしました (Firefox バグ 1208550)。- frames() イージング関数 を実装しました (Firefox バグ 1248340)。
text-justify
プロパティを実装しました (Firefox バグ 1343512, Firefox バグ 276079).- [css-grid] repeat() 内で
fit-content
が、意図せず最大限に制限したサイズで領域を確保してしまう問題を修正しました (Firefox バグ 1359060)。 float
/clear
の論理値inline-start
およびinline-end
は、以前から実装していましたが Release チャンネルでは無効化していました。これを、すべてのチャンネルにおいてデフォルトで有効化しました (Firefox バグ 1253919)。- 設定項目
layout.css.variables.enabled
を完全に削除しました。CSS 変数 の機能は常にデフォルトで有効であり、無効化できません (Firefox バグ 1312328)。 - 独自仕様である
-moz-context-properties
プロパティを実装しました (Firefox バグ 1058040)。 - 角度の単位がつかない 0 度の値が、
linear-gradient()
で正しく解釈されない問題を修正しました (Firefox バグ 1363292)。 ::cue
擬似要素をサポートしました。これは、メディア要素内で提供するテキストキューにマッチします (Firefox バグ 1318542)。
SVG
<radialGradient>
のfr
属性を実装しました (Firefox バグ 1240275)。
JavaScript
SharedArrayBuffer
およびAtomics
オブジェクトをデフォルトで有効化しました。JavaScript の Shared Memory と Atomics の入門として、A Taste of JavaScript's New Parallel Primitives をご覧ください。- object destructuring で rest operator (
...
) をサポートしました。また、spread operator (...
) が オブジェクトリテラル で動作するようになりました (Stage 3 ECMAScript proposal: Object Rest/Spread Properties。 Firefox バグ 1339395)。 - 非同期ジェネレーターメソッド をサポートしました (Firefox バグ 1353693)。
String.prototype.toLocaleLowerCase()
およびString.prototype.toLocaleUpperCase()
メソッドで、ロケール固有の大文字・小文字の対応を言語タグで指定するための、省略可能な引数locale
をサポートしました (Firefox バグ 1318403)。Intl.Collator
オブジェクトでcaseFirst
オプションをサポートしました (Firefox バグ 866473)。- Intl API でロケール設定が提供されていない場合に、オペレーティングシステムのデフォルトのロケールではなくブラウザーのデフォルトのロケールを使用するようになりました (Firefox バグ 1346674)。
- Template call sites objects が、未加工の文字列のリストに基づいて範囲ごとに正規化されるようになりました (Firefox バグ 1108941)。
TypedArray
のコンストラクター (Int8Array
、Float32Array
など) を ES2017 に更新しました。ToIndex
操作を行うようになり、引数なしでコンストラクターを使用できます。この場合は、length が 0 の typed array が戻ります (Firefox バグ 1317383)。
API
新規 API
- Firefox 53 から設定により使用可能であった Collaborative Scheduling of Background Tasks API (またはシンプルに Background Tasks API または
requestIdleCallback
API として知られる) を、デフォルトで有効にしました。この API は、次の再描画を行う前に利用可能な空き時間があるとブラウザーが判断したときに実行するタスクを予定することができます。これにより、目に見えるパフォーマンス低下を発生させずに空き時間をコードで使用できます (Firefox バグ 1314959)。 - WebVR 1.1 API を、Windows でデフォルトで有効にしました (macOS は Nightly で使用できます)。この API はバーチャルリアリティデバイス (例えば Oculus Rift や HTC Vive のようなヘッドマウントディスプレイ) をウェブアプリで使用可能にして、開発者がディスプレイの位置や移動の情報を 3D シーンの移動に変換して、ディスプレイにコンテンツを表示することが可能になります。
- Intersection Observer API (祖先要素またはトップレベルのドキュメントの ビューポート と対象要素の交差状態の変化を非同期に監視する手段を提供します) を追加しました (Firefox バグ 1321865)。
DOM
Window
のscrollX
およびscrollY
プロパティ (別名であるpageXOffset
およびpageYOffset
も同様) を、サブピクセル精度に更新しました。戻り値が整数ではなく、サブピクセル精度のディスプレイでスクロール位置をより正確に示す浮動小数点数値になります (Firefox バグ 1151421)。必要に応じて、整数に変換するMath.round()
を使用できます。MediaQueryList
(および他の関連機能) を、最新の仕様に合わせて更新しました。Firefox バグ 1354441、MediaQueryList
、MediaQueryListEvent
をご覧ください。- リストの値を変更する
DOMTokenList
のメソッドが、自動的にホワイトスペースの切りつめと重複する値の削除を行うようになりました (Firefox バグ 869788、ホワイトスペースのトリミングと重複の削除をご覧ください)。 HTMLInputElement
のmaxLength
プロパティを、同等の HTML が生成された後に JavaScript で動的に変更することが可能になりました (Firefox バグ 1352799)。URL()
コンストラクターの base (第 2 引数) がDOMString
を受け入れないようになりました。USVString
のみ受け入れます。既存のURL
オブジェクトを base に使用することは可能であり、それ自体をオブジェクトのhref
属性に文字列化します (Firefox バグ 1368950)。
DOM イベント
Document.createEvent()
メソッドがサポートするイベントの型を、最新の DOM 仕様に合わせて更新しました (Firefox バグ 1251198)。MessageEvent.origin
プロパティの値が、DOMString
型からUSVString
型に替わりました。また、MessageEvent.source
プロパティがMessageEventSource
値 (これはWindowProxy
、MessagePort
、ServiceWorker
オブジェクトにできます) をとるようになりました (Firefox バグ 1311324)。- ピンチズームのジェスチャーを、
wheel
イベントとCtrl
キーの組み合わせにマッピングしました。モバイルスクリーンやトラックパッドでピンチズームによるジェスチャーを使用してシンプルなズーム機能を開発者が実装できるようにするため、このマッピングを実装しました (一般的に、マウスホイール +Ctrl
でズームします) (Firefox バグ 1052253)。
Selection API
-
内部で選択範囲が動いたときに editing hosts がどのようにフォーカスを得るかについて、他のブラウザーへ合わせるために Selection API を更新しました (Firefox バグ 1318312)。詳しくは編集ホストのフォーカス変更に関する選択 API の挙動をご覧ください。
-
最近の仕様の変更に合致するよう、
Selection
API を更新しました (Firefox バグ 1359371):collapse()
およびextend()
メソッドのoffset
引数を省略可能にしました。collapse()
メソッドのnode
引数を null にすることが可能になりました。containsNode()
メソッドのpartialContainment
引数が省略可能になりました。deleteFromDocument()
メソッドを追加しました。
-
ウェブ互換性のため、および WebKit/Blink と一致させるため、
Selection
API でSelection.removeAllRanges()
およびSelection.collapse()
の別名として、Selection.empty()
およびSelection.setPosition()
を追加しました (Firefox バグ 1359387)。 -
Storage API の
StorageManager.persist()
およびStorageManager.persisted()
メソッドを実装して、Window
コンテキストに公開しました (Firefox バグ 1286717)。
Workers
- ワーカーおよび共有ワーカーを、識別用の
name
プロパティをつけて作成できるようになりました。Worker()
およびSharedWorker()
コンストラクター、DedicatedWorkerGlobalScope
およびSharedWorkerGlobalScope
インターフェイスをご覧ください (Firefox バグ 1364297)。 setTimeout()
およびsetInterval()
が、バックグラウンドのタブでトラッキングスクリプトに対して最小間隔の調整を課すようになりました。トラッキングスクリプトのタイムアウトを制限するをご覧ください (Firefox バグ 1355311)。
Service Workers/Push
- サービスワーカーコンテキストに送信したメッセージ (例えば、
onmessage
のイベントオブジェクトとして) は、他のウェブメッセージング機能との一貫性のため、MessageEvent
オブジェクトで表すようになりました。 PushManager.subscribe()
メソッドがapplicationServerKey
の値として、ArrayBuffer
s や Base64 エンコードの文字列を受け入れるようになりました (Firefox バグ 1337348)。
Web Audio API
AudioContext
インターフェイスの非標準のコンストラクター (コンテキストの用途を示す列挙型の文字列を受け入れます) は、options
引数が与えられた場合にエラーが発生していました。この非標準コンストラクターを削除しました。ただしoptions
引数は Firefox で未サポートであり、現在は無視することに注意してください (Firefox バグ 1361475)。
WebRTC
- ソースデバイスがステレオ音声を提供する場合に、
getUserMedia()
がデフォルトでステレオ音声ストリームを提供するようになりました。モノラル入力を明示的に要求する機能は Firefox 56 でサポートする予定です。現在、この機能はデスクトップに限り動作します。モバイル版 Firefox はステレオ音声入力ソースが未サポートです (Firefox バグ 971528)。 getUserMedia()
の メディア能力、制約、設定 であるautoGainControl
およびnoiseSuppression
が仕様書に準拠しました。以前はmoz
接頭辞がついていました (Firefox バグ 1366415)。- 制約セットを空にして
getUserMedia()
を呼び出したとき、誤ってTypeError
はなくNotSupportedError
を返していました。この問題を修正しました (Firefox バグ 1349480)。 - 以下の新たな WebRTC 統計値を使用できます:
framesEncoded
、pliCount
、nackCount
、firCount
(Firefox バグ 1348657)。 - 以前は
mozRtt
と呼ばれていたRTCInboundRTPStreamStats
ディクショナリーフィールドを、仕様書に合わせてroundTripTime
に改名しました。また、roundTripTime
の動作を標準仕様に準拠するよう調節しました。RTCP Receiver Report の RTCP タイムスタンプに基づいて秒単位で測定した、ラウンドトリップタイムの推定値を倍精度浮動小数点数を持ちます (RFC 3550, セクション 6.4.1 で説明されているアルゴリズムに準拠します) (Firefox バグ 1344970)。ただしこのプロパティは、まもなく別のディクショナリー (RTCRemoteInboundRTPStreamStats
) に移動することを意識しておいてください (Firefox バグ 1380555)。 RTCRTPStreamStats
ディクショナリーが、firCount
、pliCount
、nackCount
フィールドを持つようになりました。これは、接続の信頼性を判断するために使用できる低レベルの情報を返します (Firefox バグ 1348657)。RTCOutboundRTPStreamStats
ディクショナリーがframesEncoded
フィールドを持つようになりました。これは、ストリーム用のエンコードが成功したフレームの数を報告します。この情報を使用して、フレームレートを計算できます (Firefox バグ 1348657)。- Android でビデオ通話のパフォーマンス向上とバッテリー節約のため、ハードウェアによる動画エンコードを有効化する 設定 を追加しました。これは Firefox 56 で、デフォルトで有効化します (Firefox バグ 1265755)。
Encrypted Media Extensions API
- 現在、Firefox は仕様書で認められていないにもかかわらず、安全でないコンテキストで Encrypted Media Extensions を使用できます。近い将来にこの動作を変更する予定であり、Firefox 55 からこのようなことを行うと、ウェブコンソール に非推奨である旨の警告を出力します (Firefox バグ 1361000)。
- 現在、Firefox は仕様書で必須であるにもかかわらず、
Navigator.requestMediaKeySystemAccess()
に渡すsuggestedConfigurations
引数にMediaKeySystemCapabilities
オブジェクトを少なくとも 1 つ含めることを要求していません。Firefox 55 より、サポートするコーデックを指定せずに音声や動画の構成を指定すると、ウェブコンソールに警告を表示します。まもなく、1 つ以上の音声や動画の有効な構成が含められていない場合に例外が発生するようになります (Firefox バグ 1368683)。
WebGL
WEBGL_compressed_texture_s3tc_srgb
拡張が、WebGL および WebGL2 コンテキストで使用可能になりました (Firefox バグ 1325113)。
セキュリティ
Geolocation
API が、安全なコンテキスト である場合に限り利用可能になりました (Firefox バグ 1072859)。Storage API
が、安全なコンテキスト である場合に限り利用可能になりました (Firefox バグ 1268804)。- localhost で、混在コンテンツの読み込みを許可しました (Firefox バグ 903966)。
- リモートの JAR ファイルの読み込みを再び無効化しました (Firefox バグ 1329336)。詳しくは Security and the jar protocol をご覧ください。
プラグイン
- Flash コンテンツが "click-to-activate" になりました (Firefox バグ 1317856)。これはすべての Nightly のユーザーと、beta のユーザーの 50% へ直ちに適用しました。Firefox 55 リリース版では、リリース後の 2 週間でユーザーの 5%、4 週間でユーザーの 25%、6 週間でユーザーの 100% へ適用する予定です (Firefox バグ 1365714)。
- Flash および他のプラグインは、
http://
およびhttps://
以外の URL スキームで読み込むことができなくなりました (Firefox バグ 1335475)。
その他
- Linux 版 Firefox が、
-headless
フラグを使用して ヘッドレスモード で実行できるようになりました (Firefox バグ 1356681)。
ウェブプラットフォームから廃止
HTML
xml:base
属性を、style
属性内に現れるパスのベース URL として使用できなくなりました。 例えば<div xml:base="https://example.com/" style="background:url(picture.jpg)"></div>
のような使い方です (Firefox バグ 1350521)。style 属性向け xml:base が無効化されました。- 他のブラウザーがサポートしていないため、Firefox 55 から content ドキュメントでは
<style>
要素のscoped
属性を設定 (layout.css.scoped-style.enabled
) で無効化しました。 <meta>
要素のhttp-equiv
属性で、不明瞭な値であるMSThemeCompatible
のサポートを Gecko から削除しました。他にサポートする現行ブラウザーがなく、また互換性の問題が発生していました (Firefox バグ 966240)。
CSS
- 独自仕様である
:-moz-bound-element
擬似クラスを削除しました (Firefox バグ 1350147)。 text-decoration-line
の独自仕様の値である-moz-anchor-decoration
を削除しました (Firefox バグ 1355734)。
API
UIEvent.isChar
プロパティは Firefox 以外のブラウザーがサポートせず、また macOS 以外では不完全な実装でした。よってほかのブラウザーに合わせるため、Firefox 55 で削除しました。- Firefox OS の独自仕様である Device Storage API を、プラットフォームから削除しました (Firefox バグ 1299500)。
- 非標準の
Window.find()
メソッドの、aShowDialog
引数 (ブラウザーの "検索" ダイアログを開くかを指定できます) を削除しました (Firefox バグ 1348409)。 HTMLFormElement.requestAutoComplete()
メソッドを削除しました (HTMLFormElement
を参照) (Firefox バグ 1270740)。- 非標準で Mozilla 特有の WebRTC オプションである
mozDontOfferDataChannel
およびmozBundleOnly
を、RTCOfferOptions
辞書から削除しました。また、これらはRTCPeerConnection.createOffer()
でサポートしません (Firefox バグ 1196974)。 - Firefox OS 独自の Audio Channels API を、
HTMLMediaElement
およびAudioContext
から削除しました (Firefox バグ 1358061)。
SVG
SVGZoomEvent
およびSVGZoomEvents
インターフェイスを、<svg> のonzoom
属性とともに SVG2 仕様および Gecko から削除しました (Firefox バグ 1314388)。
アドオン開発者と Mozilla 開発者向けの変更点
WebExtensions
過去のバージョン
- Firefox 54 for developers
- 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