Screen Capture API、CSS のグリッド テンプレート プロパティの補間などに対する機能が追加されました。
特に記載のない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome Beta チャンネル リリースに適用されます。こちらに記載されている機能について詳しくは、リンク先または ChromeStatus.com のリストをご覧ください。2022 年 9 月 29 日現在、Chrome 107 はベータ版です。最新バージョンはパソコン版の Google.com または Android 版の Google Play ストアでダウンロードできます。
CSS の grid-template
プロパティの補間
CSS グリッドでは、grid-template-columns
プロパティと grid-template-rows
プロパティを使用して、ライン名を定義し、グリッドの列と行のサイズをトラッキングできます。Microsoft の協力を得て、現在はこれらのプロパティの補間をサポートしています。グリッド レイアウトは、アニメーションまたは遷移の中間点でスナップするのではなく、状態間をスムーズに遷移できるようになりました。
プライバシーを保護する画面共有の管理
Screen Capture API では、既存の Media Capture API と Streams API が追加され、ユーザーが画面または画面の一部(ウィンドウなど)を選択してメディア ストリームとしてキャプチャできるようになりました。その後、このストリームを録画したり、ネットワーク経由で他のユーザーと共有したりできます。このベータ版では、いくつかの新機能がこの API に追加されています。
DisplayMediaStreamConstraints.selfBrowserSurface
getDisplayMedia()
の呼び出し時に、ユーザーに表示されるタブのリストから現在のタブを除外するかどうかを、ウェブ アプリケーションがブラウザに指示するためのヒント。
これにより、アプリを実行しているタブを誤って選択すると、ミラーホール効果が発生してユーザーを混乱させ、リモート ユーザーとの会話が妨げられるという、偶発的なセルフキャプチャを防ぐことができます。
DisplayMediaStreamConstraints.surfaceSwitching
画面共有中にタブを切り替えるボタンを Chrome に表示するかどうかをプログラムで制御するオプションが追加されました。このオプションは navigator.mediaDevices.getDisplayMedia()
に渡されます。
[代わりにこのタブを共有] ボタンを使用すると、共有するタブをシームレスに切り替えられます。ビデオ会議タブを再度選択したり、ボタンをクリックして getDisplayMedia()
をもう一度開始したり、長いタブから新しいタブを選択したりする必要はありません。一部のウェブ アプリケーションではこの動作に対処できないため、この動作は条件付きで公開されています。
MediaTrackConstraintSet.displaySurface
getDisplayMedia()
が呼び出されると、ブラウザはディスプレイ サーフェス(タブ、ウィンドウ、モニター)の選択肢をユーザーに提供します。displaySurface 制約を使用することで、ウェブ アプリケーションで、特定のサーフェス タイプをユーザーにわかりやすく表示したい場合に、ブラウザにヒントを与えることができるようになりました。
意図しない共有を避けるために、これらの機能がどのように役立つかをご紹介します。
Resource Timing でのレンダリング ブロックのステータス
リソースのレンダリング ブロックのステータスを示すフィールドを PerfomanceResourceTiming
に追加します。現時点でデベロッパーの視点から見ると、どのリソースが実際にレンダリング ブロックであったかを特定する唯一の方法は、複雑なヒューリスティックを利用することです。代わりに、この新しいフィールドは、同じことに関する直接的なシグナルを提供します。
権限ポリシーのオリジンでのワイルドカード
この機能により、有効なオリジンを SCHEME://HOST:PORT
(例: https://foo.com/)から構築できる、SCHEME://*.HOST:PORT
のような構造(例: https://*.foo.com/)の権限ポリシーでワイルドカードがサポートされるようになりました。このためには、HOST が少なくとも eTLD+1(登録可能なドメイン)である必要があります。つまり、https://*.bar.foo.com/
は動作しますが、https://*.com/
は動作しません。scheme と port セクションのワイルドカードはサポートされず、https://*.foo.com/
は https://foo.com/
にデリゲートされません。以前は、権限ポリシーは次のようになります。
permissions-policy: ch-ua-platform-version=(self "https://foo.com" "https://cdn1.foo.com" "https://cdn2.foo.com")
この機能では、以下を使用できます。
permissions-policy: ch-ua-platform-version=(self "https://foo.com" "https://*.foo.com")
<form>
要素の rel
属性のサポート
この機能により、フォーム要素に rel
属性が追加されます。これにより、rel=noopener
を含むフォーム要素によって移動されるウェブサイトに window.opener
が存在しないようになり、rel=noreferrer
でリファラー ヘッダーが送信されなくなります。
オリジン トライアル
Chrome の今回のリリースでは、新しいオリジン トライアルが 2 回追加されました。
宣言型の PendingBeacon API
ビーコンの送信タイミングをブラウザが制御できるようにするステートフル ビーコン API。ビーコンとは、特定のレスポンスを期待せずにバックエンド サーバーに送信されるデータのバンドルです。ユーザーがページにアクセスしたときに送信するのが望ましい場合もありますが、「send」呼び出しを行うタイミングはありません。この API は送信をブラウザ自体に委任するため、デベロッパーが適切なタイミングで送信呼び出しを実装しなくても、ページのアンロード時またはページ非表示時のビーコンをサポートできます。
このトライアルは Chrome 109 まで実施される予定です。トライアルには、こちらからご登録ください。
Permissions-Policy: アンロード
この機能により、ページでアンロード イベント ハンドラの実行を無効にできます。目標は、すべてのアンロード ハンドラを削除したサイトが、誤って新しいハンドラを追加しないようにすることです。これにより、サイトのアンロード イベント ハンドラの移行が容易になり、BFCache のヒット率が改善されます。
このトライアルは Chrome 109 まで実施される予定です。トライアルには、こちらからご登録ください。
サポートの終了と削除
このバージョンの Chrome では、下記のサポート終了と削除を行います。サポート終了の予定、現在のサポート終了、これまでの削除情報のリストについては、ChromeStatus.com をご覧ください。
Chrome の今回のリリースでは、1 つの機能が非推奨になりました。
Expect-CT
Expect-CT
は、Certificate Transparency(証明書の透明性)がデフォルトで適用される前に、ウェブサイトで Certificate Transparency(証明書の透明性)適用を有効にすることを許可する HTTP ヘッダーです。また、デベロッパーが CT の構成ミスを発見するのに役立つレポート機能も備えています。
Expect-CT
HTTP ヘッダーは、すべての公開ウェブサイトで CT の適用が(Chrome によって)必要とされる前に、価値の高いウェブサイトが CT 適用またはレポートを有効にすることで、セキュリティの強化を図ることで、証明書の透明性(CT)の普遍的適用への移行を容易にするように設計されています。しかし、Expect-CT
はその有用性を失います。現在、Chrome ではすべての公開ウェブサイトで CT が必要になり、Expect-CT
にはセキュリティ値が適用されなくなりました。Expect-CT
が実装されているブラウザは他にないので、削除しても相互運用性の懸念はありません。