Chrome 117 ベータ版

CSS グリッド サブグリッド、CSS、配列のグループ化、イテレータ ヘルパーなどの開始と終了のアニメーションのサポート。

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

CSS

このリリースでは、6 つの新しい CSS 機能が追加されています。最初の 3 つのプロパティは、個別のプロパティへの遷移を可能にする作業の一環であり、開始と終了のアニメーションを可能にします

@starting-style ルール

このルールを使用すると、最初のスタイル更新時に CSS 遷移を開始できます。

要素で最初にスタイルが更新されるとき、または表示タイプが none から他のタイプに変更されたときに、CSS 遷移が初期スタイルから遷移をトリガーすることはありません。これは、初期スタイルからの予期しない遷移を避けるためです。最初のスタイル更新から遷移を開始するために、@starting-style ルール内からスタイルを適用できるようになりました。たとえば、次の CSS は、div の最初のスタイル更新時に、背景色が緑からライムに切り替わる動作を開始します。

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

オーバーレイ プロパティ

overlay プロパティを使用すると、デベロッパーは終了遷移用の最上位レイヤに要素を保持できます。要素が最上位レイヤにあるかどうかを示すためにオーバーレイ プロパティが追加されます。このプロパティは、none または auto の 2 つの値を取ることができます。

CSS の遷移動作プロパティ

transition-behavior CSS プロパティは transition プロパティを延長したもので、遷移で個別のプロパティを使用できます。遷移動作に allow-discrete 値を指定すると、個別のプロパティがアニメーションを開始し、初期値から最終値の 50% にフリップするようになります。display: nonecontent-visibility: hidden が初期値または最終値のいずれかである遷移の場合、表示値は遷移期間全体で使用されます。

CSS グリッド サブグリッドの値

grid-template-columnsgrid-template-rowssubgrid 値が Chrome に実装されました。この値により、ネストされたグリッドは、行、列、またはその両方に新しいトラック定義を作成するのではなく、親で定義されたトラックを使用できます。

CSS テキストの折り返し: プリティ

CSS の text-wrap プロパティの pretty 値は、速度ではなく最適なレイアウトに合わせて最適化されます。これは本文のテキストを対象としているため、複数行を想定しています。デベロッパーは pretty を使用することで、wrap よりも遅い可能性のあるレイアウト メソッドを明示的にオプトインし、パフォーマンスを最適化できます。Chrome の現在の実装では、テキストの段落の下部に 1 つの単語が表示されないように、孤立が最適化されます。

Chrome 117 では、こちらの text-wrap: pretty のデモで、値によってテキストの表示方法がどのように変わるかをお試しください。

contains-intrinsic-size: auto none のサポート

この機能は、既存の contain-intrinsic-size 構文を拡張して auto && none も含むようにします。

ウェブ API

配列のグループ化

配列のグループ化は非常に一般的な操作であり、SQL の GROUP BY 句と MapReduce プログラミング(map-group-reduce に近いもの)が最もよく表れています。データをグループにまとめることができるので、デベロッパーはコホートの平均年齢やウェブページの日次 LCP 値など、より上位のデータセットを計算できます。この機能は、静的メソッド Object.groupByMap.groupBy を追加することで、これを可能にします。Object メソッドはプレーン オブジェクトを返します。グループはプロパティキーです。Map メソッドは Map を返します。キーは任意の値になります。

Clear-Site-Data ヘッダーによる Client Hints の削除

ウェブサイトで Clear-Site-Data: "clientHints" を使用して Client Hints のキャッシュをクリアできるようになりました。"cookies"、"cache"、または "*" が含まれていると、Client Hints もクリアされるようになりました。同じヘッダーでターゲティングされます。これは、ユーザーが UI で Cookie を消去すると、Client Hints のキャッシュもすでに消去されている場合、Client Hints のキャッシュはキャッシュであり、ワイルドカード ターゲットとの整合性を保つためです。

Clear-Site-Data ヘッダーのワイルドカード構文

