Chrome 和 Firefox 的 100 版本号会带来什么问题?

系统 浏览器
Firefox 和 Chrome 都在进行实验,尝试把当前版本的浏览器的主要版本号设置成 100,以检测网站可能出现的问题。

随着双方互飙版本号,Chrome 和 Firefox 的开发人员均表达出对 100 以上的三位数版本号的担忧。

12 年前,当时流行的浏览器在首次达到版本 10 时,由于主要版本号从一位数变为两位数,在 User-Agent 解析库中发现了许多问题。在没有规范可遵循的情况下,不同的浏览器对 User-Agent 字符串和特定于站点的 User-Agent 解析具有不同的格式。

此外,由于没有考虑到三位主要版本号,一些 UA 解析库可能有编码逻辑上的错误。不过当年浏览器版本号从一位数变成两位数时,许多 UA 解析库都改进了解析逻辑,因此,三位数的版本号在 UA 解析库中应该不会出什么问题。

Chrome 团队的工程师 Mike Taylor 对常见的 UA 解析库进行了调查,但没有发现任何问题。在现场运行 Chrome 实验时发现了一些问题,这些问题正在解决中。

应对方案

Firefox 和 Chrome 都在进行实验,尝试把当前版本的浏览器的主要版本号设置成 100,以检测网站可能出现的问题。这类实验找到了一些可能出现的问题,其中一部分已经修复,实验将继续运行,直到版本 100 发布。

除此之外,每个浏览器厂商都对 100 版本号制定了备份的缓解策略,以防止 100 版发布到稳定渠道后突发恶疾,对一些网站造成不可逆的伤害。

Firefox 缓解

在 Firefox 中,缓解策略将取决于损坏的重要性。

Firefox 有一个站点干预机制,Mozilla webcompat 团队可以使用这种机制在 Firefox 中热修复损坏的网站。在 Firefox URL 栏中输入内容 about:compat就可以看到当前正在修复的内容。

如果站点在特定域上的主要版本为 100 时中断,则可以通过发送 版本 99 来修复它。如果破坏范围很广,并且个别站点的干预变得难以管理,Mozilla 可以将 Firefox 的主要版本暂时冻结在 99,然后测试其他选项。

Chrome 缓解

Chrome 版本中报告的 User-Agent 字符串遵循该模式: ...(主要版本号_次要版本号_构建号_补丁号)。

目前在 Chrome 中的备用方案是直接将 User-Agent 字符串中的主要版本号冻结在 99,然后在次要版本部分报告真正的主要版本号(相关代码已经登陆)。如果使用备份计划,则 Chrome 101 版本 的 User-Agent 字符串将如下所示:99.101.4988.0 ,99

由于 Chrome UA 字符串中的次要版本号很长一段时间都是 0,所以 Chrome 还在进行实验,以确保次要版本号部分写三位数的值不会导致 Bug。

Chrome 团队将根据报告的问题的数量和严重程度决定是否使用备份选项。

用户可参与测试

在 Chrome 和 Firefox Nightly 中,用户也可以手动把浏览器的版本号改成 100 ,然后测试日常使用有没有问题。

Firefox Nightly:

  • 打开 Firefox Nightly 的设置菜单。
  • 搜索“Firefox 100”,然后选中“Firefox 100 User-Agent String”选项。

Chrome:

(1)URL 栏输入 chrome://flags/#force-major-version-to-100

(2)将选项设置为“启用”。

  • 如果你是网站维护者,请使用 Chrome 和 Firefox 100 测试网站,检查 User-Agent 解析代码和库,并确保它们能够处理三位数的版本号,在此可查看目前正在受影响的网站模式。
  • 如果你开发一个 User-Agent 解析库,添加测试来解析大于等于 100 的版本号。浏览器厂商早期的测试表明,最新版本的 UA 解析库都可以正确处理它。但如果你有旧版本的解析库,是时候检查并升级了。
  • 如果你是浏览器用户,在浏览网页时发现主要版本 100 有任何问题,请在 webcompat.com 上提交报告。
责任编辑:赵宁宁 来源: OSCHINA
相关推荐

2021-08-11 08:32:24

Firefox英特尔LLVM

2015-02-28 10:11:51

2010-11-08 10:07:45

Chrome

2020-06-15 08:06:25

ES数据

2021-12-27 17:07:11

谷歌Chrome浏览器

2011-08-18 09:56:57

MozillaFirefox

2011-01-21 16:38:03

HTML 5chormegoogle

2019-09-19 15:15:20

LinuxMint版本号

2024-07-17 09:39:05

软件版本号管理

2014-12-15 14:02:48

iOS版本号苹果

2017-02-22 09:30:41

2017-10-16 00:57:23

单元测试代码覆盖

2009-04-15 08:49:47

Windows 7微软操作系统

2024-07-08 13:56:12

微服务API代码

2023-01-09 17:46:07

项目版本号字段

2021-09-23 16:47:12

Chrome谷歌浏览器

2010-02-06 13:49:08

Linux samba

2021-12-29 10:12:55

Chrome 浏览器 谷歌

2021-08-09 10:29:31

Dubbo升级版本号

2015-07-22 10:09:59

Android M版本号
点赞
收藏

51CTO技术栈公众号