Firefox 138 for developers
このページでは、開発者に影響する Firefox 138 の変更点をまとめています。 Firefox 138 は、米国時間 2025 年 4 月 29 日 にリリースされました。
ウェブ開発者向けの変更点一覧
>HTML
CSS
変更なし。
JavaScript
Error.captureStackTrace()静的メソッドをサポートしました。これは、与えられたオブジェクトにスタックトレース情報をError.stackプロパティとして設定します。主な用途は、Errorインターフェイスから派生していない独自のエラーオブジェクトにスタックトレースを設定することです (Firefox bug 1950508)。Error.isError()静的メソッドを、オブジェクトがErrorまたはDOMExceptionのインスタンスであるか否かの確認に使用できるようになりました。これは、同じ目的でinstanceofを使用するより信頼できます (Firefox bug 1952249)。import宣言で、with属性を使用した JSON モジュールのインポートをサポートしました。
HTTP
Clear-Site-Dataヘッダーをcache(および*) ディレクティブと合わせて使用することで、ブラウザーのネットワークキャッシュを消去できます。これはウェブサイトがユーザー側に保存されたデータをより細かく制御できることを可能にして、たとえばログアウトするときにキャッシュを消去することでプライバシー情報の漏えいのリスクを軽減できます (Firefox bug 1942272)。- サイトが HTTP の
Origin-Agent-Clusterレスポンスヘッダーを使用して、関連づけられた文書をオリジンキーつき エージェントクラスター に配置するべきであることを助言できるようになりました。 そのようなクラスターではオペレーティングシステムのプロセスまたは文書が使用するほかの OS リソース、あるいはその両方が、同じ オリジン の文書に限って共有されます。 これにより、多くのリソースを必要とする文書がほかのオリジンの文書のパフォーマンスを低下させる可能性が低くなります。 開発者はwindow.originAgentClusterプロパティを使用して、ブラウザーが文書をオリジンキーつきエージェントクラスターに配置したかを確認できます (Firefox bug 1665474)。
API
- Federated Credential Management (FedCM) API を使用している状況で Login Status API をサポートしました。この API は、ブラウザーのユーザーがアイデンティティプロバイダーにログインしているかを設定および確認するために使用できます。
これには
NavigatorLoginインターフェイス、navigator.loginプロパティ、Set-LoginHTTP レスポンスヘッダーのサポートも含みます (Firefox bug 1945576、Firefox bug 1945573)。 - Web Audio API の
AudioWorklet.portおよびAudioWorkletGlobalScope.portで双方向メッセージングをサポートしました。 これにより制御データやグローバル設定の受信のような、メインスレッドのコードとオーディオワークレットのグローバルスコープの間で独自の非同期通信が可能になります (Firefox bug 1951240)。 RTCCertificateインターフェイスのgetFingerprints()メソッドをサポートしました。 アプリケーションはこのメソッドを使用して証明書のフィンガープリントを取得でき、WebRTC セッションをまたがって特定のユーザーやブラウザーを識別するためにアウトオブバンドで共有されることがあります (Firefox bug 1525241)。
DOM
Media、WebRTC、Web Audio
- ネットワークの品質低下によりフレームレートや解像度のどちらも設定されたレベルを維持できないときに、どちらを優先するかを WebRTC アプリケーションが設定できるようになりました。
この値は
RTCRtpSenderインターフェイスのsetParameters()メソッドに渡す引数オブジェクトのdegradationPreferenceプロパティで設定します。 また、getParameters()メソッドが返すオブジェクトでこの値を読み取ることもできます (Firefox bug 1329847)。
WebDriver への適合 (WebDriver BiDi, Marionette)
一般
- ログを適切に標準出力へパイプ接続するために必要な設定が、すべてのリモートプロトコルで有効になりました (Firefox bug 1947740)。
- 親プロセスのブラウジングコンテキスト (ブラウザーの UI など) との対話やコンテンツプロセスの特権 API の使用といった注意が必要な機能を有効化する、Firefox の新たな引数
--remote-enable-system-accessを追加しました。これは次のリリースで WebDriver BiDi で使用する計画で、Marionette ではすでに使用可能です (後述の Marionette の章をご覧ください) (Firefox bug 1944565)。
WebDriver BiDi
webExtension.installコマンドがデフォルトでウェブ拡張機能を一時的にインストールするようになりました。未署名の拡張機能を XPI ファイルまたは展開状態のフォルダーで使用可能になります。通常の拡張機能として強制的にインストールするために、Firefox 固有の新たな引数moz:permanentを追加しました (Firefox bug 1947678)。browsingContext.setViewportコマンドで引数userContextsをサポートしました。これはユーザーコンテキスト (Firefox コンテナー) の ID の配列にしなければなりません。この引数を与えると、指定したユーザーコンテキストに所属するすべてのブラウジングコンテキストおよび将来作成するブラウジングコンテキストに、ビューポートの設定を適用します。この引数は、既存の引数contextと併用できません (Firefox bug 1940952)。browsingContext.Info型に、ブラウジングコンテキストを所有するウィンドウの ID に対応するプロパティclientWindowが含まれるようになりました。これは通常、browsingContext.getTreeによって返されるか、browsingContext.contextCreatedなどのイベントのペイロードに含まれています (Firefox bug 1920952)。
Marionette
- Marionette で
chrome(親プロセス) コンテキストへ切り替えるには、Firefox を起動するときに--remote-enable-system-accessコマンドライン引数が必要になりました (Firefox bug 1710425)。
アドオン開発者向けの変更点一覧
- Manifest V3 拡張機能で、
page_actionをmenusAPI のmenus.ContextTypeとしてサポートしました。これにより Manifest V3 拡張機能も Manifest V2 と同じように、page_actionへメニュー項目を追加できます (Firefox bug 1951166)。 contextualIdentitiesAPI が Android 版 Firefox で定義されなくなりました。以前は、定義されましたが不完全でした (Firefox bug 1659500)。- Android 版 Firefox で
contextualIdentities権限が認識されなくなりました。以前は "containers" 機能の不具合があるバージョンが有効でした (Firefox bug 1659500)。 - Manifest V3 版の新たな
userScriptsAPI が Android 版 Firefox で使用可能になりました (Firefox bug 1949955)。 webRequest.handlerBehaviorChangedAPI を実装しました。以前のバージョンでは、このメソッドを公開していましたが何も行いませんでした (Firefox bug 1657575)。alarms.createAPI が、undefined ではなく Promise を返すようになりました (Firefox bug 1869171)。- タブグループ内のタブの操作をサポートしました。以下の機能を追加しました:
tabs.group()およびtabs.ungroup()(Firefox bug 1959714)tabs.TabのgroupId(Firefox bug 1959713)tabs.queryのgroupId(Firefox bug 1959715)tabs.onUpdatedのgroupId(Firefox bug 1959716
- Firefox で、
webRequest.ResourceTypeおよびdeclarativeNetRequest.ResourceTypeでjsonリソースタイプをサポートしました。合わせて、インポート属性をデフォルトで有効化しました。以前はscriptと報告されていました (Firefox bug 1858078、Firefox bug 1950836)。
実験的なウェブ機能
以下の機能は Firefox 138 で新たに導入しましたが、実験的なものです。
これらはデフォルトで無効であるか、Nightly ビルドに限ってデフォルトで有効です。
デフォルトで無効な機能は、about:config ページで対応する設定項目を検索して true に設定してください。
実験的機能 のページで、さらに多くの機能を確認できます。
-
区分コンテンツ内の
<h1>のユーザーエージェントスタイル:layout.css.h1-in-section-ua-styles.enabled区分要素
<article>、<aside>、<nav>、<section>の内部にある<h1>見出しのフォントサイズは小さくなりません。HTML 仕様書からアウトラインのアルゴリズムが 削除された ため、区分要素の内部にある<h1>のユーザーエージェントスタイルは適切でなくなりました (Firefox bug 1883896)。この削除の段階的な展開の一環として、Firefox 138 のユーザーの 5% と Firefox 138 ベータ版のユーザーの 50% で
layout.css.h1-in-section-ua-styles.enabledの値をfalseに設定します (Intent to unship: UA styles for h1 in article, aside, nav, section).メモ: この機能の設定は逆に機能します。Nightly ビルドでは
falseに設定しており、区分要素の内部にある見出しのユーザーエージェントスタイルを削除します。その他すべてのチャンネルではtrueに設定しており、入れ子になった見出し用の既存のユーザーエージェントスタイルを維持します。 -
::details-content CSS 擬似要素:
layout.css.details-content.enabledCSS の
::details-content擬似要素は、<details>要素の内容物のスタイル設定を可能にします (Firefox bug 1901037)。 -
要素に裏づけられた擬似要素の後ろの擬似要素を許可する
::details-contentや::file-selector-buttonなどの 要素に裏づけられた擬似要素 に、::first-letterや::beforeなどの 擬似要素 を追加可能にする作業を始めました (Firefox bug 1953557)。メモ: この機能の設定項目は、対象の要素に裏づけられた擬似要素に依存します。例:
::details-content。 -
削除予定の
MutationEvent:dom.mutation_events.enabledMutationEventおよびそれに関連するイベント (DOMSubtreeModified、DOMNodeInserted、DOMNodeRemoved、DOMCharacterDataModified、DOMAttrModified) が、Firefox Nightly ではデフォルトで無効になりました (Firefox bug 1951772)。 -
Notification.actions(Nightly):dom.webnotifications.actions.enabledNotification.actionsプロパティは、ServiceWorkerRegistration.showNotification()を使用して設定したNotificationに関連づけられたアクションを取得できます (Firefox bug 1225110)。 -
PerformanceEventTiming.interactionId:dom.performance.event_timing.enable_interactionidPerformanceEventTiming.interactionIdを使用して、特定のユーザー操作で発生したイベントのレイテンシーを測定できます (Firefox bug 1934683)。 -
HTML Sanitizer API:
dom.security.sanitizer.enabledHTML Sanitizer API は開発者が HTML の信頼できない文字列を取得して、文書の DOM へ安全に挿入するためにサニタイズすることを可能にします (Firefox bug 1950605), (Firefox bug 1952250)。
過去のバージョン
- Firefox 137 for developers
- Firefox 136 for developers
- Firefox 135 for developers
- Firefox 134 for developers
- Firefox 133 for developers
- Firefox 132 for developers
- Firefox 131 for developers
- Firefox 130 for developers
- Firefox 129 for developers
- Firefox 128 for developers
- Firefox 127 for developers
- Firefox 126 for developers
- Firefox 125 for developers
- Firefox 124 for developers
- Firefox 123 for developers
- Firefox 122 for developers
- Firefox 121 for developers
- Firefox 120 for developers
- Firefox 119 for developers
- Firefox 118 for developers
- Firefox 117 for developers
- Firefox 116 for developers
- Firefox 115 for developers
- Firefox 114 for developers
- Firefox 113 for developers
- Firefox 112 for developers
- Firefox 111 for developers
- Firefox 110 for developers
- Firefox 109 for developers
- Firefox 108 for developers
- Firefox 107 for developers