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-Login
HTTP レスポンスヘッダーのサポートも含みます (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
をmenus
API のmenus.ContextType
としてサポートしました。これにより Manifest V3 拡張機能も Manifest V2 と同じように、page_action
へメニュー項目を追加できます (Firefox bug 1951166)。 contextualIdentities
API が Android 版 Firefox で定義されなくなりました。以前は、定義されましたが不完全でした (Firefox bug 1659500)。- Android 版 Firefox で
contextualIdentities
権限が認識されなくなりました。以前は "containers" 機能の不具合があるバージョンが有効でした (Firefox bug 1659500)。 - Manifest V3 版の新たな
userScripts
API が Android 版 Firefox で使用可能になりました (Firefox bug 1949955)。 webRequest.handlerBehaviorChanged
API を実装しました。以前のバージョンでは、このメソッドを公開していましたが何も行いませんでした (Firefox bug 1657575)。alarms.create
API が、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 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.enabled
CSS の
::details-content
擬似要素は、<details>
要素の内容物のスタイル設定を可能にします (Firefox bug 1901037)。 -
要素に裏づけられた擬似要素の後ろの擬似要素を許可する
::details-content
や::file-selector-button
などの 要素に裏づけられた擬似要素 に、::first-letter
や::before
などの 擬似要素 を追加可能にする作業を始めました (Firefox bug 1953557)。メモ: この機能の設定項目は、対象の要素に裏づけられた擬似要素に依存します。例:
::details-content
。 -
削除予定の
MutationEvent
:dom.mutation_events.enabled
MutationEvent
およびそれに関連するイベント (DOMSubtreeModified
、DOMNodeInserted
、DOMNodeRemoved
、DOMCharacterDataModified
、DOMAttrModified
) が、Firefox Nightly ではデフォルトで無効になりました (Firefox bug 1951772)。 -
Notification.actions
(Nightly):dom.webnotifications.actions.enabled
Notification.actions
プロパティは、ServiceWorkerRegistration.showNotification()
を使用して設定したNotification
に関連づけられたアクションを取得できます (Firefox bug 1225110)。 -
PerformanceEventTiming.interactionId
:dom.performance.event_timing.enable_interactionid
PerformanceEventTiming.interactionId
を使用して、特定のユーザー操作で発生したイベントのレイテンシーを測定できます (Firefox bug 1934683)。 -
HTML Sanitizer API:
dom.security.sanitizer.enabled
HTML 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