Chrome 121 ベータ版

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

CSS

今回のリリースでは 6 つの新しい CSS 機能を追加しました。

CSS ハイライトの継承

CSS Highlight の継承を使用すると、CSS Highlight 疑似クラス(::selection::highlight など)は、要素チェーンではなく疑似ハイライト チェーンのプロパティを継承します。その結果、ハイライトでのプロパティ継承のモデルをより直感的なものにできます。

これにより、CSS 疑似レベル 4 仕様の要件が実装されます。

「サポートされているプロパティのいずれかにカスケードによって値が指定されていない場合、指定された値は、その元の要素の親要素の対応するハイライト擬似要素からの継承によって決定されます。」

CSS スクロールバー: scrollbar-colorscrollbar-width

CSS Scrollbars 仕様を使用すると、デベロッパーはスクロールバーの色と太さを指定してスタイルを設定できます。この仕様では、次の 2 つのプロパティが追加されています。scrollbar-color プロパティを使用すると、スクロールバーのカラーパターンを変更して、ウェブページの特定のスタイルに合わせやすくなります。scrollbar-width プロパティを使用すると、ユースケースによってはより幅の狭いスクロールバーを使用できます。また、スクロール可能性に影響を与えることなくスクロールバーを完全に非表示にすることもできます。

カラーフォント用の CSS font-palette アニメーション

CSS の font-palette プロパティを使用すると、カラーフォントのレンダリングに使用する特定のパレットを選択できます。このプロパティのアニメーション化のサポートが新たに追加されたため、パレット間の移行が個別のステップではなく、選択した 2 つのパレット間でスムーズに移行できるようになりました。これは、CSS アニメーションと遷移のどこでも機能します。

CSS のスペルと文法の機能

CSS では、ユーザー エージェントがスペルミスや文法上の誤りを報告したテキストのスタイル設定に使われる疑似要素や、誤字脱字や文法ミスのためにユーザー エージェントのデフォルトの装飾を露出させる線の装飾がハイライト表示されます。これらの機能により、デベロッパーはデフォルトのスペルミスや文法エラーに対してより読みやすい色を選択したり、スペルミスの単語を背景色やその他の装飾でハイライト表示したり、デバイス エクスペリエンスに溶け込むカスタム スペルチェックを実装したりできます。

SVG の CSS マスキングの改善

