UK marketing-led group takes antitrust complaint against Google’s Privacy Sandbox to the EU

A coalition of digital marketing firms and others has taken its lobbying against Google’s plan to phase out tracking cookies — by replacing them with alternative technologies which the tech giant claims will protect user privacy — to the European Union, lodging a formal complaint with the bloc’s antitrust regulators. The self-styled “Movement for an […]

Chrome の User-Agent 文字列削減のオリジン トライアルと今後の計画について

この記事は Chrome チーム、Mike Taylor、Jade Kessler による Chromium Blog の記事 “User-Agent Reduction Origin Trial and Dates” を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


今年 5 月に、User-Agent 文字列削減計画についての最新情報 をお知らせし、適宜詳細をお伝えすることを約束しました。この度、削減版の User-Agent ヘッダー(とそれに関連する JS インターフェース)を オリジン トライアル(オリジンを指定して実験的機能を先行利用できるオプトイン機能)でテスト できるようになったので、現時点で想定しているスケジュールについてお知らせします。以下は元のブログ投稿の繰り返しになりますが、各フェーズが始まる Chrome の想定バージョンを記載しているので、準備のためにご活用ください。
Chromium スケジュール ダッシュボード は、それぞれの Chrome バージョンに関連する日付や、Canary 版からベータ版、安定版リリースに至る進捗を理解するうえで役に立ちます。
注 : エンジニアリングの想定期限に関する一般的な注意事項は、ここでも当てはまります。つまり、不測の事態により、遅延が発生する可能性があります。ただし、遅延が発生した場合でも、フェーズ間のスケジュールを縮めることはいたしません。

ロールアウト計画案

以下の変更は、7 つのフェーズに分け、オリジン トライアルのフィードバックを待ちながら、時間をかけて徐々にロールアウトする予定です。

削減の準備

フェーズ 1: Chrome 92 から(2021 年 7 月 20 日)
推奨される対応(CTA): サイトの使用方法を監査し、移行が必要になる可能性がある箇所を把握してください。
M92 より、navigator.userAgentnavigator.appVersionnavigator.platform へのアクセスに関する警告を DevTools に表示します。

フェーズ 2: Chrome 95 から Chrome 100
CTA: Chrome 101 がリリースされるまでの間、サイトをオリジン トライアルに登録し、フィードバックを提供してください。
みなさんからテストとフィードバックにご協力いただけるよう、サイトを削減版の UA 文字列の最終形にオプトインできるオリジン トライアルを開始します。これは少なくとも 6 か月間継続します。 
オリジン トライアル パートナーやコミュニティからのフィードバックを評価し、そのフィードバックに基づき、計画のフェーズ 3 から 7 を進めます。その間に、エコシステムが適応するための十分な時間をとります。もしくは、フィードバックに応じて、最善策について再検討します。

削減のロールアウト

フェーズ 3: Chrome 100
CTA: 必要に応じて、デプリケーション トライアル(オリジンを指定してサポートの終了を延期できるオプトイン機能)またはエンタープライズ ポリシーにサイトを登録してください。
サイトを移行する時間がさらに必要な場合などのために、デプリケーション トライアルとエンタープライズ ポリシーを開始します。

フェーズ 4: Chrome 101
CTA: サイトで削減版の Chrome バージョン番号との互換性を確保してください。確保できない場合は、UA Client Hints に移行します。
Chrome の MINOR.BUILD.PATCH バージョン番号を削減します (”0.0.0″)。これがロールアウトされると、デスクトップとモバイルのオペレーティング システムで、デプリケーション トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。

フェーズ 5: Chrome 107
CTA: サイトで削減版のデスクトップ UA 文字列と関連する JS API との互換性を確保してください。確保できない場合は、UA Client Hints に移行します。
削減版のデスクトップ UA 文字列と関連する JS API(navigator.userAgentnavigator.appVersionnavigator.platform)のロールアウトを開始します。これがロールアウトされると、デスクトップのオペレーティング システムで、デプリケーション トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。

