我想了解FireFox如何在幕后工作.我想了解源代码和不同的组件,但代码库相当大,我不知道从哪里开始.
我想知道是否存在某种类型的步行,但任何人都可以从firefox团队或社区外部编写.
我看了一下:https://developer.mozilla.org/En 但我没有看到任何尖叫"从这里开始".我只是试图通过[自我]教育原因来审查他们的代码库.
多伦多的塞内卡学院(Seneca College)有一个针对这一目标的计划 - 初学者到Mozilla开发.
看看其中的一些链接:
真实世界的Mozilla
2008年秋季每周时间表
一些实验室,如果你想直接潜入:
实验室:学习协作开发(2008年秋季)
实验室:构建开源项目(2008年秋季)
实验室:真实世界Mozilla - 源代码阅读
实验室:使用补丁
实验室:深入了解Mozilla - 调试Mozilla
实验室:Thunderbird Bug Fix
实验:修改浏览器
实验:使用扩展程序修改Firefox
实验室:真实世界Mozilla - 第一个XPCOM组件
实验室:真实世界Mozilla - 为第一个XPCOM组件添加chrome
如果您需要任何帮助,请在irc.mozilla.org上使用IRC:#seneca.不要担心,如果你不是(塞内卡)学生,世界上很多人(来自塞内卡的人,来自Mozilla的人和其他人)都在这个渠道,目的是教育开发人员一般的开源和特别是Mozilla项目.
祝好运!
这是一个自上而下的答案(其他大多数是自下而上):
Firefox是一个XUL应用程序(另见:XUL); XUL是XML的一种变体,用于描述由渲染器解释的GUI,与在浏览器中呈现HTML的方式非常相似,但XUL包括浏览器的菜单,按钮,状态栏,键盘快捷键等.它非常整洁; 我已经能够在XUL中比其他框架更快地组装一些简单的GUI应用程序(并且它与平台无关!).
如果您查看Firefox应用程序目录(无论您在系统上安装它的哪个位置),您都会看到带有一堆.jar文件的"chrome"目录.这些只是具有特定结构(包括清单)的.zip文件,您可以自己查看它们.
很多Firefox浏览器实际上都是XUL + Javascript.它确实利用了许多用C++编写的低级库,并且可以通过XPCOM访问Javascript,但是如果你想了解(和修改)更高级别的行为,那么XUL + Javascript部分可能就是起点.
编辑:ps这里是XUL的一些教程/参考:1 2以及O'Reilly的书
编辑:XUL文档与HTML文档非常相似(只有更多!)与用户+事件的交互方式.有一个用于动态修改 XUL 的文档模型,并且有一些事件模型具有事件侦听器.两者都像HTML + DOM +它的事件模型,但有更丰富的内置对象/接口/事件/等.事件处理程序是特定类型的接口,可以通过Javascript对象实现(在XUL中声明onclick="blah()"
,或通过Javascript调用动态添加addEventListener()
- 两者与Firefox中的HTML事件完全相同)或C++或其他可以使用适当的接口实现XPCOM对象的语言.
一种开始的方法是查看Firefox中最近修复的一些错误(参见Bugzilla)并查看它们是如何修复的.
那就是说.Firefox代码库非常庞大,很可能没有人理解所有内容,所以最好先从一小部分开始(比如收藏夹),然后尝试找一下它的代码并查看它是如何实现的作品.同样,已解决的错误及其影响的文件将是识别一些相关代码的好方法.