orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

バージョン100問題、Webサイトに思ってもない不具合が起こる?

f:id:orangeitems:20220219003151j:plain

 

これは興味深いお話。

 

pc.watch.impress.co.jp

 Mozillaは15日(現地時間)、FirefoxおよびGoogle Chromeが今後数カ月のうちにバージョン100を迎えることによる不具合やその対処について情報を公開した。

 Firefoxでは5月3日、Chromeでは3月29日にバージョン100(安定版)のリリースを予定しており、内部で用いるバージョン番号も2桁から3桁へと桁が増える。この数字はUser-Agent解析ライブラリなどで利用されているが、3桁を想定していないものが実装されている場合があり、一部Webサイト上で不具合が発生する可能性がある。

 

おお、確かに、私の今使っているChromeだってバージョン98だし、100は近い。え、ブラウザ側の問題だから、GoogleやMozillaが何とかする話じゃないのか?というとこれは違う。

 

以下の記事は、その問題が顕在化したときの話。

 

forest.watch.impress.co.jp

フラグが true の場合。「yahoo.com」では「Webブラウザーを最新版にしろ」という警告メッセージが誤って表示される

 

つまり、

 

> navigator.userAgent

# フラグが true の場合
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0"

# フラグが false の場合
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0"

 

とWebサイト側が文字列を受け取った時です。99.0と100.0ですから。で、仮に下二ケタを機械的にプログラムが処理したりすると、「お、00じゃん」みたいに処理しちゃう・・という。なんだこの2000年問題みたいなネタは。

 

it.srad.jp

影響としては User Agent パーサーがメジャーバージョンの桁数を決め打ちしていると正常に処理が実行できなくなるといったもので、同様の問題は Chrome 10 でメジャーバージョンが 2 桁に増えた際にも発生している。

 

なんだよ2桁でも起こってたのか・・。

 

news.mynavi.jp

不具合が発生した場合も考慮し、ChromeにもFirefoxにも緩和策が用意されている。不具合の発生が多い場合は、送信するメジャーバージョンを99で一時的に凍結することができるとされている。Webブラウザベンダーはバージョン100へ到達する前に、ユーザーに対して開発版などで動作テストを行うことを呼びかけている。

 

ということで、みんな今のうちにテストしとけよー、もし社会問題になったら99に戻すけどなー、ということらしい。

AIだなんだと先端技術もさかんですが、こんな人間らしい不具合もあるんですね。

 

ちなみに、どうやって、Web運用者はブラウザでテストできるの?ということがまとまっている記事、英語ですが一番わかりやすい。

 

hacks.mozilla.org

①Configure Firefox Nightly to report the major version as 100
・Open Firefox Nightly’s Settings menu.
・Search for “Firefox 100” and then check the “Firefox 100 User-Agent String” option.

②Configure Chrome to report the major version as 100
・Go to chrome://flags/#force-major-version-to-100
・Set the option to `Enabled`.

 

ってことで疑似的にバージョン100をもう使えるっぽい。

 

Firefox Nightlyでは、設定メニューにもうあった。

f:id:orangeitems:20220219003527j:plain

 

Chromeでも「chrome://flags/#force-major-version-to-100」を開けばこの通り。

 

f:id:orangeitems:20220219003734j:plain

 

21世紀でもこんなことあるんだね。人間ってそういう生き物なんだろうな。