Firefox 128 開発者向けリリースノート
このページでは、開発者に影響する Firefox 128 の変更点をまとめています。Firefox 128 は、米国時間 2024 年 7 月 9 日 にリリースされました。
ウェブ開発者向けの変更点一覧
>HTML
<base>要素のtargetで ASCII の改行、タブ、<の文字が禁止されて、それらが存在する場合は値を_blankに変更します。これは、閉じていないtarget属性を使用するダングリングマークアップインジェクション攻撃を防止します (Firefox バグ 1835157)。
CSS
- 相対的な色の構文 をデフォルトで有効にしました。相対的な色の構文により、元の色に対して相対的な色の値を作成できます。また、色関数 を使用して異なる 色空間 の色の値に変換できます (Firefox バグ 1900251)。
contentプロパティで、画像を含むコンテンツのための 代替テキスト をサポートしました。代替テキストは、ブラウザーのアクセシビリティツリーに現れます (Firefox バグ 1281158、Firefox バグ 1896047)。@propertyアットルールのsyntax記述子で、<string>構文のコンポーネント名に対応しました(Firefox バグ 1846635 を参照)。
廃止
- メイソンリーレイアウトのプロパティである
align-tracksおよびjustify-tracksを削除しました。これらのプロパティは Firefox のみ実装しており、最近 仕様書から削除されました (Firefox バグ 1900195)。
JavaScript
- サイズ変更可能な
ArrayBufferと拡張可能なSharedArrayBufferをサポートしました。新しいバッファーを割り当ててデータをコピーする必要なく、バッファーのサイズを変更できます (Firefox バグ 1884150)。 関連するメソッドやプロパティは以下のとおりです。SharedArrayBuffer.prototype.grow()メソッドを使用してSharedArrayBufferを拡張します。 バッファーで許可される最大サイズは、SharedArrayBuffer()コンストラクター のoptions.maxByteLength引数で設定します。SharedArrayBuffer.prototype.growableおよびSharedArrayBuffer.prototype.maxByteLengthプロパティはそれぞれバッファーが拡張可能であるか、および許可される最大サイズを表します。ArrayBuffer.prototype.resize()メソッドを使用してArrayBufferのサイズを変更します。 バッファーで許可される最大サイズは、ArrayBuffer()コンストラクター のoptions.maxByteLengthパラメーターで設定します。ArrayBuffer.prototype.resizableおよびArrayBuffer.prototype.maxByteLengthプロパティはそれぞれバッファーがサイズ変更可能であるか、および許可される最大サイズを表します。
HTTP
- 既定のリクエストと画像のリクエスト で、HTTP
Acceptヘッダーにimage/svg+xmlMIME タイプを含むようになりました (Firefox バグ 1711622)。 - HTTP
Priorityリクエストヘッダーおよびレスポンスヘッダーを含む、RFC 9218: Extensible Prioritization Scheme for HTTP をサポートしました。これは、コネクションで送信するリソースに対して想定する相対的な優先度と、ヘッダーが送信された後に優先度を変更できる HTTP/2 および HTTP/3 のPRIORITY_UPDATEをクライアントが示すことを可能にします (Firefox バグ 1865040)。
API
RTCRtpReceiver.getParameters()およびRTCRtpSender.getParameters()をサポートしました。それぞれ、受信トラックおよび送信トラックでエンコードや伝送に使用する現在のコーデックを表すオブジェクトを返します (Firefox バグ 1534687)。Request.bytes()およびResponse.bytes()をサポートしました。それぞれ、RequestおよびResponseからUint8Arrayを取得するのに便利な手段です (Firefox バグ 1896475)。PushMessageData.bytes()をサポートしました。プッシュメッセージからUint8Arrayオブジェクトのバイト配列としてデータを返します (Firefox バグ 1897871)。Blob.bytes()をサポートしました。BlobからUint8Arrayオブジェクトのバイト配列としてデータを返します (Firefox バグ 1896509)。MediaKeys.getStatusForPolicy()をサポートしました。DRM で保護されたコンテンツを復号するために使用する CDM モジュールが、システムでサポートされる High-bandwidth Digital Content Protection (HDCP) バージョンのような指定されたポリシー要件に基づく "仮想" キーに暗号化されたメディアの提示を許可するかを確認します。 これは最適な解像度での再生が許可されるかを、メディアキーセッションを作成したり実際のライセンスを取得したりする必要なく事前に知るためのシンプルな仕組みをアプリケーションに提供します (Firefox バグ 1878714)。RTCRtpTransceiver.setCodecPreferences()をサポートしました。WebRTC のローカルピアが受信したデータをデコードするために使用できるコーデックを、好みの順番で設定します。ウェブアプリケーションは、リモートピアに好みのコーデックを選択させたり、(再送信、冗長化、前方誤り訂正に使用するものを含む) 特定のコーデックのネゴシエーションを無効にしたりするためにこのメソッドを使用できます (Firefox バグ 1396922)。ShadowRoot.getHTML()、Element.getHTML()メソッド、およびこれらに関連するShadowRoot.serializable、HTMLTemplateElement.shadowRootSerializableプロパティを含む、宣言的なシャドウ DOM のシリアライズをサポートしました。CSSPropertyRuleインターフェイスをデフォルトで有効にして、CSS の@propertyアットルールを表すようになりました。このインターフェイスはname、syntax、inherits、initialValueのような、@propertyアットルールを使用して定義した CSS カスタムプロパティの値を取得できます (Firefox バグ 1864818)。registerProperty()メソッドをデフォルトで有効にしました。JavaScript で CSS カスタムプロパティ を定義できます。これは、CSS の@propertyアットルールを使用することに似ています (Firefox バグ 1864818)。
Media、WebRTC、Web Audio
廃止
- 非標準の
HTMLMediaElement.seekToNextFrame()メソッドを削除しました。現在はどのブラウザーもサポートしていません (Firefox バグ 1336404)。
WebDriver conformance (WebDriver BiDi, Marionette)
一般
- 文字列 (WebDriver クラシック) または JSON オブジェクト (WebDriver BiDi) のいずれかになり得る、拡張された "unhandledPromptBehavior" をサポートしました。オブジェクト型は "beforeunload" プロンプトの処理など、WebDriver BiDi 向けにより多くの機能を提供します (Firefox バグ 1884650)。
WebDriver BiDi
- WebDriver BiDi 仕様に準拠して、WebDriver セッションの "BiDi フラグ" をサポートしました。これにより、WebDriver BiDi 向けに作成またはアップグレードしたセッションを識別できます (Firefox バグ 1898719)。
network.continueRequestコマンドでいくつかの引数をサポートしました。これらはリクエストがネットワークへ送信される前に、ヘッダー、Cookie、メソッド、内容を変更することを可能にします (Firefox バグ 1850680)。permissions.setPermissionコマンドで引数userContextをサポートしました。これは特定のユーザーコンテキスト (Firefox ではコンテナーとして実装) へのパーミッションを分離することを可能にします (Firefox バグ 1894217)。browsingContext.navigateで、ナビゲーションエラーによりエラーページが読み込まれて以降のコマンドが失敗する不具合を修正しました (Firefox バグ 1878690)。- リダイレクトにより
network.responseCompletedイベントが発生する順序を修正しました。元のリクエストのresponseCompletedが、常にリダイレクトのイベントより前に発生するようになりました (Firefox バグ 1879580)。 - 現在の Firefox の動作に合わせて、対象のコンテキストに読み込まれたページと同じドメインに "storage.setCookie" コマンドで追加された Cookie を分離しないための回避策を導入しました (Firefox バグ 1898222)
input.setFilesコマンドを、指定したファイルが存在しない場合にUnsupportedOperationエラーが発生するように更新しました (Firefox バグ 1887644)。
Marionette
- WebDriver クラシック仕様に準拠して、WebDriver セッションの "HTTP フラグ" をサポートしました。これにより、WebDriver クラシック向けに作成したセッションを識別できます (Firefox バグ 1884090)。
- WebDriver クラシックで Permissions API をサポートしました (Firefox バグ 1524074)。
アドオン開発者向けの変更点一覧
- 静的な宣言型ネットワークリクエストのルールセットのルールを
declarativeNetRequest.updateStaticRulesで有効化または無効化する機能、および静的ルールセットで無効化されたルールをdeclarativeNetRequest.getDisabledRuleIdsで取得する機能を追加しました (Firefox バグ 1810762)。 declarative_net_requestマニフェストキー で定義された静的な宣言型ネットワークリクエストのルールが、認識できないプロパティを含むがほかのプロパティが有効である場合に読み込まれるようになりました (Firefox バグ 1886608)。MAX_NUMBER_OF_DYNAMIC_RULESとMAX_NUMBER_OF_SESSION_RULESをdeclarativeNetRequestに導入しました。これらのプロパティは、拡張機能が追加できる動的ルールおよびセッションスコープのルールの最大数を表します。これらは、非推奨となったMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULESを置き換えるものです (Firefox バグ 1894128)。proxy.settingsプロパティのproxyDNSの既定値が、SOCKS4 を使用する場合はfalse、SOCKS5 を使用する場合はtrueになりました。以前は、SOCKS4 および SOCKS5 で既定値がfalseでした (Firefox バグ 1741375)。webRequest.onAuthRequiredで"asyncBlocking"をaddListenerのextraInfoSpec引数に指定することにより、非同期に認証リクエストを処理する方法の対応が提供されました (Firefox バグ 1889897)。- optional_host_permissions マニフェストキーが追加されました。このキーを有効にすると、ホストデータを読み取ったり変更したりする拡張機能内の API に対して、実行時にアクセスリクエスト(拡張機能のインストール後にユーザーによって許可されるアクセス)をすることができます (Firefox バグ 1766026)。
- 非標準の Web API イベント
overflowおよびunderflowが非推奨になりました。Firefox 131 のリリースより前に、拡張機能の文書からこれらのイベントの使用方法を削除する予定です (Firefox バグ 1898445)。 - ウェブページの実行環境でスクリプトを実行する機能をサポートしました。これは
scriptingAPI でExecutionWorldのMAINをサポートすること、contentScripts.register()API にworldを追加すること、content_scriptsマニフェストキーでworldをサポートすることにより提供されます (Firefox バグ 1736575)。 scriptingAPI が、about:blank、about:srcdoc、data:URL によりサンドボックス化されたページへスクリプトや CSS を挿入できるようになりました。これはscripting.RegisteredContentScriptへmatchOriginAsFallbackを導入することにより、scripting.executeScript、scripting.insertCSS、scripting.removeCSS(Firefox バグ 1475831 およびscripting.registerContentScripts、scripting.updateContentScripts(Firefox バグ 1853411 に実装しました。- コンテンツスクリプトは、サンドボックス化された
http、https、file:URL 上で動作するようになりました (Firefox バグ 1411641)。 content_scriptsマニフェストキー でmatch_origin_as_fallback、およびcontentScripts.registerでmatchOriginAsFallbackをサポートしました。CSP や iframe サンドボックスの使用によりドキュメントのオリジンが不明瞭なときに、about:、data:、blob:ページへスクリプトを挿入可能にします (Firefox バグ 1475831、Firefox バグ 1896669)。また、match_origin_as_fallbackがtrueである場合に、content_scriptsマニフェストキーで登録されたスクリプトをblob:ページに限り実行可能になりました (Firefox バグ 1897113)。declarativeNetRequest.RuleConditionのdomainTypeプロパティの対応が追加されました (Firefox バグ 1797408)。- マニフェストキー
browser_specific_settings.geckoに認識されないプロパティが含まれている拡張機能は、警告が表示された上で読み込まれるようになりました。従来は、これらの拡張機能はインストール時にエラーとなっていました。これにより、新しいbrowser_specific_settings.geckoプロパティが追加された場合でも、その新しいプロパティを使用する拡張機能が、このリリース以前の Firefox のバージョンでも読み込まれるようになります (Firefox バグ 1757293)。 - 非永続的なバックグラウンドスクリプトを使用する拡張機能において、
menus.createで作成されたコンテキストメニューは、拡張機能の再起動後もより確実に維持されるようになりました。以前は、再起動時にメニューの登録が消えてしまう場合がありました (Firefox バグ 1771328)。
実験的なウェブ機能
以下の機能は Firefox 128 で新たに導入しましたが、デフォルトで無効です。これらを実験するには、about:config ページで適切な設定項目を検索して true に設定してください。実験的機能 のページで、さらに多くの機能を確認できます。
-
既定および画像のリクエストで
image/jxlMIME タイプを Accept ヘッダーに追加:image.jxl.enabled.- 既定のリクエストと画像のリクエスト で、HTTP
Acceptヘッダーでimage/jxlMIME タイプのサポートを示すように設定できます (Firefox バグ 1711622)。
- 既定のリクエストと画像のリクエスト で、HTTP
-
Cookies Having Independent Partitioned State (CHIPS):
network.cookie.CHIPS.enabled。CHIPS, または "partitioned cookies" は、開発者が
Set-CookieHTTP ヘッダーのpartitionedディレクティブを使用して、Cookie を分離された記憶領域へ保存できるようにします。これを設定すると Cookie がトップレベルごとに分離された記憶領域に保存されて、同じトップレベルサイトかサブドメインに限り読み取れるようになります。これはクロスサイトトラッキングを防ぎながら、サイトのさまざまなサブドメインにわたって埋め込み地図やチャットウィジェットの状態を維持するなどの、適切なサードパーティ Cookie の利用を可能にします (Firefox バグ 1898253)。 -
Privacy Preserving Attribution API (PPA):
dom.origin-trials.private-attribution.state.PPA API は、
saveImpression()およびmeasureConversion()メソッドを備えた新しいnavigator.privateAttributionオブジェクトを使用することで、広告アトリビューションにおけるユーザー追跡に代わる手段を提供します。PPA の詳細については、元の解説記事および提案された仕様書をご覧ください。この実験機能は、オリジントライアルを通じてウェブサイトで有効にするか、ブラウザーの環境設定を1に設定することで有効にすることができます。 (Firefox バグ 1900929).