随笔分类 -  Mozilla扩展

【分享】Firefox和Chrome扩展开发
摘要:今天在公司内部做的一个技术分享,内容涉及Firefox扩展开发,XPCOM组件,Chrome扩展开发,以及两者可扩展性的比较。 以下是讲稿的大纲: 1,Firefox扩展快速入门2,实例1:Hello World forfirefox3,实例2:图片批量下载扩展4,XPCOM—跨平台的COM技术5,实例3:迅雷下载扩展6,Chrome扩展快速入门7,实例4:Hello World fo... 阅读全文

posted @ 2010-11-08 18:17 Phinecos(洞庭散人) 阅读(3836) 评论(10) 推荐(3) 编辑

基于Chrome的扩展开发(一)
摘要:Google终于放出了Chrome的第一个扩展示例了,虽然还十分简陋,但对喜欢扩展的firefox粉丝来说可说是个大好消息 阅读全文

posted @ 2009-03-19 18:08 Phinecos(洞庭散人) 阅读(10805) 评论(7) 推荐(0) 编辑

《基于Mozilla的扩展开发》系列文章
摘要:《基于Mozilla的扩展开发》系列文章 阅读全文

posted @ 2008-06-17 14:36 Phinecos(洞庭散人) 阅读(2933) 评论(3) 推荐(0) 编辑

《XPCOM组件开发》笔记(四)
摘要:通用型XPCOM模块宏 宏 作用 NS_IMPL_NSGETMODULE(name, components) 实现IModule接口 NS_IMPL_NSGETMODULE_WITH_CTOR(name, components, ctor) 同上,但允许指定模块创建时调用一个特定函数 NS_IMPL_NSGETMODULE_WITH_DTOR (name, compone... 阅读全文

posted @ 2008-06-02 17:24 Phinecos(洞庭散人) 阅读(1423) 评论(0) 推荐(0) 编辑

《XPCOM组件开发》笔记(三)
摘要:XPCOM支持的每种语言都必须有自己的组件加载器。 XPCOM组件至少有三层,从里到外是:1)核心XPCOM对象。2)工厂代码 3)模块代码 核心XPCOM对象是实现你所需要的功能的对象,其他层是用来支持它,将它插入到XPCOM系统中的。一个单独的库可能有很多个这样的核心对象。 在核心对象层上面的是工厂层,工厂对象提供了XPCOM对象的基本抽象。 模... 阅读全文

posted @ 2008-06-02 15:25 Phinecos(洞庭散人) 阅读(1785) 评论(1) 推荐(0) 编辑

《XPCOM组件开发》笔记(二)
摘要:前面的例子是一个简单的无状态工厂版本,但实际中工厂应该存储状态。至少要保存它所创建的对象的信息。当一个工厂对动态共享库中的类的实例进行管理时,它应当知道何时可以卸载掉库。如果工厂保存了状态,那么你就可以查看是否有显示的引用并判断是否工厂创建过任何对象。 工厂能保存的另外一种状态是对象是否是单例的。若是,则以后对工厂的调用应当返回一个对象。(这可以通过IServiceManager... 阅读全文

posted @ 2008-06-02 11:44 Phinecos(洞庭散人) 阅读(3246) 评论(2) 推荐(0) 编辑

基于Mozilla Thunderbird的扩展开发(八)---进程间通信之Socket篇(续)
摘要:最近遇到这样一个需求:在我们的MFC程序中控制Thunderbird。拿到这个奇怪的需求后,有了这么几个想法:1)用全局钩子试着勾住Thunderbird,可细想好像不对。2)用spy++探查点击Thunderbird的各个菜单,按钮时触发的事件,总归是win32平台上跑的程序,归根到底还是事件触发,从理论上说应该是可以在我们自己的MFC程序中模拟目标程序中的各个事件触发。 但接触到Mozilla的socket方面的知识后,放弃了上面的想法,改用socket通信来实现此需求。一来Thunderbird源代码可以自行修改,因此可以加入一些代码使之成为一个类似HTTP服务器的服务器端程序,二来使用socket进行连接与语言无关,因此C++的程序可以和javascript的程序完成通信,但缺点也很明显,要占用端口,只涉及到本地机器的通信却使用了socket这样的网络通信机制。 阅读全文

posted @ 2008-05-27 22:19 Phinecos(洞庭散人) 阅读(2363) 评论(4) 推荐(0) 编辑

基于Mozilla Thunderbird的扩展开发(七)---工欲善其事,必先利其器
摘要: Mozilla最为人诟病的地方就是没有称手的开发工具,这对于我们这些被微软惯坏的开发人员来说,如果没有Visual Studio这样舒服的工具的话,谁会投入你的怀抱呢?本文就希望从三个方面介绍下我所了解到的Mozilla 平台下的开发工具及一些小技巧。 阅读全文

posted @ 2008-05-21 21:31 Phinecos(洞庭散人) 阅读(3874) 评论(4) 推荐(0) 编辑

基于Mozilla Thunderbird的扩展开发(六)---进程间通信之Socket篇(下)
摘要: 在上一篇《基于MozillaThunderBird的扩展开发(五)---进程间通信之Socket篇(上)》中开发了一个简单的TCP服务器,本文将介绍其对应的客户端。 阅读全文

posted @ 2008-05-20 22:09 Phinecos(洞庭散人) 阅读(2204) 评论(0) 推荐(0) 编辑

