「Chrome 100」で一部のWebサイトが動かなくなってもGoogleに秘策あり

S 20211116 103605

記事執筆時、Google Chromeの安定版のバージョンは96で三桁の大台が迫ってきています。この間もなく登場する「Chrome 100」で一部のWebサイトが動作しなくなる可能性があり、Googleが解決策の調査とテストを開始していることがわかりました(9to5Google)。

Google Chromeのバージョン番号は機械的に付けられているため、Chrome 100で特に大きな新機能が追加されることはありません。しかし、Googleは以前からChrome 100で一部のWebサイトが動作しなくなる可能性があることを認識していたそうです。

Chromium Bug Trackerによると、影響を受けることが分かっているのは、主にWebデザインキットである「Duda」で開発されたWebサイトで、これらのWebサイトでは、使用しているChromeのバージョンを確認するために同じコードの断片を使用している事が原因とされています。

一般的にWebサイトでユーザーが使用しているブラウザのバージョンを知る必要がある場合、ユーザーエージェント文字列をチェックします。例えばGoogle Chrome場合以下のような文字列となっています。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

中に含まれる「Chrome/96.0.4664.4」がChromeのバージョンを示していますが、Dudaの場合、"Chrome/"の後の最初の2桁だけを認識し、「Chrome/99」はバージョン99となるものの、「Chrome/100」はバージョン10と見なされることになるそうです。

Dudaはバージョン40以下のChromeを自動的にブロックするため、誤認識によってChrome 100以降はバージョン10とみなされ自動的にブロックされることになります。

この対策として考えられている計画の一つは、古いWebサイトのためにChromeのユーザー文字列の最初のバージョンを99にロックするというもので、"Chrome/100.0.1234.56"ではなく"Chrome/99.100.1234.56"とすることで、問題を回避します。

Put major version in minor version position and in User-Agent

Lock the Chrome major version in the User-Agent string to 99, and force the major version number to the minor version position. This flag is a backup plan for unexpected M100 breaks.

#force-major-to-minor

ユーザーエージェント文字列を変更する「#force-major-to-minor」というフラグが追加され、さまざまなサイトがChrome 100の影響を受けるかどうかテストすることができるようになっています。

ただし、この提案はあくまでもバックアッププランで、最良の解決策はGoogleが個々の開発者にChrome 100の問題について連絡することとされています。実際、英国に拠点を置くYell Businessを通じて作成されたすべてのWebサイトも、Chrome 100で壊れることがわかったそうですが。Googleからの働きかけにより、Yell Businessはその問題を修正したそうです。

最初の2桁をメジャーバージョン番号とする取り組みは少し安易だったのかもしれませんが、13年前にリリースされたGoogle Chromeのバージョンが、ここまで上がることは予期できなかったのかもしれません。