Chrome 140 ベータ版

公開日: 2025 年 8 月 6 日

特に記載がない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能について詳しくは、リンク先をご覧いただくか、ChromeStatus.com のリストをご覧ください。2025 年 8 月 6 日時点で、Chrome 140 はベータ版です。最新版は、パソコンの場合は Chrome の公式ウェブサイトから、Android の場合は Google Play ストアからダウンロードできます。

CSS と UI

CSS 型付き算術

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

scroll-target-group プロパティ

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

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

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

content プロパティの代替テキストで counter()counters() を有効にする

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

ビュー遷移疑似要素がより多くのアニメーション プロパティを継承

ビュー遷移の疑似ツリーが、次のアニメーション プロパティを継承するようになりました。

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

ネストされたビューの切り替えを有効にする

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

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

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

ScrollIntoView コンテナ オプション

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

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

CSS の caret-animation プロパティを追加する

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

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

highlightsFromPointAPI

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

ビュー遷移の終了 Promise のタイミングを変更

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

ToggleEvent ソース属性を追加する

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

SVG foreignObject が blob URL のキャンバスを汚染しないようにする

すべてのブラウザは、HTML キャンバスの drawImage オペレーションで SVG ソースとともに <img> 要素を使用することを長らくサポートしてきました。ただし、キャンバスの汚染の動作はプラットフォームによって異なります。すべてのブラウザは、SVG ソースに foreignObject タグが含まれていて、HTTP URI で参照されている場合、キャンバスを汚染します。同じ SVG がデータ URI を介して参照される場合、すべてのブラウザでキャンバスが汚染されることはありません。ただし、blob URI が使用される場合、Chromium(この変更前)と WebKit はキャンバスを汚染しますが、Gecko は汚染しません。この機能がリリースされると、Chromium の動作が Gecko の動作と一致し、より広範囲の SVG コンテンツをキャンバスの drawImage 呼び出しで使用できるようになります。

@font-face rulefont-variation-settings 記述子をサポート

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

ウェブ API

Uint8Array を base64 と 16 進数に変換する

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

ReadableStreamBYOBReader min オプションを使用する

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

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

ローカル ネットワーク アクセスの制限

Chrome 140 では、ユーザーのローカル ネットワークに対するリクエストの送信機能が制限され、権限を求めるプロンプトが表示されるようになります。ローカル ネットワーク リクエストとは、パブリック ウェブサイトからローカル IP アドレスまたはループバックへのリクエスト、あるいはローカル ウェブサイト(イントラネットなど)からループバックへのリクエストを指します。ウェブサイトがこれらのリクエストを実行する機能を権限の背後にゲートで制御することで、ルーターなどのローカル ネットワーク デバイスに対するクロスサイト リクエスト フォージェリ攻撃のリスクを軽減できます。また、サイトがこれらのリクエストを使用してユーザーのローカル ネットワークのフィンガープリントを取得する可能性も低くなります。この権限は安全なコンテキストに制限されています。許可された場合、ローカル ネットワーク リクエストの混合コンテンツ ブロックも緩和されます。これは、さまざまな理由で多くのローカル デバイスが一般に信頼されている TLS 証明書を取得できないためです。

詳しくは、ローカル ネットワーク アクセスに関する新しい権限プロンプトをご覧ください。

SharedWorker スクリプトが blob スクリプト URL のコントローラを継承できるようにする

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

ServiceWorkerStaticRouterTimingInfoを追加

この機能では、ServiceWorker 静的ルーティング API のタイミング情報が追加され、デベロッパーが使用できるようにナビゲーション タイミング API とリソース タイミング API で公開されます。ServiceWorker は、特定の時点をマークするためのタイミング情報を提供します。

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

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

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

Android で Web 認証の条件付き作成を有効にする(リリースされていません)

独立したウェブアプリ

Controlled Frame API の導入

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

新しいオリジン トライアル

Chrome 140 では、次の新しいオリジン トライアルにオプトインできます。

clipboardchange イベントを追加する

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

着信通知を有効にする

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

Crash Reporting の Key-Value API を導入

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

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

非推奨と削除

このバージョンの Chrome では、以下の非推奨と削除が導入されています。計画されている非推奨、現在の非推奨、以前の削除の一覧については、ChromeStatus.com をご覧ください。

今回の Chrome のリリースでは、1 つの機能のサポートが終了します。

一部の要素内の <h1> の特別なフォントサイズ ルールを非推奨に

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

これらの特別ルールは、ユーザー補助の問題を引き起こすため、非推奨となっています。つまり、ネストされた <h1> のフォントサイズを視覚的に小さくして <h2> のように見せかけていますが、ユーザー補助ツリーにはこの視覚的な変更は反映されていません。