基于Mozilla Thunderbird的扩展开发(五)---进程间通信之Socket篇(上)
摘要: 这个系列的前两篇文章主要是根据自己的需求,对Thunderbird的源代码进行修改,改进了Thunderbird的现有功能,关注点都在Thunderbird的老本行---邮件客户端的实现上,那是否Thunderbird就仅仅是一个邮件客户端呢?在我看来,并非如此,它源自Mozilla内核,就继承了Mozilla平台的光荣传统,应该视为一个优秀的可扩展的开发平台,更进一步来看,Mozilla的文化深入其骨髓可以看到后来Adobe的Flex,MicroSoft的WPF都吸收了Mozilla平台界面与逻辑相分离的思想,所以接下来几篇文章我想写一个比较有意思的方面----进程间通信。 进程间通信的概念在操作系统中有过详细的介绍,方法很多,我主要关注两种:socket通信,Pipe(管道)通信。 本文的目的就是开发一个扩展,展示TCP/IP socket技术在Mozilla扩展开发中的应用。 阅读全文

posted @ 2008-05-19 21:12 Phinecos(洞庭散人) 阅读(2624) 评论(3) 推荐(0) 编辑

基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件
摘要: 在上一篇《基于MozillaThunderbird的扩展开发(三)---如何获取邮件的完整信息》中给出了一种简单的获取邮件的完整信息(包括正文和附件等)的方法,但仔细考虑后发现离实际需求还有一段距离。 Thunderbird中已经有保存附件的功能,但需要手动去操作,既然手头有它的源代码,为什么我们不自己尝试对它进行修改,从而使得它能自动保存所有附件呢?Ok,这篇文章就是基于这样思想的一个尝试。 首先明确一个前提,本文并不想开发一个扩展,而是尝试直接修改Thunderbird的源代码,但你也可以将它修改为一个扩展,这里为了调试开发简单起见,因此我选择了直接修改其代码。 阅读全文

posted @ 2008-05-18 20:06 Phinecos(洞庭散人) 阅读(3808) 评论(7) 推荐(0) 编辑

基于Mozilla ThunderBird的扩展开发(三)---如何获取邮件的完整信息
摘要:如果你没有读过ThunderBird的源代码,也许会和我一样想当然地认为里面肯定有某个数据结构用于存储邮件的正文和附件等信息,但如果你读过了代码,那么也会和我一样感到遗憾,居然没有这样完整的数据结构!里面有一个表示邮件头的XPCOM 组件 nsIMsgHdr , 但mozilla这帮人却没有定义一个用来表示邮件(包括邮件头,正文,附件等信息)的组件" nsIMsg"呢... 阅读全文

posted @ 2008-05-05 22:14 Phinecos(洞庭散人) 阅读(3505) 评论(3) 推荐(0) 编辑

基于Mozilla平台的扩展开发(续)----XPCOM组件篇
摘要: 在《浅谈基于Mozilla ThunderBird的扩展开发》这篇入门文章中简单介绍了基于Mozllia平台进行扩展开发的基础知识,但仍然欠缺最为重要的一种武器---没错,XPCOM!这篇文章就是为它准备的。 So,what's next? 没错,自己如何开发XPCOM组件并在扩展中使用。网上对于这方面的资料不是很多,而且没有特别完整的示例,这就是我写这篇文章的目的所在,通过一个简单的XPCOM组件的开发全过程,展示XPCOM组件的内部细节。 阅读全文

posted @ 2008-04-25 22:19 Phinecos(洞庭散人) 阅读(11529) 评论(11) 推荐(1) 编辑

浅谈基于Mozilla ThunderBird的扩展开发
摘要:以前虽然对firefox的扩展性有所耳闻,但也只是听说而已,没有任何研究。这几天对于ThunderBird的一些研究让我对Mozilla这个平台肃然起敬,其UI和逻辑分离,高度可扩展性的思想确实很棒。但由于资料稀少,研究的人也不多,造成像我一样的新手望而却步,一开始为了编译成功其源代码,为了实现一个最简单的“hello world”扩展都耗费了大量的时间和精力(我读各种各样的文档就花了一周的时间了,累死了),更有甚者,因为得不到资料方面的支持,放弃了对这个平台的研究。 本文的目的就是希望能为像我这样希望进入这个平台的新手们提供一个”敲门砖“。 阅读全文

posted @ 2008-04-21 20:00 Phinecos(洞庭散人) 阅读(10195) 评论(32) 推荐(0) 编辑

Windows下编译Enigmail源代码
摘要:要学习Mozilla平台上的扩展开发,阅读开源的扩展代码是必需的,Enigmail就是这样一个优秀的扩展,它主要功能是对邮件进行数字签名以及加解密。 第一步当然是先编译Thunderbird,of course,如果你不想自己编译也没关系,使用安装版本也是可以的,反正有测试环境就可以了。否则的话,按如下步骤: make -f client.mk exportcd modules/libreg... 阅读全文

posted @ 2008-04-21 19:01 Phinecos(洞庭散人) 阅读(1296) 评论(0) 推荐(0) 编辑

Window下编译ThunderBird源代码(修正版)
摘要:1,解压缩源代码到d:\mozilla目录下。注意thunderbird的那个目录名称一定要是名为mozilla的,否则编译会通不过。2,从D:\mozilla\mail\config目录下拷贝 mozconfig文件到D:\mozilla目录下,这个文件的内容如下: # This file specifies the build flags for Thunderbird. You can ... 阅读全文

posted @ 2008-04-18 17:32 Phinecos(洞庭散人) 阅读(4896) 评论(9) 推荐(0) 编辑

导航