Chrome Dev Insider のご紹介

Ben Galbraith
Ben Galbraith

デベロッパーから、ウェブの変化に追いつくことや、その変化の理由を把握することが難しいという声が寄せられています。本日より、Chrome Dev Insider という新しいシリーズを開始します。このシリーズでは、(1)注目の最新情報、(2)重要なトピック(FLOC の変更など)に関する Google の意思決定や、エコシステムとの連携への取り組み(Interop 2022 など)に関する分析情報、(3)知っておくべき重要な情報(ユーザー エージェント文字列の変更など)を共有します。

取り組んでいる内容についてお知らせする際は、2022 年の 4 つの優先事項を踏まえて行います。

  • 優れたユーザー エクスペリエンスを実現する: パフォーマンス、トランザクション、ID、遷移など、ユーザーにとって直感的な操作を実現します。
  • ウェブの機能の向上: コンテンツ消費プラットフォームから、OS とハードウェア レベルの深い統合を必要とするエクスペリエンスを含む幅広いエクスペリエンスのプラットフォームへと、ウェブの役割が進化しています。
  • ウェブ開発の簡素化: 意思決定を容易にし、デベロッパーの生産性を向上させます。
  • ウェブのプライバシー保護の強化: トラッキングとターゲティングの高度化が進むデベロッパーに対し、ウェブユーザーが期待するより優れたデータ プライバシー保護を提供します。

ニュース: Interop 2022

ロードマップを計画する際は、デベロッパーからのフィードバックを参考に、ウェブ デベロッパーの主要な課題やニーズを把握しています。繰り返し登場する重要なテーマは、ブラウザの互換性です。ブラウザ間でエクスペリエンスが同じように機能するようにします。Google は過去 1 年間、エコシステムと連携して、Google の優先事項である「ウェブ開発の簡素化」の一環として、このテーマに取り組んできました。

昨年、Microsoft、Chrome、エコシステムのプレーヤーは Compat 2021 を発表しました。その結果、一般的なブラウザ エンジン(Chromium、Gecko、WebKit)はすべて、今年の5 つの主要な重点分野で 90% 以上のスコアを達成しました。Compat 2021 では、CSS グリッド使用率 12%、着実に増加中)や CSS Flexbox使用率 77%)などの強力な機能の基盤が確立されました。

先月、Apple、Bocoup、Google、Igalia、Microsoft、Mozilla がサポーターとして集まり、ウェブ デベロッパーが特定した主要なブラウザの互換性の問題を解決し、共通のベンチマークに合意しました。その結果、Interop 2022 が誕生しました。このプロジェクトは、プラットフォームの均質性を高めることを目標としています。このベンチマークでは、デベロッパーが生産性の向上に不可欠と判断した15 の優先分野に焦点を当てています。

内部情報: ブラウザ ピアとの連携

Interop 2022 を控え、これらの会話に関わった Robert Nyman 氏と Philip Jägenstedt 氏に、その裏話を伺いました。編集者のカットで、どのように作られたかをご覧ください。

このイニシアチブの始まりはどのようなものだったのですか?

ロバート: すべては 2019 年に実施した MDN DNA 2019 アンケートから始まりました。ウェブ向けに開発するデベロッパーにとって、互換性の問題が主な問題であることは明らかでした。この問題について、MDN ブラウザ互換性レポート 2020 で詳しくフォローアップしています。これにより、Compat 2021 の取り組みを開始するのに十分な情報と実用的なデータが得られました。これにより、その作業を継続し、Interop 2022 でその範囲を拡大することができました。

Philip: web-platform-testsState of CSS 2021 についても触れておきます。Google は長年にわたり、WPT を使用したテストについて他のブラウザ ベンダーと緊密に連携してきました。この連携をさらに強化したいと考えていました。これらの機能のテストはほとんどがすでに作成されていたため、テストを確認して、不足しているカバレッジを追加するだけで済みました。Google は wpt.fyi に多大な投資をしてきました。しかし、WPT が今日のような成功を収めることができたのは、Mozilla のおかげでもあります。もちろん、Mozilla も MDN DNA の調査に大きく貢献しました。それ以外にも、State of CSS 2021 もあります。Interop 2022 のような取り組みをまとめるには、ウェブ デベロッパーのニーズに関する新しい情報を必要とするため、Google はアンケート管理者の Sacha と協力して、ブラウザの互換性に関する新しい質問を追加しました。Interop 2022 の計画プロセスで非常に役立ちました。

Compat 2021 で得た学びやフィードバックはありますか?

Robert: 各ブラウザ エンジンのパフォーマンスを測定してスコアと分析情報を取得できたのは非常に有用でした。進捗状況を追跡し、不明確な問題や優先度を上げる必要がある問題を議論して対処できました。また、この取り組みには「Interop」という名前が適していることもすぐにわかりました。通常、互換性相互運用性という用語はブラウザ ベンダーによって区別されます。互換性はサイトの互換性を指し、相互運用性は 2 つ以上のブラウザが同じ動作をすることを指します。この用語では、この取り組みは相互運用性に関するものであるため、プロジェクトはその命名に沿っています。

Google のビジョン

ロバート: ウェブをオープンに保つには、ブラウザとレンダリング エンジンの多様性が重要です。残念ながら、現在のところ、デベロッパーは各エンジンの機能に対するサポートのレベルの違いに対応しなければなりません。Google のビジョンは、開発者がウェブ プラットフォームをニーズに最も適した選択肢であり、最も魅力的な選択肢と見なし、相互運用性の問題の解決に多くの時間を費やすのではなく、可能な限り最適なエクスペリエンスの構築に集中できるようにすることです。デベロッパーがウェブ プラットフォームで成功を収めるために、この目標を達成するには、最も要望の多い機能がすべての主要なブラウザ エンジンに実装される必要があります。

