公開日: 2025 年 5 月 28 日
特に記載がない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、提供されているリンクまたは ChromeStatus.com のリストをご覧ください。Chrome 138 は 2025 年 5 月 28 日時点でベータ版です。最新版は、パソコンの場合は Google.com、Android の場合は Google Play ストアからダウンロードできます。
CSS と UI
今回のリリースでは、6 つの新しい CSS 機能と UI 機能を追加しました。
CSS stretch サイズ設定キーワード
要素がコンテナ ブロックの利用可能なスペースを完全に埋めるように拡大できる CSS サイズ設定プロパティ(width、height など)のキーワード。100% と似ていますが、結果のサイズは box-sizing で示されるボックスではなく、要素のマージン ボックスに適用されます。このキーワードを使用すると、要素はマージンを維持しながら、可能な限り大きく表示されます。
CSS 符号関連関数: abs()、sign()
符号関連の関数 abs() と sign() は、引数の符号に関連するさまざまな関数を計算します。
OS レベルのフォント スケール用の CSS env 変数
ユーザーが希望するフォントスケールを CSS に公開します。現在、ユーザーがオペレーティング システムの設定で優先フォントサイズを変更したかどうかをページで検出することは実用的ではありません。この CSS 環境変数には、ユーザーが選択したスケールが反映されます。
CSS sibling-index() と sibling-count()
sibling-index() 関数と sibling-count() 関数は、CSS プロパティ値の整数として使用して、兄弟要素の中での位置または兄弟要素の総数に基づいて要素のスタイルを設定できます。これらの関数は整数値として直接使用できますが、calc() 式内で使用するとさらに興味深い結果が得られます。
li {
animation-delay: calc(0.1s * sibling-index());
}
補間進行状況の関数表記: CSS progress() 関数
progress() 関数表記は、2 つの計算(進行状況の開始値と進行状況の終了値)の間の 1 つの計算(進行状況の値)の位置を表す <number> 値を返す数学関数です。
Viewport Segments Enumeration API
Viewport Segments API を使用すると、デベロッパーはウェブ レイアウトを折りたたみ式デバイスに合わせて調整できます。ビューポート セグメントは、ビューポートの論理的に分離された領域の位置と寸法を定義します。ビューポート セグメントは、ビューポートが 1 つ以上のハードウェア機能(折りたたみや別々のディスプレイ間のヒンジなど)によって分割され、それらが区切りとして機能するときに作成されます。セグメントは、デベロッパーが論理的に別個のものとして扱うことができるビューポートの領域です。
ウェブ API
WebCodecs に動画フレームの向きのメタデータのサポートを追加
WebCodecs のさまざまな動画関連インターフェースに rotation: int 値と flip: bool 値を導入し、デベロッパーが向きのあるフレームソース(Android カメラや特定のメディアなど)を扱えるようにします。VideoFrame インターフェースは、任意の回転と反転で VideoFrame を作成する機能と、VideoFrame オブジェクトのこの情報へのアクセサを拡張します。VideoDecoderConfig オブジェクトは、デコードされた VideoFrame オブジェクトで自動的に出力される rotation フィールドと flip フィールドを取得します。VideoEncoder クラスは、encode() から EncodedVideoChunkMetadata の一部として出力される VideoDecoderConfig に回転と反転の情報を渡すメカニズムを獲得します。encode() が異なる向きのフレームで呼び出されると、致命的でない例外がスローされます。configure() メソッドは、許可された画面の向きをリセットするために使用できます。
Crash Reporting API: is_top_level と visibility_state
この機能により、クラッシュ レポートのデフォルトのレポート エンドポイントに送信されるクラッシュ レポート API の本文に is_top_level と visibility_state の文字列フィールドが追加されます。
シリアル化時に属性の < と > をエスケープ
シリアル化時に属性の値の < と > をエスケープします。これにより、属性の値がシリアル化されて再解析された後に開始タグトークンとして解釈される場合に発生する、ミューテーション XSS 攻撃のリスクを軽減できます。
スクリプトの完全性ポリシー
Subresource-Integrity(SRI)を使用すると、デベロッパーは読み込む予定のアセットが実際に読み込まれていることを確認できます。しかし、デベロッパーがすべてのスクリプトが SRI を使用して検証されていることを確認する方法は、現時点では存在しません。Integrity-Policy ヘッダーを使用すると、デベロッパーは特定のタイプのリソースごとに完全性チェックが必要であることをアサートできます。そのタイプのリソースが完全性メタデータなしで読み込まれようとすると、その試行は失敗し、違反レポートがトリガーされます。
所定の保存容量の報告
無制限のストレージ権限を持たないサイトに対して、StorageManager の Estimate API から所定の保存容量が報告されるようになります。ユーザーがどのブラウジング モードを使用しているかは、報告される保存容量から検出できます。これは、利用可能な保存容量が、シークレット モードでは通常モードより大幅に少ないためです。
今回の機能では緩和策として、ストレージの権限が制限されているサイトに対し、すべてのブラウジング モードで使用量 + 最小値(10 GiB、ディスク容量は 1 GiB に切り上げ)に相当する仮の割り当てを報告することで、Storage API を介したブラウジング モードの検出を防止します。なお、無制限のストレージ権限を持つサイトや強制割り当て容量への影響はありません。
再登録時の pushsubscriptionchange イベント
プッシュ サブスクリプションが過去に存在していたが、権限の変更(許可から拒否/デフォルト)により取り消されたオリジンで、通知権限が再度許可された場合、サービス ワーカーで pushsubscriptionchange イベントを発生させます。イベントは空の oldSubscription と newSubscription で発生します。
推測ルール: Clear-Site-Data ヘッダーに prefetchCache と prerenderCache を追加
デベロッパーがプリレンダリングとプリフェッチのキャッシュのクリアをターゲットにできるように、Clear-Site-Data ヘッダーに prefetchCache と prerenderCache という 2 つの新しい値が追加されました。これらは任意のリクエストで送信でき、ドキュメント リクエストで行う必要はありません(たとえば、買い物かごへの追加、ログイン、ログアウトの API 呼び出しのレスポンスで返して、状態変化の推測をクリアできます)。
推測ルール: target_hint フィールド
これにより、投機的実行ルールの構文が拡張され、デベロッパーが target_hint フィールドを指定できるようになります。このフィールドは、事前レンダリングされたページが最終的に有効になるナビゲート可能なターゲットを示すヒントを提供します。_blank がヒントとして指定されている場合、window.open() によって開かれたナビゲーション可能なページに対して事前レンダリングされたページを有効にできます。このフィールドはプリフェッチでは対象外です。
Storage Access API の厳格な同一オリジン ポリシー
セキュリティに関して、Storage Access API のセマンティクスを調整し、同一オリジン ポリシーに厳密に準拠させます。つまり、フレームで document.requestStorageAccess() を使用すると、デフォルトでは iframe のオリジン(サイトではない)へのリクエストにのみ Cookie が付加されます。
Summarizer API
AI 言語モデルを基盤として入力テキストの要約を作成する JavaScript API。現在、ブラウザとオペレーティング システムが言語モデルにアクセスする必要性が増しています。この組み込みモデルの公開により、各ウェブサイトが数ギガバイトの言語モデルを独自にダウンロードしたり、入力テキストをサードパーティの API に送信したりする必要がなくなります。特に、summarizer API は、さまざまなユースケースの入力を要約するために、指定された特定言語のモデルに依存しない方法で言語モデルとやり取りするための高度な API を公開します。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となる言語モデルのダウンロードを無効にできます。その場合、この API は使用できなくなります。
詳しくは、組み込みの AI を使用して簡潔な要約を生成するをご覧ください。
Language Detector API
特定のテキストで使用されている言語を信頼度レベルとともに検出する JavaScript API。言語の検出は、翻訳機能を補完する重要な機能であり、Translator API と組み合わせて使用できます。たとえば、ユーザー入力の言語が不明の場合も、言語を検出して特定のターゲット言語に翻訳します。ブラウザには言語検出機能がすでに備わっていることが多いですが、この API を使用すると、ウェブ デベロッパーは JavaScript API を通じて同じ機能を利用できるようになり、翻訳 API を補完できます。
エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となる言語モデルのダウンロードを無効にできます。その場合、この API は使用できなくなります。
詳しくは、組み込みの AI で使用されている言語を検出するをご覧ください。
Translator API
ウェブページに言語翻訳機能を提供する JavaScript API。ブラウザで言語翻訳機能を提供するケースは増加していますが、こうした翻訳機能はウェブ デベロッパーにとっても有用です。特に、ライブ配信やインタラクティブなサービスなど、ブラウザに組み込みの翻訳機能では不十分な場合に活用できます。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となる言語モデルのダウンロードを無効にできます。その場合、この API は使用できなくなります。
詳しくは、組み込みの AI を使用した翻訳をご覧ください。
ウェブアプリのスコープ拡張機能
ウェブアプリがスコープを他のオリジンに拡張できるようにする "scope_extensions" ウェブアプリ マニフェスト フィールドを追加します。これにより、複数のサブドメインとトップレベル ドメインを管理するサイトを単一のウェブアプリとして表示できます。リストに登録されたオリジンが .well-known/web-app-origin-association 構成ファイルを使用してウェブアプリとの関連付けを確認する必要があります。
Bluetooth 経由の Web Serial(Android)
この機能を使用すると、ウェブページとウェブアプリは Android デバイスから Bluetooth 経由でシリアルポートに接続できます。Android 版 Chrome で、Bluetooth RFCOMM を介した Web Serial API がサポートされるようになりました。他のプラットフォームの既存のエンタープライズ ポリシー(DefaultSerialGuardSetting、SerialAllowAllPortsForUrls、SerialAllowUsbDevicesForUrls、SerialAskForUrls、SerialBlockedForUrls)は、Android では future_on 状態で有効になります。この機能が有効になると、SerialAllowUsbDevicesForUrls 以外のすべてのポリシーが有効になります。SerialAllowUsbDevicesForUrls は、Android が有線シリアルポートをシステムレベルでサポートした後、今後のリリースで有効になります。
非推奨と削除
このバージョンの Chrome では、以下の非推奨と削除が導入されます。計画中の非推奨、現在の非推奨、以前の削除のリストについては、ChromeStatus.com をご覧ください。
このリリースの Chrome では、2 つの機能のサポートが終了します。
Media Source 拡張機能に対する非同期の範囲削除のサポート終了
Media Source の規格は以前に変更され、非同期の範囲削除に関連する曖昧に定義された動作が禁止されるようになりました。
SourceBuffer.abort()はSourceBuffer.remove()オペレーションをアボートしなくなりました。MediaSource.durationの設定で、現在バッファに保存されているメディアを切り捨てることができなくなりました。
現在、どちらの場合も例外がスローされます。
SwiftShader フォールバックを削除
ソフトウェア レンダラ SwiftShader をベースとする WebGL への自動フォールバックは非推奨となり、SwiftShader にフォールバックせずに WebGL コンテキストの作成が失敗するようになります。この変更には主に 2 つの理由があります。
- Chromium の GPU プロセスで JIT コードが実行されるため、SwiftShader はセキュリティ リスクが高い。
- 高パフォーマンスの GPU ベースの WebGL から CPU ベースの実装にフォールバックすると、ユーザー エクスペリエンスが低下する。ユーザーはこの動作を制御できず、バグレポートで説明するのが困難。
サポート終了までの間、SwiftShader をベースとして WebGL コンテキストを作成すると、Chrome DevTools のコンソールに警告が表示されます。--enable-unsafe-swiftshader を渡せば、この警告メッセージは表示されなくなります。