Chrome 120 ベータ版

CSS マスキング、CSS ネストの緩和ルール、<details> 要素を使用したアコーディオン パターンの作成(Media Session API の enterpictureinpicture アクション)

特に記載のない限り、ここに記載されている変更は、Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome Beta チャンネル リリースに適用されます。こちらに記載されている機能について詳しくは、リンク先または chromestatus.com のリストをご覧ください。Chrome 120 は 2023 年 11 月 1 日時点でベータ版です。最新バージョンはパソコン版の Google.com または Android 版の Google Play ストアでダウンロードできます。

CSS

このリリースでは、7 つの新しい CSS 機能が追加されました。

登録済みのカスタム プロパティの CSS <image> 構文

@property または registerProperty() で登録されたカスタム プロパティに対する <image> 構文の使用をサポートします。<image> 構文を使用すると、カスタム プロパティの値を url() の値と、グラデーションなどの生成される画像に制限できます。

登録済みのカスタム プロパティの CSS の <transform-function><transform-list> の構文

@property または registerProperty() で登録されたカスタム プロパティに対する <transform-function> 構文と <transform-list> 構文の使用をサポートします。

この構文を使用して、変換を表すカスタム プロパティの値を制限できます。これにより、これらの登録済みのカスタム プロパティ上で、遷移やアニメーションを直接使用することもできます。

メディアクエリ: スクリプト機能

スクリプト メディア機能は、JavaScript などのスクリプト言語が現在のドキュメントでサポートされているかどうかを照会するために使用されます。有効なオプションは、「enabled」、「initial-only」、「none」です。ただし、「initial-only」はブラウザ内では一致しません。

:dir() 疑似クラス セレクタ

:dir() CSS 疑似クラス セレクタは、HTML の dir 属性に基づいて判断される方向性に基づいて要素を照合します。

:dir(ltr) は、テキストの方向を左から右に合わせます。 :dir(rtl) は、テキストの方向が右から左である要素を照合します。

これは、dir 属性を持つ祖先から継承された方向と照合し、dir=auto(強い方向性を持つテキストの最初の文字からの方向性を判別する)を使用して計算された方向と照合するため、[dir] 属性セレクタと同等ではありません。

CSS 指数関数

CSS 値と単位レベル 4 の仕様にある CSS 指数関数 pow()sqrt()hypot()log()exp() を追加しました。

CSS マスキング

CSS の mask、および mask-imagemask-mode などの関連プロパティは、画像を特定のポイントでマスクまたはクリップして、要素を(部分的または完全に)非表示にするために使用されます。

この機能は -webkit-mask* プロパティのプレフィックスを解除し、現在の仕様に合わせます。これには、mask-imagemask-modemask-repeatmask-positionmask-clipmask-originmask-sizemask-composite、および mask の省略形が含まれます。ローカルの mask-image 参照がサポートされ、シリアル化が仕様と一致するようになり、許容される値が仕様と一致するようになりました(例: mask-compositesource-over ではなく add)。

緩和された CSS ネスト

CSS ネストの実装の変更により、ネストされたスタイルルールを要素から開始できるようになりました(たとえば、& 記号を前面に配置する必要も、is() でラップする必要もなく、h1 など)。次の例は、仕様で有効になり、Chrome 120 で動作します。

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

<details> の name 属性を使用したアコーディオン パターン

この機能により、一連の HTML <details> 要素を使用してアコーディオンを作成できます。<details> 要素に name 属性を追加します。この属性を使用すると、同じ名前の複数の <details> 要素が 1 つのグループを形成します。グループ内の要素を同時に開くことができるのは 1 つまでです。

ウェブ API

ArrayBuffer を VideoFrame、AudioData、EncodedVideoChunk、EncodedAudioChunk、ImageDecoder コンストラクタに転送できるようになりました

これにより、配列バッファを切り離し、VideoFrame、ImageDecoder、EncodedVideoChunk、EncodedAudioChunk、AudioData 内で対応するバッファをコピーせずに使用できます。

