Firefox 149 release notes for developers (Stable)
このページでは、開発者に影響する Firefox 149 の変更点をまとめています。 Firefox 149 は、米国時間 2026 年 3 月 24 日 にリリースされました。
ウェブ開発者向けの変更点一覧
>HTML
popoverグローバル属性で値hintをサポートしました。hintのポップオーバーは表示されるときにautoのポップオーバーを閉じませんが、ほかの hint ポップオーバーを閉じます (Firefox bug 1867743)。
MathML
- CSS の
font-family: mathプロパティをサポートして、デフォルトで<math>要素へ適用するようになりました。 これは基盤の OS でどのフォントが提供されているかを知る必要なく、ウェブサイトが適切な数式フォントや MathML を使用できることを確実にします (Firefox bug 2014703)。
CSS
-
shape-outsideCSS プロパティでxywh()およびrect()関数を値としてサポートしました。これらの関数は以前からclip-pathおよびoffset-pathプロパティ向けに実装しており、shape-outsideでも使用可能になりました (Firefox bug 1983187)。 -
vertical-alignCSS プロパティがalignment-baseline、baseline-shift、baseline-sourceのショートハンドプロパティになりました (Firefox bug 1830771)。 -
@containerアットルール 条件の、<container-query>の部分が省略可能になりました。 これにより、コンテナーの名前のみに基づいてマッチングすることができます (Firefox bug 2016474)。
JavaScript
Intlで"islamic-umalqura"の 暦 をサポートしました。 この文字列はIntl.supportedValuesOf()が返す暦のリストに含まれており、またDateTimeFormat()コンストラクター の引数options.calendarとして設定できます (Firefox bug 2011505)。
API
-
Window.createImageBitmap()およびWorkerGlobalScope.createImageBitmap()で引数options.resizeQualityをサポートしました。 また、これらのメソッドでリサイズのオプション (options.resizeWidthまたはoptions.resizeHeight) とビットマップの引数 (sx、sy、sw、sh) を同時に設定できるようになりました。以前は、両方とも設定するとスケーリングしていない元のビットマップを返していました (Firefox bug 2010125)。 -
Reporting API が、Content Security Policy (CSP) および
Integrity-Policyの違反の報告をサポートしました。 この API はReportingObserverを使用して、違反しているページのCSPViolationReportおよびIntegrityViolationReportオブジェクトを報告できます (報告はtypeプロパティの"csp-violation"または"integrity-violation"によってフィルタリングできます)。 シリアライズした報告オブジェクトは、対応する HTTP ヘッダーで指定した報告サーバーへ送信することもできます。エンドポイントの名前と対応する URL は、はじめにReporting-EndpointsまたはReport-ToHTTP レスポンスヘッダーで定義しなければなりません (Firefox bug 1976074、Firefox bug 2008916)。 -
Firefox 148 まで
structuredClone.call(iframe.contentWindow)が、誤って iframe の レルム ではなく呼び出し元のレルムでオブジェクトを作成していました。この実装がthisのレルムでオブジェクトをインスタンス化するようになり、メソッドの動作がより厳密に、仕様書に準拠します。
DOM
-
HTMLSelectElement.showPicker()メソッドを、<datalist>で定義したオプションのリストでサポートしました。 これにより、ユーザー操作が発生したときにブラウザーが<datalist>のピッカーをプログラムから表示させることができます (Firefox bug 1998668)。 -
CloseWatcherインターフェイスをサポートしました。 これにより開発者は Windows の Esc キーや Android の 戻る キーのようなデバイスネイティブの仕組みを使用して閉じることができるコンポーネントを、ダイアログ や ポップオーバー などの組み込みコンポーネントと同じように実装できます (Firefox bug 1966073)。 -
DOM メソッドで、要素や属性の名前としてより広い範囲の文字を受け入れるようになりました。 以前は DOM メソッドで大きな制限がありましたが、現在は HTML パーサーと同じ文字セットが許可されています。 影響があるメソッドは以下のとおりです:
DocumentインターフェイスのcreateAttribute()、createAttributeNS()、createElement()、createElementNS()、ElementインターフェイスのtoggleAttribute()、setAttribute()、setAttributeNS()、DOMImplementationインターフェイスのcreateDocument()、CustomElementRegistryインターフェイスのdefine()、whenDefined()(Firefox bug 1773312)。
Media、WebRTC、Web Audio
-
HTMLMediaElement.captureStream()メソッドをサポートしました。 これは、要素のコンテンツのリアルタイムキャプチャーをストリーミングするオブジェクトを返します。 このストリームは、たとえば WebRTCRTCPeerConnectionのソースとして使用できます。 以前はcaptureStream()が、非標準のmozCaptureStream()メソッドとしてのみ使用可能でした (Firefox bug 2017708)。 -
MediaElementAudioSourceNodeが、(仕様書での要件により) すべての種類のソースにおいて音声をキャプチャーする際にメディア要素の音量に従うようになりました。 以前は、要素の音量設定がMediaStreamのソースとしてキャプチャーした音声に影響がありませんでした (Firefox bug 2010427)。 -
HTMLMediaElement.mozCaptureStream()メソッドが (仕様書での要件により)、メディア要素が再生しているソースの種類に関係なく、メディア要素の音量を適用せずにソースから生の音声をキャプチャーするようになりました。 この変更を施す前はメディア要素の音量が、キャプチャーしたストリームの音量に影響を与えていました (Firefox bug 2010427)。
WebDriver への適合 (WebDriver BiDi, Marionette)
一般
- WebDriver BiDi および WebDriver classic プロトコルで、要求したスクリーンショットの領域がサポートされる最大寸法を超えた場合に、黙ってクリッピングするのではなく正しくエラーを返すようにスクリーンショットの実装を更新しました (Firefox bug 1994148)。
- WebDriver BiDi および WebDriver classic プロトコルで、入力ソース型
wheelによるscrollアクションが視覚的なビューポートの寸法を超えてスクロールできるように、アクションの実装を更新しました (Firefox bug 1962355)。
WebDriver BiDi
session.newコマンドのケイパビリティを通して設定可能な、ユーザープロンプトの自動処理をサポートしました (Firefox bug 1905086)。browser.setDownloadBehaviorコマンドを追加しました。これはクライアントがダウンロードを許可または拒否する、および個別のダウンロードフォルダーを設定することができます。この動作はセッションごと、またはユーザーコンテキストごとに設定できます (Firefox bug 1989022)。- ワーカーレルム (専用ワーカー、共用ワーカー、サービスワーカー) 向けに
script.realmCreatedおよびscript.realmDestroyedイベントを追加しました (Firefox bug 1936770)。 - Android で
browsingContext.userPromptOpenedおよびbrowsingContext.userPromptClosedイベントが、誤って iframe のコンテキスト ID ではなくトップレベルのコンテキスト ID を報告していた問題を修正しました (Firefox bug 2007385)。 - ユーザーエージェントに固有のシャドウルートを公開しないように、DOM ノードのシリアライズ処理を修正しました (Firefox bug 2016673)。
window.openコマンドでブラウジングコンテキストを作成する場合に、コマンドから返る前にエミュレーション、ビューポートの上書き、プリロードスクリプトを確実に適用するように、新しいブラウジングコンテキストに異なる設定を適用する処理を更新しました (Firefox bug 1985997、Firefox bug 2005546、Firefox bug 2005558)。
Marionette
- いくつかの WebDriver classic コマンドを、
implicitおよびpageLoadのタイムアウトをスクリプトのタイムアウトと同様に処理するように更新しました。タイムアウトを無効にするための値nullを受け入れます (Firefox bug 2008345)。
アドオン開発者向けの変更点一覧
-
分割ビューの初期サポートを追加しました。以下のサポートを含みます:
tabs.query、tabs.onUpdated、tabs.Tabに分割ビューの ID が含まれます。tabs.moveまたはtabs.removeが分割ビュー内のタブを含む場合の動作に関する文書 (Firefox bug 1993037)。
-
action.isEnabledおよびbrowserAction.isEnabledのトップレベルの引数としてtabIdを追加しました。この変更は、Chrome のaction.isEnabledの実装との互換性を提供します (Firefox bug 2013477)。 -
ポップアップを開くための
action.openPopupおよびbrowserAction.openPopupで、ユーザーのジェスチャーが必要ではなくなりました。この機能は Firefox 108 から、設定extensions.openPopupWithoutUserGesture.enabledによって使用できました。この変更は、Firefox の動作を Chrome や Safari に合わせるものです (Firefox bug 1799344)。 -
action.openPopupまたはbrowserAction.openPopupにwindowIdが渡された場合に、ポップアップを開くためにウィンドウにフォーカス (アクティブ) を設定しなければなりません。フォーカスがないウィンドウでポップアップを開くには、初めにwindows.update(windowId, { focused: true })を呼び出さなければなりません。この変更は Firefox の動作を Chrome に合わせるものです (Firefox bug 2011516)。 -
structuredCloneの実装を、呼び出し元のレルムではなくthisのレルムでオブジェクトをインスタンス化するように変更しました。後方互換性のためコンテンツスクリプトのグローバルスコープに、window.structuredCloneをシャドーイングする独自のstructuredCloneメソッドを含むようになりました。詳しくは Sharing objects with page scripts のstructuredCloneをご覧ください。 -
拡張機能が
tabs.executeScript、tabs.insertCSS、tabs.removeCSS、scripting.executeScript、scripting.insertCSS、scripting.removeCSSによって、moz-extension:文書で動的にコードを実行する機能が非推奨になりました (Firefox bug 2011234)。この機能は Firefox Nightly では使用できず、Beta および Release 版の Firefox ではタブのコンソールで警告が表示されます。この制限は Firefox 152 以降ですべてのバージョンに適用する予定です。(Firefox bug 2015559) 代替手段として文書のスクリプトでruntime.onMessageリスナーを登録して、要求したコードを実行するためにメッセージを送信することで、拡張機能が文書内で動的にコードを実行できます。 -
ダークテーマで ページアクション の SVG アイコンに適用される暗黙的な CSS フィルターが、Nightly ビルドで無効化されました (Firefox bug 2001318)。また Firefox 152 から、ほかのエディションでも無効化する予定です (Firefox bug 2016509)。ほかの Firefox エディションでは、
about:configでブーリアン型の設定項目extensions.webextensions.pageActionIconDarkModeFilter.enabledを作成してfalseを設定することで、CSS フィルターを無効にしたページアクション SVG アイコンのテストを行えます。
実験的なウェブ機能
以下の機能は Firefox 149 で導入しましたが、デフォルトで無効です。
これらを実験するには、about:config ページで適切な設定項目を検索して true に設定してください。
実験的機能 のページで、さらに多くの機能を確認できます。
-
attr()CSS 関数の値<attr-type>:layout.css.attr.enabledattr()CSS 関数で値<attr-type>をサポートしました。これは属性値をどのように CSS の値へ解析するかを指定して、data-*からそれらの値を直接取り出すことができます (Firefox bug 1986631 & Firefox bug 1998245)。 -
color-mix()が複数の色の引数を受け入れる:layout.css.color-mix-multi-color.enabledcolor-mix()CSS 関数で、<color>の値を 2 つだけでなく複数個サポートしました。これにより多くの色を混ぜ合わせて、それぞれのパーセンテージを設定できます (Firefox bug 2007772)。 -
メディアベースの擬似クラス:
dom.media.pseudo-classes.enabledメディアベースの擬似クラスである
:buffering、:muted、:paused、:playing、:seeking、:stalled、:volume-lockedは<audio>および<video>要素に対して、再生中や一時停止など要素の現在の状態に基づいてスタイルを設定できます (Firefox bug 1707584、Firefox bug 2014512)。 -
colorinput 要素のalphaおよびcolorspace属性 (Nightly 限定):dom.forms.html_color_picker.enabledHTML の
<input type="color">要素でalphaおよびcolorspace属性をサポートしました (Firefox bug 1919718)。 -
@container style()クエリー (Nightly):layout.css.style-queries.enabled@containerCSS アットルールでstyle()クエリーをサポートしました。これはコンテナーが有効な CSS 宣言、CSS プロパティ、カスタムプロパティを保持しているかを確認して、その結果に従って子孫にスタイルを適用することができます (Firefox bug 2014404)。 -
CSS Typed Object Model Level 1:
layout.css.typed-om.enabledCSS Typed Object Model Level 1 仕様を実装しました。 このリリースでは
CSSNumericValueインターフェイスのto()メソッドをサポートしており、CSS の数値をある単位から別の単位に変換できます (Firefox bug 1278697)。 -
JPEG XL 画像のサポート: Rust によるデコーダー (Nightly 限定):
image.jxl.enabled以前の C++ による JPEG XL 画像デコーダーを、
jxl-rsライブラリーを使用する新たな Rust による実装に置き換えました (Firefox bug 1986393)。