目標が異なるブラウザが集まった場合、どのようにして協力して前進すればよいですか?

Philip: Google では、共通の利益を見出し、目標がすでに大まかに一致している双方にとってメリットのあるコラボレーションを探しています。また、同時に取り組む作業に優先順位を付けることで、それらの領域に集中し、個別に作業する場合よりも迅速に進み、品質を高めることができます。これがその考え方です。

このコンセンサスに基づくアプローチには限界があることを認識することが重要です。目標が十分に一致していない場合は、別の方法で前進する必要があります。ウェブ デベロッパーやユーザーのニーズに関するより多くの証拠を提示すると役立つ場合もありますが、最終的には、ブラウザ ベンダーが広範な合意を得ていない機能をリリースすることもあります。最善の場合、ウェブ デベロッパーがその機能を試し、ニーズを満たすことを確認して、すべてのブラウザで同じ機能を要求することで、その機能の価値が実証されます。

Interop 2022 に戻りますが、デザインやレイアウト以外の機能がパイプラインに追加される予定はありますか?

Philip: はい、Interop 2022 はスタイル設定とレイアウト機能に限定されていませんでしたが、最終的には CSS に大きく傾斜しました。これは、State of CSS 2021 が新しいという理由もありますが、ウェブ デベロッパーから、ブラウザ間の違いで最も問題が多いのはここだと報告されているためです。フォームやダイアログ要素など、複数のフォーカス領域は CSS を超えており、API の編集、ポインタ、マウスイベントに関する調査も行っています。Interop 2023 では、ウェブ全体のデベロッパーのニーズに関する最新データをさらに収集し、このような機能をさらに追加したいと考えています。

今後の主な変更点

このシリーズの目的の一つは、ユーザー エクスペリエンスとプラットフォームの機能の向上に重要となる、今後の重要な変更についてデベロッパーに事前にお知らせすることです。

下記のタイムラインは、これらの変更が実施される予定日です。ただし、機能のリリース バージョンは変更される可能性があります。

ユーザー エージェント文字列削減

User-Agent ヘッダーとそれに関連する JS インターフェースは、有用なブラウザとデバイスの情報だけでなく、以前の系統や不正確な情報も伝送します。UA 文字列解析バグはほぼ無限に発生しますが、それよりも問題なのは、すべてのナビゲーション リクエストとサブリソース リクエストでサーバーに受動的に送信されるということです。これは約 10 ビットのエントロピーを表し、ユーザーがウェブを操作する際に、サーバーが安定したトラッキング ID を構築するために使用できます。

現在の計画では、エントロピーの低いブラウザのメジャー バージョン、プラットフォーム名、モバイル性を引き続き送信し、エントロピーの高い情報を凍結することで、既存の UA 文字列を削減する予定です。ヘッダーに含まれる情報以外の情報を必要とするユースケースについては、Chrome 89 以降、User-Agent Client Hints API をリリースしています。

テストとフィードバックのために6 か月間オリジン トライアルを実施し、200 人を超える参加者があったにもかかわらず、破損に関するフィードバックはありませんでした。

Local Fonts Access API

Chrome で Local Font Access API がリリースされます。サイトでは長い間ローカル フォントを使用できましたが、この API はローカル フォントのリストを列挙し、フォントデータ自体にアクセスできるようにします。この機能により、ユーザーはウェブベースのデザインやその他のアプリケーションですべてのフォントを使用できます。

ローカル フォントは長い間、指紋ベクトルとして知られてきました。この新しい API によって、フォントによるフィンガープリント機能が強化されることはありませんが、Chrome では、新しい Local Font Access API を使用するには、ユーザーがサイトに新しい "local-fonts" 権限を付与する必要があります。

今後、ローカル フォントへのアクセスを提供する他の API を使用する前に、同じ「local-fonts」権限を付与することが義務付けられる予定です。

  • タイムライン: Chrome 103(2022 年 6 月)をターゲット
  • 行動を促すフレーズ: API の詳細使用方法を確認して、実装を開始しましょう。

BFCache を Cache-control: no-store で動作させる

バックフォワード キャッシュで即時「戻る」/「進む」ナビゲーションを提供できる頻度を改善する大きな機会が見つかりました。これには、Cache-control: no-store HTTP ヘッダーで配信されるページでの BFCache の動作を変更する必要があります。Google は、さまざまなシグナル(HTTP のみの Cookie が変更されるたびに BFCache からページを削除するなど)をモニタリングし、固有のコンテキストに対する除外(Enterprise/Edu のお客様向けのグループ ポリシーなど)によって、大きな問題が発生しないように設計された公開プロポーザルを用意しています。これは複雑ではありますが、エキサイティングな機会です。ぜひご検討のうえ、フィードバックをお寄せください。

  • タイムライン: 大きな問題がなければ、Chrome 104(2022 年 7 月)をターゲットとしています。
  • 行動を促すメッセージ: 開発中の実装を有効にする方法や、このアプローチによって新しい障害が生じる実際のシナリオなど、詳細については提案書をご覧ください。フィードバックを共有する方法も記載されています。

このシリーズを通じて、デベロッパー コミュニティの皆様に、私のチームとその仕事に親しみを感じていただき、集中して取り組んでいただけるよう願っています。最新情報は、このページで随時お知らせいたします。

それまでは、ウェブビディングをお楽しみください。

The Chrome Dev Insider の第 1 版について、どう思われましたか?フィードバックをお寄せください