フェーズ 6: Chrome 110
CTA: サイトで削減版のモバイル UA 文字列と関連する JS API との互換性を確保してください。確保できない場合は、UA Client Hints に移行します。
削減版の Android モバイル(とタブレット)の UA 文字列と関連する JS API のロールアウトを開始します。これがロールアウトされると、Android で、デプリケーション トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。

削減の完了

フェーズ 7: Chrome 113
デプリケーション トライアルが終了し、すべてのページの読み込みに、削減版の UA 文字列と関連する JS API が適用されます。
詳細や、各フェーズでの User-Agent 文字列の例については、削減版の User-Agent 文字列に関する最新情報ページをご覧ください。重大な遅延や変更が発生した場合は、このページでもお知らせします。

Chrome の User-Agent 文字列削減に関する最新情報

この記事は Chrome チーム、Mike Taylor、Jade Kessler による Chromium Blog の記事 “Update on User-Agent String Reduction in Chrome” を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

1 年ほど前に、User-Agent 文字列で公開される情報の粒度を徐々に削減する計画についてお知らせしました。この文字列は、デフォルトで HTTP リクエストのたびに送信されています。その直後、COVID-19 パンデミックの初期段階でウェブのエコシステムに移行の負荷をかけないよう、この取り組みを一時的に停止することを決めました。それ以降は、多大な時間を費やしてエコシステムから貴重なフィードバックを集め、これに代わるコンテンツのネゴシエーションと検出用の仕組みとして提唱している User-Agent Client Hints API(UA-CH)への人間工学的な改善を提案したり、ウェブの互換性の修正をしました。

現在、UA-CH はデフォルトで Chrome に搭載されています(M89 以降)。また、最初のリクエストでヒントが必要になるユースケースに対処するため、両方の Client Hints Reliability の仕組み(Critical-CH と ACCEPT_CH)のロールアウトも始めました。今後予定されている User-Agent 文字列削減の変更の厳密な日程やマイルストーンはまだお知らせできませんが、この領域の取り組みを再開する準備はできています。

とは言うものの、エコシステムやデベロッパーがユースケースをテストし、フィードバックを送り、適切な場合は UA-CH に移行する十分な時間を確保できる形で作業を進めることが重要だと感じています。そのため、2021 年中は、Chrome の安定版チャンネルで User-Agent 文字列の変更は行わない予定です。この投稿の目的は、皆さんが適切な対応計画を立てられるように、早い段階で私たちの考えやロードマップを公開することです。

変更点とその手法

User-Agent ヘッダー フィールドで公開される情報の粒度を段階的に引き下げることを計画しています。navigator.userAgentnavigator.appVersionnavigator.platform JS API についても同様です。

すべての対応が終わっても、User-Agent 文字列だけでブラウザのメジャー バージョンプラットフォーム名は確実に取得でき、デスクトップかモバイルか(またはタブレットか)も判別できます。さらに高度なユースケースでは、User Agent Client Hints API に移行する必要があります。

注 : 現時点では、Android WebView や Chrome for iOS の User-Agent 文字列を変更する計画はありませんが、変更の有無やその時期については、あらためてお知らせします。

現在の計画の概要は、以下のとおりです。

  • M92 より、DevTools の [Issues] タブに、navigator.userAgentnavigator.appVersionnavigator.platform の取得に関するサポートの終了のお知らせを表示する予定です。
  • 今後数週間のうちに、完全に削減された User-Agent を実験的に受け取るオリジン トライアルについてお知らせする予定です。サイトでオプトインとテストをする十分な時間を確保し、私たちが目指す最終状態の実現可能性や整合性に関するフィードバックを提供していただけるように、オリジン トライアルは少なくとも 6 か月は継続する予定です。
  • オリジン トライアル パートナーやコミュニティからのフィードバックを評価し、そのフィードバックに基づき、計画のフェーズ 3 から 7(詳細は次のセクションを参照)を進めます。その間に、エコシステムが適応するための十分な時間をとります。もしくは、フィードバックに応じて、最善策について再検討します。
  • 複雑なユースケースで移行にさらに時間が必要なサイトのために、(「逆オリジン トライアル」によって)現在の User-Agent の動作を少なくとも 6 か月は延長できる機能を提供する予定です。

