桌面版 Firefox¶
桌面架构¶
理解 Firefox 架构的关键之一是了解 Gecko 用于渲染网页内容和浏览器 UI。这意味着,在很大程度上,Firefox 的 UI 是使用 HTML、CSS 和 JavaScript 等 Web 技术构建的。例如,文档 chrome://browser/content/browser.xhtml
是单个 Firefox 浏览器窗口的标记。您可以将其视为网页的 index.html。
使用 Gecko 渲染 UI 的决定是在 HTML 还不够表达或不足以构建桌面 UI 的时代做出的。当时开发了一种不同的标记语言 XUL 来实现这一目的,Gecko 也知道如何解释它。从那时起,HTML 和 CSS 发展到 XUL 对大多数用例来说不再严格必要。在可能的情况下,我们一直在逐步迁移我们的 UI,以减少使用 XUL,更多地使用标准的 HTML 和 CSS。
可复用 UI 组件¶
用户界面中使用的许多 UI 组件都构建为可复用的 Web 组件。
选项卡浏览器¶
tabbrowser 组件管理浏览器窗口中的选项卡。
地址栏¶
地址栏(也称为 Awesome Bar 或 Quantum Bar)处理用户输入网页地址,包括一个弹出窗口,其中包含来自各种来源的建议,包括历史记录、书签和搜索引擎。
搜索¶
搜索服务管理地址栏中可用的搜索引擎列表。
位置¶
位置组件包含存储历史记录和书签的数据库,以及向用户呈现这些内容的一组 UI 组件。
Firefox 同步和应用服务¶
应用服务包括同步引擎和 Firefox 账户集成。
开发者工具¶
开发者工具在 Web 开发人员构建网页时提供支持,但由于 Firefox UI 本身也是使用 Web 技术构建的,因此也可以使用开发者工具调试 Firefox UI。
浏览器工具箱¶
浏览器工具箱是一种在单独的进程中启动开发者工具的方法,以便它们可以用于调试主浏览器 UI。
性能分析器¶
Firefox 性能分析器是衡量代码性能的方法。访问 profiler.firefox.com 以在 Firefox 中启用按钮并记录性能配置文件。这些配置文件可以上传和共享。它可以识别代码中的缓慢部分,并揭示代码运行方式的基本行为。
安装程序¶
Firefox 的 Windows 安装程序是使用 NSIS 构建的。目前没有其他操作系统的安装程序。
应用更新¶
应用更新负责从更新服务器请求可用更新、下载更新、验证更新的完整性,然后最终安装更新。二进制补丁工具 (bsdiff) 用于减少更新文件的大小,更新文件以定制的 mar(Mozilla 归档)格式交付。