「Google Chrome 156」安定版リリース、CSSだけでランダムな配置が可能に&IndexedDBの保存方式がSQLiteベースに変更
また、random()関数には生成した値を再利用するためのキャッシュ制御機能も用意されています。関数の最初の引数にキーを指定することで、異なるCSSプロパティや要素の間でランダムな値をどのように共有するかを制御できます。
◆ページ遷移を開始した要素をCSSで特定可能に
Chrome 156では、ウェブページの遷移を開始した要素を指定できるCSSの疑似クラス「:navigation-source」が追加されました。この疑似クラスはリンクやボタン、フォームなど、ページ遷移のきっかけとなった要素に一致し、遷移が進行している間は対象の要素に一致する状態が維持されます。
従来は、どの要素がページ遷移を開始したのかに応じてスタイルを変える場合、JavaScriptなどによる状態管理が必要になることがありました。:navigation-sourceを使用すれば、View Transitions APIと組み合わせて、クリックされた画像やリンクに応じたページ遷移アニメーションをCSSで指定しやすくなります。
◆縦方向と横方向でスクロールの扱いを個別に指定可能に
Chrome 156では、スクロールコンテナを一方の軸に限定できる「Single-axis scroll containers」が有効化されました。
従来、CSSのoverflowプロパティで一方の軸にスクロール可能な値を指定し、もう一方の軸にclipを指定しても、両方の軸がスクロールコンテナとして扱われる場合がありました。新たな仕様では「overflow: scroll clip」のように指定することで、一方の軸だけをスクロールコンテナとして扱えるようになります。
これにより、「position: sticky」を指定した要素についても、縦方向と横方向で異なる祖先スクロールコンテナを基準に固定位置を決定できるようになります。例えば、大きな表をスクロールする際に行見出しと列見出しをそれぞれ適切な位置に固定するといった使い方が可能です。
また、スクロール位置を要素に吸着させる「scroll-snap-type」にも、新たに「pair」キーワードが追加されました。従来の「both」では縦方向と横方向で異なる要素がスナップ先として選択される可能性がありましたが、「pair」では両方の軸で同じ要素をスナップ先として選択するようになります。
◆JavaScriptモジュールの読み込み失敗後に再試行できるようになる
Chrome 156では、JavaScriptモジュールの読み込みに失敗した場合のキャッシュ動作が変更されました。
これまで、ネットワーク接続の問題などでJavaScriptモジュールの読み込みに失敗するとその失敗結果がキャッシュされ、同じモジュールを再度読み込もうとしても即座に失敗することがありました。Chrome 156以降は読み込みに失敗したモジュールについて再試行できるようになります。
◆IndexedDBの内部実装がSQLiteベースに変更
Chrome 156では、ウェブブラウザ内にデータを保存するためのAPI「IndexedDB」の内部実装が変更されました。従来のChromiumでは、LevelDBと通常のファイルを組み合わせた方式でIndexedDBのデータを管理していました。
Chrome 156では、この内部実装がデータベースエンジン「SQLite」を利用する方式に書き換えられています。この変更は主にデータ保存処理の信頼性向上を目的としたものとのこと。パフォーマンスもある程度改善されることが期待されています。
ただし、Chrome 156の段階では新しいデータストアのみがSQLiteベースの仕組みを使用します。すでにLevelDBに保存されている既存のデータは引き続き従来の方式で管理され、新方式への移行は今後の段階で行われる予定です。
また、ウェブサイトから利用するIndexedDBのAPI自体に変更はなく、基本的には既存のウェブアプリを修正せずに利用できます。
◆WebTransportでHTTPのリクエストヘッダーとレスポンスヘッダーを扱えるようになる
Chrome 156では、ウェブアプリとサーバーの双方向通信を実現する「WebTransport API」に、HTTPヘッダーを扱うための機能が追加されました。
WebTransportOptionsに「headers」オプションが追加され、接続開始時のCONNECTハンドシェイクでカスタムHTTPリクエストヘッダーを送信できるようになっています。さらに、WebTransportインスタンスからサーバーの応答ヘッダーを確認するための「responseHeaders」も追加されました。
これにより、接続時に認証トークンやメタデータ、カスタムパラメーターを送信したり、サーバーが返した情報を参照したりできます。
◆WebGPUのシェーダー処理を効率化する機能を追加
Chrome 156では、GPUを利用したグラフィックス処理や計算を行うための「WebGPU」においてシェーダー言語「WGSL」に「fragment_depth」拡張が導入され、フラグメントシェーダーで使用する「@builtin(frag_depth)」に「less」または「greater」の修飾子を指定できるようになりました。
従来はフラグメントシェーダーから深度値を書き換えると、描画前に隠れたピクセルを除外する「Early-Z」最適化が無効になり、パフォーマンスが低下する場合がありました。今回の拡張では、書き込む深度値と元の深度値の関係を明示することで、GPUがEarly-Z最適化を適用できるようにすることを目指しています。
ただし、Googleの「WebGPUの新機能紹介」によると、Windowsでのシェーダーコンパイルエラーを受け、2026年10月21日時点ではfragment_depth拡張が全プラットフォームで一時的に無効化されています。
◆その他の更新点
・「Compression Dictionary Transport」の処理が更新され、「rel="compression-dictionary"」を指定したリンクの取得時に、専用のリクエスト送信先である「compression-dictionary」を使用するようになりました。また、リクエストモードや認証情報、リファラーに関する指定などが適切に反映されるようになっています。
・「WebRTC Diagnostic Logging API」に関する機能が追加されました。許可されたウェブアプリがWebRTCの診断データの収集を開始できるほか、ユーザーの許可を得た上でブラウザベンダーにデータを共有する仕組みが用意されています。通信障害などの調査に役立つことが期待されています。
・プライバシー保護を目的とした「Fenced Frames」の廃止処理が進められています。Chrome 156では「fencedframe」要素と関連APIを互換性のための空実装として残し、「window.fence」のAPIも実質的に機能しないようにする計画です。要素自体の削除はChrome 157以降に段階的に進められる予定です。
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.



