Firefox 155 release notes for developers (Stable)
このページでは、開発者に影響する Firefox 155 の変更点をまとめています。 Firefox 155 は、米国時間 2026 年 9 月 1 日 にリリースされました。
ウェブ開発者向けの変更点一覧
>開発者ツール
- ルールビュー のメディア特性エミュレーションボタンが専用のエミュレーションパネルに集約され、
@ボタンを使用して開くようになりました。 このパネルにはprefers-reduced-motionメディア特性のエミュレーションも追加しました (Firefox bug 1692434 および Firefox bug 1477920)。 - JSON ビューワー が JSON Lines (NDJSON) ドキュメントを開くようになりました。これは
application/jsonl、application/jsonlines、application/x-ndjson、text/jsonlあるいは.jsonlファイル拡張子で提供されます。 各行は個別に解析されてそれぞれが折りたたみ可能な項目になり、元の行番号がラベルとしてつきます。また、解析が失敗した行はドキュメントの残りに影響を与えることなく、インラインで報告します (Firefox bug 2055774、Firefox bug 2060972、Firefox bug 2060529)。 - デバッガー で、ブレークポイントを無効化するキーボードショートカットを追加しました (Firefox bug 1642578)。
HTML
変更なし。
CSS
attr()CSS 関数が、contentに限らず任意の CSS プロパティで使用可能になりました。 これにより JavaScript を使用することなく、width: attr(data-size px)のように HTML 属性からスタイルを設定できます。<attr-type>の値 (pxやsのような単位識別子を含む)、フォールバック値、名前空間つき属性 をサポートします。 また、コンテナースタイルクエリー の内部でもattr()を使用できます (Firefox bug 2038940)。progress()CSS 関数をサポートしました。 これは、ある値が開始値と終了値の間でどの程度進行したかを表す<number>を返します。 この結果は、たとえばopacity: calc(0.4 + progress(100cqw, 300px, 900px) * 0.6)のように、ほかの値を計算することにも使用できます (Firefox bug 2047345)。alpha()CSS 関数をサポートしました。 これにより色を渡すことで、ほかの色の成分を変更せずにアルファ値 (透過度) が異なる色を取得できます。 関数の内部では、たとえばalpha(from var(--brand) / calc(alpha * 0.5))のように、元の色のアルファチャネルを参照するためにalphaキーワードを使用できます (Firefox bug 2059738 および Firefox bug 2059988)。font-widthCSS プロパティを、@font-face記述子のfont-widthおよびCSSStyleDeclaration.fontWidthプロパティとともにサポートしました。 これはfont-stretchプロパティの新しい名称であり、font-stretch は旧称のエイリアスとして機能し続けます。 計算されたスタイルの列挙では、font-stretchではなくfont-widthが返るようになったことに注意してください (Firefox bug 1911075)。
JavaScript
- TC39 の await dictionary 提案 で定義された
Promise.allKeyed()およびPromise.allSettledKeyed()静的メソッドをサポートしました。 これらはイテラブルに代わってプロミスのオブジェクトを受け取ることを除いて、それぞれPromise.all()およびPromise.allSettled()と同様に動作します。これらは同じキーを持つオブジェクトで履行するため、位置の代わりに名前によって結果を読み取ることができます (Firefox bug 2057270)。 - ネットワークエラーや誤った MIME タイプ のために読み込みが失敗した モジュール が失敗としてキャッシュされなくなり、サーバーが復旧すると同じモジュール指定子による再インポートが成功します。
これは JavaScript、JSON、CSS、テキスト の各モジュールに対して、ウィンドウとワーカーの両方で、静的および 動的インポート 双方に適用されます。
これに関連して、
<link rel="modulepreload">で、取得済みまたは取得中のモジュールに対してerrorではなくloadイベントが発生するようになりました。またモジュールスクリプトが、以前に同じ URL でのmodulepreloadが 完全性の検証 に失敗した場合でも読み込まれるようになりました (Firefox bug 2055211 および Firefox bug 2052949)。
HTTP
- Firefox が、接続を確立する際に Happy Eyeballs version 3 を使用するようになりました。到達不能なアドレスファミリーによって接続開始が遅れないようにするため、IPv6 と IPv4 のアドレスを競争させます。 現在は一部のプラットフォームに限りサポートしていることに注意してください (Firefox bug 2062892)。
- QUIC バージョンのネゴシエーションをサポートして、HTTP/3 接続で QUIC バージョン 2 をネゴシエーションできるようになりました (Firefox bug 2059947)。
API
- いくつかの ウェブトランスポート API の機能をサポートしました:
- 送信グループは帯域幅を共有すべきストリームをグループ化して、グループ内でストリームの相対的な優先度を設定できます。
グループは
WebTransport.createSendGroup()を使用して作成できます。そして返されたWebTransportSendGroupを、WebTransport.createBidirectionalStream()またはWebTransport.createUnidirectionalStream()のsendGroupオプションに渡します (Firefox bug 2007165)。 WebTransport.exportKeyingMaterial()メソッドは、指定したラベルまたはコンテキストの基盤となる TLS 接続からキーマテリアルを取得して、両方のエンドポイントが同一の共有シークレットを入手できるようにします。 これにより、たとえばアプリケーションが自己署名証明書のみ持つピアへ接続する場合に、アプリケーションレベルのハンドシェイクで中間者攻撃を検出できるようになります (Firefox bug 2007200)。WebTransportDatagramDuplexStream.createWritable()メソッドは、データグラムを送信するためのWebTransportDatagramsWritableストリームを返します。このストリームはほかの送信者に対する優先度を設定するためのsendGroupおよびsendOrderプロパティがあります (Firefox bug 2007174)。WebTransport()コンストラクターは、クライアントがサポートするアプリケーションプロトコルを一覧化するprotocolsオプションを受け入れます。 サーバーが選択したプロトコルがある場合は、接続が確立してWebTransport.readyプロトコルが履行状態になったときに、WebTransport.protocolプロパティによって返されます (Firefox bug 2007150)。WebTransport.drainingプロパティは、サーバーがクライアントに対してセッションのグレースフルシャットダウンを開始するように要求したタイミングを示します (Firefox bug 2007160)。
- 送信グループは帯域幅を共有すべきストリームをグループ化して、グループ内でストリームの相対的な優先度を設定できます。
グループは
- WebGPU API が、デスクトップ環境で
dual-source-blending機能をサポートしました。これはGPUAdapter.requestDevice()で要求できます。 これによりcreateRenderPipeline()およびcreateRenderPipelineAsync()のsrcFactorおよびdstFactorプロパティでsrc1、one-minus-src1、src1-alpha、one-minus-src1-alphaを指定できます。WGSL のdual_source_blending拡張もサポートしました (Firefox bug 1924328)。
DOM
SVGAElementインターフェイスにHyperlinkElementUtilsミックスインを実装しました。この結果、SVG の<a>要素は HTML の<a>要素と同じ URL コンポーネントのプロパティを公開します:protocol、username、password、host、hostname、port、pathname、search、hash。読み取り専用のoriginプロパティも公開されます (Firefox bug 2058578)。SVGNumberList、SVGPointList、SVGStringList、SVGTransformListインターフェイスでインデックスつきセッターをサポートしました。これによりreplaceItem()を呼び出す代わりに、transformList[0] = newTransformのような角括弧表記を使用してリスト内の項目を置き換えできます。SVGLengthListインターフェイスは、すでにインデックスつきセッターをサポートしています (Firefox bug 2059426)。SVGGraphicsElement.getBBox()メソッドが、fill、stroke、markers、clippedプロパティを持つoptions引数を尊重するようになりました。 これにより要素の塗りつぶし形状だけでなく、要素に適用したストローク、マーカー、クリッピングを考慮したバウンディングボックスを取得できます (Firefox bug 2060873)。<mask>、<clipPath>、<marker>、<symbol>、<defs>の内部の要素などの描画されない要素は、描画されなかったボックスを報告するのではなく、Element.getBoundingClientRect()から空の矩形を、またElement.getClientRects()から空のリストを返すようになりました (Firefox bug 2061646)。
Media、WebRTC、Web Audio
RTCDataChannelオブジェクトで発生するerrorイベントが、トランスポートがエラーによって閉じられた場合に自身のerror.errorDetailプロパティでsctp-failureを報告するようになりました。 さらに、RTCErrorおよびRTCErrorEventが専用ワーカーで使用可能になりました (この公開はまだ仕様書に含まれていません) (Firefox bug 1814460)。RTCPeerConnection.sctpプロパティが、仕様で求められているタイミングでRTCSctpTransportを返すようになりました。これは、以前はnullであったhave-remote-offerシグナリング状態を含みます。 また、トランスポートはconnectedおよびclosed状態にも到達するようになり、そのmaxChannelsおよびmaxMessageSizeプロパティが正しく設定されるようになりました (Firefox bug 2019361、Firefox bug 2056412)。- RTP の 2 バイトヘッダー拡張をサポートしました。ID が 15 以上のヘッダー拡張で
OperationErrorが発生することなくネゴシエーション可能になりました (Firefox bug 2014357)。 selectedCandidatePairChangesプロパティがRTCTransportStatsで報告されるようになりました (Firefox bug 2055911)。RTCPeerConnection.getStats()で返されるtransport統計がネゴシエーションの前、言い換えるとsetLocalDescription()より後でリモートデスクリプションが設定される前の状態でも正しく返されるようになりました。 DTLS ハンドシェイクがロールを選択するまで、dtlsRoleプロパティがunknownを報告するようになりました。以前は何も報告されませんでした (Firefox bug 2053296)。またiceStateプロパティが、接続性の確認がすでに進行中であると誤って示していたcheckingではなくnewから開始するようになりました (Firefox bug 2053297)。
WebAssembly
- compact import section バイナリー形式拡張をサポートしました。これは、多くの
import文があるモジュールのサイズを削減します (Firefox bug 2062344)。 - wide arithmetic 提案をサポートして、
i64.add128、i64.sub128、i64.mul_wide_s、i64.mul_wide_u命令を追加しました。 これらは 64 ビットのオペランドから 128 ビットの結果を生成します。以前は bignum や暗号ライブラリーなど、WebAssembly にコンパイルしたコードでのエミュレーションが必要でした (Firefox bug 2062374)。
WebDriver への適合 (WebDriver BiDi, Marionette)
一般
- ダウンロードを開始する際に現在のドキュメントがフォーカスを失うことを防ぐため、ダウンロードパネルを無効化しました (Firefox bug 2035439)。
- macOS 以外のプラットフォームで、
Ctrlキーを押下しながらダブルクリックしたときにdblclickイベントが発生するように Actions API を修正しました (Firefox bug 2058556)。
WebDriver BiDi
- Mozilla 固有の
moz:debuggingモジュールを、開発ツールと同一のネストされたイベントループ API に依存しないように更新しました。これにより、WebDriver BiDi と開発ツールを併用する際の競合を防ぎます (Firefox bug 2041335)。 - フレームに対して使用した
browsingContext.reloadコマンドが失敗する不具合を修正しました (Firefox bug 2030909)。 session.unsubscribeコマンドの引数contextsのサポートを削除しました。今後、クライアントはイベント名またはサブスクリプション ID によってのみサブスクライブを解除できます (Firefox bug 1988723)。
実験的なウェブ機能
以下の機能は Firefox 155 で導入しましたが、デフォルトで無効です。
これらを実験するには、about:config ページで適切な設定項目を検索して true に設定してください。
実験的機能 のページで、さらに多くの機能を確認できます。
-
スクロール駆動アニメーション:
layout.css.scroll-driven-animations.enabledスクロール駆動アニメーション は、時間ではなくスクローラーの位置またはスクローラー内の要素の位置によってアニメーションを進行できます。 この設定は
scroll-timelineおよびview-timelineプロパティと、view-timeline-insetプロパティを含むこれらのロングハンドプロパティ、scroll()およびview()関数表記が対象です。 このリリースではview-timeline-insetロングハンドプロパティをview-timelineショートハンドプロパティに追加しました (Firefox bug 2046602)。 -
CSS 型付きオブジェクトモデル Level 1:
layout.css.typed-om.enabledCSS 型付きオブジェクトモデル API は CSS の値を文字列ではなく型付き JavaScript オブジェクトとして公開することにより、スクリプトによる CSS プロパティの操作を簡素化します (Firefox bug 1278697)。
-
at-rule()サポート確認:layout.css.supports.at-rule.enabled@supportsアットルールの内のat-rule()関数により、指定した CSS アットルールをブラウザーがサポートしているかを確認できます (例:@supports at-rule(@scope)) (Firefox bug 2060754)。 -
オーディオセッション API:
dom.audio_session.enabledオーディオセッション API は、サイトの音声がデバイスで再生されている別の音声に対してどのように振る舞うべきかについて、ほかの音声とのミックス、ダッキング、中断といった設定ができます (Firefox bug 2055710)。
-
CSS 基本図形で
farthest-cornerおよびclosest-cornerキーワードを使用可能:layout.css.ellipse-corners.enabledellipse()およびcircle()CSS 基本図形の半径の値を指定するために、farthest-cornerおよびclosest-cornerキーワードが使用可能になりました (Firefox bug 2037673)。 -
line-clampによるコンテンツの切り詰め:layout.css.line-clamp.enabledline-clampCSS プロパティが-webkit-ベンダー接頭辞なしで動作します。また、テキストを切り詰めた場所に表示する内容を選択するno-ellipsisキーワードおよび<string>値をサポートしました (Firefox bug 2042999、Firefox bug 2043000)。 -
スコープつきカスタム要素レジストリー:
dom.scoped-custom-element-registries.enabledCustomElementRegistryを構築してElement.attachShadow()に渡すことが可能になり、グローバルレジストリーで定義されたものと衝突しないカスタム要素をシャドウルートが定義できます (Firefox bug 2018900)。 このリリースではcustomelementregistryグローバル属性も追加しました。これは、要素を関連づけるレジストリーをマークアップから選択します (Firefox bug 2029965)。 -
正規表現のバッファー境界アサーション: (Nightly 限定)
javascript.options.experimental.regexp_buffer_boundariesTC39 RegExp buffer boundaries 提案 は、
\A、\z、\Zアサーション を正規表現に追加します。これらはmフラグが設定されているかに関係なく、入力全体の先頭または末尾に一致します (Firefox bug 2047706)。 -
background-clipの値border-area:layout.css.background-clip.border-area.enabledbackground-clipCSS プロパティの値border-areaは、背景を要素のボーダーによって描画される領域によって切り抜きます。これによりグラデーションや画像をボーダーとして使用できます (Firefox bug 2045230)。 -
view-timelineがview-timeline-insetを包含:layout.css.scroll-driven-animations.enabledview-timelineショートハンドプロパティでview-timeline-insetプロパティをサポートしました。このショートハンドプロパティはビューの進行タイムラインの位置を調整するために、開始値や終了値のインセット (またはオフセット) を指定できます (Firefox bug 2046602)。