Firefox 121 開発者向けリリースノート
このページでは、開発者に影響する Firefox 121 の変更点をまとめています。Firefox 121 は、米国時間 2023 年 12 月 19 日 にリリースされました。
ウェブ開発者向けの変更点
>HTML
<iframe>要素の遅延読み込みに対応しました。特定の<iframe>要素が表示された場合にのみ読み込まれるよう、開発者が指定できます。ページの読み込み時に取得する必要があるリソース (取得不要な<iframe>要素もあります) を減らすことで、最初の読み込み時間を短縮できます。 このヒントは<iframe>要素のloading属性か、JavaScript でHTMLIFrameElement.loadingを使用して提供できます (Firefox バグ 1622090)。
CSS
text-wrapプロパティを更新し、値balanceおよびstableに対応しました。値balanceは見出しなど短いブロックのコンテンツで使用するもので、コンテンツが複数行にまたがるときにバランスがとれて読みやすくなります。値stableは、編集可能なコンテンツをユーザーが編集するときにリフローしなくなります (Firefox バグ 1731541)。- 一般に親セレクターと呼ばれる
:has()セレクターに対応しました。これにより、関連する要素に基づいて要素にスタイルを適用できるようになります。たとえばli:has(ul)はサブリストを持つリストに、h1:has(+ p)は直後に段落を持つ見出しに一致します。 text-indentCSS プロパティの値each-lineおよびhangingに対応しました (Firefox バグ 784648)。これにより、開発者は特定のテキストインデントスタイルをより簡単に指定できます。また、text-indentプロパティの複数の値を組み合わせて、より創造的に指定できます。例:text-indent: 3em hanging each-line
JavaScript
-
Promise.withResolvers()静的メソッドに対応しました。これは返値のPromiseと同じスコープでresolveおよびrejectコールバック関数を公開して、Promise を構築した後に解決または拒否するコードを定義できます (Firefox バグ 1845586)。 -
Date.parse()が追加の日付形式をいくつか受け入れるようになりました。-
YYYY-MMM-DD形式で年が 9999 より大きい (例:19999-Jan-01) (Firefox バグ 1858851) -
MMM-DD-YYYY形式 (例:Jan-01-1970) (Firefox バグ 1863489) -
ISO 形式でない日時でミリ秒 (例:
Jan 1 1970 10:00:00.050) (Firefox バグ 1863125) -
以前は拒否されていた、先頭に曜日がある形式。たとえば:
Wed, 1970-01-01Wed, 1970-Jan-01
曜日が正確である必要はありません。たとえば
foo 1970-01-01は動作します (Firefox バグ 1617562)。
-
-
Date.parse()のその他の修正:YYYY-M-DDおよびYYYY-MM-D形式は、ISO 形式の日付YYYY-MM-DDのように GMT であると想定しないようになりました (Firefox バグ 1783731)。- すべての形式でミリ秒は四捨五入するのではなく、3 桁目より後を切り捨てるようになりました (Firefox バグ 746529)。
API
WebTransportSendStreamインターフェイスのsendOrderプロパティに対応しました。WebTransport API の 双方向 ストリームの相対的な送信優先度を、ストリームの作成後に取得および変更できます。このプロパティは一方向ストリームの優先度変更には使用できません。Firefox は一方向ストリームをWebTransportSendStreamではなくWritableStreamとして実装しているためです (詳しくは Firefox バグ 1853444 をご覧ください)。
DOM
- Android で、
HTMLInputElement.showPicker()が<input type="week">および<input type="month">要素で動作するようになりました (Firefox バグ 1853797)。
WebAssembly
- WebAssembly で、新たに
return_callおよびreturn_call_indirect命令がcall命令に代わって導入され、末尾呼び出し最適化に対応しました。これにより、パフォーマンスが向上し、スタック領域の使用量が減り、末尾呼び出しを使用するプログラミング言語との互換性が高まります (Firefox バグ 1846789)。
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- 閲覧コンテキストが破棄されたときに発生する
browsingContext.contextDestroyedイベントを追加しました (Firefox バグ 1694390)。 script.callFunctionおよびscript.evaluateコマンドの引数userActivationに対応しました。ユーザー操作をエミュレートしている間に JavaScript を評価できます (Firefox バグ 1845488)。browsingContext.userPromptOpenedイベントのdefaultValueフィールドに対応しました。これにより、ユーザーはプロンプトのデフォルト値を取得できます (Firefox バグ 1851761)。browsingContext.captureScreenshotコマンドの引数viewportOptionsをboxOptionsに改名しました (Firefox バグ 1859258)。browsingContext.captureScreenshotコマンドで引数originを採用して、scrollIntoViewを削除しました (Firefox バグ 1862649)。browsingContext.captureScreenshotコマンドの引数originに対応しました。スクリーンショットの原点と範囲を定義できます。受け入れる値は"document"と"viewport"です (Firefox バグ 1840999)。Windowオブジェクトをシリアライズするとき、そのオブジェクトのコンテキスト ID を設定したcontextプロパティが含まれるようになりました。このプロパティは、特定のウィンドウやフレームを参照するために Marionette との間で受け渡すことができます (Firefox バグ 1841049)。- データ構造 (配列やマップなど) へ入れ子になったノードのシリアライズが失敗する不具合を修正しました (Firefox バグ 1861000)。
browsingContext.navigateコマンドが誤ったナビゲーション ID を返す場合がある不具合を修正しました (Firefox バグ 1861655)。
Marionette
WindowおよびFrameオブジェクトのシリアライズとデシリアライズに対応しました (Firefox バグ 1274251)。
実験的なウェブ機能
以下の機能は Firefox 121 で新たに導入しましたが、デフォルトで無効です。これらを実験するには、about:config ページで適切な設定項目を検索して true に設定してください。実験的機能 のページで、さらに多くの機能を確認できます。
- カスタム要素の状態の擬似クラス:
dom.element.customstateset.enabled -
カスタム要素は
statesプロパティを通して、CustomStateSetとして内部状態を公開できます。:--some-stateのような CSS のカスタム状態擬似クラスが、この要素の状態に一致します (Firefox バグ 1861466) - HTML select 要素の
showPicker()メソッド:dom.select.showPicker.enabled -
HTMLSelectElement.showPicker()メソッドはユーザー操作によって発生して、<select>要素のブラウザーの選択ツールをプログラムから起動します。(Firefox バグ 1854112)
アドオン開発者向けの変更点
-
manifest.jsonのbackgroundキーにservice_workerおよびscripts宣言が含まれているとき、バックグラウンドページが開始しない不具合を修正しました (Firefox バグ 1860304)。メモ: なお、Chrome 121 で変更があり、
service_workerプロパティとともに指定したscriptsプロパティは無視されます。以前は、Chrome は両方のプロパティを持つ拡張機能の読み込みを拒否していました (Chromium bug 1418934)。 詳しくはbackgroundマニフェストキーのブラウザー対応 をご覧ください。