如何参与Mozilla Firefox的开发?

时间:2010-07-26 22:24:34

标签: firefox

我是CS研究生,我有兴趣花些时间参与Mozilla Firefox网络浏览器的开发。我想为HTML渲染器,JavaScript引擎等做出贡献。但是我在编写解析器或类似的东西方面没有任何实际经验,而且我没有任何线索可以从哪里开始。

https://developer.mozilla.org/En/Developer_Guide/当然有一些链接,但由于Firefox已经是一个非常庞大的项目,我不知道从哪里开始学习。

所以,我的问题是我需要首先学习哪些核心内容才能开始使用Web浏览器开发以及从哪里学习(任何链接)?我是否必须修改如何编写解析器/编译器?我如何学习编写HTML渲染器/ JavaScript引擎?考虑到它们已经是非常庞大的项目,它甚至可能吗?不久之后,我下载了V8 JavaScript引擎的源代码(http://code.google.com/p/v8/),但我对它的源代码了解不多,因为它是高度优化的代码,对于像我这样的初学者来说,没有太多有用的评论可以理解继续。

更新: 我很适合使用C,C ++,Java,PHP,C#,VB.Net,JavaScript,我更感兴趣的是学习Web浏览器如何解析网页,如何构建和维护DOM,如何应用CSS,如何HTML reflow引擎可以工作,它如何与JavaScript引擎交互,它如何与Web服务器交互,如何在屏幕上绘制组件等。

5 个答案:

答案 0 :(得分:11)

阅读getting started上的文档。在#developers中浏览irc.mozilla.org并观看有趣的对话。在#introduction中介绍自己并提出问题。转到http://bugzilla.mozilla.org并开始搜索听起来有趣的组件中的开放错误,然后查找可以捕捉到您喜欢的错误。使用http://mxr.mozilla.org/http://dxr.mozilla.org等工具来帮助您找到相关代码,并在#developers中提问。学习,破解,重复。

我写了a post关于我过去一年参与的经历,它似乎反映了大量Mozilla开发人员所采用的路径。

答案 1 :(得分:6)

您可能希望查看已知错误列表,看看是否能够修复它们。其他可能的方法是参与质量保证任务,这将有助于您学习更好的应用程序内部。

答案 2 :(得分:5)

Bugzilla中标有[良好的第一个bug]白板状态的错误是一个很好的起点。您可以查看列表here

找到你喜欢的东西并尝试修复它! IRC上的开发人员(irc.mozilla.org中的#developers)通常很乐意在您遇到问题时提供帮助。

答案 3 :(得分:3)

如果您对解析感兴趣,请学习有限状态自动机和正式语法,它应该在某些时候成为CS课程的一部分,就像在编译器类中一样。对于javascript部分,研究JIT编译器,特别是关于跟踪JIT如何工作。关注Mozilla开发博客,这是一篇很好的入门文章: http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/

最后,但并非最重要的是,尝试联系已经在那里工作的人,并尝试建立导师 - 学生关系,他们可以为您分配任务,如果您在处理代码时遇到问题可以提供帮助。参加开源会议是一个很好的方式来满足项目背后的人并开始贡献。

答案 4 :(得分:1)