CSS Font Loading API FontFaceSet: check() メソッド

FontFaceSetcheck() メソッドは、読み込みが完了していない FontFaceSet のフォントを利用しようとすることなく、指定したフォントを使用してテキストを表示できるかどうかを確認します。これにより、ユーザーは後でフォントの置き換えを発生させることなく、フォントを安全に使用できるようになります。

リクエストのクローズと CloseWatcher

クローズ リクエストとは、ユーザーがデスクトップでは Esc キー、Android では [戻る] のジェスチャーまたはボタンを使って現在開いているアイテムを閉じるリクエストをまとめた新しいコンセプトです。Chrome への統合には、次の 2 つの点が伴います。

  • CloseWatcher: クローズ リクエストを直接リッスンして応答するための新しい API です。
  • <dialog>popover="" にアップグレードして新しいクローズ リクエスト フレームワークを使用し、Android の [戻る] ボタンに応答できるようにしました。

専用ワーカーと Storage Access API

専用ワーカーは、親コンテキストのストレージ アクセス ステータスを継承します。そのため、ドキュメントが document.requestStorageAccess() を介してストレージ アクセスを取得し、専用のワーカーを作成すると、そのワーカーもストレージ アクセス権を持ちます(パーティション分割されていない Cookie にもアクセスできます)。

FedCM: Error API と AutoSelectedFlag API

デベロッパーとユーザーが認証フローをより深く理解できるようにする専用 API。どちらの API も、ユーザーが ID プロバイダを使用してウェブサイトまたはアプリケーション(ここでは証明書利用者(RP)と呼ばれます)にログインする権限を与えられた後にトリガーされます。つまり、ユーザーが [Continue as] ボタンをクリックした後です。

Error API を使用すると、ユーザーのログイン試行が失敗した場合、ID プロバイダがブラウザと理由を共有することで、ユーザーと RP デベロッパーの両方に対して最新情報を提供できます。

AutoSelectedFlag API を使用すると、ID プロバイダと RP の開発者はログインの UX についてより深く理解し、それに応じてパフォーマンスとセグメント指標を評価できます。

詳しくは、FedCM Chrome 120 のブログ投稿をご覧ください。

Fenced Frames の機能の更新

プライバシー サンドボックス内の Protected Audience API には、Protected Audience 広告のサイズマクロのフォーマット オプションがあります。オプトイン機能を使用すると、広告の URL で落札した広告のサイズをマクロを使って指定できます。次に例を示します。

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

deprecatedReplaceInURNregisterAdMacro() で使用されているマクロなど、Protected Audience の他の種類のマクロとの整合性を高めるため、Chrome 120 では、現在の形式に加えて ${AD_WIDTH} と ${AD_HEIGHT} をマクロの形式に使用できるようになりました。

自動ビーコンが、登録されているすべての URL に送信されるようになりました。以前は、setReportEventDataForAutomaticBeacons() を呼び出したときに指定されたデスティネーションのみが、ワークレット内の reserved.top_navigationregisterAdBeacon() を呼び出した場合でも、自動ビーコンを受信していました。reserved.top_navigation に対して registerAdBeacon() を呼び出すデスティネーションはすべて自動ビーコンを取得しますが、setReportEventDataForAutomaticBeacons() で指定されたデスティネーションのみがビーコンとともに自動ビーコンデータを取得します。setReportEventDataForAutomaticBeacons()once パラメータが、ビーコン全体が 1 回だけ送信されるかどうかを判別するのではなく、データが 1 回送信されるかどうかを判別するようになりました。

Intersection Observer のスクロール マージン

Intersection Observer の scrollMargin を使用すると、デベロッパーは、スクロール コンテナによって現在クリップされ、ネストされたスクロール コンテナ内のターゲットを監視できます。これを行うには、交差の計算時に、コンテナのクリッピング範囲を scrollMargin だけ拡大します。

権限ポリシー違反レポート

