必知事項は次のとおりです。
getDisplayMedia()
を使用して現在のタブをキャプチャするときに、リージョン キャプチャを使用して切り抜き領域を指定できるようになりました。- メディアクエリの構文は、数学的な比較演算子を使用して記述できます。
- 共有要素遷移: オリジン トライアルが開始されます。
- 他にも多数の機能があります。
Pete LePage と申します。Chrome 104 のデベロッパー向けの新機能について詳しく見てみましょう。
領域キャプチャでクロップ領域を指定する
getDisplayMedia()
を使用すると、現在のタブから動画ストリームを作成できます。ただし、タブ全体ではなく、その一部のみを共有したい場合があります。これまで、動画の各フレームを手動で切り抜くしかありませんでした。
リージョン キャプチャを使用すると、ウェブアプリで共有する画面の特定の領域を定義できます。たとえば、Google スライドでは、標準の編集ビューのまま、現在のスライドを共有できます。

使用するには、共有する要素を選択し、その要素に基づいて新しい CropTarget
を作成します。次に、getDisplayMedia()
を呼び出して画面共有を開始します。画面の共有許可を求めるメッセージが表示されます。次に、track.cropTo()
を呼び出して、前に作成した cropTarget
を渡します。
const elem = document.querySelector("#main");
const cropTarget = await CropTarget.fromElement(elem);
const stream = await navigator.mediaDevices
.getDisplayMedia({preferCurrentTab: true});
const [track] = stream.getVideoTracks();
await track.cropTo(cropTarget);
詳しくは、リージョン キャプチャによるタブの共有の改善をご覧ください。
レベル 4 の構文と評価によるメディアクエリの簡素化
メディアクエリはレスポンシブ デザインに不可欠で、さまざまなビューポート サイズに固有のスタイルを定義できます。ただし、毎日使用しない限り、構文が少しわかりづらい場合があります。
Chrome 104 では、メディアクエリ - レベル 4 - 構文と評価がサポートされるようになりました。これにより、通常の数学演算子を使用してメディアクエリを記述できるようになります。
たとえば、400 ~ 600 ピクセルのビューポートを示すには、次のようにします。
@media (min-width: 400px) and (max-width: 600px) {
/* Styles for viewports between 400px and 600px. */
}
次のように記述できます。
@media (400px <= width <= 600px) {
/* Styles for viewports between 400px and 600px. */
}
新しい構文では、メディアクエリの冗長性が軽減されるだけでなく、より正確に指定できるようになります。min-
クエリと max-
クエリは包括的です。たとえば、min-width: 400px
は幅が 400 ピクセル以上のテストです。新しい構文を使用すると、意図する内容をより明確に指定できます。
@media (width < 400px) {
/* Styles for viewports less than 400px. */
}
@media (400px <= width <= 600px) {
/* Styles for viewports between 400px and 600px. */
}
@media (601px <= width <= 1000px) {
/* Styles for viewports between 601px and 1000px. */
}
Firefox ではすでにサポートされており、新しい構文を古い構文に書き換えてブラウザの互換性を確保する PostCSS プラグインもあります。
詳しくは、Rachel の記事「Chrome 104 の範囲メディアクエリの新しい構文」をご覧ください。
共有要素遷移の新しいオリジン トライアルの開始
プラットフォーム固有のアプリは通常、さまざまなビューをスムーズに遷移し、美しく、ユーザーのコンテキストを維持し、エクスペリエンスのパフォーマンスを高めることができます。一方、ウェブでは、完全なナビゲーションが不自然に感じられ、画面が短時間空白になることもあります。シングルページ アプリの場合は改善できますが、遷移は依然として困難です。
共有要素遷移は、Chrome 104 で新しいオリジン トライアルとして開始されます。この機能を使用すると、遷移がドキュメント間(マルチページ アプリなど)かドキュメント内(シングルページ アプリなど)かにかかわらず、スムーズな遷移を実現できます。
シングルページ アプリで遷移がどのように機能するかの例を次に示します。ナビゲート関数で新しいページのコンテンツを取得し、遷移がサポートされているかどうかを確認します。サポートされていない場合は、遷移なしでページを更新します。変更が必要な場合は、transition()
を作成し、start()
を呼び出して、DOM の変更が完了したことを API に通知します。
async function spaNavigate(path) {
// Get new page content.
const data = await fetchPage(path);
// Check if transitions are supported, if not, use classic method.
if (!document.createDocumentTransition) {
await updateDOM(data);
return;
}
// Create transition
const transition = document.createDocumentTransition();
// Start transition, let API know when DOM change is complete.
transition.start(() => updateDOM(data));
}
共有要素遷移は、内部で CSS アニメーションを使用しているため、フェードイン エフェクトからスライドインなど、任意のエフェクトに変更できます。
ここまではほんの一部に過ぎません。詳しくは、Jake の動画「Bringing Page Transitions to the Web」または説明動画をご覧ください。
その他
もちろん、他にもたくさんあります。
- 明示的な
Expires
属性またはMax-Age
属性を使用して Cookie が設定される場合、値の上限は 400 日以内に制限されます。 - マルチスクリーン ウィンドウの配置 API が強化されました。
overflow-clip-margin
CSS プロパティは、要素のコンテンツをクリップする前にペイントできる範囲を指定します。
関連情報
以下に、主なハイライトをいくつかご紹介します。Chrome 104 のその他の変更については、以下のリンクをご覧ください。
- Chrome DevTools(104)の新機能
- Chrome 104 の非推奨と削除
- Chrome 104 の ChromeStatus.com の更新
- Chromium ソース リポジトリの変更リスト
- Chrome のリリース カレンダー
登録
最新情報を入手するには、Chrome Developers の YouTube チャンネルにチャンネル登録してください。新しい動画が公開されると、メール通知が届きます。
Pete LePage と申します。Chrome 105 がリリースされ次第、Chrome の新機能についてお知らせします。