FireFox是如何工作的?源代码演练?

FireFox是如何工作的?源代码演练?,firefox,Firefox,我想了解FireFox在幕后是如何工作的。我想了解源代码和不同的组件,但代码库相当大,我不知道从哪里开始 我想知道是否有来自firefox团队或社区之外的人写过类似的散步 我看了一下:但我没有看到任何叫喊“从这里开始”的东西。出于自我教育的原因,我只是想回顾一下他们的代码库。一个开始的方法是看看Firefox中最近修复的一些bug(请参阅),看看它们是如何修复的 也就是说。Firefox的代码库非常大,很可能没有人能完全理解它,因此最好从一个小部分(比如收藏夹)开始,试着找到它的代码,看看它是如

我想了解FireFox在幕后是如何工作的。我想了解源代码和不同的组件,但代码库相当大,我不知道从哪里开始

我想知道是否有来自firefox团队或社区之外的人写过类似的散步


我看了一下:但我没有看到任何叫喊“从这里开始”的东西。出于自我教育的原因,我只是想回顾一下他们的代码库。

一个开始的方法是看看Firefox中最近修复的一些bug(请参阅),看看它们是如何修复的


也就是说。Firefox的代码库非常大,很可能没有人能完全理解它,因此最好从一个小部分(比如收藏夹)开始,试着找到它的代码,看看它是如何工作的。同样,解决了bug及其影响的文件将是确定相关代码的好方法。

多伦多塞内卡学院有一个专门针对这一点的项目——Mozilla开发初学者

请查看以下链接:

如果你想直接进入一些实验室:

如果您需要任何帮助,请使用IRC.mozilla.org上的IRC:#seneca。如果你不是(塞内卡)的学生,不要担心,世界上有很多人(塞内卡人、Mozilla人和其他人)都在这个频道,目的是让开发人员了解开放源码,特别是Mozilla项目


祝你好运

我使用的是mozilla代码(确切地说是mozilla/nss/security)。就我对mozilla的理解而言:

它遵循分层体系结构,底部是NSPR层(Netscape Portable Runtime),与操作系统交互


并在您的工作环境中构建它(据我所知,它支持多种平台/体系结构)

加入Mozilla开发者社区/尝试通过测试一些组件来提供帮助

要为mozilla编写代码,请执行以下操作: (C++的可移植性标准是必须的,如果你是C++程序员)。 希望上面的一些内容可以帮助您入门。

这里有一个自上而下的答案(其他大部分是自下而上的):

Firefox是一个应用程序(另请参见:);XUL是XML的一个变体,用于描述渲染器解释的GUI,与浏览器中呈现HTML的方式大致相同,但XUL包括浏览器的菜单、按钮、状态栏、键盘快捷键等;我在XUL中组装一些简单的GUI应用程序的速度比在其他框架中快得多(而且它是独立于平台的!)

如果您查看Firefox应用程序目录(无论您在系统上的哪个位置安装了它),您将看到一个“chrome”目录,其中包含大量的.jar文件。这些只是具有特定结构(包括清单)的.zip文件,您可以自己查看它们

Firefox浏览器的大部分实际上是XUL+Javascript。它确实利用了许多C++编写的低级库,并且通过XPCOM访问JavaScript,但是如果您想理解和修改更高级的行为,XUL+JavaScript部分可能是开始的地方。 编辑:p.s.以下是XUL:和


编辑:XUL文档在与用户+事件交互的方式上非常类似于HTML文档(更是如此!)。XUL有一个文档模型,还有一些具有事件监听器。两者的作用类似于HTML+DOM及其事件模型,但具有更丰富的内置对象集/接口/事件等。事件处理程序是特定类型的接口,可以由Javascript对象实现(在XUL中用
onclick=“blah()”
声明,或通过对
addEventListener()的Javascript调用动态添加)——这两个语法与Firefox中的HTML事件完全相同,或者是C++或其他语言,它们可以用适当的接口实现XPCcom对象。

< P>最近发布了一组视频(如2015年初),它们通过Mozilla Firefox组件。也许你会对它们感兴趣


他们不是很新手,但我认为还是有帮助的。

我在维基百科上读到它使用XUL。不过我不知道有多少,所以谢谢你提供的细节。XUL很像微软的XAML,所以这个概念对我来说很有意义。这就是所有的事情是如何组合在一起的——XUL如何调用一个动作,是动作(事件处理)C++或JavaScript。“XUL如何调用一个动作,是动作(事件处理)C++或JavaScript?”->参见我在当前的顶部答案中的添加是有信息的,但不是像这个主题的主题那样接近。向上投票。至少对XPCOM的解释很好,希望我一周前就知道了!