ウェブサイトは、Clear-Site-Data: "*" を送信することで、すべてのストレージ ターゲット(「Cookies」、「cache」、「storage」)を消去できるようになります。なお、Chrome では「executionContexts」のクリアはサポートされていません。ただし、今後「*」をターゲットとするヘッダーが追加されると、それらもクリアされます。

customElements.getName

customElements.getName() メソッドは、指定されたカスタム要素定義のタグ名を返します。

イテレータ ヘルパー

イテレータ ヘルパー: イテレータの汎用的な使用と消費を可能にする、イテレータ プロトタイプの新しいメソッドです。

CaptureController が EventTarget インターフェースから導出されるようにする

CaptureController インターフェースを使用すると、スクリーン キャプチャ セッションをさらに操作できるようになります。今後は、キャプチャ セッションに関連するイベントがそのコントローラでディスパッチされる予定です。このようなイベントのリスナーを管理できるように、CaptureControllerEventTarget メソッドが提供されています。

PerformanceResourceTiming の配信タイプ

PerformanceResourceTimingdeliveryType プロパティは、リソースの配信方法に関する情報を返します。たとえば、キャッシュから配信されたリソース(現在は transferSize を通じて公開されています)や、前のページでプリフェッチされたナビゲーションなどです。

URL セッターのポート オーバーフローのチェック

ポートの値は、url.port を設定する際にチェックされます。16 ビットの数値制限をオーバーフローする値はすべて無効になります。たとえば、次のスクリプトは変更後の動作が変わります。

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

変更前の出力は 65536 です。変更後、出力は 80 になります。

プライベート ステート トークン API

これは、サードパーティ Cookie などのクロスサイト永続識別子を使用せずに、制限付きのプライベート シグナルをサイト間で伝播するための新しい API です。サードパーティ Cookie を使用する不正行為対策は、サードパーティ Cookie のサポートが終了すると機能しなくなります。Private State Token API は、不正防止シグナルの生成や定義を行いません。これは、対応するファースト パーティとトークン発行者が行います。むしろ、この API は、これらのシグナルで転送される情報に制限を適用することでプライバシーを維持します。この API は、IETF による標準化が進められているプライバシー パス プロトコルのバリアントに基づいています。これは、プライバシー パス プロトコルのウェブで公開されている形式と考えることができます。API の仕様は新しいバージョンとトークンの種類に合わせて更新される予定です。また、プライバシー パスのワーキング グループの仕様も更新される予定です。対象となるのは、基盤となる暗号プロトコルとトークン発行コードの変更です。デベロッパーが発行および利用する際に使用する Fetch API に変更はないはずです。Private State Token API は、以前は Trust Token API と呼ばれていました。名前は、基礎となるセマンティクスをより正確にとらえ、プライバシーに関するメリットをユーザーに強調するために変更されました。

URL 標準互換 IPv4 埋め込み IPv6 ホストパーサー

IPv4 埋め込み IPv6 ホストパーサーの解析動作が、ウェブの URL 標準に厳密に準拠するように更新されます。IPv6 アドレスに導入された制限は次のとおりです。

  • 埋め込み IPv4 アドレスは常に 4 つの部分で構成されるものとする。
  • http://[::1.2]」など、4 つに満たない部分の住所は無効になります。この機能は URL 相互運用 2023 の一部です。

URL: 「%00」を許可する(有効な URL パスとして指定)

現在 Chrome では、URL のパス部分に「%00」が含まれている場合、URL は無効と見なされます(または null など)が返されます。これは URL 標準に準拠していません。たとえば、次のテストは Chrome で失敗します。new URL(...) は無効な URL の例外をスローします。

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

URL 標準の規定に従い、URL パス内の文字やバイトのシーケンスによって URL が無効になることはなく、この変更により、Chrome はその標準に従うよう更新されます。

WebRTC RTP ヘッダー拡張の制御

WebRTC RTCRtpTransceiver API を拡張して、どの RTP ヘッダー拡張をネゴシエートするかを制御します。

