Chrome浏览器很快就会进入第个版本,但有迹象表明这个版本会导致一些网站报错。Google已经开始调查和测试解决方案。
Chrome浏览器从面世至今已经有13年历史了。自从Google将更新进度由六周变为四周后,我们正在迅速接近其第个发行版。虽然Chrome不会在功能上带来巨大的改变,但谷歌意识到,Chrome的版本号可能会导致一些网站报错并完全停止运行;同时,有些网站甚至已经有出现类似的问题了,这让Google必须打起十二分的精神来应对即将到来的问题。
根据ChromiumBugTracker,已知受影响的网站主要是那些用Duda开发的网站,这是一个网页设计工具包。这些网站都使用相同的代码来检查你使用的是什么版本的Chrome。
一般来说,如果一个网站需要知道你使用的是什么浏览器以及它的最新版本,它将检查所谓的「用户代理字符串」。如果你检查这个字符串的实际内容,你会发现其中大部分都是有如「祖传代码」一般的兼容性字符。
但这并不是最重要的,让我们看一下谷歌浏览器的用户代理字符串的例子。
Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/.36(KHTML,likeGecko)Chrome/96.0..45Safari/.36
在这段字符串中,我们要找的部分是「Chrome/96.0..45」,给出了浏览器的精确版本号。然而,大多数网络开发者可能只关心主要的版本号,即「96」。
由于用户代理字符串是简单的文本,开发人员需要设计一种方法来解释这些信息以满足他们的需要。例如在Duda中,开发者选择只读取「Chrome/」之后的前两位数字,也就是说「Chrome/」将被视为系统视为版本10。
另一个问题是,Duda由于自身的设计逻辑,会自动屏蔽任何低于40版本的Chrome浏览器,而Chrome会被认作「Chrome10」而直接被屏蔽。
有的人可能觉得这没什么,既然不支持那就淘汰掉啊。但这违背了万维网的精神。在一个著名的例子中,年首次上线的原SpaceJam网站仍然活着,而且功能齐全。这在一定程度上要归功于前面提到的那些欺骗老式网站,使其认为你在使用老式的网景浏览器。顺便提一下,用户代理字符串的历史是一个有趣的话题,推荐感兴趣的人去阅读。
那我们具体可以做些什么来避免出错呢?
第一个建议是改变检查Chrome浏览器版本号的位置。为了老网站的利益,Chrome将把用户代理字符串的第一个版本号锁定为99。如果网站开发人员想要检查超过这个版本的具体版本,他们需要查看之后的数字。
为此,Google正在chrome://flags中增加了一个新的功能性flag,让开发人员能够测试各种网站是否会受到Chrome主要版本号所在的这种变化的影响。
将主要版本放在次要版本的位置和用户代理中
将用户代理字符串中的Chrome主版本锁定在99,并强制将实际主版本号放到次版本位置。用于应对版本号可能造成的意外中断。
#force-major-to-minor
目前的希望是Google能够明确定位到全网所有在Chrome发布时将出现故障的网站,并就该问题与它们的开发者联系。如果这些问题能在明年三月底Chrome发布前得到解决,那么对网络开发者来说,新「千年虫」就根本不是一个问题。
值得注意的是,ChromeOS目前无法在中国大陆无障碍使用。国内有一厂商正在打造中国版ChromeOS——FydeOS。现能兼容安卓运行环境及Linux虚拟机;携带有完整的用户账户体系、升级服务器、企业集管系统和应用商店。从主流x86平台电脑设备到嵌入式物联网设备FydeOS均可完美适配,是一款可塑性极强的操作系统。
(本文转译自9to5Google,略有增删。)