火狐浏览器插件开发入门教程( 二 )


而Firefox整个程序主界面和扩展的界面都是由XUL文件来描述的,所以在Firefox运行过程中,和扩展使用过程中,都是靠XULRunner来支持 。
XPCOM
XPCOM(Cross Platform Component Object Model)是一种跨平台组件对象模型,类似于微软的COM 。它有多种语言系结(Language Binding),使 XPCOM 组件可使用并实现于C、JavaScript、Java 及Python 。XPCOM 的界面是由称为 XPIDL (Interface Definition Language)所定义 。
XPCOM 自身提供了一套核心组件和类别,例如,档案和内存管理、线程、基本数据结构(strings,arrays,variants)等 。大多数XPCOM 组件并非由核心组件所提供,而是由其他平台或应用程序、甚至是延伸套件所提供 。
而在Firefox中,绝大多数的功能都基于XPCOM机制 。例如Firefox为扩展开发提供的接口都是用XPCOM方式来实现的 。
例如gRDF = Components.classes[@mozilla.org/rdf/rdf-service;1]
.getService(Components.interfaces.nsIRDFService);
将获取RDF模块的nsIRDFService实例 。
XPInstall
XPInstall(Cross-PlatformInstall)是Mozilla系列软件或者其他基于XUL的软件中用于安装extensions的技术 。在Firefox2.0的源代码中,有一个名为xpinstall的文件夹,存放跟XPInstall模块相关的代码 。
另外需要特别指出Firefox的扩展分为普通默认扩展和定制安装扩展 。普通默认扩展没有定制的安装代码,整个安装过程由Firefox默认流程来执行 。而定制安装扩展的安装包中有定制的安装过程信息 。而这些信息是用专门的Javascript代码编写,调用XPInstall提供的API来实现 。定制安装扩展,常见的例子是用Firefox打开扩展中心,点击某个扩展就可以在线安装,其中就是调用了XPInstall的API 。
简单了解Firefox Extension组成说明和Firefox处理Extension的过程分析 。
第三步:
根据这个简单教程,尝试一下hello world:
另外就是在Firefox官方扩展网站下载一些扩展来研究一下了 。
安装后,Extension的代码会在磁盘这个位置:
C:Documents and SettingsUserNameApplicationDataMozillaFirefoxProfilesProfileextensions
第四步:
正式开始使用开发环境 。
1.Firefox安装相关的扩展:firebug,1.Firefox3.0,这个肯定必不可少了 。在此推荐3.0,因为最新版3.6或者3.7,那些扩展还没有更新跟进,所以要想安装更多的扩展,还是以3.0为好 。
2.Firebug,这个不必多说 。虽然我只是菜鸟,只是用这个来定位某些xul元素对应什么代码,但帮助不少 。再到firebug的官网,下载chromebug:(有了chromebug才能更好的调试自己写的chrome文件)
因为调试js需要开开关关firefox,太麻烦,所以一些代码可以在firebug控制台先测试 。在firefox7试验过
3.Extension Developer 。官网推荐,当然安装啦 。这个是一套Firefox扩展,包括打包xpi功能,预览xul等 。
4.SpketIDE 。开发扩展的IDE,官网推荐的,比较好用 。不过好像不能打包xpi,也不能测试 。不过只作为编辑器也不错了 。用它来看人家的扩展的代码,非常舒服
5.xul explorer 。预览xul效果 。
6.emEditor 。快速打开代码文件,进行修改 。另外最重要的功能是:查找 。研究人家的代码的时候,JavaScript的代码转来转去,太难找到某些变量或者对象的定义了 。用emEditor的在文件中查找功能,作用非常大,查找出来的结果有预览(后来发现,也可以直接用SpketIDE的search--file功能,跟eclipse的查找功能类似,不过缺点就是没有预览,每次要双击了才知道是怎么匹配的 。)
7.另外,习惯使用eclipsespketXULBoosterFirefox
第五步:
【火狐浏览器插件开发入门教程】慢慢学习Javascript,CSS还有一些细节的技术 。尝试修改人家已有的Extension,加入自己想要的功能 。

推荐阅读