ロールアウト計画案

以上の変更は、7 つのフェーズに分けて、オリジン トライアルのフィードバックを待ちながら、ゆっくりと段階的にロールアウトする予定です。フェーズ 1 以降のスケジュールとマイルストーンの案については、近日中に最新情報をお知らせします。

削減の準備

フェーズ 1: M92 より、navigator.userAgentnavigator.appVersionnavigator.platform へのアクセスに関する警告を DevTools に表示します。

フェーズ 2: オリジン トライアルを開始し、サイトが最終形まで削減した UA 文字列でテストやフィードバックできる期間を、少なくとも 6 か月間継続します。

削減のロールアウト

フェーズ 3: 移行にさらに時間を要するサイトなどのために、逆オリジン トライアルを開始して、少なくとも 6 か月間継続します。

フェーズ 4: Chrome の MINOR.BUILD.PATCH バージョン番号を削減します( “0.0.0” )。これがロールアウトされると、デスクトップとモバイル OS で、逆オリジン トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。

フェーズ 5: 削減版のデスクトップ UA 文字列と関連する JS API(navigator.userAgentnavigator.appVersionnavigator.platform)のロールアウトを開始します。これがロールアウトされると、デスクトップ OS で、逆オリジン トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。

フェーズ 6: 削減版の Android モバイル(とタブレット)の UA 文字列と関連する JS API のロールアウトを開始します。これがロールアウトされると、Android で、逆オリジン トライアルをオプトインしていないすべてのページの読み込みに、削減版の UA 文字列が適用されます。

削減の完了

フェーズ 7: 逆オリジン トライアルが終了し、すべてのページの読み込みに、削減版の UA 文字列と関連する JS API が適用されます。

詳細や、各フェーズでの User-Agent 文字列の例については、削減版の User-Agent 文字列に関する最新情報ページをご覧ください。

デベロッパーが準備すべきことは何ですか?

この計画は下位互換性を考慮しています。User-Agent 文字列の変更は慎重に行われるべきですが、ロールアウトが行われても、デベロッパーへの影響は最低限に留まると考えています(既存のパーサーは期待どおりに動作するはずです)。

サイトやサービス、ライブラリ、アプリケーションで、Chrome のマイナー バージョンOS のバージョン番号Android デバイスのモデルなどの User-Agent 文字列に含まれる一部の情報を使っている場合は、User Agent Client Hints API を使うように移行する必要があります。

これらの情報が必要ない場合は、変更は不要で、これまでどおり動作するはずです。

これを行う理由は何ですか?

User Agent Client Hints の説明に記載しているとおり、User-Agent 文字列には 2 つの理由で問題があります。1 つ目は、HTTP リクエストのたびに、ブラウザに関する多くの情報が何もしなくても公開されることです。この情報は、フィンガープリンティングに使われる可能性があります。2 つ目は、時間とともに長く複雑になり、エラーが起こりやすい文字列の解析が必要になることです。User Agent Client Hints API は、デベロッパーにもユーザーにも優しい形で、この 2 つの問題を解決できると考えています。

他のブラウザはどうなりますか?

ある意味、Chrome はこの点で追いつきつつあります。UA 文字列で macOS のバージョン番号を制限したのは Safari が最初で、Firefox もそれに続きました。Firefox は、Windows のバージョン番号も 10 に制限しています。

さらに詳しく

Reviewed by Eiji Kitamura – Developer Relations Team
<!—->