Chrome 146

安定版リリース日: 2026 年 3 月 10 日

特に記載がない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの Chrome 146 Stable チャンネル リリースに適用されます。

CSS と UI

スクロールでトリガーされるアニメーション

この機能により、スクロール位置に基づくアニメーションの制御(アニメーションの再生、一時停止、リセットなど)が可能になります。

ウェブ上のページでよく見られるパターンは、スクロール位置に達したときにアニメーションを開始することです。デベロッパーは多くの場合、JavaScript を使用して、要素がスクロール コンテナのビューポート内にあることを手動で検出し、対応するアニメーション(要素をビューにスライドさせるなど)を開始します。これらのユースケースの多くは、宣言的に提供される情報に依存しています。この機能を使用すると、CSS でこのようなインタラクションを宣言的に作成できます。これにより、ユーザー エージェントはこのインタラクションをワーカー スレッドにオフロードできます。この API には、CSS アニメーションに加えてウェブ アニメーションにも機能を拡張できる JavaScript インターフェースも含まれています。

トラッキング バグ #390314945 | ChromeStatus.com のエントリ | 仕様

trigger-scope プロパティ

trigger-scope プロパティを使用すると、trigger-instantiating properties によって宣言された animation triggers の名前を制限できます。

たとえば Trigger-instantiating propertiestimeline-trigger など)は、animation-trigger プロパティが参照してアニメーションをトリガーに適用できる名前を宣言します。ただし、これらの名前はデフォルトでグローバル(anchor-name と同様)であり、アニメーションとトリガーのインタラクションを分離するために、名前の可視性を制限すると便利なことがよくあります。

トラッキング バグ #466134208 | ChromeStatus.com のエントリ | 仕様

meta name="text-scale"

root element のデフォルトのフォントサイズは、オペレーティング システムとブラウザの両方のテキスト スケール設定に比例して拡大縮小されます。これにより、font-relative units に関するベスト プラクティス(つまり、ユーザーのテキストサイズ設定に合わせて調整されるフォントサイズとページ要素に remem を使用する)に準拠するページで、ユーザーの OS レベルのテキスト スケール設定が尊重されます。また、既存のブラウザベースのメカニズム(ウィンドウのページ全体のズームなど)とヒューリスティック(モバイルのテキストの自動サイズ調整など)も無効になります。さまざまなユーザーが選択したフォントサイズ設定で適切にスケーリングされる方法(つまり、remem を使用)でページが構築されていることをブラウザに通知できます。テキスト スケールにアクセスする方法を提供する env(preferred-text-scale) と同様に、この API は root element のデフォルトのフォントサイズを使用してスケーリングを有効にし、テキストの自動スケーリングを無効にすることで、この機能を拡張します。

トラッキング バグ #430566925 | ChromeStatus.com のエントリ | 仕様

スコープ付きカスタム要素レジストリ

この機能により、1 つのタグ名に対して複数のカスタム要素定義をページ内に存在させることができます。これにより、ウェブアプリが複数のソースのライブラリを使用している場合に、カスタム要素名の競合を防ぐことができます。これは、ユーザーコードが複数のカスタム要素レジストリを作成し、それらをツリー スコープとスコープ オブジェクトとして機能する要素に関連付けることで実現されます。

トラッキング バグ #40826514 | ChromeStatus.com エントリ | 仕様

機能

ファイル処理中に targetURL を入力する

Launch Handler の実装により、ファイル処理で PWA が起動されたときに LaunchParams.targetURL が確実に設定されるようになりました。この変更前は、ファイルの起動が既存のウィンドウに転送された場合、プロパティは null でした。この変更により、マニフェストの action フィールドの URL(ドキュメントが現在読み込む必要がある URL と同じ)が launchQueue コンシューマーで使用できるようになります。

トラッキング バグ #464314997 | ChromeStatus.com のエントリ | 仕様

再読み込み時に LaunchParams の再キューイングを停止

ユーザーがページを再読み込みしたときに、launchQueue が最後の LaunchParams(ファイル ハンドルを含む)を再送信しないようにします。以前は、ページを更新すると、元の起動のデータを使用して起動コンシューマーが再度トリガーされていました。この変更により、再読み込みは「再起動」ではなく標準のナビゲーションとして扱われるようになり、新しいファイル起動イベントが発生しない限り、launchQueue に重複ファイルが入力されることはありません。

