Chrome と Firefox がまもなくメジャー バージョン 100 に

ユーザー エージェント文字列の変更、Chrome と Firefox が影響を軽減するために採用している戦略、および対応方法について説明します。

Google Chrome Firefox の場合 数か月でバージョン 100 になります。これにより、データが破損する可能性がある ブラウザ バージョンの特定に依存してビジネス ロジックを実行するサイトの場合。 この投稿では、イベントのタイムライン、Chrome と Firefox の戦略について説明します。 その影響を軽減するために何ができるか、そしてどのように支援できるかについてお話しします。

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

User-Agent(UA)はブラウザが HTTP ヘッダーで送信する文字列で、サーバーが 確認できます。この文字列には、JavaScript で navigator.userAgent。 通常は次のような形式になります。

<browser_name>/<major_version>.<minor_version>

例: 公開時のブラウザの最新リリース バージョン この投稿の特長は次のとおりです。

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

メジャー バージョン 100 - 3 桁のバージョン番号

Chrome と Firefox にとって、メジャー バージョン 100 は大きなマイルストーンです。また、 2 桁から 15 桁にシフトすると ウェブサイトの互換性が損なわれる可能性が 3 桁のバージョン番号。ウェブ デベロッパーは、 文字列の解析、カスタムコード、User-Agent 解析ライブラリの使用など、 それを使用して、対応する処理ロジックを決定できます。「 User-Agent やその他のバージョンのレポート メカニズムで、 3 桁のバージョン番号。

バージョン 100 のタイムライン

バージョン 100 のブラウザは、最初は試験運用版としてリリースされます(Chrome Canary、Firefox Nightly)、ベータ版、最終的には安定版 。

ブラウザ タイムライン
Chrome(リリース スケジュール 2022 年 3 月 29 日
Firefox(リリース スケジュール 2022 年 5 月 3 日

3 桁のバージョン番号が問題となるのはなぜですか。

12 年ほど前にブラウザがバージョン 10 に到達したとき 多くの問題が発見され ユーザー エージェント解析ライブラリで、メジャー バージョン番号が 1 から します。

従うべき仕様が 1 つもないので、 ブラウザによって (User-Agent 文字列、サイト固有の User-Agent 解析用)。です。 一部の解析ライブラリにハードコードされた前提条件やバグが存在する可能性がある 考慮すべき点がいくつかあります多数の図書館 ブラウザが 2 桁のバージョン番号に移行したときの解析ロジックが改善され、 3 桁のマイルストーンを達成すると、問題の発生は減少すると予想されます。マイク Taylor 氏、 Chrome チームのエンジニアが一般的な UA 解析のアンケートを実施しました。 問題は発見されませんでしたChrome の試験運用版を フィールドにいくつかの問題があり、現在対応中です。

ブラウザによる対策

Firefox と Chrome の両方で、現行バージョンの ブラウザ レポートのメジャー バージョンを 100 にすることで、 ウェブサイトの破損このため、いくつかの問題が報告されています。 その一部はすでに修正されています。 これらのテストは、バージョン 100 のリリースまで引き続き実施されます。

バージョン 100 の場合、バックアップ緩和戦略も Stable チャンネルへのリリースは予想以上にウェブサイトに悪影響を及ぼします。

Chrome の緩和策

Chrome のバックアップ プランでは、フラグを使用してメジャー バージョンを 99 に固定します。 実際のメジャー バージョン番号を ユーザー エージェント文字列(コードはすでに ランディング ページ)。

User-Agent 文字列で報告される Chrome のバージョンのパターン <major_version>.<minor_version>.<build_number>.<patch_number>

バックアップ プランが使用されている場合、User-Agent 文字列は次のようになります。 これを次のように使用します。

99.101.4988.0

Chrome では、3 桁の値がレポートされることを確認するテストも実施中です 文字列のマイナー バージョン部分を指定しても、破損することはありません。これは、 Chrome ユーザー エージェント文字列のマイナー バージョンが非常に長い間 0 を報告していた あります。バックアップ オプションを利用するかどうかは Chrome チームが決定します。 問題の数と重大度に基づいて計算されます。

Firefox の緩和策

Firefox の場合、戦略は破損の重要度によって異なります。Firefox がある サイト介入メカニズムを採用しています。 Mozilla Webcompat チームは、これを使用して Firefox で壊れたウェブサイトのホット フィックスを実行できます。 メカニズムです。Firefox の URL バーに「about:compat」と入力すると、 現在修正中です。サイトのメジャー バージョンが 100 で、 バージョン 99 を送信することで問題を修正できます。

破損が広範囲に及ぶ場合は、メジャー バージョンを凍結できる あります。その他にも考えられる戦略は 説明します。Mozilla は、実際のバージョン番号をマイナーバージョンとして 文字列をそのまま固定するか、実際のバージョン番号を 渡します。

User-Agent 文字列を複雑にするあらゆる戦略には、 エコシステムに与える影響です。別の風変わりな攻撃を回避するために協力しましょう 確認します。

何かできることはないか?

Chrome と Firefox Nightly では、ブラウザの設定で 100 としてエクスポートし、問題が発生した場合はご報告ください。

メジャー バージョンを 100 として報告するように Chrome を設定する

  1. chrome://flags/#force-major-version-to-100に向かいます。
  2. オプションを Enabled に設定します。

Firefox Nightly を設定してメジャー バージョンを 100 とレポートする

  1. Firefox Nightly の [設定] メニューを開きます。
  2. 「Firefox 100」を検索します。[Firefox 100 User-Agent] チェックボックスをオンにして 文字列"選択します。

レポートをテストして提出する

  • ウェブサイト管理者の場合は、Chrome でウェブサイトをテストしてください Firefox 100 があります。ユーザー エージェントの解析コードとライブラリを確認し、 3 桁のバージョン番号を処理できるか確認しますGoogle には その一部を 新しいパターンを検出できます
  • ユーザー エージェント解析ライブラリを開発する場合は、解析するテストを追加します。 割り当てられています初期のテストによると、 適切に処理できます。しかしウェブには長い歴史があります そのため、古いバージョンの解析ライブラリがある場合は、 時間をかけて問題を確認し 最終的にアップグレードできます
  • ウェブをブラウジング中で、メジャー バージョンの問題に バージョン 100 では webcompat.com でレポートを提出