Mozilla 更新基础设施¶
Firefox、Thunderbird 和 Mozilla VPN 更新依赖于 称为 Balrog 的后端服务。这些应用程序会定期通过 ping 一个 URL[1] 来检查更新,该 URL 包含有关正在运行的应用程序的信息以及它运行的系统详细信息。如果 Balrog 根据提供的信息找到更新,它将返回一个包含更新文件链接和一些元数据的简单 XML 响应。
分水岭更新¶
大多数情况下,更新将直接将应用程序从当前运行的任何版本更新到该应用程序的最新版本。这非常受欢迎,因为它可以节省时间、带宽、减少重新启动,并通过确保我们尽快获得最新版本来提高安全性。不幸的是,有时我们必须先通过中间版本,通常当前运行的版本无法为 Balrog 提供足够的信息来准确地为最新版本提供正确的更新。这些通常被称为“分水岭”更新。(这个名称来源于这些更新改变了更新过程本身,使它们成为更新的“分水岭时刻”。)
在撰写本文时(2024 年 7 月),我们目前在 Firefox 的发布渠道中实施了以下分水岭更新
12.0,所有平台。在此版本中,我们在更新 URL 中添加了对区分 macOS 构建中运行和支持的体系结构的支持。
43.0.1,仅限 Windows。此版本是 为停止在我们的 Windows 构建中使用 SHA-1 哈希做准备。
45.0.2,仅限 Linux。我们添加了对 将 GTK 3 版本发送到更新 URL 的支持。
47.0.2,仅限 Windows。我们 将 CPU 指令集信息添加到更新 URL,以便稍后弃用 SSE1。
56.0,仅限 Windows。我们添加了对 将有关 JAWS 辅助功能应用程序的信息发送到更新 URL 的支持,以避免将用户更新到其崩溃版本。此外,我们 为更新程序添加了对 LZMA 压缩的支持,并 切换到新的 MAR 签名密钥。
57.0.4[2],仅限 Linux 和 Mac。我们 为更新程序添加了对 LZMA 压缩的支持,并 切换到新的 MAR 签名密钥。(注意:此处不需要 Windows,因为它们在上述 56.0 分水岭中采用了此更改。)
72.0.2,所有平台。由于 必要的两步密码数据库迁移,这是必需的版本。
109.0.1,仅限 macOS。由于 签名问题,此更新了 channel-prefs.js 文件(通常不包含在更新中)。
127.0,仅限 Windows。我们的代码签名证书的发行者已更改,需要更新的 Mozilla 维护服务。
取消支持更新¶
有时我们会停止支持我们依赖的平台、硬件或库。当我们这样做时,我们必须确保我们不会将受影响的用户更新到他们无法再运行的版本。这可以采取两种形式
在遥远的过去,我们会简单地完全停止提供更新,让用户停留在他们当前的版本上。
最近,我们会首先将用户迁移到我们的
esr
渠道 - 通常在完全停止更新之前为他们提供一年的支持。
以下是我们在 Firefox 发布渠道上进行的取消支持和迁移到 esr
的列表
(古老的,在各种旧版本中取消支持):Darwin 6、Darwin 7、Darwin 8、Darwin 9、Windows_95、Windows_98、Windows_NT 4、Windows_NT 5.0、Windows_NT 5.1.0、Windows_NT 5.1.1、GTK 2.0.、GTK 2.1.、GTK 2.2.、GTK 2.3.、GTK 2.4.、GTK 2.5.、GTK 2.6.、GTK 2.7.、GTK 2.8.、GTK 2.9.、GTK 2.10.、GTK 2.11.、GTK 2.12.、GTK 2.13.、GTK 2.14.、GTK 2.15.、GTK 2.16.、GTK 2.17.、PPC 体系结构
<46.0: 停止支持 GTK <3.4
<49.0: 停止支持 Darwin 10、11 和 12(macOS 10.6、10.7、10.8)、SSE 和 MMX 指令集
<53.0: 停止支持 32 位 macOS 硬件
<77.0: 将 Darwin 13、14 和 15(macOS 10.9、10.10 和 10.11)迁移到 esr78
<116.0: 将 Darwin 16、17 和 18(macOS 10.12、10.13 和 10.14)迁移到 esr115
<116.0: 将 Windows 7、8 和 8.1 迁移到 esr115