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) の列を追加しました。
SourceMapHTTP ヘッダーをサポートしました (以前のバージョンでは、非推奨である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 (en-US)属性を実装しました (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 (en-US) (またはシンプルに Background Tasks API または
requestIdleCallbackAPI として知られる) を、デフォルトで有効にしました。この 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(en-US) およびpageYOffset(en-US) も同様) を、サブピクセル精度に更新しました。戻り値が整数ではなく、サブピクセル精度のディスプレイでスクロール位置をより正確に示す浮動小数点数値になります (Firefox バグ 1151421)。必要に応じて、整数に変換するMath.round()を使用できます。MediaQueryList(および他の関連機能) を、最新の仕様に合わせて更新しました。Firefox バグ 1354441、MediaQueryList、MediaQueryListEvent(en-US) をご覧ください。- リストの値を変更する
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 の挙動をご覧ください。
- 最近の仕様の変更に合致するよう、
SelectionAPI を更新しました (Firefox バグ 1359371):collapse()(en-US) およびextend()(en-US) メソッドのoffset引数を省略可能にしました。collapse()(en-US) メソッドのnode引数を null にすることが可能になりました。containsNode()(en-US) メソッドのpartialContainment引数が省略可能になりました。deleteFromDocument()(en-US) メソッドを追加しました。
- ウェブ互換性のため、および WebKit/Blink と一致させるため、
SelectionAPI でSelection.removeAllRanges()(en-US) およびSelection.collapse()(en-US) の別名として、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の値として、ArrayBuffers や 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()(en-US) に渡すsuggestedConfigurations引数にMediaKeySystemCapabilitiesオブジェクトを少なくとも 1 つ含めることを要求していません。Firefox 55 より、サポートするコーデックを指定せずに音声や動画の構成を指定すると、ウェブコンソールに警告を表示します。まもなく、1 つ以上の音声や動画の有効な構成が含められていない場合に例外が発生するようになります (Firefox バグ 1368683)。
WebGL
WEBGL_compressed_texture_s3tc_srgb(en-US) 拡張が、WebGL および WebGL2 (en-US) コンテキストで使用可能になりました (Firefox バグ 1325113)。
セキュリティ
GeolocationAPI が、安全なコンテキスト である場合に限り利用可能になりました (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()(en-US) でサポートしません (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