xpi文件就是firefox能够识别的扩展文件,将xpi安装到firefox的方法比较多,而且挺简单的,以后介绍。
将xpi文件以WinRAR或者WinZip打开并解压,可以得到如下目录结构:
\chrome
\components
\defaults
\install.js
\install.rdf
\chrome.manifest
这是顶层的目录结构,在chrome目录下还会有重要的东西,逐一介绍:
chrome是Mozilla 规定扩展必须具备的目录,其中包含一个jar文件,为什么是jar呢?天知道Mozilla为什么要和Sun的Java这样纠缠不清!而实际上,他只是作为一种压缩结构而存在,就像zip包,rar包一样,只不过他是以Zip为压缩包结构,以.jar为扩展名。这个包里保存着完成扩展主要功能的文件。
components文件夹用于存放自定义的 XPCOM 组件文件,就是将xpt和dll文件放在里面,上一片blog里说的install.js放在外面~。由于javascript功能还是挺强大的,一般简单的功能是可以完成的,所以这个目录是可选的,我现在在做的项目要用通过xpcom使用一些别的库,所以就要用到xpcom,就会有这个目录。
defaults据说是负责存放一些默认的设置数据,我们现在正在做调研,东西做的还比较简单,没用到这个文件夹,当然这个文件夹也是可选的。
install.js文件,作为一种安装脚本,他已经被Mozilla新的技术所代替,就是我们看到的另一个文件——install.rdf,但是这个js文件还是有他的作用的,比如将components文件夹里的xpt和dll通过xpinstall的api搬运到firefox的特定文件目录中去。
install.rdf文件,用于描述当前扩展的注册信息和附加信息等。在firefox的扩展软件中找到我们安装的扩展,右键点出关于,about对话框里的信息都是出自这个文件,安装扩展的时候,firefox会自动分析这个文件,提取例如扩展名,版本号,作者之类的信息到系统中。
chrome.manifest文件负责将扩展的各种包注册到 Mozilla 的 chrome 系统中。可以理解为一个注册文件。
再来说一下chrome文件夹里的内容——jar文件包,解压这个包会得到三个目录:
\content
\local
\skin
content用于存放overlay或者Dialog、window这样的xul文件和负责控制逻辑响应事件的javascript文件。这个文件夹是必不可少的,我们扩展的核心内容就在这个文件夹中。
local是本地化文件夹,当我们想支持多语言的时候,会用的到,由于我们要做对英语和日语的支持,说以会用到这个文件夹下的内容,以后会详细介绍的。
skin文件夹是用于存储负责美化界面外观的样式表文件和图片文件,这些文件中的样式和图片会被 content 目录中的文件所引用,这点是初学者很不容易搞定的!content文件夹下的xul文件会用到!他们定义一个标示(ID),然后在本文件中什么也不做了!这点让我郁闷了一个上午,找啊找,翻啊翻的,结果在skin文件夹下的css文件中找到了!而css文件像一个桥梁一样,将skin中的图片文件与xul中的标签联系在一起!这个下一篇blog介绍。
这样,一个xpi的基本目录就介绍完了!搞不明白为什么要分这老些文件夹,但是将content(实现)和skin(资源)分开会有他的好处的,至少很清晰!
做最简单的扩展你只需要这样的目录结构:
\chrome
---\content
---\XXX.xul和XXX.js
\install.rdf
\chrome.manifest
其实要做一个简单的扩展也不会那么难,以后的4篇blog我会依次介绍如何简单扩展我们可爱的firefox,状态栏,工具栏,菜单,还有定制工具栏那个面板。
阅读(386) | 评论(0) | 转发(0) |