必知事項は次のとおりです。
- Screen Capture API に新しいプロパティが追加され、画面共有がさらに便利になりました。
- ページ上のリソースがレンダリング ブロックかどうかを正確に特定できるようになりました。
オリジン トライアルでは、宣言型の PendingBeacon API を使用してバックエンド サーバーにデータを送信する新しい方法が導入されています。他にもさまざまな機能があります。
他にも多くの機能を利用できます。
Adriana Jara と申します。Chrome 107 のデベロッパー向けの新機能について詳しく見てみましょう。
Screen Capture API の新しいプロパティ
このバージョンの Screen Capture API では、画面共有のエクスペリエンスを向上させる新しいプロパティが追加されています。
DisplayMediaStreamOptions
によって selfBrowserSurface
プロパティが追加されました。このヒントを使用すると、アプリは getDisplayMedia()
を呼び出すときに現在のタブを除外する必要があることをブラウザに伝えることができます。
// Exclude the streaming tab
const options = {
selfBrowserSurface: 'exclude',
};
const stream = await navigator
.mediaDevices
.getDisplayMedia(options);
これにより、誤って自分自身を撮影してしまうのを防ぐことができ、ビデオ会議で発生する「鏡の回廊」効果を回避できます。
DisplayMediaStreamOptions
にも surfaceSwitching
プロパティが追加されました。
このプロパティにより、画面共有中に Chrome にタブ切り替えボタンを表示するかどうかをプログラムで制御するオプションが追加されます。これらのオプションは getDisplayMedia()
に渡されます。Share this tab instead
ボタンを使用すると、ビデオ会議タブに戻ったり、長いタブリストから選択したりすることなく、新しいタブに切り替えることができます。ただし、ウェブ アプリケーションが処理しない場合を考慮して、この動作は条件付きで公開されます。
// Show the switch to this tab button
const options = {
surfaceSwitching: 'include',
};
const stream = await navigator
.mediaDevices
.getDisplayMedia(options);
また、MediaTrackConstraintSet
はプロパティ displaySurface
を追加します。getDisplayMedia()
が呼び出されると、ブラウザはタブ、ウィンドウ、モニターのディスプレイ サーフェスの選択をユーザーに提示します。displaySurface
制約を使用すると、ウェブアプリは、サーフェス タイプのいずれかをより目立つように表示することをブラウザにヒントできます。
たとえば、1 つのタブを共有することをデフォルトに設定できるため、誤って過剰共有を防ぐことができます。
レンダリング ブロック リソースを特定する
高速なユーザー エクスペリエンスを構築するには、ページのパフォーマンスに関する信頼できる分析情報が不可欠です。これまで、デベロッパーは複雑なヒューリスティクスに頼って、リソースがレンダリング ブロックであるかどうかを判断していました。
Performance API に renderBlockingStatus プロパティが追加されました。このプロパティは、ページの表示を妨げているリソースをブラウザから直接通知し、ダウンロードが完了するまでそのリソースをブロックします。
このコード スニペットは、すべてのリソースのリストを取得し、新しい renderBlockingStatus プロパティを使用して、レンダリング ブロックしているすべてのリソースを一覧表示する方法を示しています。
// Get all resources
const res = window.performance.getEntriesByType('resource');
// Filter to get only the blocking ones
const blocking = res.filter(({renderBlockingStatus}) =>
renderBlockingStatus === 'blocking');
リソースの読み込み方法を最適化すると、Core Web Vitals が改善され、ユーザー エクスペリエンスが向上します。Performance API について詳しくは MDN ドキュメントをご覧ください。レンダリング ブロック リソースを探して最適化してください。
PendingBeacon API オリジン トライアル
宣言型の PendingBeacon API を使用すると、ビーコンを送信するタイミングをブラウザが制御できます。
ビーコンとは、特定のレスポンスを期待せずにバックエンド サーバーに送信されるデータのバンドルです。
アプリケーションでは多くの場合、ユーザーのアクセス終了時にこれらのビーコンを送信する必要がありますが、「send」呼び出しを行う余裕はありません。この API は送信をブラウザ自体に委任するため、デベロッパーが正確なタイミングで送信呼び出しを実装しなくても、page unload
または page hide
でビーコンをサポートできます。
オリジン トライアルに登録して API をお試しください。ユースケースの改善に役立てるため、フィードバックをお寄せください。
その他
もちろん、他にもたくさんあります。
expect-ct
HTTP ヘッダーは非推奨になりました。rel
属性が<form>
要素でサポートされるようになりました。- 前回は
grid-template
補間について説明しましたが、今回はそれを含める必要があります。
関連情報
主なハイライトのみを記載しています。Chrome 107 のその他の変更については、以下のリンクをご覧ください。
- Chrome DevTools の新機能(107)
- Chrome 107 の非推奨と削除
- Chrome 107 の ChromeStatus.com の更新
- Chromium ソース リポジトリの変更リスト
- Chrome のリリース カレンダー
登録
最新情報を入手するには、Chrome Developers の YouTube チャンネルにチャンネル登録してください。新しい動画が公開されると、メール通知が届きます。
Adriana Jara と申します。Chrome 108 がリリースされ次第、Chrome の新機能についてお知らせします。