Chrome 140

安定版リリース日: 2025 年 9 月 2 日

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

CSS

CSS 型付き算術

型付き算術演算を使用すると、calc(10em / 1px)calc(20% / 0.5em * 1px) などの式を CSS で記述できます。たとえば、タイポグラフィで、型付きの値を型なしの値に変換して、数値を受け入れるプロパティで再利用できるため、便利です。別のユースケースとして、単位のない値を別の型で乗算することがあります。たとえば、ピクセルから度へのキャストが可能になりました。

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

CSS caret-animation プロパティ

Chromium は caret-color プロパティのアニメーションをサポートしています。ただし、アニメーション化すると、キャレットのデフォルトの点滅動作がアニメーションを妨げます。

CSS の caret-animation プロパティには、automanual の 2 つの値を使用できます。auto はブラウザのデフォルト(点滅)を意味し、manual はデベロッパーがキャレットのアニメーションを制御することを意味します。また、点滅するビジュアルに不快感や悪影響を感じるユーザーは、ユーザー スタイルシートを使用して点滅を無効にできます。

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

highlightsFromPoint API

highlightsFromPoint API を使用すると、カスタム ハイライトを操作できます。ドキュメント内の特定の場所にハイライトが存在するかどうかを検出します。このインタラクティブ性は、複数のハイライトが重複したり、シャドー DOM 内に存在したりする複雑なウェブ機能で役立ちます。この API は、正確なポイントベースのハイライト検出を提供することで、デベロッパーがカスタム ハイライトを使用した動的なインタラクションをより効果的に管理できるようにします。たとえば、ハイライト表示された領域でユーザーがクリックまたはホバーしたイベントに応答して、カスタム ツールチップやコンテキスト メニューなどのインタラクティブな機能をトリガーできます。

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

ScrollIntoView コンテナ オプション

ScrollIntoViewOptions コンテナ オプションを使用すると、デベロッパーは最も近い祖先スクロール コンテナのみをスクロールする scrollIntoView オペレーションを実行できます。たとえば、次のスニペットでは、target のスクロール コンテナのみをスクロールして target をビューに表示しますが、すべてのスクロール コンテナをビューポートにスクロールすることはありません。

target.scrollIntoView({container: 'nearest'});

ChromeStatus.com のエントリ | 仕様

ビューの切り替え: アニメーション プロパティの継承を拡大

ビュー遷移疑似ツリーを介して継承するアニメーション プロパティを追加します。

  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

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

ビュー遷移の疑似要素は animation-delay を継承します。

前回の更新に加えて、animation-delay プロパティがビュー遷移の疑似ツリーを介して継承されるようになりました。

ChromeStatus.com のエントリ | 仕様

ネストされたビュー遷移グループ

この機能により、ビューの切り替えでフラットな疑似要素ツリーではなく、ネストされた疑似要素ツリーを生成できます。これにより、ビューの切り替えが元の要素や視覚的な意図に沿って表示されるようになります。クリッピング、ネストされた 3D 変換、不透明度、マスキング、フィルタなどの効果の適切な適用が可能になります。

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

ルートからビューポートの overscroll-behavior を伝播

この変更により、body ではなくルートから overscroll-behavior が伝播されます。

CSS ワーキング グループは、<body> からビューポートにプロパティを伝播しないことを決定しました。代わりに、ビューポートのプロパティはルート(<html>)要素から伝播されます。そのため、overscroll-behavior はルート要素から伝播される必要があります。ただし、Chrome には、ルートではなく <body> から overscroll-behavior を伝播するという長年の問題があります。この動作は他のブラウザと相互運用できません。この変更により、Chrome が仕様に準拠し、他の実装との相互運用が可能になります。

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

content プロパティの代替テキスト内の CSS counter()counters()

この機能により、content プロパティの代替テキストで counter()counters() を使用できるようになります。これにより、アクセシビリティを向上させるためのより有意義な情報が提供されます。

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

CSS scroll-target-group プロパティ

scroll-target-group プロパティは、要素がスクロール マーカー グループ コンテナであるかどうかを指定します。次のいずれかの値を指定できます。

  • 'none': 要素はスクロール マーカー グループ コンテナを確立しません。
  • 'auto': 要素は、これが最も近い祖先スクロール マーカー グループ コンテナであるすべてのスクロール マーカー要素を含むスクロール マーカー グループを形成するスクロール マーカー グループ コンテナを確立します。

スクロール マーカー グループ コンテナを確立すると、そのようなコンテナ内のフラグメント識別子を持つアンカー HTML 要素は、::scroll-marker 疑似要素の HTML 相当物になります。スクロール ターゲットが現在ビュー内にあるアンカー要素は、:target-current 疑似クラスを使用してスタイル設定できます。

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

