Stable リリース日: 2026 年 5 月 5 日
特に記載がない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの Chrome 148 Stable チャンネル リリースに適用されます。
CSS と UI
CSS の名前のみのコンテナクエリ
CSS クエリ コンテナは、container-name のみに基づいてクエリできます。コンテナに container-type を設定する必要はありません。
#container {
container-name: --foo;
}
@container --foo {
input { background-color: green; }
}
<div id="container">
<div><input></div>
</div>
以前は、@container には名前の他にコンテナタイプが必要でした。
トラッキング バグ #40287550 | ChromeStatus.com のエントリ | 仕様
@-rule: CSS 機能検出
この機能により、at-rule() 関数が CSS @supports に追加され、作成者は CSS @-rule のサポートを機能検出できるようになります。
トラッキング バグ #40211832 | ChromeStatus.com のエントリ | 仕様
Open Font Format avar2 のテキスト整形とグリフ レンダリング
avar(Axis Variations)テーブルのバージョン 2 では、フォント デザイナーは補間をより細かく制御して可変フォントを作成できます。元の可変フォント仕様では軸が個別に処理されますが、avar2 では軸が互いに影響し合うことができます。これにより、コンテンツ作成者が使いやすいフォントになり、コンパクトな保存が可能になります。
avar2 は、フォント バリエーションと同じ使い慣れたコンセプトを使用しますが、可変デルタ値をデザイン軸の仕様自体に適用します。また、複数の軸の範囲でこれを行うことができます。
たとえば、フォント デザイナーは複数のバリエーション軸を一度に制御する「メタスライダー」を作成できるため、ユーザーはフォントのデザイン空間の便利なコーナーを微調整して見つける必要がなくなります。
avar2 を使用すると、フォント デザイナーはフォントの使用可能なバリエーション空間をより細かく制御し、複数の軸にわたってデザイン軸の調整を調整できます。
avar バージョン 2 テーブル内で軸間の関係を数学的に定義することで、フォントはマスター数を減らして複雑なデザインを実現できます。補間がより効率的に保存されるため、ファイルサイズが小さくなります。
トラッキング バグ #40246300 | ChromeStatus.com のエントリ | 仕様
revert-rule キーワード
revert-rule キーワードは、revert-layer がカスケードを前のレイヤに戻すのと同様に、カスケードを前のルールに戻します。次に例を示します。
div { color: green; }
div { color: revert-rule; /* Effectively green */ }
条件と組み合わせて使用すると、条件が満たされない場合に現在のルールを削除できるため、特に便利です。
div {
display: if(style(--layout: fancy): grid; else: revert-rule);
}
トラッキング バグ #393582263 | ChromeStatus.com のエントリ | 仕様
動画要素と音声要素の遅延読み込み
loading 属性を <video> 要素と <audio> 要素に追加します。これにより、
デベロッパーは loading="lazy" を使用して、要素が
ビューポートの近くになるまでメディア リソースの読み込みを遅延させることができます。これは、既存の遅延読み込み動作
が <img> 要素と <iframe> 要素に一致し、ページ読み込みのパフォーマンスが向上し、
データ使用量が削減されます。
トラッキング バグ #469111735 | ChromeStatus.com のエントリ | 仕様
text-decoration-skip-ink: all
CSS text-decoration-skip-ink プロパティの all 値のサポートを追加します。
text-decoration-skip-ink プロパティは、すでに auto と none をサポートしています。all 値は、CJK 文字を含むすべてのグリフにインクスキップを無条件で適用することで、これを拡張します。一方、auto は、一般的な下線位置で表意文字スクリプトの望ましくない視覚的結果が生じる傾向があるため、CJK 文字をスキップしません。
text-decoration-skip-ink: all を使用すると、CJK グリフとの衝突を避けるために text-underline-position または text-underline-offset を調整したデベロッパーは、これらの文字のインクスキップを明示的に選択できます。
トラッキング バグ #40675832 | ChromeStatus.com のエントリ | 仕様
dragEnter、dragLeave、dragOver イベントの dropEffect を正しく設定する
ドラッグ&ドロップの仕様では、dataTransfer のオブジェクト dropEffect 属性に、dragEnter、dragOver、dragLeave で特定の事前定義された値が必要です。ドラッグ開始とドラッグオーバーには、現在の effectAllowed に基づく dropEffect が必要です。dragLeave には常に none dropEffect が必要です。現在、Chromium はこれらのルールに準拠していません。この機能のリリースにより、Chromium は仕様を尊重し、この属性に正しい値を割り当てるため、ウェブ デベロッパーはこれに依存できるようになります。
トラッキング バグ #434151262 | ChromeStatus.com のエントリ | 仕様
ドラッグ開始時のポインタ イベントの抑制
HTML 仕様によると、ドラッグが開始されると、ユーザー エージェントは適切なイベントをドラッグ元に送信して、ポインタ イベント ストリームが終了したこと、およびこのポインタからこれ以上イベントが送信されないことを示す必要があります。
このコードは、マウスイベントに対して部分的に実装され、Android でのタッチ ドラッグに対して完全に実装されていました。この機能の作業では、他のすべてのプラットフォームでこの仕様要件を完全に満たすことを目指しています。実際には、ドラッグが開始されると、ドラッグ元は現在のイベント ストリームが終了したことを示す pointercancel、pointerout、pointerleave イベントを受け取ります。
トラッキング バグ #452372355 | ChromeStatus.com のエントリ | 仕様
機能
マニフェストのローカライズ
マニフェスト メンバーのローカライズをサポートしているため、アプリは名前、説明、アイコン、ショートカットをユーザーの言語と地域に合わせて調整できます。デベロッパーはウェブアプリ マニフェストでローカライズされた値を提供します。ブラウザはユーザーの言語設定に基づいて適切なリソースを自動的に選択し、さまざまな市場で言語サポートを導入します。
詳しくは、ウェブアプリ マニフェストのローカライズ サポートをご覧ください。
トラッキング バグ #380491647 | ChromeStatus.com のエントリ | 仕様
Android のウェブ
Android の Web Serial API
Web Serial API は、ユーザーのシステムのシリアルポート、またはシリアルポートをエミュレートする取り外し可能な USB デバイスと Bluetooth デバイスを介して、シリアル デバイスに接続するためのインターフェースを提供します。Android でサポートされるようになりました。
特に教育、ホビー、産業分野のユーザーは、カスタム ソフトウェアで制御する必要がある周辺機器をパソコンに接続します。 たとえば、学校ではロボット工学がコンピュータ プログラミングと電子工学の教育によく使用されます。これには、ロボットにコードをアップロードしたり、リモートで制御したりできるソフトウェアが必要です。産業用またはホビー用の設定では、フライス盤、レーザー カッター、3D プリンタなどの機器は、接続されたパソコンで実行されるプログラムによって制御されます。これらのデバイスは、シリアル接続を使用して小さなマイクロコントローラによって制御されることがよくあります。
詳細については、web.dev の Web Serial API ガイドとWeb Serial 仕様をご覧ください。
トラッキング バグ #365514951 | ChromeStatus.com のエントリ
Android の SharedWorker
SharedWorker は、プロセスのライフサイクルが予測できないという懸念から、Android で長らく無効になっていました。SharedWorker インスタンスは、ユーザーやウェブ デベロッパーに通知することなく、予期せず終了する可能性があります。
ただし、GitHub での最近のディスカッション (GitHub のディスカッションを参照)では、SharedWorker のプロセスのライフサイクルの予測不可能性 は、以前考えられていたほど大きな問題ではない可能性があることが示唆されています 。これに基づいて、安定した信頼性の高いエクスペリエンスを確保するために、この動作を調査しながら、Android で SharedWorker が再度有効になっています。
トラッキング バグ #40290702 | ChromeStatus.com のエントリ | 仕様
ウェブ API
WebGPU: linear_indexing 機能
この機能により、ブラウザでの最初の出荷後に WebGPU 仕様に機能が追加されます。
ユーザーの利便性を高めるために、2 つの新しいコンピューティング シェーダー組み込み値を追加します。これらはすべてのバックエンドで実装されます(既存の組み込み値のポリフィルとして)。
トラッキング バグ #482840564 | ChromeStatus.com のエントリ | 仕様
ウェブ認証の即時 UI モード
navigator.credentials.get() の新しいモード。ブラウザがすぐに認識できるサイトのパスキーまたはパスワードがある場合は、ブラウザのログイン UI がユーザーに表示されます。そのような認証情報がない場合は、NotAllowedError で Promise が拒否されます。これにより、ブラウザが成功する可能性の高いログイン認証情報の選択肢を提供できる場合は、サイトでログインページを表示しないようにできます。また、そのような認証情報がない場合は、従来のログインページ フローを使用できます。
トラッキング バグ #408002783 | ChromeStatus.com のエントリ | 仕様
安全なお支払い確認機能を取得する
ウェブ デベロッパーがブラウザの安全なお支払い確認の実装機能を取得できるように、新しい静的メソッドを Payment Request に追加します。
これにより、ウェブ デベロッパーは安全なお支払い確認で利用できる機能を確認し、それらの機能で安全なお支払い確認を使用するかどうかを判断できます。
トラッキング バグ #484043990 | ChromeStatus.com のエントリ | 仕様
有効期間の長い共有ワーカー
このアップデートでは、SharedWorker コンストラクタに新しいオプション extendedLifetime: true が追加されます。この新しいオプションは、現在のすべてのクライアントがアンロードされた後も共有ワーカーを存続させるよう要求します。これにより、ページはアンロード後に JavaScript を必要とする非同期処理を実行できます。Service Worker に依存する必要はありません。
トラッキング バグ #400473072 | ChromeStatus.com のエントリ | 仕様
Prompt API
Prompt API を使用すると、ウェブ デベロッパーはブラウザが提供するオンデバイス AI 言語モデルに直接アクセスできます。この API 設計では、クラウド API の形状に合わせてきめ細かい制御が可能で、個々のユースケースに合わせてモデルのインタラクションでサイトを段階的に強化できます。これは、タスクベースの言語モデル API(Summarizer API など)や、デベロッパーが提供する ML モデルを使用した汎用的なオンデバイス推論のためのさまざまな API とフレームワークを補完します。
最初の実装では、テキスト、画像、音声の入力がサポートされています。また、レスポンスの制約により、生成されたテキストが事前定義された正規表現と JSON スキーマ形式に準拠していることが保証されます。
これにより、画像のキャプションの生成やビジュアル検索から、音声の文字起こし、音声イベントの分類、特定の指示に従ったテキストの生成、マルチモーダル ソース素材からの情報やインサイトの抽出まで、さまざまなユースケースがサポートされます。
トラッキング バグ #417526788 | ChromeStatus.com のエントリ | 仕様
ネットワークと接続
IDNA ContextJ ルール
IDNA は、ドメイン名で ASCII 以外の文字を使用するためのメカニズムです。http://네이버.한국/ などの URL は http://xn--950bt9s8xi.xn--3e0b707e/(naver.com へのリダイレクト)としてエンコードされます。
URL 仕様では CheckJoiners フラグが設定され、IDNA2008 の ContextJ ルールが有効になります。これにより、URL のほとんどの場所で ZWNJ(U+200C ZERO WIDTH NON-JOINER)と ZWJ(U+200D ZERO WIDTH JOINER)が禁止されます。この実装では、UIDNA_CHECK_CONTEXTJ オプションが ICU に渡され、このルールが実装されます。
トラッキング バグ #40765949 | ChromeStatus.com のエントリ | 仕様
同じ src の再割り当てで no-store 画像を再利用する
同じドキュメントで利用可能な画像の再利用を許可して、同じ src 値が <img> 要素に再割り当てされたときに Cache-Control: no-store
の再読み込みをバイパスします。以前は、Blink はすでにデコードされてドキュメントで使用可能であっても、画像を再取得していました。これは、既存の Gecko と WebKit の動作と一致しています。
トラッキング バグ #486562295 | ChromeStatus.com のエントリ | 仕様
パフォーマンス
リソース タイミングの ContentType
サーバーから返されたフェッチされたリソースの Content-Type HTTP ヘッダーに対応する文字列を保持するために、contentType フィールドを PerformanceResourceTiming に追加します。
トラッキング バグ #1366706 | ChromeStatus.com のエントリ | 仕様
WebRTC Datachannel: 常にデータチャネルをネゴシエートする
WebRTC 拡張機能 alwaysNegotiateDataChannels を実装します。これにより、アプリケーションはデータチャネルを作成する前に SDP オファーでデータチャネルをネゴシエートできます。また、音声または動画の m セクションの前にデータ m= セクションをネゴシエートし、BUNDLE の「オファラータグ付き m= セクション」として使用します。
つまり、以下のようになります。
const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();
SDP にアプリケーション m-line を含むオファーを作成します。
const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();
SDP でアプリケーション m-line の後に音声 m-line をネゴシエートするオファーを作成します。
トラッキング バグ #433898678 | ChromeStatus.com のエントリ | 仕様
新しいオリジン トライアル
宣言型 CSS モジュール スクリプト
宣言型 CSS モジュール スクリプトは、既存のスクリプトベースの CSS モジュール スクリプトの拡張機能です。これにより、デベロッパーは宣言型スタイルシートをシャドウ ルート(宣言型シャドウ ルートを含む)と共有できます。デベロッパーは、<style type="module" specifier="foo"> を使用して
インライン スタイル モジュールを定義し、<template shadowrootmode="open"
shadowrootadoptedstylesheets="foo"> などの指定子または
URL を参照して、
宣言型モジュールを宣言型シャドウ DOM に適用できます。
オリジン トライアル | トラッキング バグ #448174611 | ChromeStatus.com のエントリ | 仕様
コンテナ タイミング API
Container Timing API を使用すると、DOM のアノテーション付きセクションが画面に表示され、最初のペイントが完了したタイミングをモニタリングできます。デベロッパーは、DOM のサブセクションを containertiming 属性(Element Timing API の elementtiming と同様)でマークし、そのセクションが最初にペイントされたときにパフォーマンス エントリを受け取ることができます。この API を使用すると、デベロッパーはページ内のさまざまなコンポーネントのタイミングを測定できます。
オリジン トライアル | トラッキング バグ #382422286 | ChromeStatus.com のエントリ | 仕様
ウェブアプリの HTML インストール要素
ウェブサイトで、ウェブアプリのインストールをユーザーに宣言的に促すことができます。この要素は、必要に応じて 2 つの属性を受け入れ、別のオリジンからコンテンツをインストールできます。
オリジン トライアル | トラッキング バグ #454827186 | ChromeStatus.com のエントリ | 仕様
Long Animation Frames スタイルの期間
Long Animation Frame API に styleDuration と forcedStyleDuration の情報を追加し、デベロッパーがスタイルとレイアウトの時間を区別できるようにします。
オリジン トライアル | トラッキング バグ #476826067 | ChromeStatus.com のエントリ | 仕様
HTML-in-canvas
HTML-in-canvas を使用すると、3 つの新しいプリミティブを使用して canvas を使用して HTML のレンダリングをカスタマイズできます。canvas 要素をオプトインする属性(layoutsubtree)、子要素を描画するメソッド(2D: drawElementImage、WebGL: texElementImage2D、WebGPU: copyElementImageToTexture)、更新を処理するために発生するペイント イベントです。
オリジン トライアル | トラッキング バグ #500967896 | ChromeStatus.com のエントリ | 仕様
接続許可リスト
接続許可リストは、Fetch API やその他のウェブ プラットフォーム API を使用してドキュメントまたはワーカーから開始された接続を制限することで、外部エンドポイントを明示的に制御できるように設計された機能です。
提案されている実装では、承認されたエンドポイント リストが HTTP レスポンス ヘッダーを介してサーバーから配信されます。ページに代わってユーザー エージェントが接続を確立する前に、エージェントはこの許可リストに対して宛先を評価します。検証済みのエンドポイントへの接続は許可されますが、リスト内のエントリと一致しない接続はブロックされます。
オリジン トライアル | トラッキング バグ #447954811 | ChromeStatus.com のエントリ | 仕様
Prompt API のサンプリング パラメータ
サンプリング パラメータを Prompt API に追加します。これらはモデルからトークンをサンプリングする方法を制御し、デベロッパーが出力の「創造性」または「ランダム性」を制御できるようにします。また、設定値を読み取るための属性を LanguageModel インスタンスに追加します。また、これらのパラメータのデフォルト値と最大値を取得する静的 LanguageModel 関数も追加します。
最初の実装では、temperature パラメータと topK パラメータが追加されます。
オリジン トライアル | トラッキング バグ #496663356 | ChromeStatus.com のエントリ | 仕様
HTML の処理命令を解析する
処理命令(構文: <?target data>) は、XML で公開されている既存の DOM 構造です。要素ではないが、ドキュメントの処理に意味を持つノード オブジェクトを使用できます。
たとえば、新しい DOM 要素を必要とせず、CSS に関して DOM 構造を変更することなく、ストリーミングやハイライト表示の範囲を示すために使用できます。また、バッファリングとストリーミングの方法に関する HTML パーサーのディレクティブとしても使用できます。
トラッキング バグ #481087638 | ChromeStatus.com のエントリ
OpaqueRange
OpaqueRange は、フォーム コントロールの値内のテキストのライブスパンを表します。
<textarea> やテキストベースの <input> など、デベロッパーは範囲のような API を使用して
値テキストを操作できます。
getBoundingClientRect()、getClientRects() などのオペレーションを有効にし、CSS Custom Highlight API と統合して、インライン候補、ハイライト、アンカー付きポップオーバーなどの UI を実現します。startContainer と endContainer に null を返しながら値オフセットのみを公開することでカプセル化を維持するため、DOM エンドポイントと内部構造は公開されません。