これは Chrome 120 での CSS マスクのサポートの改善に続くもので、SVG に新しいマスクサポートが追加されています(複数のマスク、および mask-modemask-compositemask-positionmask-repeat)。また、リモート SVG マスク(mask: url(masks.svg#star) など)がサポートされるようになりました。

Ruby 固有の表示値

新しい CSS ディスプレイ プロパティの値である rubyruby-text が追加されました。<ruby><rt> のデフォルトの表示値がそれぞれ rubyruby-text に変更され、Ruby レイアウトではこれらの表示値が考慮されます。ウェブ作成者は、新しいディスプレイ値を設定することで、<div> などの任意の要素を使用して Ruby をレンダリングできます。

ウェブ API

アトリビューション レポート機能のバンドル: 集計の遅延の短縮、イベントレベル レポートの Epsilon フィールド、予約済みキー

Chrome の Attribution Reporting API の変更点は次のとおりです。

  • 集計レポートの遅延短縮をサポートして、伝送損失を低減します。
  • イベントレベルのレポート イプシロン フィールドをサポートすることで、API をより柔軟に構成できるようになりました。
  • 予約済みのキーに達したときに登録が失敗することで、API の拡張性が向上しました。

バックフォワード キャッシュの notRestoredReason API

notRestoredReason API により、PerformanceNavigationTiming API を使用してページが bfcache から配信されなかった理由のリストを報告します。

ドキュメントのピクチャー イン ピクチャーでのサイズ変更 API にユーザー操作を要求する

これにより、ドキュメントのピクチャー イン ピクチャー ウィンドウで resizeBy() メソッドと resizeTo() メソッドが有効になりますが、不正行為の可能性を軽減するためのユーザー操作要件の制限が追加されています。

EditContext API

EditContext API を使用すると、VK 図形作成、手書きパネル、音声認識、IME コンポジションなどの高度なテキスト入力方法をウェブアプリと統合するプロセスが簡単になります。ユーザー補助とパフォーマンスが向上し、ウェブベースのエディタの新機能も利用できるようになります。

サポートされているクリップボード形式の機能検出

新しい supports() 関数を呼び出して MIME タイプ(ClipboardItem.supports('image/png') など)を引数として渡すことで、Async Clipboard API が特定の MIME タイプをサポートしているかどうかを確認できるようになりました。

HTMLSelectElement showPicker()

HTMLSelectElement の showPicker() メソッドを使用すると、デベロッパーは、input.showPicker() のパターンに従って <select> 要素のオプション選択ツールをプログラムで開けるようになります。

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

Media Capabilities API を拡張し、3 つの新しい VideoConfiguration ディクショナリ フィールド(hdrMetadataType、colorGamut、transferFunction)で HDR レンダリング サポートを検出できるようにします。

Chromium は独自のトーン マッピング アルゴリズムを実装しているため、HDR10(smpteSt2086)静的メタデータは常に true を返します。smpteSt2094-40(HDR10+)と smpteSt2094-10 動的メタデータは現在サポートされていないため、false を返します。

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

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

デスクトップでの Remote Playback API

この API は、ウェブページからのメディアのリモート再生制御を可能にする HTMLMediaElement を拡張します。この機能は Android 版 Chrome 56 で導入されており、パソコン版 Chrome 121 以降でご利用いただけます。

Speculation Rules API

Speculation Rules API に新機能が追加されました。

ドキュメント ルールのサポート: 投機ルール構文の拡張機能で、ブラウザがページの <a> 要素から投機的読み込みを行う URL のリストを取得できるようにします。各リンクの使用条件が含まれている場合もあります。これに投機ルールの新しい「eagerness」フィールドを組み合わせることで、デベロッパーは、カーソルを合わせたりマウスを押したりしたときに、すぐにページ上のリンクを自動的にプリフェッチまたは事前レンダリングできます。

別の変更により、インラインの <script> 要素を使用する代わりに Speculation-Rules HTTP レスポンス ヘッダーを使用して投機ルールを指定できるようになりました。このヘッダーの値には、"application/speculationrules+json" MIME タイプのテキスト リソースを指す URL を指定する必要があります。リソースのルールは、ドキュメントのルールセットに追加されます。

最後に、No-Vary-Search ヒントを使用すると、URL クエリ パラメータが変更されても、投機的プリフェッチに一致させることができます。No-Vary-Search HTTP レスポンス ヘッダーは、照合のために URL のクエリの一部または全部を無視できることを宣言します。クエリ パラメータ キーの順序によって一致が妨げられないこと、特定のクエリ パラメータによって一致が妨げられないこと、既知の特定のクエリ パラメータのみが不一致を引き起こすことを宣言できます。

SpeechSynthesis インターフェース オブジェクトと SpeechSynthesisVoice インターフェース オブジェクト

SpeechSynthesisSpeechSynthesisVoice のインターフェース オブジェクトを、すでにサポートされている機能に追加します。これにより、SpeechSynthesisVoice.prototype による特徴検出が可能になります。

Storage Buckets API

ストレージ バケットを使用すると、サイトはデバイス上のデータを別々の「バケット」に整理できます。これにより、ユーザー エージェントは他のバケットにあるデータとは別にグループ化されたデータを削除でき、意味的に関連するデータを人間工学的に管理できるようになります。各ストレージ バケットには、IndexedDB や CacheStorage などの確立されたストレージ API に関連付けられたデータを格納できます。

URLPattern: 左に、ワイルドカード右を継承

ベース URL、コンストラクタ文字列の構文、またはその両方を使用して作成されたパターンの動作が変更されます。ただし、ベース URL なしでコンポーネントを明示的に指定するパターンには影響しません。

「以前の」コンポーネントが明示的に指定されている場合、コンポーネントはベース URL から継承されません。 文字列形式では、指定されていない「後の」コンポーネントは、空である必要はなく、暗黙的にワイルドカードになります(ただし、ポートは例外で、ホスト名が指定されている場合は常に指定されます)。 ユーザー名とパスワードは、暗黙的に指定されることも、継承されることもありません。

これにより、ワイルドカードを使用した方がよいと思われる場合に、パターンがこれまでよりも拡張しやすくなりました。

URLPattern: RegExp v フラグ(u ではない)

URL Pattern API を使用すると、デベロッパーはパターン文字列を指定できます。これらは内部で正規表現に変換されます。

これらの正規表現は、API が初めて実装されたときに u フラグでコンパイルされていました。Chrome 121 では、v フラグに更新されて Unicode セットが有効になります。

WebGPU への追加機能

WebGPU により、パイプラインの作成時にシェーダー モジュールへのエントリ ポイントを省略できるようになり、エルゴノミクスが改善されました。デフォルトのエントリ ポイントが見つからない場合は、通常どおり GPUValidationError がトリガーされます。

WebGPU タイムスタンプ クエリを使用すると、WebGPU アプリケーションで GPU コマンドの実行にかかる時間を(特にパスの開始時と終了時に)正確に(ナノ秒単位で)測定できます。タイムスタンプ クエリは、GPU ワークロードのパフォーマンスと動作に関する分析情報を得るために頻繁に使用されます。

WebGPU の仕様では、タイミング攻撃への懸念からタイムスタンプ クエリをオプション機能にしていますが、タイムスタンプ クエリの量子化は、タイマーの精度を 100 マイクロ秒の解像度で低下させるという良い中間点を提供するものと考えています。

X25519Kyber768 での TLS 鍵のカプセル化

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

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

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

Element Capture API

Element Capture API には、DOM のサブツリーをキャプチャするためのメソッドが用意されています。

タブ キャプチャを開始する既存の手段を通じて動画 MediaStreamTrack を取得すると、要素キャプチャによってトラックを変更して、特定の要素から始まる DOM のサブツリーのみをキャプチャできます。

この API は Region Capture API に似ていますが、オクルージョン コンテンツとオクルージョン コンテンツの両方がキャプチャから除外されるため、アプリケーションの柔軟性が向上します。

ElementCapture オリジン トライアルに登録する

既存の動作の変更

Chrome 121 では、既存の動作が次のように変更されています。この変更は、デベロッパーに注意を喚起するためです。

最近移動したクロスオリジン iframe に入力イベントを破棄

クロスオリジンの iframe が埋め込みページ内で最近移動した場合、Chrome はその iframe をターゲットとするイベントを通知なく破棄します。理由としては、iframe を最近移動した場合、ユーザーがクリックまたはタップするつもりはなかったことが考えられます。

この変更は 2019 年に限定的にリリースされました。影響があったのは、IntersectionObserver のバージョン 2 の機能(オクルージョンまたはエフェクト検出)を使用するスクリプトを含む iframe のみです。このリリースでは、この動作がすべてのクロスオリジンの iframe に拡張され、Chrome 121 で制限付きのテストとして開始され、徐々に拡張されます。