@font-face ルールで font-variation-settings ディスクリプタをサポート

CSS では、個々の要素の font-variation-settings プロパティを使用して、フォントの太さ、幅、傾斜などの軸を調整できます。ただし、Chromium ベースのブラウザでは、@font-face 宣言内のこのプロパティがサポートされていません。この機能は、CSS Fonts Level 4 で定義されている font-variation-settings の文字列ベースの構文をサポートしています。仕様に従って、無効な機能タグまたは認識できない機能タグは無視されます。バイナリ形式や標準以外の形式はサポートされていません。可変フォントは、パフォーマンスとタイポグラフィの柔軟性の両面から、より広く採用されるようになっています。Chromium でこの記述子のサポートを追加すると、制御が強化され、繰り返しが減り、よりスケーラブルでモダンなウェブ タイポグラフィ アプローチがサポートされます。

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

DOM

ToggleEvent ソース属性

ToggleEventsource 属性には、ToggleEvent が発火した原因となった要素が含まれます(該当する場合)。たとえば、ユーザーが popovertarget 属性または commandfor 属性が設定された <button> 要素をクリックしてポップオーバーを開いた場合、ポップオーバーで発生した ToggleEvent の source 属性は、呼び出し元の <button> に設定されます。

ChromeStatus.com のエントリ | 仕様

独立したウェブアプリ(IWA)

Controlled Frame API(IWA でのみ利用可能)

この機能では、独立したウェブアプリ(IWA)でのみ使用できる Controlled Frame API が追加されます。他のプラットフォームの同様の名前の API と同様に、Controlled Frame では、<iframe> に埋め込むことができないサードパーティのコンテンツを含め、すべてのコンテンツを埋め込むことができます。Controlled Frame では、API メソッドとイベントのコレクションを使用して埋め込みコンテンツを制御することもできます。独立したウェブアプリの詳細については、独立したウェブアプリの説明をご覧ください。

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

JavaScript

Uint8Array(base64 と 16 進数との間の変換)

Base64 は、任意のバイナリデータを ASCII として表現する一般的な方法です。JavaScript には、バイナリデータ用の Uint8Arrays があります。ただし、このデータを base64 としてエンコードしたり、base64 データを受け取って対応する Uint8Array を生成したりする組み込みメカニズムはありません。この機能により、16 進文字列と Uint8Arrays の間で変換を行うための機能とメソッドが追加されます。

ChromeStatus.com のエントリ | 仕様

移行完了の Promise のタイミングの変更を表示する

現在の完了した Promise のタイミングは、レンダリング ライフサイクルのステップ内で発生します。つまり、Promise の解決の結果として実行されるコードは、ビューの切り替えを削除するビジュアル フレームが生成された後に実行されます。スクリプトが視覚的に類似した状態を維持するためにスタイルを移動すると、アニメーションの最後にちらつきが発生する可能性があります。この変更では、ビュー遷移のクリーンアップ手順をライフサイクル完了後に非同期で実行するように移動することで、この問題を解決します。

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

ウェブ API

ReadableStreamBYOBReader min オプション

この機能では、既存の ReadableStreamBYOBReader.read(view) メソッドに min オプションが導入されます。このメソッドは、データを読み取る ArrayBufferView をすでに受け入れていますが、読み取りが解決される前に書き込まれる要素の数を保証していません。min 値を指定すると、読み取りを解決する前に、ストリームが少なくともその数の要素が使用可能になるまで待機するように要求できます。これにより、ビューが保持できる要素よりも少ない要素で読み取りが解決される可能性がある現在の動作が改善されます。

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

Get Installed Related Apps API(navigator.getInstalledRelatedApps)は、対応する関連アプリケーションがインストールされているかどうかをサイトが確認できるようにします。サイトがこの API を使用できるのは、アプリケーションがウェブ オリジンとの関連付けを確立している場合のみです。

この API は Android 版 Chrome 80 でリリースされました。Chrome 140 では、デスクトップでのウェブアプリのサポートが追加されました。

ドキュメント | トラッキング バグ #895854 | ChromeStatus.com のエントリ | 仕様

場合によっては、サーバー側でサーバーによって設定された Cookie とクライアントによって設定された Cookie を区別することが重要になります。このようなケースの 1 つに、通常はサーバーによって常に設定される Cookie があります。ただし、予期しないコード(XSS エクスプロイト、悪意のある拡張機能、混乱したデベロッパーによるコミットなど)によって、クライアントで設定される可能性があります。この提案では、サーバーがこのような区別を行えるようにするシグナルを追加します。具体的には、__Http__HostHttp の接頭辞を定義します。これにより、スクリプトを使用してクライアントサイドで Cookie が設定されるのを防ぎます。

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