これにより、Permissions Policy API が Reporting API に統合され、ウェブ デベロッパーは権限ポリシー違反レポートの送信先エンドポイントを設定できるようになります。これにより、サイト所有者は、フィールドで許可されていない機能がリクエストされるタイミングを確認できるようになります。

また、Permissions-Policy-Report-Only ヘッダーも含みます。これにより、提案されたポリシー(Content-Security-Policy-Report-Only に類似)に基づいてレポートを送信できるため、通常の enforcing モードで実装する前に、ポリシーの変更による破損の可能性を評価できます。

Media Session API: enterpictureinpicture アクション

Media Session API に enterpictureinpicture アクションを追加しました。ウェブサイトは、ピクチャー イン ピクチャー ウィンドウやドキュメントのピクチャー イン ピクチャー ウィンドウを開くために使用するアクション ハンドラを登録できます。

詳しくは、ウェブアプリでの自動ピクチャー イン ピクチャーに関するページをご覧ください。

WebGPU f16 のサポート

WebGPU シェーダー(WGSL)で半精度浮動小数点型 f16 を使用できるようにします。

デベロッパーは、WebGPU 仕様の「shader-f16」機能と WGSL 仕様の「f16」拡張機能を使用して、シェーダー内の 16 ビット浮動小数点変数と API にアクセスできます。

MediaCapabilities: decodingInfo() を使用して HDR サポートをクエリする

Media Capabilities API を拡張し、3 つの新しい VideoConfiguration ディクショナリ フィールド(hdrMetadataTypecolorGamuttransferFunction)を介して HDR レンダリング サポートを検出できるようにします。Chrome は独自のトーン マッピング アルゴリズムを実装しているため、HDR10(smpteSt2086)の静的メタデータでは常に true を返します。HDR10+(smpteSt2094-10)とドルビー ビジョン(smpteSt2094-40)のダイナミック メタデータは現在サポートされていないため、false が返されます。動的メタデータのサポートは今後追加されていく予定です。この API により、開発者はサポートが必要なユーザーに適切なコンテンツを選択できるようになります。

MediaStreamTrack の統計情報(動画)

種類が動画である MediaStreamTracks のフレーム カウンタ(配信済み、破棄、合計)を公開する API。音声の統計情報については、別途 Chrome 機能のリリースで対応する予定です。

Private Aggregation API: 集計コーディネーターの選択

Private Aggregation API に変更を加え、ペイロードの暗号化に使用するコーディネータを(ベンダー指定の許可リストから)選択するメカニズムを提供しました。サービスの選択は、run()selectURL() の SharedStorage 呼び出しと、runAdAuction()joinAdInterestGroup() の Protected Audience 呼び出しで、追加のオプションによって行われます。この広範なアプローチは、Attribution Reporting API のアプローチと概ね一致しています。

FedCM の Login Status API

Login Status API(旧 IdP Sign-in Status API)を使用すると、ID プロバイダはユーザーがログインまたはログアウトしているときにブラウザにシグナルを送信できます。

これは、FedCM がサイレント タイミング攻撃に対処する際に使用します。これにより、サードパーティ Cookie なしで FedCM が動作できるようになります。

今後、この API はより多くのユースケースで利用できる可能性があります。

詳しくは、お知らせのブログ投稿をご覧ください。

ビュー遷移: コールバックを null 値非許容にする

現在、startViewTransition 呼び出しは null 値許容のコールバック型(startViewTransition(optional UpdateCallback? callback = null) のデフォルト値)をオプションで受け取ります。

この機能により、null 値非許容型 startViewTransition(optional UpdateCallback callback) に変更されました。

X25519Kyber768 による TLS 鍵のカプセル化

Kyber768 の量子耐性のある鍵交換アルゴリズムをデプロイすることで、現在の Chrome の TLS トラフィックを将来の量子暗号から保護します。これは、IETF 標準に基づく X25519 と Kyber768 のハイブリッド鍵交換です。この仕様とリリースは W3C の対象外です。この鍵合意は TLS 暗号としてリリースされ、ユーザーに対して透過的である必要があります。

