Firefox 132 開発者向けリリースノート
このページでは、開発者に影響する Firefox 132 の変更点をまとめています。Firefox 132 は、米国時間 2024 年 10 月 29 日 にリリースされました。
ウェブ開発者向けの変更点
>HTML
変更なし。
CSS
text-emphasis-positionプロパティで、text-underline-positionに合わせて配置するための値autoをサポートしました (Firefox バグ 1919658)。- CSS で Nested declaration rule をサポートしました。入れ子の CSS が正しい順序で解析されるようになりました (Firefox バグ 1918408)。
廃止
-moz-user-modifyCSS プロパティを削除しました。このプロパティは、contenteditableグローバル属性が支持されたため非推奨になっていました (Firefox バグ 1920118)。
JavaScript
- 正規表現の
(?ims-ims:...)モディファイアーは、正規表現パターンの特定の一部分に限って効果がある変更を行えます (Firefox バグ 1913752、Firefox バグ 1899813)。
HTTP
- HTTP
Acceptヘッダーのデフォルト値/ドキュメント値がtext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8に変更されました。 これにより、互換性の課題を発生させたことがある画像の MIME タイプが除去され、fetch 仕様および Safari との整合性が図られます。 (Firefox バグ 1917177).
廃止
- HTTP/2 サーバープッシュを、設定項目
network.http.http2.allow-pushをfalseに設定することで無効化しました。 この機能はほかのメジャーなブラウザーでサポートしておらず、将来のリリースで実装を完全に削除する予定です (Firefox バグ 1915848)。
プライバシー
- 厳格な強化型トラッキング防止機能 で、すべての サードパーティ Cookie をブロックするようになりました (Firefox バグ 1918037)。
API
WebGLRenderingContextおよびWebGL2RenderingContextインターフェイスのdrawingBufferColorSpaceおよびunpackColorSpaceプロパティをサポートしました。これらはそれぞれ、WebGL 描画バッファーの色空間と、テクスチャーをインポートする際に変換する色空間を指定します (Firefox バグ 1885491, Firefox バグ 1885446)。Notification.silentプロパティをサポートしました。システムの通知を静音化するかを制御します。Notification()コンストラクターでsilent: trueを指定すると、デバイスの設定に関わらずシステムの通知は通知音やバイブレーションを伴わずに発行されます (Firefox バグ 1809028)。<link>・<script>・<img>要素のfetchpriority属性、HTMLLinkElement・HTMLScriptElement・HTMLImageElementインターフェイスのfetchPriorityプロパティ、Request()コンストラクター に渡す引数options.priority、HTTPLinkヘッダーのfetchpriorityディレクティブをサポートしました。これらは特定のリソースを読み込むときの、同じ種類の他のリソースと比較した相対的な優先度に関する助言を開発者が与えられるようにします。また事前読み込みなど、ほかの優先度設定方法と組み合わせて使用できます (Firefox バグ 1854077)。CSSNestedDeclarationsインターフェイスとCSSNestedDeclarations.styleプロパティをサポートしました (Firefox バグ 1918408)。microphoneおよびcamera権限がPermissions.query()メソッドで使用できるようになりました。これにより、対応するハードウェアへのアクセスが許可されているか、拒否されているか、あるいはまだユーザーの承認が要求されるかを確認できるようになりました。 (Firefox バグ 1609427 および Firefox バグ 1915222).
Media、WebRTC、Web Audio
HTMLVideoElementインターフェイスのrequestVideoFrameCallback()およびcancelVideoFrameCallback()メソッドをサポートしました。requestVideoFrameCallback()は、新しい動画フレームがコンポジターへ送信されたときに実行するコールバック関数を登録します。開発者はこの関数を使用してそれぞれの動画フレームで処理を行うことができ、キャンバスへの描画、動画の分析、外部音声ソースとの同期などがより効率的になります。このメソッドは、未処理のコールバック要求をキャンセルするためにcancelVideoFrameCallback()へ渡すことができるコールバックハンドラーを返します。(Firefox バグ 1919367、Firefox バグ 1800882)。MediaStreamTrack.getCapabilities()メソッドをサポートしました。これは関連づけられたMediaStreamTrackの、それぞれの制約可能なプロパティで受け入れる値または値の範囲を詳しく示すオブジェクトを返します (Firefox バグ 1179084)。
WebDriver への適合 (WebDriver BiDi, Marionette)
WebDriver BiDi
- WebDriver BiDi のコマンドをナビゲーションの途中や新たに作成したタブで使用したときの信頼性を高める改善を施しました。以前は
browsingContext.setViewportのようなコマンドがAbortErrorを理由にして失敗することがありましたが、その問題を避けるために少し時間をおいて再実行するようになりました (Firefox バグ 1854942、Firefox バグ 1918287、Firefox バグ 1918672、Firefox バグ 1921756)。 browsingContext.contextCreatedイベントが、遅延読み込みのフレームで正しく発生するようになりました。以前は、インラインフレームが実際にコンテンツの読み込みを開始したときに限ってイベントが発生していました (Firefox バグ 1878166)。- キャッシュ済みのスタイルシートの要求で、ネットワークのイベントが正しく発生するようになりました (Firefox バグ 1879438)。
- 以前はネットワークのイベントの時間の単位が誤っており、マイクロ秒を使用していました。現在はミリ秒を正しく設定しています (Firefox バグ 1916685)。
- ネットワークのイベントの時間で
requestTimeがより正確になり、リクエストが実際に開始した時間に一致するようになりました (Firefox バグ 1922390)。
実験的なウェブ機能
以下の機能は Firefox 132 で新たに導入しましたが、デフォルトで無効です。これらを実験するには、about:config ページで適切な設定項目を検索して true に設定してください。実験的機能 のページで、さらに多くの機能を確認できます。
-
Cookie Store API:
dom.cookieStore.enabled。Cookie Store API は新しい
Promiseベースの Cookie 管理方法で、イベントループをブロックせず、Documentに依存しません (このため サービスワーカー で使用できます)。Firefox 132 では Cookie Store API のサブセットを実装しました (Firefox バグ 1800882)。以下のプロパティが含まれます:CookieStoreインターフェイス。ただし戻り値にpartitionedは含まれません。CookieChangeEventインターフェイス。ただしpartitionedプロパティを除きます。Window.cookieStoreプロパティ。ServiceWorkerGlobalScope.cookieStoreプロパティ。
-
fetch()のkeepaliveオプション:dom.fetchKeepalive.enabled。fetch()グローバルメソッドにkeepalive初期化オプションがあります。keepaliveをtrueに設定すると、ブラウザーはリクエストが完了する前にリクエストを開始したページがアンロードされても、関連するリクエストを中止しません。これはセッションの終了時に分析情報を送信するときに
Navigator.sendBeacon()の代替として読み込みリクエストが機能することを可能にして、いくつかの利点をもたらします (POST以外の HTTP メソッドを利用する、リクエストのプロパティをカスタマイズする、あるいは読み込みのPromiseのフルフィルメントを通してサーバーのレスポンスにアクセスすることが可能です)。これは サービスワーカー でも使用できます (Firefox バグ 1906952)。 -
CloseWatcher:dom.closewatcher.enabled。CloseWatcherインターフェイスは、組み込みコンポーネントと同じようにデバイスのネイティブな仕組みを使用して閉じることが可能なコンポーネントを開発者が実装することを可能にします。たとえば Android では、戻るボタンを使用してダイアログを閉じることができます。このインターフェイスで、独自のサイドバーを同じように閉じることができます (Firefox バグ 1888729)。 -
Promise.try():javascript.options.experimental.promise_try。Promise.try()はあらゆる種類 (値を返す、例外が発生する、同期、非同期) のコールバックを受け取り、その結果を Promise の機能 (たとえば.then()や.catch()) で扱えるようにするためPromiseにラップする便利なメソッドです (Firefox バグ 1905364)。 -
JSON.parsewith source:javascript.options.experimental.json_parse_with_source。JSON.parsesource text access proposal は、大きな浮動小数点数や日付の値を JavaScript の値と JSON 文字列の間で変換するときに精度が低下することに関する問題を軽減する機能を提供するようにJSON.parseの動作を拡張します (Firefox バグ 1913085、Firefox バグ 1925334)。特に、以下の機能を使用可能です:JSON.parse()の 引数reviver内の引数context: パースした元の JSON ソース文字列へアクセスできます。JSON.isRawJSON(): 値がJSON.rawJSON()から返されたオブジェクトであるかを確認します。JSON.rawJSON(): JSON 文字列の一部を含む "raw JSON" オブジェクトを生成します。これをオブジェクトに含めることで、オブジェクトが文字列化されるときに指定した値を維持できます。