Chrome 140 ベータ版

公開日: 2025 年 8 月 6 日

特に記載がない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャンネル リリースに適用されます。ここに記載されている機能の詳細については、提供されているリンクまたは ChromeStatus.com のリストをご覧ください。Chrome 140 は 2025 年 8 月 6 日時点でベータ版です。最新版は、パソコンの場合は 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 を伝播

この変更により、body ではなくルートから 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 プロパティには、auto と manual の 2 つの値を使用できます。auto はブラウザのデフォルト(点滅)を意味し、manual はデベロッパーがキャレット アニメーションを制御することを意味します。また、点滅するビジュアルに不快感や悪影響を感じるユーザーは、ユーザー スタイルシートを使用して点滅を無効にできます。

highlightsFromPointAPI

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

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

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

ToggleEvent ソース属性を追加する

ToggleEvent の source 属性には、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 rule で font-variation-settings 記述子をサポート

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

ウェブ API

Uint8Array を base64 と hex に変換する

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

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

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

場合によっては、サーバー側でサーバーによって設定された Cookie とクライアントによって設定された Cookie を区別することが重要になります。たとえば、通常はサーバーによって常に設定される Cookie があります。ただし、予期しないコード(XSS エクスプロイト、悪意のある拡張機能、混乱したデベロッパーによる commit など)によって、クライアントで設定される可能性があります。この提案では、サーバーがこのような区別を行えるようにするシグナルを追加します。具体的には、__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> のように見せかけているだけで、アクセシビリティ ツリーにはこの視覚的な変更が反映されていません。