-
Notifications
You must be signed in to change notification settings - Fork 28
source code doc
patwonder edited this page Dec 7, 2012
·
26 revisions
首页 | 源码文档
Fire-IE/
extension/ 火狐扩展源码
chrome/
content/ Contents of your extension such as XUL and JavaScript files
locale/ 多语言支持
skin/ 图像、CSS等皮肤文件,用于控制界面显示
components/ XPCOM components, 用于全局模块的初始化
defaults/ Default Preferences, 扩展设置选项的默认值
modules/ JavaScript模块目录, 保存jsm格式的JavaScript文件
plugins/ NPAPI Plugin DLL文件
chrome.manifest Registers you content with the Chrome engine
install.rdf General information about your extension
plugin/ NPAPI Plugin源码
tools/ 扩展生成工具
7za.exe 7z压缩包工具程序,用于生成zip格式压缩包
buildxpi*.bat xpi扩展文件生成脚本,是一个标准Windows批处理文件
RuleMaker/ 订阅规则MD5生成工具
plugin.sln NPAPI Plugin的Visual Studio 2010 Solution文件
如果想进一步了解火狐扩展的结构,即Fire-IE/extension目录的结构和功能,可以参考Structure of an installable bundle和Building an extension。
有关JavaScript模块的内容,即Fire-IE/extension/modules目录下的jsm文件,可以参考Using JavaScript Code Modules。
未完成...
解雇IE通过Plugin嵌入IE内核,编译后对应的文件为:
- extension/plugin/npfireie32.dll -- 32位火狐使用的plugin
- extension/plugin/npfireie64.dll -- 64位火狐使用的plugin
Plugin主要功能:IE内核页面显示、传送IE内核产生的Cookie、转发IE内核的各种消息和避免ActiveX控件产生DEP异常。
Plugin使用Visual Studio 2010编写, Solution文件为Fire-IE/plugin.sln, 源码位于Fire-IE/plugin目录,源码结构:
Fire-IE/plugin/
np/ Plugin NPAPI底层接口, C语言实现
Plugin/ 用C++封装后的Plugin接口
pluginbase.h, plugin.h和.cpp Plugin实例类, 每个IE窗口会生成一个Plugin实现
PluginGlobal.h和.cpp Plugin全局初始化类
ScriptablePluginObject.h和.cpp Plugin JavaScript接口类
ScriptablePluginObjectBase.h和.cpp Plugin JavaScript接口类基类
comfix.h和.cpp 用于修复某些控件加载时死锁的问题
HttpMonitor/ IE控件Http请求拦截, 用于获取Cookie信息, 依赖PassthroughAPP/
PassthroughAPP/ PassthroughAPP用于Http请求拦截
BrowserHook/ Hack IE控件的相关文件
AtlDepHook.h和.cpp 避免ActiveX控件产生DEP异常,依赖于MinHook/
WindowMessageHook.h和.cpp 转发IE控件窗口消息
GestureHandler.h和.cpp, ~Impl.cpp 鼠标手势处理
Utils/ 工具类
external/ 外部库
MinHook/ 一个外部库,用于Hook系统API
jsoncpp/ JSON工具,为外部项目
abp/ Adblock Plus 实现类
jscre/ JavaScript Compatible Regular Expressions,取自V8引擎
re/ 对jscre的OO封装
regdom-libs/ 获取URL对应注册域名的工具
res/ 资源文件
test/ 单元测试代码
stdafx.h和.cpp Visual C++预编译文件
PluginApp.h和.cpp MFC的CWinApp类
IECtrl.h和.cpp IE控件类,由Visual Studio自动生成
IEHostWindow.h和.cpp Plugin主窗口,MFC CDialog类, 用于容纳IE控件
IEControlSite.h和.cpp IE控件高级定制
PrefManager.h和.cpp 管理扩展传过来的首选项
UserMessage.h IEHostWindow使用的用户消息定义
注: 有关ActiveX控件产生DEP异常的内核,请参考Applications Using Older ATL Components May Experience Conflicts With DEP和Bug 704038 - Allow ATL thunk emulation to work in Mozilla China's IEMode plugin 。