Chrome 138

安定版リリース日: 2025 年 6 月 24 日

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

CSS と UI

符号関連の関数 abs()sign() は、引数の符号に関連するさまざまな関数を計算します。

abs(A) 関数には 1 つの計算 A が含まれており、入力と同じ型で A の絶対値を返します。A の数値が正または 0⁺ の場合は A を返し、それ以外の場合は -1 * A を返します。

sign(A) 関数には 1 つの計算 A が含まれており、A の数値が負の場合は -1、正の場合は +1、0⁺ の場合は 0⁺、0⁻ の場合は 0⁻ を返します。戻り値の型は <number> で、入力計算の型と一致しています。

MDN Docs:abs() | トラッキング バグ #40253181 | ChromeStatus.com のエントリ | 仕様

補間進行状況の関数表記: CSS progress() 関数

progress() 関数表記は、2 つの計算(進行状況の開始値と進行状況の終了値)の間の 1 つの計算(進行状況の値)の位置を表す <number> 値を返します。progress() 関数は数学関数です。

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

CSS sibling-index()sibling-count()

sibling-index() 関数と sibling-count() 関数は、CSS プロパティ値で整数として使用して、兄弟要素間の位置または兄弟要素の総数に基づいて要素のスタイルを設定できます。これらの関数は整数値として直接使用できますが、calc() 式内で使用するとさらに興味深い結果が得られます。

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

CSS stretch サイズ設定キーワード

要素が包含ブロックの利用可能なスペースを完全に埋めるように拡大できる CSS サイズ設定プロパティ(widthheight など)のキーワード。結果のサイズが box-sizing で示されたボックスではなく、要素のマージン ボックスに適用される点を除き、「100%」と似ています。このキーワードを使用すると、要素はマージンを維持しながら、可能な限り大きく表示されます。-webkit-fill-available の接頭辞なしバージョン。

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

OS レベルのフォント スケール用の CSS env 変数

ユーザーが希望するフォント スケールを CSS に公開します。これがないと、ユーザーがオペレーティング システムの設定を使用して優先フォントサイズを変更したかどうかをページで検出することは実用的ではありません。この CSS 環境変数は、ユーザーが選択したスケールを反映します。

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

デバイス

Bluetooth 経由の Web Serial(Android)

この機能を使用すると、ウェブページとウェブアプリは Android デバイスから Bluetooth 経由でシリアルポートに接続できます。

Android 版 Chrome で、Bluetooth RFCOMM を介した Web Serial API がサポートされるようになりました。他のプラットフォームの既存のエンタープライズ ポリシー(DefaultSerialGuardSettingSerialAllowAllPortsForUrlsSerialAllowUsbDevicesForUrlsSerialAskForUrlsSerialBlockedForUrls)は、Android では future_on 状態で有効になります。この機能が有効になると、SerialAllowUsbDevicesForUrls 以外のすべてのポリシーが有効になります。SerialAllowUsbDevicesForUrls は、Android が有線シリアルポートをシステムレベルでサポートした後、今後のリリースで有効になります。

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

Viewport Segments Enumeration API

Viewport Segments API を使用すると、デベロッパーは折りたたみ式デバイスをターゲットとするようにウェブ レイアウトを調整できます。ビューポート セグメントは、ビューポートの論理的に分離された領域の位置と寸法を定義します。ビューポート セグメントは、ビューポートが 1 つ以上のハードウェア機能(折りたたみ式ディスプレイや、別々のディスプレイ間のヒンジなど)によって分割されたときに作成されます。セグメントは、デベロッパーが論理的に別個のものとして扱うことができるビューポートの領域です。

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

JavaScript

QuotaExceededErrorDOMException 派生インターフェースに更新

以前は、ウェブ プラットフォームが割り当てを超えたことを通知する場合、特定の name プロパティが QuotaExceededError に設定された DOMException を使用していました。ただし、追加情報を伝達することはできません。

