两周前,用户向 Mozilla 报告了一个用户代理字符串 (UA string) 引发的网站兼容性问题。
这名用户使用最新的 Firefox Nightly 110,不过在访问 BestBuy.com 时却显示不再支持该浏览器,并提示去下载最新版本的 Chrome、Firefox、Microsoft Edge。
Firefox 开发者调查后发现此问题与浏览器的 UA 有关。Firefox 110 的 UA 信息如下:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:110.0) Gecko/20100101 Firefox/110
而 IE 11 的 UA 信息为:
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko
由于部分网站在识别 UA 时,会将 rv:110.0 视作和 rv:11.0 一样,所以 Firefox 110 就被识别成了不再支持的 IE 11。
Mozilla 目前解决此问题的方案是冻结 UA,即在到达 rv:120.0 之前都使用 rv:109.0:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110
按照发布计划,Firefox 120 将于 2023 年 9 月 25 日发布,所以 UA 冻结将会持续 9 个月。