やじうまの杜

「Firefox」が「IE 11」と誤認されてしまう悲劇発生……開発チームが対応に追われる

期間限定でUA文字列が「凍結」

 「やじうまの杜」では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

 プレビュー版の「Firefox」が「Internet Explorer 11」(IE 11)と間違えられてしまうという厄介な問題が発生しているようです。すでに修正されているみたいで編集部では確認できませんでしたが、「bestbuy.com」などをWindows版「Firefox」で閲覧すると、「おめえのWebブラウザーは古過ぎ! 最新版のChromeをダウンロードしろ」(超訳)というメッセージが表示されていたのだそう。

「bestbuy.com」をWindows版「Firefox」で閲覧すると怒られるという苦情

 原因は、Webブラウザーの種類やバージョン、プラットフォーム(OS)などを特定するために用いられているユーザーエージェント(UA)文字列。Windows版の「Firefox」の場合、UA文字列は以下のようになります(最新安定版「Firefox 108」の場合)。

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0 ) Gecko/20100101 Firefox/108.0

「Firefox 108」のUA文字列

 一方、「IE 11」のUA文字列はこんな感じでした。長ったらしいですね。

Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Zoom 3.6.0; Tablet PC 2.0; Zoom 3.6.0; rv:11.0 ) like Gecko

「IE 11」のUA文字列

 注目してほしいのは、括弧で囲まれた「Windows NT 10.0; ……; rv:***.0」という部分。ここだけを見てWebブラウザーのバージョンを判別しており、かつ3桁のバージョンを考慮していない場合、「Firefox 110」(rv:110.0)が「IE 11」(rv:11.0)と誤判定されてしまうというわけ。

 以前にも「Firefox」が「バージョン 100」になったときに似たような問題がありましたが……こういうパターンもあるんですね。

 この種の問題は「bestbuy.com」以外でも起こりうるので、「Firefox」の開発チームは当面の間、UA文字列の「rv:***」部分を「rv:109.0」で凍結することにしたとのこと。たとえば「Firefox 110 Nightly」のUA文字列は以下の通りとなります。


Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
「Firefox 110 Nightly」のUA文字列

 凍結期間は、「バージョン 120」まで。「Firefox Nightly」の場合、2023年9月25日からのリリースサイクルで通常通りに戻る予定です。安定版「Firefox」では今年2月から11月ぐらいまで凍結が行われます。

教訓:UA文字列によるバージョン判別はやめましょう。