我是 openSUSE 论坛(forums.opensuse.org)的管理员之一。我们有几位用户使用最新版本的 Seamonkey 作为他们的浏览器。
最近我们从 3.0.3(我记得是这个版本——是我们的技术管理员进行的升级)升级到了 3.1.3,这些用户报告说他们无法再登录论坛了。
我进行了一些调查,发现失败的浏览器检查在 PR 19847 中——具体来说是 app/assets/javascripts/discourse/scripts/browser-detect.js 中的测试,第 10 行:
!CSS.supports("aspect-ratio: 1")
Seamonkey 版本是 2.53.18,它报告与 Firefox 91 兼容。User-Agent 字符串是:
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.18
我在 openSUSE Tumbleweed 20231210 上使用新安装的 Seamonkey 进行了测试,并将 Javascript 测试中的每一行与 Chrome 120.0.6099.71 的结果进行了比较。这个测试是唯一不同的地方。
请告知还需要哪些信息来解决这个问题;我知道 Seamonkey 不是官方支持的浏览器。如果这个纵横比不支持有技术原因,也请告知,以便我们能建议我们的用户。
3 个赞
david
(David Taylor)
2
我快速查看了最新版本说明,有点奇怪……在一个地方它说它基于 Firefox 60.8:
SeaMonkey 2.53.18 使用与 Firefox 相同的后端,并包含相关的 Firefox 60.8 安全修复。
但在“已知问题”下,它说:
基础用户代理版本设置为 91 以帮助网站兼容性
所以……他们似乎只是在用户代理字符串中伪造了 Firefox 91。实际的功能集来自 Firefox v60,它最初于 2018 年发布,并且不支持 aspect-ratio 
我们所有官方支持的浏览器自 2021 年以来都拥有此 aspect-ratio 功能,因此 Discourse 的大部分 UI 现在都依赖它。
6 个赞
很高兴知道,谢谢。查看 JS 代码,版本检查似乎是在导致用户问题的检查之后进行的。
供参考,用户确实报告说在升级之前对他们来说运行良好——所以似乎即使 UI 依赖它,它也没有给他们造成太大问题。
感谢您的快速回复!
david
(David Taylor)
4
我们依赖的许多其他现代功能 Firefox 60.0 都不支持(例如 import()、类字段等),所以 aspect-ratio 并不是唯一的阻碍。
是的,但 Discourse 从 3.0 升级到 3.1 会引入新的 Discourse 代码,该代码依赖于 aspect-ratio 功能(以及 import() 和类字段等)。
明白了——再次感谢您的快速答复。我已告知用户,兼容性并非严格意义上的安全相关(他最初猜测是这样),而是浏览器功能兼容性,并且他应该就 SeaMonkey 声称支持 FF 91 但实际上并非如此一事向其报告问题。
1 个赞