以下是对 Firefox 源码根目录下主要文件和文件夹的详细解释,按功能分类整理:
核心源码目录
-
browser/
Firefox 桌面版的前端实现(标签页、地址栏、菜单等 UI 逻辑)。 -
dom/
文档对象模型 (DOM) 的核心实现,处理网页元素、事件系统等。 -
layout/
页面渲染引擎(布局、CSS 处理),含传统引擎和 Servo 实验性引擎。 -
gfx/
图形底层库:2D/3D 渲染(WebGL)、字体、图像合成。 -
js/
JavaScript 引擎 SpiderMonkey 源码(解析、JIT 编译、运行时)。 -
netwerk/
网络协议栈(HTTP/2、WebSocket、DNS 等实现)。 -
security/
加密、证书管理、TLS/SSL 安全协议实现。 -
toolkit/
跨平台基础组件(被 Firefox/Thunderbird 共用)。 -
widget/
平台原生 UI 集成(Windows/macOS/Linux 的窗口、输入处理)。
构建系统相关
-
build/
主构建脚本和配置(编译流程控制)。 -
config/
构建时环境检测和配置生成脚本。 -
moz.build
模块级构建定义(声明源码/依赖)。 -
moz.configure
高级构建选项配置(Python 脚本)。 -
client.mk / configure
传统构建入口(make -f client.mk启动编译)。 -
mach
现代构建命令工具(./mach build编译,./mach run运行)。 -
.gradle/ / gradle/
Android 版 (Firefox for Android) 的 Gradle 构建配置。
重要工具链
-
.cargo/ / Cargo.toml
Rust 工具链配置(Firefox 用 Rust 重写关键组件)。 -
.git/ / .gitignore
Git 版本控制数据与忽略规则。 -
.vscode/
VS Code 编辑器配置(调试/格式化设置)。 -
devtools/
开发者工具源码(调试器、元素审查器)。 -
testing/
测试框架(单元测试/性能测试)。 -
taskcluster/
持续集成 (CI) 任务定义(自动化测试/发布)。
模块化功能
- accessible/:无障碍支持(屏幕阅读器兼容)。
- extensions/:内置扩展系统(如 PDF 查看器)。
- media/:音视频处理(WebRTC、编解码)。
- storage/:本地存储(IndexedDB、SQLite 封装)。
- ipc/:多进程通信 (Electrolysis 架构)。
- remote/:远程调试协议 (WebDriver)。
配置与元数据文件
| 文件 | 作用 |
|---|---|
LICENSE |
Mozilla 公共许可证 (MPL 2.0) |
mozconfig |
自定义构建选项示例(如优化级别、启用特性) |
Cargo.lock |
Rust 依赖库的精确版本锁定 |
package.json |
Node.js 工具链依赖(代码格式化/静态检查) |
.clang-format |
C++/Rust 代码格式化规则 |
.eslint.config.mjs |
JavaScript 代码规范检查配置 |
CODE_OF_CONDUCT.md |
社区行为准则 |
SECURITY.md |
安全漏洞报告流程 |
其他关键目录
- third_party/:第三方库代码(如 zlib、libpng)。
- servo/:实验性 Rust 引擎 Servo 的组件(部分集成到 Firefox)。
- docs/:开发文档(设计规范、API 说明)。
- obj-*/:构建产物目录(临时文件,可删除重建)。
特殊说明
- chrome/:存放浏览器 UI 资源(XUL/HTML/CSS),与 Chromium 无关。
- xpcom/:跨平台组件模型(XPCOM),用于 C++/JS 互操作(逐步被 Rust 替代)。
- mozglue/:平台适配层(Windows/macOS/Linux 的兼容代码)。
💡 提示:构建时需运行
./mach bootstrap安装依赖,./mach build编译完整浏览器。
浙公网安备 33010602011771号