Google|浏览器界的“千禧虫”:Google已着手测试Chrome 100解决方案

Google Chrome 版本号即将突破 100,从前期测试结果来看该版本可能会导致部分网站无法正常工作 。目前,Google已经着手调查和测试解决方案 。根据 Chromium Bug Tracker,已知受影响的网站主要是那些用 Duda(一个网页设计工具包)开发的网站 。
Google|浏览器界的“千禧虫”:Google已着手测试Chrome 100解决方案
文章图片

这些网站都使用相同的代码来检查你使用的是什么版本的 Chrome 。

一般来说,如果一个网站需要知道你使用的是什么浏览器以及它的最新版本,它将检查所谓的“用户代理字符串”(User Agent string) 。这是一段文字,你的浏览器将其附加到它的每个网络连接上,让网站了解自己 。如果你分析一下“用户代理字符串”的实际内容,你会发现有大量的废话,其中大部分是为了保持与 20 世纪 90 年代和 21 世纪初的网站的兼容性 。
但是,在这种情况下,这并不是最重要的 。让我们看一下 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.45",它给了我们浏览器的精确版本号 。然而,大多数网络开发者可能只关心主要的版本号,在我们的例子中是"96" 。
由于用户代理字符串是简单的文本,开发人员需要设计一种方法来解释这些信息以满足他们的需要 。在Duda的例子中,开发者选择只读取“Chrome/”之后的前两位数字 。这意味着“Chrome/99”将是99,但另一方面,“Chrome/100”将被视为 10 版本 。
下一个问题是,Duda 会自动阻止任何低于 40 版本的 Chrome 浏览器--这是 2015 年发布的,如果这能提供一些观点的话 。随即,Chrome 99 之后的每个版本的浏览器都会被认为是 10 版本,因此被屏蔽 。
那么,如果我们不能抛弃这些网站,可以做些什么呢?
【Google|浏览器界的“千禧虫”:Google已着手测试Chrome 100解决方案】第一个建议就是是改变开发者应该检查 Chrome 浏览器版本的地方 。为了老网站的利益,Chrome 将把用户代理字符串的第一个版本号锁定为 99 。如果网站开发人员想要检查超过这个版本的具体版本,他们需要查看第二组数字 。
例如,Chrome 100.0.1234.56 的浏览器版本在用户代理字符串中会以“Chrome/99.100.1234.56”这样的方式展示 。为此,在 chrome://flags 中增加了一个新的标志,让 Googlers 和网络开发人员测试各种网站是否会受到 Chrome 主要版本号位置的这种变化的影响 。
将 User-Agent 字符串中的 Chrome 主要版本锁定为 99,并强制将主要版本号放到次要版本位置 。这个标志是对 Chrome 100 意外中断的一个备份计划 。

推荐阅读