オリジン トライアルが進行中

Chrome 120 では、以下の新しいオリジン トライアルを有効にできます。

「priority」HTTP リクエスト ヘッダー

この機能により、すべての HTTP リクエストに priority リクエスト ヘッダーが追加され、リクエストの送信時点での優先度情報が設定されます。

RFC 9218(HTTP 用の拡張可能な優先順位付けスキーム)では、リクエストの優先度をオリジン(および中間者)にシグナリングするために使用される「priority」HTTP リクエスト ヘッダーを定義しています。また、HTTP/2 と HTTP/3 で同じ優先度情報を伝送するためのネゴシエーション プロセスとプロトコル レベルのフレームも定義します。ヘッダーは、リソースが最初にリクエストされたときにのみ、リソースの初期優先度を通知できます。一方、フレームベースのメカニズムでは、事後に優先度を変更できます。ヘッダーは、フレームの動作をリンクレベルで制限しながら、オリジン サーバーに対してエンドツーエンドで動作できます(さらに、中間者が認識した場合は、オリジンが優先度をオーバーライドするメカニズムを提供します)。この機能は、特にヘッダーに基づく優先順位付けスキームをサポートするためのものです。

サードパーティのコンテキストでパーティション分割されていない(Cookie と非 Cookie)ストレージにアクセスできるようにするために、Storage Access API の拡張(下位互換性)を提案します。

混合コンテンツを緩和するためのプライベート ネットワーク アクセス権限

グローバルに一意の名前がなく、そのため TLS 証明書を取得できないローカル ネットワーク上のデバイスへの接続を確立するため、この機能では、fetch() に新しいオプションが導入され、このようなデバイスと通信するデベロッパーのインテントを宣言できます。また、この機能に対する各サイトのアクセスを制御するポリシー制御の新しい機能と、追加のメタデータを提供するサーバーのプリフライト レスポンス用の新しいヘッダーを宣言します。

プライベート ネットワーク アクセス権限プロンプトのオリジン トライアルに登録します。

Performance.measureUserAgentSpecificMemory() への無制限アクセス

Performance.measureUserAgentSpecificMemory() は、(COOP/COEP の背後)クロスオリジンの隔離環境でのみ使用されるように指定されています。この機能は COOP/COEP の制限をなくし、COOP/COEP を完全にデプロイできない場合の回帰テストと影響の測定を可能にします。Performance.memory(レガシー API)はワーカーでは一度も有効になっていないため、この目的で使用することはできません。

performance.measureUserAgentSpecificMemory()

この機能では、ウェブページのメモリ使用量を推定する performance.measureUserAgentSpecificMemory() 関数が追加されます。API を使用するには、ウェブサイトはクロスオリジンで分離されている必要があります。

サポートの終了と削除

このバージョンの Chrome では、下記のサポート終了と削除を行います。サポート終了の予定、現在のサポート終了、これまでの削除情報のリストについては、ChromeStatus.com をご覧ください。

Chrome の今回のリリースでは、1 つの機能が非推奨になりました。

Theora のサポート終了と削除

新たなセキュリティ上のリスクにより、パソコン版 Chrome では Theora 動画コーデックのサポートを終了します。Theora の使用頻度は低い(今は正しくないことが多い)ため、ほとんどのユーザーにとってはサポートに適していません。

Chrome の今回のリリースでは 2 つの機能が削除されました。

データの削除: SVGUseElement の URL

SVGUseElement で data: URL を割り当てると、XSS が発生することがあります。さらに、Trusted Types の回避にもつながりました。そのため、この API のサポートは終了し、削除する予定です。

CSPEE の同一オリジンの包括的な適用を廃止

CSP 埋め込みの適用から、同一オリジンの iframe に対する特別な処理を削除しました。これにより、クロスオリジンの iframe と同一オリジンの iframe に CSP の埋め込み型適用を適用する動作が一致します。