トラッキング バグ #40204185 | ChromeStatus.com のエントリ

DOM

Navigation API: precommit から post-commit handler を追加

navigate イベントでナビゲーションをインターセプトする場合、precommitHandlers とコミット後の通常のハンドラは別々に渡されます。

これは、どちらか一方しかない場合はうまく機能しますが、フローに post-commit handler につながる precommitHandler が含まれている場合は、面倒になる可能性があります。

この追加は、コミット前ハンドラを呼び出しながらコミット後ハンドラを登録できる、小さな人間工学的な改善です。

トラッキング バグ #465487215 | ChromeStatus.com エントリ | 仕様

グラフィック

WebGPU: テクスチャとサンプラーの Let

WGSL の let 宣言に texture オブジェクトと sampler オブジェクトを保存できる言語機能 texture_and_sampler_let を WGSL に追加します。

トラッキング バグ #459500757 | ChromeStatus.com のエントリ | 仕様

WebGPU: 一時的なアタッチメント

この機能は、ブラウザでの最初の出荷後に WebGPU 仕様に機能を追加します。

新しい TRANSIENT_ATTACHMENT GPUTextureUsage を使用すると、レンダリング パス オペレーションをタイルメモリに保持し、VRAM トラフィックを回避し、テクスチャの VRAM 割り当てを回避できるアタッチメントを作成できます。

トラッキング バグ #462620664 | ChromeStatus.com のエントリ | 仕様

WebGPU 互換モード

このモードでは、古いグラフィック API(OpenGLDirect3D11 など)を実行できる、WebGPU API の制限付きサブセットが追加されます。このモードを選択し、その制約に従うことで、WebGPU アプリケーションのリーチを、WebGPU のコアで必要となる最新の明示的なグラフィック API を備えていない多くの古いデバイスにまで広げることができます。単純なアプリケーションの場合、必要な変更は requestAdapter を呼び出すときに compatibility featureLevel を指定することだけです。より高度なアプリケーションでは、モードの制限に対応するために、いくつかの変更が必要になる場合があります。互換モードはサブセットであるため、結果として得られるアプリケーションは有効な WebGPU Core アプリケーションでもあり、互換モードをサポートしていないユーザー エージェントでも実行されます。

トラッキング バグ #442618060 | ChromeStatus.com エントリ | 仕様

JavaScript

イテレータの順序付け

既存の iterators をシーケンス処理して iterators を作成する TC39 提案。これにより、Iterator.concat...items)が導入されます。

バグ #434977727 を追跡 | ChromeStatus.com のエントリ | 仕様

選択的な権限介入

強力な API(BluetoothCameraClipboardDisplayCaptureGeolocationMicrophoneSerialUSB など)にアクセスする権限をウェブサイトに付与する場合、同意はサイトに対して行われるものであり、ページで実行されているすべてのサードパーティ スクリプトに対して行われるものではありません。特に、メインフレームまたは同じオリジンの iframe で実行されている埋め込み広告スクリプトは、ページの権限を使用して、この機密データにアクセスする可能性があります。広告がユーザーの情報にアクセスしていることに気づかない可能性があります。

この介入は、API 権限を持つコンテキストの広告スクリプトが権限を使用できないようにすることで、付与された権限を意図により適切に合わせることを目的としています。これにより、データに対する信頼性と制御が強化されます。

トラッキング バグ #435214052 | ChromeStatus.com のエントリ | 仕様

dragover から drop イベントまでの dropEffect 値を保持する

HTML5 Drag and Drop API を使用すると、ウェブ アプリケーションは一連のイベント(dragstartdragenterdragoverdragleavedropdragend)を通じてドラッグ&ドロップ操作を処理できます。これらのイベントでは、dataTransfer.dropEffect プロパティは、実行するオペレーション(copymovelinknone)を示します。

HTML5 specification によると、ウェブ アプリケーションが最後の dragover イベントで設定した dropEffect 値は保持され、後続の drop イベントで使用できる必要があります。

しかし、Chromium ベースのブラウザでは、drop イベントが発生する前に、ウェブ アプリケーションの dropEffect 値がブラウザ独自のネゴシエートされたオペレーションで上書きされていました。これにより、仕様への準拠が損なわれ、ドラッグ&ドロップの動作に対する制御が制限されていました。この動作は変更されました。

