打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
史上最小的基于IE内核的多标签、多进程浏览器
分类: 走进COM殿堂 2011-11-05 11:36 3692人阅读 评论(30) 收藏 举报

    大约在四年前,CHROME浏览器刚刚面世不久,我尝试了一下,立即被它简洁的界面所吸引。当时市面上除了它和IE8,还没有多进程浏览器出现,不像现在,各种多进程浏览器横行。正因为CHROME,才激发了我做一个基于IE内核的多进程浏览器出来。大约在3年前,该浏览器完工,并取名Raptor。想验证执行效果的童鞋,可以下载这个资源(不需要资源分);希望了解和学习源码的童鞋,下载这个资源(完整的VC工程源码,可直接编译。需要资源分的哦,不希望自己的代码变成市场里的白菜)。

 

    Raptor 浏览器并不是一个真正成熟的浏览器,还有很多细节没有实现,只是作为一个技术验证工具,用来验证两个目标:一是用IE内核也能做出多进程浏览器,二是用V8脚本引擎替换IE自带的JSCRIPT引擎,用以比较两者的性能差别。关于第二个目标,在本文中并不详述,在下载的资源里也排除了V8引擎。

 

    Raptor 有几个明显的特性:

  • 非常小巧。一个EXE执行文件只有400多K大小,不需要依赖任何其它库。
  • 绿色。不需要安装,不需要注册,不写注册表,删除即卸载。
  • 界面简洁。整个窗口非常干净,只有几个常用的工具栏按钮和浏览标签,外加一个用于提示信息的状态栏,其它窗口空间都留给浏览器自己。操作的入口就是打开一个新标签,所有可用的操作在初始页面里,包括地址栏。
  • 通用插件。插件采用通用方式创建,并使用COM接口。在资源里,未包含用作测试的插件。
  • 多进程互操作。主窗口占用一个进程,所有插件占用一个进程,每个浏览窗口占用一个进程。通过改变编译条件,可以把插件合并到主进程中。

 

    可以从 Raptor 源码中获得下述技术的实现:

  • 如何加载浏览器控件并响应事件。
  • 如何让不同的进程执行不同的功能。
  • 如何通过 COM 技术实现多进程互操作,它不一定是最佳的多进程通信方式,但一定是最简洁的。
  • 如何实现进程外COM组件的免注册和启动。
  • 如何注册自定义的MIME协议。在 Raptor 的实现中,注册了 raptor: 协议。事实上,在地址栏输入“raptor:newtab”可打开新建标签页面,“raptor:history”可打开浏览历史页面,“raptor:product”可打开自我介绍页面。
  • 学习具有AERO效果的TAB控件,可以在TAB标签的左右加入工具栏按钮。源码实现中的TAB标签的绘制图片完全来自CHROME,本人不是美工,做不出漂亮的图片,只好出此下策,希望谷歌海涵,呵呵。
  • 工具栏按钮有一点小的动画效果,其它的没什么东东值得说的……

 

    这是浏览器的一些截图。

新标签默认页面:

 

Raptor 自述页面:

 

历史浏览记录页面:

 

多进程证据:

更多0
18
0
查看评论
25楼 xwhmm 2013-08-20 18:37发表 [回复]
这个很强大啊.正好可以学习学基于IE内核开发浏览器的技术.感激不尽.....
24楼 sunshinein 2013-04-07 15:09发表 [回复]
本来有点希望是个非com的呢,一看,还是啊。
23楼 sunshinein 2013-04-07 15:06发表 [回复]
看来楼主已经很久没写东西了啊,想实现一个非com的进程外ie,遇到一些困难,来学习学习楼主的代码。
22楼 hanayoriboy0710 2013-01-08 13:34发表 [回复]
我最喜欢浏览器,这个外表类似于微软工作组的pviot, pviot占内存实在惊人!
21楼 webskywang 2012-10-03 01:03发表 [回复]
访问https的页面 不能继续访问
一直在这样的页面中:


安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。
建议关闭此网页,并且不要继续浏览该网站。
单击此处关闭该网页。
继续浏览此网站(不推荐)。
详细信息


如果通过单击链接到达此页面,请检查地址栏中的网站以确保该地址是您希望到达的页面。
转到如 https://example.com 等网站时,请尝试将 "www" 添加到地址中,变为 https://www.example.com。

有关详细信息,请参阅 Internet Explorer 帮助中的“证书错误”。
Re: webskywang 2012-10-03 03:54发表 [回复]
回复webskywang:解决了,修改了browser.cpp中的
_wb->put_Silent(VARIANT_TRUE);

不过发现另外一个问题,就是在关闭的时候
CConfigMgr::GetConfigMgr().Release();
执行失败???
20楼 okmnjizc 2012-08-28 15:59发表 [回复]
引用“xq_yf”的评论:Cookies没解决,搞多进程没意义吧。
淘宝、QQ空间什么的,cookie只在进程内有效,新开一个...

十分关注此问题
19楼 xq_yf 2012-07-04 12:23发表 [回复]
Cookies没解决,搞多进程没意义吧。
淘宝、QQ空间什么的,cookie只在进程内有效,新开一个进程就要重新登录。
18楼 stevenkoh 2012-04-03 13:30发表 [回复]
实在是太棒了
17楼 wxsyuyao 2011-12-27 20:48发表 [回复]
我用的是xp,感觉效果跟贴图很不一样呢,
1.窗口标题栏差别很大,多一个title栏
2.点历史是空白
3.最热门网站这些也没有
16楼 屠夫雨夜 2011-12-20 12:51发表 [回复]
你在逼我,我已经隐隐约约的,想把EAwebkit整合进来
Re: jameshooo 2011-12-21 17:15发表 [回复]
回复ybdao:没人逼你呀,欢迎整合,最好让大家看到结果。
15楼 xjchilli 2011-12-17 20:18发表 [回复]
达人,无法在支付宝页面进行充值,这是为什么呢?
14楼 shaofing 2011-12-05 16:54发表 [回复]
狗日的 360 报病毒啊
Re: jameshooo 2011-12-06 12:32发表 [回复]
回复shaofing:前三个字希望只是360的修饰词,呵呵。360还是让它见鬼去吧,我的源码摆在那里,不需要我证明是不是病毒。
13楼 xinxinst 2011-11-16 10:40发表 [回复]
想和博主讨论一下cookie路径修改的问题。
也就是使用自己开发的浏览器访问web时,让cookie自动存放到指定的目录。
QQ:1260520405
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浏览器假死
【电脑网络】IE新功能:十大特色IE插件(上)
网页内容不能复制?网页内容无法复制?如何复制网页内容?网页内容不让复制
让浏览器以极速模式打开网页
一句话解决傻傻的多核浏览器切换
【技巧】网页“剪报”方法多
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服