要約

  • Chromiumの互換性文書にあるChromeの例は、Mozilla/5.0、AppleWebKit、Chrome、Safariを一つの文字列に並べていた。サイト側のUser-Agent判定がChromeを誤認し、「非対応」と表示する例もあった。
  • Chrome 11は2011年に他のブラウザーとの足並みを考えて一部の要素を変えた。2023年のChrome 110以降はAndroidの版と端末名を固定値へ段階的に置き換えたが、古い互換性の名前は形式に残った。

名札には別の製品名が並んだ

Chromiumの互換性FAQは、ChromeのUser-Agentの例を載せている。先頭はMozilla/5.0、途中にAppleWebKitとChrome/2.0.167.0、最後にSafari/525.13。四つのブラウザーが同時に動くわけではない。サイトのスクリプトが見慣れた印を拾い、訪問者に返すページを選んでいた。Chromiumは、JavaScriptやサーバーの判定がChromeを見落とし、非対応と告げる問題を記録した。必要な機能を調べる方がよい、と文書は勧める。

名前による振り分けは実装しやすい。だからこそ、長く残る。サイトがSafariという語で処理を分け、別のサイトがChromeで分ければ、ブラウザーの名札を少し直すだけでも表示が変わる。自己紹介は、他人が作った分岐条件になっていた。

間違った言語を消し、外形は守った

2011年3月31日のChromium発表はChrome 10と11を並べた。昔の輸出規制時代の暗号強度を示すUを削除し、言語も消した。言語欄は不具合で利用者の希望に関係なく常にen-USだったという。サイトはAccept-Languageを見るべきだった。Windowsの印も変えた。Chromiumは、サイトが共通の解析コードで複数のブラウザーを扱うため、Firefox 4と早く歩調を合わせたと説明する。Googleのサイト自身も判定の問題に当たっていた。

それでも変更前後の例にはMozilla/5.0、AppleWebKit、Chrome、Safariが並ぶ。2022年のRFC 9110はUser-Agentを製品識別子と注記の列と定め、互換性の回避策や分析に使われると記した。一方で、細かすぎる情報は端末の識別に役立つため控えるよう求め、他製品の印を借りた互換性宣言も勧めなかった。標準が求める説明と、既存サイトが要求する形は同じではなかった。

端末の細部だけが薄くなった

Chromeの2023年の告知によれば、Chrome 110からAndroidの版と機種を固定値に段階的に置き換えた。例では具体的なAndroid 13端末がAndroid 10、機種Kとして示される。サイトをまたぐ受動的な追跡を減らすためだ。文字列の形は保たれ、古い四つの名前も残った。

名札はサイトの互換性判定に使われる一方、端末を識別する細部も流していた。Chromeは細部を減らし、判定に使われる印を残した。サイトの分岐と変更前後の端末識別を測った当時の資料があれば影響の大きさを示せる。元の文書が示すのは、その取引の仕組みだ。端末名は隠せても、古い合言葉はまだ通用した。

出典