トラッキング バグ #40068941 | ChromeStatus.com のエントリ | 仕様

マルチメディア

WebAudio の再生統計情報 API

この機能では、AudioPlaybackStats オブジェクトを返す AudioContext.playbackStats 属性が追加されます。このオブジェクトは、average latencyminimum/maximum latencyunderrun durationunderrun count などのオーディオ再生統計情報を提供します。この API を使用すると、ウェブ アプリケーションで音声再生の品質をモニタリングし、グリッチを検出できます。

トラッキング バグ #475838360 | ChromeStatus.com エントリ | 仕様

ネットワーク

Data URL MIME タイプのパラメータの保持

Fetch Standard で指定されているとおりに、データ URL Content-Type ヘッダーで MIME type parameterscharsetboundary など)を保持します。

トラッキング バグ #40487194 | ChromeStatus.com のエントリ | 仕様

パフォーマンス

LCP: 候補の出力に関する仕様の動作に一致

LCP アルゴリズムは、保留中の未描画の最大画像ではなく、描画済みの最大画像に基づいて候補を生成するようになりました。これにより、パフォーマンス タイムラインに中間候補がより多く出力される可能性があります。

各アニメーション フレームで、表示後に、そのフレームで描画された新しい最大のテキストまたは画像がある場合、LCP アルゴリズムは新しい候補(最大 1 つ)をパフォーマンス タイムラインに出力します。アルゴリズムは「最大の保留中の画像」(読み込み中の最大の画像)も追跡し、その画像のサイズを使用して、新しい候補が最大かどうかを判断します。つまり、読み込みに時間がかかる大きな画像があると、中間 LCP 候補の出力が妨げられる可能性があります。これらの候補は、読み込みの進行状況を把握するうえで役立つ情報を提供することがよくあります。

この動作は Interop 2025 で他のエンジンとの違いとして明らかになり、チームは、そのフレームで描画された画像とテキスト要素のセットに基づいて、フレームごとに最大 1 つの候補を生成するように調整することに合意しました。

トラッキング バグ #482261053 | ChromeStatus.com のエントリ | 仕様

セキュリティ

Sanitizer API

Sanitizer API は、ユーザーが提供した任意の HTML コンテンツから、スクリプトを実行する可能性のあるコンテンツを削除する方法を提供します。この目標は、XSS のないウェブ アプリケーションを簡単に構築できるようにすることです。

トラッキング バグ #40138584 | ChromeStatus.com のエントリ | 仕様

オリジン トライアル

WebNN

WebNN を使用すると、ウェブ アプリケーションとフレームワークは、コンピュータで使用可能な ML 用のネイティブ オペレーティング システム サービスと基盤となるハードウェア機能を活用して、ウェブ上で一貫性があり、効率的で信頼性の高い ML エクスペリエンスを実装できます。

オリジン トライアル | トラッキング バグ #40206287 | ChromeStatus.com エントリ | 仕様

CPU Performance API

この API は、デバイスの電源に関する情報を公開します。この API は、この情報を使用してユーザー エクスペリエンスを向上させるウェブ アプリケーションを対象としています。この API は、デバイスの CPU プレッシャーまたは使用率に関する情報を提供し、アプリケーションが CPU プレッシャーの変化に対応できるようにする Compute Pressure API と組み合わせて使用される可能性があります。

トラッキング バグ #449760252 | ChromeStatus.com のエントリ | 仕様

推測ルール: form_submission フィールド

これにより speculation rules 構文が拡張され、prerenderform_submission フィールドを指定できるようになります。

このフィールドは、ブラウザに prerender をフォーム送信として準備するよう指示します。これにより、実際のフォーム送信ナビゲーションでアクティブにできます。たとえば、シンプルな検索フォームでは /search?q=XXX GET リクエスト ナビゲーションが発生しますが、ウェブ デベロッパーからこのサポートがリクエストされています。

トラッキング バグ #346555939 | ChromeStatus.com のエントリ | 仕様

Focusgroup

Focusgroup 機能を使用すると、キーボードの矢印キーを使用して、フォーカス可能な要素のセット間をキーボード フォーカスで移動できます。

focusgroup について詳しくは、デベロッパーからのフィードバックのお願い: focusgroup をご覧ください。

オリジン トライアル | トラッキング バグ #1286127 | ChromeStatus.com エントリ | 仕様