これは、組み込みの DOMException 名前のリストから「QuotaExceededError」を削除し、代わりに組み込みの DOMException のリストからクラス名 QuotaExceededError を作成し、追加のオプション プロパティ quotarequested を持つことを提案しています。「QuotaExceededError」DOMException をスローするすべての仕様のインスタンスを、QuotaExceededError をスローするようにアップグレードすることを提案します。現時点では、このような仕様では quota プロパティと requested プロパティはデフォルト値の null のままですが、ユースケースに役立つ(プライバシーの漏洩などではない)場合は、最終的にそのデータを含めるようにアップグレードされる可能性があります。

ChromeStatus.com のエントリ | 仕様

ウェブ API

Translator API

ウェブページに言語翻訳機能を提供する JavaScript API。ブラウザで言語翻訳機能を提供するケースは増加しています。そのため、こうした翻訳機能はウェブ デベロッパーにとっても有用です。特に、ブラウザに組み込みの翻訳機能では不十分な場合に活用できます。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となる言語モデルのダウンロードを無効にできます。その場合、この API は使用できなくなります。

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

Language Detector API

テキストの言語を検出するための信頼性の高い JavaScript API。

言語の検出は、翻訳機能を補完する重要な機能です。これは翻訳と組み合わせて使用できます。たとえば、ユーザーの入力言語が不明の場合も、言語を検出して特定のターゲット言語に翻訳します。現在、多くのブラウザには言語検出機能がすでに備わっています。Google は、JavaScript API を通じてウェブ デベロッパーにこの機能を提供し、翻訳 API を補完します。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となる言語モデルのダウンロードを無効にできます。その場合、この API は使用できなくなります。

MDN Docs | ChromeStatus.com エントリ | 仕様

Summarizer API

Summarizer API は、AI 言語モデルを基盤として入力テキストの要約を作成する JavaScript API です。現在、ブラウザとオペレーティング システムが言語モデルにアクセスする必要性が増しています。この組み込みモデルの公開により、各ウェブサイトが数ギガバイトの言語モデルを独自にダウンロードしたり、入力テキストをサードパーティの API に送信したりする必要がなくなります。特に、summarizer API は、さまざまなユースケースの入力を要約(GitHub)するために、指定された特定言語のモデルに依存しない方法で言語モデルとやり取りするための高度な API を公開します。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となる言語モデルのダウンロードを無効にできます。その場合、この API は使用できなくなります。

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

シリアル化時に属性の <> をエスケープ

シリアル化時に属性の値の <> をエスケープします。

これにより、属性の値がシリアル化されて再解析された後に開始タグトークンとして解釈される場合に発生するミューテーション XSS 攻撃のリスクが軽減されます。

ChromeStatus.com のエントリ | 仕様

Crash Reporting API: is_top_levelvisibility_state

この機能により、クラッシュ レポートのデフォルトのレポート エンドポイントに送信されるクラッシュ レポート API の本文に is_top_levelvisibility_state の文字列フィールドが追加されます。

ChromeStatus.com のエントリ | 仕様

再登録時に pushsubscriptionchange イベントを送信する

プッシュ サブスクリプションが過去に存在していたが、権限の変更(許可から拒否/デフォルト)により取り消されたオリジンに対して、通知権限が再度付与された場合、サービス ワーカーで pushsubscriptionchange イベントを発生させます。

イベントは、oldSubscription と newSubscription が空の状態で発生します。

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

マルチメディア

WebCodecs に動画フレームの向きのメタデータのサポートを追加

WebCodecs のさまざまな動画関連インターフェースに rotation: int 値と flip: bool 値を導入し、デベロッパーが向きのあるフレームソース(Android カメラ、特定のメディアなど)を扱えるようにします。

VideoFrame インターフェースは、任意の回転と反転で VideoFrames を作成する機能と、VideoFrame オブジェクトのこの情報へのアクセサを拡張します。

VideoDecoderConfig オブジェクトは、デコードされた VideoFrame オブジェクトで自動的に出力される回転フィールドと反転フィールドを取得します。

VideoEncoder クラスは、encode() から EncodedVideoChunkMetadata の一部として出力される VideoDecoderConfig に回転と反転の情報を渡すメカニズムを獲得します。異なる向きのフレームで encode() が呼び出されると、致命的でない例外がスローされます。configure() は、許可された向きをリセットするために使用されることがあります。

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

