CSS マスキング(CSS ネストの緩和されたルール)では、Media Session API の enterpictureinpicture
アクションである <details>
要素を使用してアコーディオン パターンを作成します。
特に記載のない限り、記載されている変更は、Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome Beta チャンネル リリースに適用されます。機能の詳細については、上記のリンクまたは chromestatus.com のリストをご覧ください。2023 年 11 月 1 日時点で Chrome 120 はベータ版です。最新版は Google.com(パソコン版)または Google Play ストア(Android 版)からダウンロードできます。
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
属性を持つ祖先から継承されたルートと照合され、dir=auto
(方向性が高いテキストの最初の文字から方向性を決定する)を使用して計算された方向とも一致するためです。
CSS 指数関数
CSS 指数関数である、CSS の値と単位レベル 4 の仕様の pow()
、sqrt()
、hypot()
、log()
、exp()
が追加されています。
CSS マスキング
CSS mask
と、mask-image
や mask-mode
などの関連するプロパティを使用して、特定のポイントで画像をマスクまたはクリップすることで、要素を(部分的または完全に)非表示にします。
この機能は、-webkit-mask*
プロパティのプレフィックスを削除し、現在の仕様に沿ったものにします。これには、mask-image
、mask-mode
、mask-repeat
、mask-position
、mask-clip
、mask-origin
、mask-size
、mask-composite
、mask
省略形が含まれます。ローカルの mask-image
参照がサポートされ、シリアル化が仕様と一致し、許容値が仕様と一致するようになりました(たとえば、mask-composite
の source-over
が add
になりました)。
リラックスした CSS ネスト
今回の CSS ネスト実装の変更により、ネストされたスタイルルールを h1
などの要素から開始できるようになりました。&
記号を前に付けたり、is()
でラップしたりする必要はありません。次の例は、Chrome 120 で仕様において有効になりました。
.card {
h1 {
/* h1 does not start with a symbol */
}
}
HTML
<details>
の name 属性を使用したアコーディオン パターン
この機能により、一連の HTML <details>
要素を使用してアコーディオンを作成する機能が追加されます。<details>
要素に name 属性を追加しています。この属性を使用すると、同じ名前の複数の <details>
要素によってグループが形成されます。グループ内の要素は一度に 1 つまでしか開くことができません。
ウェブ API
VideoFrame、AudioData、EncodedVideoChunk、EncodedAudioChunk、ImageDecoder コンストラクタへの ArrayBuffer の転送を許可
これにより、配列バッファをデタッチし、対応するバッファを VideoFrame、ImageDecoder、EncodedVideoChunk、EncodedAudioChunk、AudioData 内でコピーなしで使用できるようになります。
CSS Font Loading API FontFaceSet: check() メソッド
FontFaceSet
の check()
メソッドは、読み込みが完了していない 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)と呼びます)にログインする許可をとった後にトリガーされます。つまり、ユーザーが [次の名前とメールアドレスで続行] ボタンをクリックした後です。
Error API を使用すると、ユーザーのログイン試行に失敗した場合に ID プロバイダが理由をブラウザと共有して、ユーザーと RP デベロッパーの両方を最新の状態に維持できます。
AutoSelectedFlag API を使用すると、ID プロバイダと RP のデベロッパーのどちらも、ログインの UX について理解を深め、それに応じてパフォーマンスを評価し、セグメントの指標をセグメント化できます。
詳しくは、FedCM Chrome 120 のブログ投稿をご覧ください。
フェンス付きフレームの機能の更新
プライバシー サンドボックス内の Protected Audience API には、Protected Audience の広告サイズマクロに関する追加のフォーマット オプションがあります。オプトイン機能を使用すると、マクロを使用して、オークションで落札した広告のサイズを広告の URL に指定することができます。次に例を示します。
https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}
deprecatedReplaceInURN
や registerAdMacro()
で使用されるマクロなど、Protected Audience の他のタイプのマクロとの一貫性を保つため、Chrome 120 では、現在の形式に加えて ${AD_WIDTH} と ${AD_HEIGHT} をマクロの形式として追加します。
登録されているすべての URL に自動ビーコンが送信されるようになります。以前は、setReportEventDataForAutomaticBeacons()
の呼び出し時に指定されたデスティネーションのみが自動ビーコンを受信していました。これは、そのデスティネーションがワークレットの reserved.top_navigation
に対して registerAdBeacon()
を呼び出した場合でも同じでした。これで、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
と同様)。これにより、Regular の enforcing モードで実装する前に、ポリシーの変更に潜在的な違反があるかどうかを評価できます。
Media Session API: enterpictureinpicture
アクション
Media Session API に enterpictureinpicture
アクションを追加します。ウェブサイトは、ピクチャー イン ピクチャーまたはドキュメント ピクチャー イン ピクチャーのウィンドウを開くために使用できるアクション ハンドラを登録できます。
詳しくは、ウェブアプリでのピクチャー イン ピクチャーの自動開始をご覧ください。
WebGPU f16 のサポート
WebGPU シェーダー(WGSL)で半精度の浮動小数点型 f16 を使用できるようにします。
デベロッパーは 'shader-f16'(WebGPU 仕様および「f16」仕様を使用)拡張を使用して、シェーダーで 16 ビット浮動小数点変数と API にアクセスできます。
MediaCapabilities: decodingInfo()
で HDR サポートをクエリする
Media Capabilities API を拡張し、3 つの新しい VideoConfiguration ディクショナリ フィールド(hdrMetadataType
、colorGamut
、transferFunction
)を使用して 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 を完全に使わずに運用できるようになります。
今後、この 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 では、次の新しいオリジン トライアルを有効にできます。
'優先度'HTTP リクエスト ヘッダー
この機能は、すべての HTTP リクエストに priority
リクエスト ヘッダーを追加し、リクエスト送信時の優先度情報を含めます。
RFC 9218(Extensible Persistentization Scheme for HTTP)では、「優先度」が定義されています。送信元(および中間者)にリクエストの優先度を通知するために使用する HTTP リクエスト ヘッダー。また、HTTP/2 と HTTP/3 で同じ優先度情報を伝達するためのネゴシエーション プロセスとプロトコル レベルのフレームも定義します。ヘッダーは、リソースが最初にリクエストされたときのみ、リソースの初期優先度を通知できますが、フレームベースのメカニズムでは事後に優先度を変更できるようにします。ヘッダーは配信元サーバーに対してエンドツーエンドで動作し(また、中間者によって認識された場合は配信元が優先度をオーバーライドするメカニズムを提供)、フレームがリンクレベルで動作するように制限できます。この機能は、特にヘッダーベースの優先順位付けスキームをサポートするためのものです。
Storage Access API(SAA)が Cookie 以外のストレージにも対応
Google は、Storage Access API の拡張機能(下位互換性あり)を使用して、パーティション分割されていない(Cookie と Cookie 以外の)ストレージにサードパーティのコンテキストでアクセスできるようにすることを提案します。
混合コンテンツを緩和するためのプライベート ネットワーク アクセス権限
グローバルに一意の名前がなく 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 ではパソコン版 Chrome での Theora 動画コーデックのサポートを終了し、サポートを終了します。Theora の使用頻度は高くなく、現在は正しくないことが多いため、ほとんどのユーザーに対するサポートを正当化できなくなりました。
Chrome のこのリリースでは、2 つの機能が削除されます。
データを削除する: SVGUseElement の URL
SVGUseElement で data: URL を割り当てると、XSS が発生することがあります。また、Trusted Types のバイパスにもつながりました。そのため、Google はこの API のサポートを終了し、削除する予定です。
CSPEE における同一オリジンの包括的な適用を削除
CSP Embedded Enforcement から同一オリジンの iframe に対する特別な処理を取り除きます。これにより、クロスオリジンの iframe と同一オリジンの iframe に対して CSP Embedded Enforcement の動作が適用されます。