• Mozilla研究—mozilla的目录结构


    Mozilla研究—mozilla的目录结构

     

    转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd

    作者联系方式:李先静<xianjimli at hotmail dot com>

    更新时间:2007-3-25

     

    mozilla是一个以浏览器为中心的软件平台,它在我们平台中占有重要地位。我们用它来实现WEB浏览器、WAP浏览器、邮件系统、电子书和帮助阅读器等应用程序。为此,我最近花了不少时间去阅读mozilla的代码和文档,我将写一系列的BLOG作为笔记,供有需要的朋友参考。本文介绍mozilla的目录结构。

     

    Accessible 对辅助功能的支持。这些功能主要为残障人士提供的,比如放大镜和屏幕阅读器等。Mozilla是基于GNOMEATK实现的,要注意的是,它只是提供对辅助功能的支持,并没有实现这些功能,这些功能是由专门的应用程序实现的。

     

    Caps 提供了一些根据安全设置等信息决定系统能力的接口,比如是否允许执行脚本,是否接受cookie,是否记住密码等等。

     

    Chrome 一种本地资源访问协议,它提供了抽象的URL到物理文件之间的映射。这样,应用程序可按访问普通URL的方式去访问资源,而不必关心资源的物理位置。不过mozilla似乎没有用它,而用的是RDF下面那个实现。

     

    Config Makefile的编译规则、configure生成的配置和其它一些用于编译的脚本。其中autoconf.mkconfigure生成的配置,如果发现编译选项不对,可以看看这个文件。

     

    Content 文档对象模型(DOM)的主要代码,各种负责标记语言的语法树的构建和表示。其中xxxContentSinkxxx负责语法树的构建,而xxxDocumentxxxxxxElementxxx负责语法树的表示。

     

    Db/dbm 数据库实现,估计主要是给邮件系统用的,minimo好像没有用到。

     

    Docshell/Webshell 浏览器的总控模块,负责把各个模块协调起来。

     

    Dom 文档对象模型的界面部分,负责比如窗口、焦点和事件处理等等。

     

    Editor 编辑器的实现,支持text/textmail/html/htmlmail四种编辑类型。

     

    Embedding 浏览器控件的实现,有基于不同GUI的封装。在Win32下实现成了activex控件,接口与IE Control类似吧。应用程序可以把浏览器控件嵌入到自己的窗口中,minimo就是按这种方式实现的。

     

    Extensions 各种扩展的实现,像帮助系统和javascript调试器等等。

     

    Gfx 对图形/图像处理的封装库,有基于GTKQTWin32GUI的实现。

     

    Widget 对窗口系统的抽象,有基于GTKQTWin32等的实现。

     

    Intl 对国际化的支持,包括编码转换和字符串处理等等。

     

    Ipc 一套进程间通信机制,在minimo里没有用到,所以没有仔细看。

     

    Jpeg JPG图像编解码库。

     

    Js javascript解释器和XPConnect的实现。

     

    Minimo minimo应用程序。

     

    Modules 压缩/解压、图像、注册表和plugin等等。其中libpr0n是对各种图像文件格式的包装,提供了mozilla框架需要的接口,如果图像处理不正常,不防从这里入手。

     

    Netwerk 网络协议、mimecookiecache和格式转换。

     

    Nsprpub 可移植的运行库。

     

    Parser解析器,负责各种XML文件和HTML文件的解析,基于builder模式实现,调用content中的xxxContentSinkxxx去构建语法树。

     

    Plugin 插件。

     

    Profile 主要功能是管理各种配置文件的路径,它实现了nsIDirectoryServiceProvider,如果发现获取配置文件位置失败,可以看看nsProfileDirServiceProvider::GetFile

     

    Rdf 资源描述框架(RDF)的解析器等。这里面也实现了Chrome协议。

     

    Security 安全相关的库如SSL等实现。

     

    Storage 数据存储,可能是基于前面的数据库实现了mozilla需要的接口。

     

    Toolkit 一些工具,如安装程序(installer)、扩展管理器和下载管理器等,主要是界面部分。

     

    Xpfe 据说是一套应用程序框架,称为FrontEnd。里面有很多功能和toolkit提供的类似,不知是不是用来取代toolkit的。

     

    Xpinstall 安装程序的实现。

     

    Mail 邮件系统,各种邮件协议和邮件内容的解析器等。

     

    Layout 界面排版布局,相当于mozilla实现的一套GUI系统。每个控件称为一个Frame,要实现PaintHandleEvent等接口函数。如果显示或者事件处理不正常,可以看看对应Frame

    的这些函数。

     

    View 视图和视图管理器。

     

    Xpcom XPCOM的实现。

     

    Uriloader 对协议的包装,并提供了一些附加功能:定义nsIWebProgressListener2接口用显示下载状态,调用StreamConv转换文件格式,起动外部分应用程序打开mozilla无法处理的文件等。

     

    ~~end~~

     

     
  • 相关阅读:
    数据库从别的数据库查询一张表在插入到新的数据库里面
    html5 学习随笔 1
    .net MVC 学习笔记 (一)
    Html5 本地存储
    .net MVC 学习笔记 (二)
    蝙蝠侠解救罗宾的问题
    求职的第一面Harman
    求职第七面——烽火通讯
    求职的第二面—Samsung
    求职第六面——瑞星微电子
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167739.html
Copyright © 2020-2023  润新知