该文内容主要来源于mozilla的相关文档,可以参考 https://developer.mozilla.org/en-US/docs/Mozilla_Source_Code_Directory_Structure
mozilla的许多项目都共享同一个源码目录,比如火狐浏览器,雷鸟等。这个源码树也包含了构建必须的工具和平台相关的东西。
该目录主要是实现一些功能,使人们更容易使用该产品,包括那些身体有残疾的人。
作用和其名字一样,开发火狐等产品插件的开发工具。
Boot2Gecko项目的源码,构建firefox OS时使用。顺带说一句,firefox OS是基于linux内核和开发的web技术(HTML CSS 等)的操作系统。
火狐浏览器的前端代码(用XUL javascript,XBL,C++开发)
CAPS
网页内容的安全性,包含了一组C++接口和代码,基于配置的安全设置,决定当前网页内容的安全性
构建过程中需要的配置文件。
这个目录也包含了XUL XBL XTF 《canvas》 XSLT的实现和事件处理的代码
SQLite数据库
1. DOM定义的接口的IDL定义,也包括了mozilla的一些对接口的扩展
2. 连接了javascript和DOM的实现
3.实现了部分“DOM Level 0”的核心对象
暂无
mozilla的一些扩展程序,可以在编译的时候通过设置选项来打开和关闭
HTTP和其他一些协议的协商认证选项
Content- and locale-pack switching user interface.
Permissions backend for cookies, images, etc., as well as the user interface to these permissions and other cookie features.
查看当前注册的组件和接口
时间协议
手势协议
Interface to gnome-vfs to allow using all protocols supported by gnome-vfs inside of mozilla.
帮助模块
网上聊天
javaconnect模块,用于实现java和组件之间的相互访问
布局调试模块
Implementation of W3C's Platform for Privacy Preferences standard.
Preference-related extensions.
支持使用python写组件
生成错误报告
用指定的方式验证XML文件
空间导航,基于连接在屏幕上的位置导航
拼写检查
支持访问SQL数据路
支持从MSIE中导入配置
从各个平台中提炼抽象出来的图形操作接口,比如绘图,输出文本和基本的图形等
暂无。应该是硬件抽象层,隐藏底层的硬件
图形渲染库。用于解码mozilla支持的图像格式
web的各种编码支持
支持复杂文本的布局,有的语言长的很奇怪,一个个字母奇形怪状,不好显示
从操作系统的变量中获取本地使用的语言的代码
用于决定分行和分词的代码。什么时候应该新起一行,什么时候一个词结束
用于支持本地化的字符串资源
文件各种编码之间的转换代码
unicode文本之间的各种转换算法,比如大小写转换
进程间通信的代码
JavaScript的解释引擎
支持C++调用JavaScript代码
布局模块,将可以显示在屏幕上的所有的对象及其位置构成一个树,并提供了操作这颗树的方法
处理渲染树
CSS的基本渲染对象的接口
描述HTML表单控件的渲染对象
CSS/HTML表格的渲染对象
处理MathML.
处理 SVG.
处理XUL
zip解压库,jar文件就是zip压缩的
操作配置文件的库
zlib的源码
胶水层,用来隔离其他模块易变的代码
网络层,用来处理真实的网络数据传输。
可以移植的抽象运行环境,比如线程,文件IO 网络IO
一些许可证
解析器,用来解析HTML XML CSS等格式的文档。
解析XML,拷贝的expat源码
解析HTML
解析xml,集成expat到Gecko
遗留的用于解析HTML的代码,目前只是用来解析 about:blank 其中的部分代码也用于xml解析中,用来将网络字节流转换为unicode
个人理解为一个框架,用来展示其他模块的运行细节,比如性能分析
安全模块,包含加密算法,ssl的实现
sqlit数据的封装,封装成了一个XPCOM
工具包,包含很多被雷鸟和火狐共享的前端组件。
构建过程中可选的工具,主要是用于调试
内容分发模块,用于加载url,然后寻找一个合适的内容监听者来处理加载的数据。也管理web进程之间的通知
处理一些Mozilla不能处理的内容,主要是负责展示帮助对话框和一些帮助信息或链接
预加载代码,为了提高加载速度
视图管理模块,逐渐被废弃
XXX this needs a description.
类似于微软的COM
SeaMonkey的前端
xulrunner的代码