.NET gecko内核浏览器开发 ——GeckoFX介绍

若如初见. 提交于 2020-01-25 09:34:30

众所周知 mozilla 只提供C/C++版本的gecko内核 嗯 人家mozilla 就是这么着说的就是没有.net的 人家也没有义务要提供 废话说道这

其实Gecko与Webkit、Trident最为世界上使用最多的三大浏览器内核来说 在最近的一个项目(WPF项目)中经过比较决定使用gecko的内核

说说我选择使用gecko内核的优势:

其一 gecko内核开发的浏览器 例如FireFox为代表的mozilla 公司的浏览器 是速度相当快速的

其二 gecko内核的浏览器有相当庞大的家族 其插件众多 通过XPCOM可以方便的装插件 通过XUL可以方便的开发各种界面各种插件

其三 gecko毕竟是跨平台的内核 在Linux操作系统中 甚至手机的一些操作系统中都有很多的应用

其四 基于个人的个性 很像尝试以前没有尝试过的新鲜的东西 所以把微软的Trident给放弃了

其五 由于webkit的资料相当少 google浏览器的功能并没有表现出这个内核能很好的符合我们的需求 微软的mshtml资料倒是很多 但是一想微软的WebBrowser控件封装的相当简陋 自己封装还不如封装一下Gecko好呢

其实还有很多原因让我选了了Gecko 好了

又废话一通 现在开始介绍GeckoFX这个对Gecko内核封装的开源项目 其实单纯的Gecko只是一个Layout(布局?渲染)引擎 加上XPCOM跟XULRunner以后就会相当强大 GeckoFX当然也需要XPCOM的支持

这个开源项目已经很久没有更新了 不停留在Gecko1.9.1的基础上 也就是Firefox 3.5, Thunderbird 3, SeaMonkey 2.0用的内核。

论坛:http://geckofx.org/          

google code:http://code.google.com/p/geckofx/

GeckoFX是一个运用C#写的windows 窗体控件(具体在WPF项目中怎么用winForm的控件可以参考博客园的许多博文或者说我将来有时间会写一个wpf的控件,不过现在时间来不及,好像对wpf控件的编写也不是很熟),同时也包含一个简单的类模型(就是string HTMLElement CSSElement各种类型)支持HTML和CSS DOM。

GeckoFX本来是为了Stylizer创建的(可能做网站开发的朋友用FireFox调试调CSS的时候用过这个插件),Stylizer跟GeckoFx都是遵守Mozilla Public License的。

现在介绍一下这个GeckoFX怎么用(就是说站在巨人的肩膀上我们才能看得更远)先看看别人怎么封装的

(1)下载XULRunner 1.9.1

http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.2/runtimes/xulrunner-1.9.1.2.en-US.win32.zip

(2)在使用这个控件之前Initialize XPCOM 

可以是程序开始的地方Program.cs中或者是构造函数(比如说用到此控件的用户控件的构造函数中)

添加 Skybound.Gecko.Xpcom.Initialize(xulrunnerPath);

xulrunnerPath是XULRunner的完全路径 包含xul.dll, xpcom.dll什么的那个目录

(3)(可选)通过设置Xpcom.ProfileDirectory修改保存Profile的目录 这个目录是XPCOM的Profile包含cookie cache等等的东西

(4)(可选)删除XULRunner下的一些用不到的文件

AccessibleMarshal.dll
dependentlibs.list
mozctl.dll
mozctlx.dll
java*.*
*.ini
*.txt
*.exe

(5)(可选) XULRunner不支持 about:config 如果想使用像FireFox那样的设置页 将"chrome" 文件夹下的"geckofx.jar" 和 "geckofx.manifest" 拷贝到 XULRunner下的"chrome" 中。

 

最后要说明的是这还只能说是一个简单的封装 并没有对XPCOM所有的接口进行完全的封装,有些功能我们还是要自己往其中添加。下面提供一些比较有用的网址。

http://geckofx.org/

https://developer.mozilla.org/  Mozilla开发者中心 英文的资料很多

http://board.mozest.com/ 一个关于Mozilla开发的网站 这个算是能找到的仅有一点中文的资料

https://developer.mozilla.org/cn Mozilla开发者中心 部分英文的翻译

http://www.mozilla.org/docs/ 关于Mozilla开发最全的英文文档

http://sourceforge.net/projects/sharpweb/ 一个运用GeckoFX的简单浏览器 西班牙文的。。。

OK 以后还会写对Gecko内核 GeckoFX的详细研究 改进 一些具体功能的实线(仿照FireFox的某些功能)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!