VideoEncoder のフレームごとの量子化

「Quantizer」を追加します。VideoEncoderBitrateMode(VideoEncoder 用)。 これにより、AV1、VP9、AVC 動画コーデックのフレームごとに量子化パラメータを指定できます。

requestDevice() の WebUSB exclusionFilters オプション

navigator.usb.requestDevice()exclusionFilters オプションを使用すると、ウェブ デベロッパーはブラウザ選択ツールから一部のデバイスを除外できます。より広範なフィルタには合致するが、サポートされていないデバイスを除外する場合に使用できます。

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

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

共有 Brotli を使用した圧縮辞書転送

この機能は、Brotli 圧縮 HTTP レスポンスの外部辞書として、指定された過去のレスポンスを使用するためのサポートを追加します。

CompressionDictionaryTransport オリジン トライアルに登録します。

WebSQL デプリケーション トライアル

WebSQL は Chrome から削除されます。この機能を使用しているサイトは、Wasm を介して SQLite に移行することをおすすめします。

このデプリケーション トライアルにより、移行にさらに時間が必要なデベロッパーは、Chrome 123(2024 年 3 月)まで WebSQL を引き続き使用できます。WebSQL デプリケーション トライアルに登録します。

タブ形式ウェブアプリ

ウェブアプリのウィンドウでタブバーを表示できるようにします。たとえば、同じアプリ内の複数のドキュメントを編集できるようにします。これにより、新しい表示モード「タブ形式」が追加されます。タブバーをカスタマイズできる新しいマニフェスト フィールドが追加されました。

Tabbed Web Apps オリジン トライアルに登録します。

非推奨と削除

このバージョンの Chrome では、以下の非推奨化と削除が導入されています。サポート終了の予定、現在のサポート終了、以前の削除のリストについては、ChromeStatus.com をご覧ください。

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

アンロード イベントのサポート終了

Chrome 117 では、unload イベント ハンドラのサポート終了プロセスを開始します。サイトでこれらを使用している場合は、unload のサポート終了に関する投稿で詳細を確認することを強くおすすめします。

TLS SHA-1 サーバー署名のサポート終了

Chrome では、TLS handshake 時のサーバー署名に SHA-1 を使用した署名アルゴリズムのサポートを終了します。これは、すでに削除されているサーバー証明書での SHA-1 サポートや、引き続きサポートされるクライアント証明書での SHA-1 サポートには影響しません。

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

[WebRTC] コールバック ベースの以前の getStats() のアンシップ

RTCPeerConnection には、getStats() に 2 つのバージョンがあります。1 つは仕様に準拠しており、Promise を解決してレポートを返すバージョンです。もう 1 つは標準以外のバージョンで、最初の引数としてコールバックを介してまったく異なるレポートを返します。コールバック ベースのバージョンは削除されました。

移行の詳細と、さらに時間が必要な場合の対処方法については、以前の getStats() の移行ガイドをご覧ください。

WebRTC getStats datachannelIdentifier の -1 値を削除

WebRTC の getStats API は dataChannelIdentifier プロパティを公開しています。値「-1」は提供されなくなります。データチャネル接続が確立される前に統計情報が照会される場合。代わりに、辞書のメンバーは省略されます。

WebRTC の getStats encoderImplementation と decoderImplementation 「unknown」を削除

WebRTC の getStats API は、アウトバウンド動画とインバウンド動画のエンコーダとデコーダの実装名を公開します。動画フレームがエンコードまたはデコードされる前に統計情報がクエリされた場合、「unknown」という値は提供されなくなりました。代わりに、辞書のメンバーは省略されます。

CSS プロパティ -webkit-highlight

テキストの強調を目的としているものの、標準化されていない CSS プロパティ -webkit-highlight を削除します。Chromium では目に見える効果はありません(解析は行われますが、コンテンツのレンダリングに使用されることはありません)。このプロパティは 2014 年に WebKit から削除され、MDN で非推奨となりました。先日、CSS Highlight Pseudo 仕様に置き換えられました。