Service Worker

SharedWorker スクリプトが blob スクリプト URL のコントローラを継承

仕様では、ワーカーは blob URL のコントローラを継承する必要があると規定されています。ただし、既存のコードでコントローラの継承が許可されるのは専用ワーカーのみで、共有ワーカーはコントローラを継承しません。これにより、Chrome の動作が仕様に沿うように修正されます。この機能は SharedWorkerBlobURLFixEnabled エンタープライズ ポリシーで制御できます。

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

ServiceWorkerStaticRouterTimingInfoを追加

この機能では、ServiceWorker Static routing API のタイミング情報が追加され、デベロッパーが使用できるように Navigation Timing API と Resource Timing API で公開されます。ServiceWorker は、特定の時点をマークするためのタイミング情報を提供します。

この機能では、静的ルーティング API に関連するタイミング情報が 2 つ追加されます。

  • RouterEvaluationStart: 登録されたルーター ルールとリクエストの照合を開始する時刻。
  • CacheLookupStart: ソースが "cache" の場合、キャッシュ ストレージの検索を開始する時間。

また、この機能により、一致したルーターソースと最終的なルーターソースという 2 つのルーターソース情報が追加されます。

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

オリジン トライアル

着信通知を有効にする

この機能は Notifications API を拡張し、インストール済みの PWA が着信通知(通話スタイルのボタンと着信音を含む通知)を送信できるようにします。この拡張機能は、ユーザーが通話通知を認識して応答しやすくすることで、VoIP ウェブアプリがより魅力的なエクスペリエンスを作成できるようにします。また、この機能は、ネイティブ実装とウェブ実装の両方があるアプリのギャップを埋めるのにも役立ちます。

オリジン トライアル | トラッキング バグ #detail?id=1383570 | ChromeStatus.com のエントリ | 仕様

Crash Reporting のキーと値の API

この機能では、クラッシュ レポートに追加されたデータを保持するドキュメントごとのマップに支えられた、新しい Key-Value API(仮称 window.crashReport)が導入されます。

この API のバッキング マップに配置されたデータは、サイトでレンダラ プロセスのクラッシュが発生した場合に CrashReportBody で送信されます。これにより、デベロッパーは、アプリのどの特定の状態が特定のクラッシュを引き起こしているかをデバッグできます。

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

clipboardchange イベントを追加する

clipboardchange イベントは、ウェブアプリまたは他のシステム アプリケーションがシステム クリップボードの内容を変更するたびに発生します。これにより、リモート デスクトップ クライアントなどのウェブアプリで、クリップボードをシステムのクリップボードと同期させることができます。JavaScript でクリップボードの変更をポーリングする効率的な代替手段を提供します。

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

Android で SharedWorker を有効化

Android での SharedWorker のサポートに対する長年の要望は、ウェブ デベロッパーが表明してきたいくつかのニーズに起因しています。

  • リソースの共有と効率性: 複数のタブで 1 つの WebSocket または Server-Sent Events(SSE)接続を共有し、リソースを節約することを目的としています。
  • 永続的なリソース管理: タブ間でリソースを共有して永続化するための要件。特に WASM ベースの SQLite などのテクノロジーの場合。
  • 機能のギャップを解消: iOS の Safari や Android の Firefox など、他の主要なモバイル ブラウザはすでに SharedWorker をサポートしています。Android 版 Chrome は、このギャップを解消する最後の主要ブラウザとなります。

オリジン トライアル | ChromeStatus.com のエントリ | 仕様

削除

プリフェッチと事前レンダリングからの Purpose: prefetch ヘッダーの送信を停止

プリフェッチと事前レンダリングで Sec-Purpose ヘッダーが使用されるようになったため、以前の Purpose: prefetch ヘッダーが削除されます。

これは、投機ルール prefetch、投機ルール prerender<link rel=prefetch>、Chromium の非標準の <link rel=prerender> にスコープ設定されます。

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

一部の要素内での H1 の特殊なフォントサイズ ルールが非推奨に

HTML 仕様には、<article><aside><nav><section> タグ内にネストされた <h1> タグに関する特別なルールのリストが含まれています。

これらの特殊ルールはユーザー補助の問題を引き起こすため、サポートを終了しました。具体的に言えば、ネストされた <h1> 要素のフォントサイズを視覚的に縮小して <h2> 要素のように見せかけているだけで、アクセシビリティ ツリーにはこの降格が反映されていません。

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