オリジン トライアル
このバージョンの Chrome では、以下のオリジン トライアルがサポートされます。オリジン トライアルとして新機能を試し、ユーザビリティ、実用性、有効性についてのフィードバックをウェブ標準コミュニティに提供することができます。以下の項目を含め、現在 Chrome でサポートされているオリジン トライアルに登録するには、Chrome オリジン トライアル ダッシュボードをご覧ください。Chrome のオリジン トライアルの詳細については、ウェブ デベロッパーのためのオリジン トライアル ガイドをご覧ください。Microsoft Edge は、Chrome とは別に独自のオリジン トライアルを行っています。詳細については、Microsoft Edge オリジン トライアル デベロッパー コンソールをご覧ください。
Anonymous iframe
Anonymous iframe を使うと、デベロッパーが一時的なコンテキストを新しく作成し、それを使ってサードパーティ iframe にドキュメントを読み込むことができます。Anonymous iframe は、Cross-Origin-Embedder-Policy: credentialless を汎用化したものであり、COEP を利用していない可能性があるサードパーティ iframe をサポートします。COEP: credentialless と同じく、クロスオリジンのサブリソースをオプトインする代わりに、非公開リソースの読み込みを回避します。これにより、サードパーティの iframe を COEP ページに埋め込むには COEP をサポートしなければならないという制約がなくなるため、クロスオリジン分離の採用を検討しているデベロッパーの障害がなくなります。
このオリジン トライアルは、Chrome 108 まで継続される予定です。オリジン トライアルに登録するには、登録ページをご覧ください。
ポップアップ API
ポップアップ API を使うと、ウェブアプリの他のインターフェース要素の上に表示される一過的なユーザー インターフェース要素を構築できます。この API は、アクション メニュー、フォーム要素の表示、コンテンツ ピッカー、ユーザー インターフェースの説明などのインタラクティブ要素の作成に活用できます。
この API は、新しい popup
コンテンツ属性を使って、任意の要素を最上位レイヤーに表示します。この属性がポップアップに与える効果は <dialog>
要素と同等ですが、いくつかの重要な相違点があります。たとえば、簡易的な閉じる操作、ポップアップのインタラクション管理、アニメーション、イベントのサポート、非モーダルモードなどです。
このオリジン トライアルは、Chrome 110 まで継続される予定です。オリジン トライアルに登録するには、登録ページをご覧ください。
今回のリリースに追加されたその他の機能
Android WebView の Client Hint 永続化
Android WebView で Client Hint が永続化され、他のウェブ プラットフォームと一致するようになります。これまでの WebView では、ページがリクエストする Client Hint のリストが永続化されなかったため、ウェブサイトを最初に読み込むときに Client Hint が含まれることはなく、ヒントを受け取ることができたのは対象ページのサブリソースだけでした。この動作は、ウェブサイトがユーザー エージェントに合わせてコンテンツを提供できるようにするという Client Hint のシステムの利便性を損なうものでした。Client Hint の詳細については、HTTP Client hints のページをご覧ください。
CSS
grid-template プロパティの補完
CSS グリッドの 'grid-template-columns'
プロパティと 'grid-template-rows'
プロパティを使うと、行の名前を定義してグリッドの列と行のサイズを追跡できます。これらのプロパティで補完がサポートされたことで、複数の状態間でグリッドのレイアウトをスムーズに遷移させることができ、アニメーションや遷移が途中で中断することはなくなります。
長さの単位 'ic'
長さの単位 'ic' length unit
は、中国語や日本語などの一部のアジア系フォントで使われる表意文字である「水」を基準にした相対的な長さを CSS で表現します。これにより、上記のフォントで、所定の文字数の全角文字グリフに要素のサイズを合わせられるようになります。Gecko と WebKit はすでにこの単位をサポートしています。Chrome にこれを追加する作業は、Interop 2022 の一環として行われています。
'forced-color-adjust' CSS プロパティの 'preserve-parent-color' 値
'forced-color-adjust'
CSS プロパティに 'preserve-parent-color' value has been added
値が追加されました。これまでは、カラーモードの強制を有効化すると、'color'
プロパティが継承されました。今後は、'preserve-parent-color'
値を使った場合、'color'
プロパティは親の値を使うようになります。そうでない場合、'forced-color-adjust: preserve-parent-color'
値は 'forced-color-adjust: none'
と同じ動作となります。
-webkit-hyphenate-character プロパティのプレフィックス削除
Chrome で、-webkit-hyphenate-character
プロパティに加え、プレフィックスなしの hyphenate-character プロパティがサポートされます。今後、-webkit-hyphenate-character
プロパティは非推奨となる予定です。
Intl.NumberFormat
に以下の新機能が搭載されました。
- 数値範囲の書式を指定する 3 つの新しい関数 :
formatRange()
、formatRangeToParts()
、selectRange()
- グルーピング用の enum
- 丸めと精度の新しいオプション
- 丸め優先度
- 文字列を 10 進数として解釈
- 丸めモード
- 負数のみに符号を表示(ゼロに負の記号を表示しない)
詳しくは、オリジナル提案の README をご覧ください。
SerialPort BYOB リーダーのサポート
SerialPort
が提供する ReadableStream
のベースとなるデータソースは、読み出し可能なバイト ストリームになります。SerialPort "bring your own buffer"(BYOB)には、パラメータなしの port.readable.getReader()
を呼び出す既存のコードとの下位互換性があります。この機能がサポートされているかどうかを検出するには、getReader()
を呼び出すときに mode パラメータとして 'byob'
を渡します。次に例を示します。
port.readable.getReader({ mode: 'byob' });
古い実装に新しいパラメータを渡すと、TypeError
がスローされます。
BYOB リーダーを使うと、ストリームがチャンクごとに新しいバッファを割り当てるのではなく、デベロッパーがデータを読み込むバッファを指定できます。ストリームは提供されたバッファのスペース以上のデータを返すことはできないので、メモリの使用量を減らせる可能性が生じるだけでなく、どのくらいのデータを受け取るかをデベロッパーが制御できるようにもなります。詳しくは、シリアルポートの読み取りと書き込みをご覧ください。
WebCodecs の dequeue イベント
dequeue
イベントとそれに関連するコールバックが audio と video インターフェースに追加されました。具体的には、AudioDecoder
、AudioEncoder
、VideoDecoder
、VideoEncoder
の各インターフェースです。
デベロッパーは、最初に encode()
または decode()
を呼び出すことで、エンコードやデコードの作業をキューに入れることができます。新しい dequeue
イベントは、ベースとなるコーデックがキューに格納された作業の一部または全部を取り込んだタイミングを通知するために発行されます。encoder.encodeQueueSize
と decoder.decodeQueueSize
属性の値はすでに減少しており、キューサイズの減少はすでに反映されています。この新しいイベントにより、キューが減少したタイミング(すなわち、キューに作業を追加すべきタイミング)を判定するために setTimeout()
を呼び出す必要がなくなります。
WebXR ローカメラ アクセス
WebXR Device API を使うアプリケーションが、WebXR が提供するその他の AR 機能も操作できる状態にある場合、姿勢と連動したカメラ画像テクスチャにアクセスできるようになります。
サポートの終了と機能の削除
このバージョンの Chrome では、以下のサポートの終了と機能の削除が行われます。現在サポートが終了している機能と以前に削除された機能のリストは、ChromeStatus.com をご覧ください。
Cookie の domain 属性から非 ASCII 文字を削除
最新の仕様(RFC 6265bis)に準拠するため、Chromium は非 ASCII 文字(éxample.com
など)を含む Domain
属性を持つ Cookie を拒否します。
Cookie の IDN ドメイン属性のサポートは長いこと規定されておらず、Chromium、Safari、Firefox のすべてで動作が異なります。今回の変更により、非 ASCII ドメイン属性を持つ Cookie を拒否するという Firefox の動作が標準になります。
これまでの Chromium は、非 ASCII 文字を受け入れ、正規化した punycode に変換して保存しようとしていました。今後は厳しいルールを適用し、有効な ASCII(該当する場合は punycode)ドメイン属性が必須となります。
HTTP/2 プッシュの削除
Chrome で、サーバーが送信する HTTP/2 プッシュ ストリームの受信、メモリ内保持、利用の機能が削除されます。詳細と提案されている代替 API については、Chrome から HTTP/2 サーバー プッシュを削除するをご覧ください。
Reviewed by
Eiji Kitamura - Developer Relations Team