Category Archives: Mozilla

Mozilla研究—从输入URL到显示内容的基本过程

Mozilla研究—从输入URL到显示内容的基本过程 按我的想象,从输入URL到显示内容的过程非常简单:连接到服务器—下载文件—解析内容—排版布局。而在Mozilla中,实际情况虽然大体差不多,由于中间绕了不少圈子,整个过程显得比较复杂了。这里简单介绍一下:

Posted in Mozilla | Leave a comment

Mozilla研究—minimo的本地化

Mozilla研究—minimo的本地化 国际化通常简写为I18N ,其中18表示I和N之间省略了18个字母;而本地化同样可简写为L10N。在我的印象中,国际化通常是一些基础平台和库,为本地化提供必要的支持。而本地化则是为某个国家/地区做些特别的定制(如文字翻译)。没有国际化的支持,本地化将非常困难。没有本地化的实现,国际化也没有用武之地。两者相辅相存,所以大多数情况下,很少严格区分这两个概念,本文中也是如此。

Posted in Mozilla | Leave a comment

Mozilla研究-传输协议

Mozilla研究-传输协议 Mozilla 浏览器作为HTTP协议的客户端,它与HTTP服务器(如Apache和IIS等)通信,进行数据下载和上传,自然要用到HTTP协议了。不过HTTP协议只是Mozilla所支持的众多协议的一种,这些协议有的是网络协议,比如HTTP,有的是本地协议,如file,还有的是虚拟协议,比如about。

Posted in Mozilla | Leave a comment

Mozilla研究-XPCOM语言无关性的实现原理

Mozilla研究-XPCOM语言无关性的实现原理 本章的题目看起来有点神秘,可能有的朋友已经怀疑我在故作高深了。经过这几周的研究,我发现mozilla的复杂度超出了我的预期。当时和falls_huang聊天时,我说我们打算选择minimo作为浏览器。他说,假设客户发现浏览器有一个BUG,他要你们在一个月内搞定它,你认你们有这个能力吗?我想了一下,说,mozilla里面涉及到的技术我都比较熟悉,应该没有问题吧。那时我对mozilla本身仅仅知道一点皮毛,这个回答只是基于以前的调试经验罢了。

Posted in Mozilla | Leave a comment

Mozilla研究-组件加载机制

组件加载机制 在传统意义下,模块(Module)通常是设计时的范畴,而组件(Component)则是指运行时的范畴。它们两者的关系与类和对象的关系极为相似。有时为了简单了起见,往往并不严格区分它们,在本文中也是如此。

Posted in Mozilla | Leave a comment

Mozilla研究-mozilla中的设计亮点

Mozilla研究-mozilla中的设计亮点 近几年我看了不少大型开源系统,它们每个设计得都很经典,而mozilla无疑是其中的佼佼者之一。好的设计总是遵循一些众所周知的设计准则,套句俗语说,差的设计千差万别,好的设计都差不多。Mozilla也一样,它也无非是遵循了一些好的准则,只是实现手段有些差异罢了。这里简单的说一说,就算是温故知新吧。

Posted in Mozilla | 3 Comments

深入理解mozilla所需的背景知识

深入理解mozilla所需的背景知识 Mozilla非常庞大,据说有数百万行的代码。逐行理解所有代码是不可能的(也没有必要),不过要理解它的架构,以便充分利用它的功能是可能的。Mozilla涉及的技术比较多,如果不理解这些技术,阅读它的代码和文档可不是件容易的事。这里列出一些主要的背景知识:

Posted in Mozilla | 1 Comment

编译基于GTK+DFB的minimo

编译基于GTK+DFB的minimo Minimo是mozilla为移动设备定制的一款浏览器,由于它基于mozilla那套软件平台,它所要求硬件资源仍然较高(共享库版本约18M,静态版本约10M)。之所以说是为移动设备定制的,是因为它为小屏幕设备做了一些修改,而不是因为它真的小巧玲珑。

Posted in Mozilla | Leave a comment

Mozilla的架构设计

原文发表于《程序员》2007第5期,BLOG首发。 Firefox的横空出世在很多人的意料之外,其体积小巧功能强大,在安全性、扩展性和可移植性上都有惊人的表现。这样优秀的软件,实在想不出是在mozilla这棵老树上生出的新花。我们都认为mozilla老了,已经过时了,不是吗?如果不是firefox,我们还记得mozilla吗? 最近因为工作需要,我花了不少时间去研究Mozilla。才知道我的想法错了,mozilla的架构设计非常优秀,不但没有老,而且在持续的焕发出生机。不是别的,正是它优秀的架构孕育了firefox的诞生。 浏览器的复杂度可以和操作系统相提并论,mozilla有数百万行的C++代码。这样复杂的软件,其中到底使用了那些秘技呢?其实,好的设计总是遵循一些众所周知的设计准则,套句俗语说,差的设计千差万别,好的设计都一个样。Mozilla当然也是遵循了这些设计准则,不过,在实现方法上却有很多创新之处,让人惊叹不已。

Posted in Mozilla | 11 Comments