パフォーマンス

prefetchCacheprerenderCacheClear-Site-Data ヘッダーに追加

デベロッパーがプリレンダリングとプリフェッチのキャッシュのクリアをターゲットにできるように、Clear-Site-Data ヘッダーに 2 つの新しい値("prefetchCache""prerenderCache")が追加されました。

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

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

これにより、投機的ルールの構文が拡張され、デベロッパーが target_hint フィールドを指定できるようになります。

このフィールドは、プリレンダリングされたページが最終的にアクティブになるナビゲート可能なターゲットを示すヒントを提供します。たとえば、ヒントとして _blank が指定されている場合、window.open() で開かれたナビゲーション可能なページに対して、プリレンダリングされたページを有効にできます。このフィールドはプリフェッチには影響しません。

仕様では、このフィールドはナビゲーション可能なターゲット名またはキーワードとして有効な任意の文字列を値として受け入れることができますが、このリリースでは "_self" または "_blank" のいずれか 1 つの文字列のみがサポートされます。ヒントが指定されていない場合は、"_self" が指定されている場合と同様に扱われます。

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

セキュリティ

スクリプトの完全性ポリシー

Subresource-Integrity(SRI)を使用すると、デベロッパーは読み込む予定のアセットが実際に読み込まれていることを確認できます。しかし、デベロッパーがすべてのスクリプトが SRI を使用して検証されることを確認する方法は、現時点では存在しません。

Integrity-Policy ヘッダーを使用すると、デベロッパーは特定のタイプのリソースごとに完全性チェックが必要であることを表明できます。そのタイプのリソースが完全性メタデータなしで読み込まれようとすると、その試行は失敗し、違反レポートがトリガーされます。

ChromeStatus.com のエントリ | 仕様

Service Worker

Speculation Rules Prefetch の ServiceWorker サポート

この機能により、ServiceWorker によって制御されるプリフェッチ(Service Worker によって制御される URL への投機ルールのプリフェッチ)が可能になります。以前は、制御する Service Worker が検出されるとプリフェッチがキャンセルされ、プリフェッチ ターゲットに対する以降のナビゲーションは、プリフェッチ以外のパスから提供されていました。この機能により、プリフェッチ リクエストが Service Worker のフェッチ ハンドラを経由できるようになります。Service Worker のインターセプトを含むレスポンスがプリフェッチ キャッシュにキャッシュ保存され、以降のナビゲーションでは、プリフェッチ キャッシュから提供されます。この機能を制御するには、エンタープライズ ポリシー PrefetchWithServiceWorkerEnabled を使用します。

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

非推奨と削除

WebGPU: GPUAdapter isFallbackAdapter 属性を非推奨に

GPUAdapterInfo isFallbackAdapter ブール値属性と重複している WebGPU の GPUAdapter isFallbackAdapter ブール値属性を非推奨にします。

フォールバック アダプタのサポートはどのブラウザにもまだ実装されていないため、この削除はマイナーな互換性のない変更です。これにより、isFallbackAdapter 属性は常に falsy 値を返します。

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

Media Source 拡張機能の非同期の範囲削除が非推奨になる

Media Source の規格は以前に変更され、非同期の範囲削除に関連する曖昧に定義された動作が禁止されるようになりました。

  • SourceBuffer.abort()SourceBuffer.remove() オペレーションを中止しなくなりました。
  • MediaSource.duration の設定で、現在バッファに保存されているメディアを切り捨てることができなくなりました。

現在、どちらの場合も例外がスローされます。

Safari と Firefox では長い間この動作が実装されていましたが、Chromium はこの古い動作を残している最後のブラウザです。使用カウンタによると、非推奨の動作が発生するページ読み込みはおよそ 0.001% ~ 0.005% です。この問題が発生したサイトでは、再生が中断される可能性があります。

abort() による削除のキャンセルの使用は増加しているため、互換性のない使用がさらに発生する前に、この非推奨を解決することをおすすめします。

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