开放源码的嵌入式浏览器概要设计.pdf

开放源码的嵌入式浏览器概要设计.pdf

ID:52252051

大小:162.92 KB

页数:9页

时间:2020-03-25

开放源码的嵌入式浏览器概要设计.pdf_第1页
开放源码的嵌入式浏览器概要设计.pdf_第2页
开放源码的嵌入式浏览器概要设计.pdf_第3页
开放源码的嵌入式浏览器概要设计.pdf_第4页
开放源码的嵌入式浏览器概要设计.pdf_第5页
资源描述:

《开放源码的嵌入式浏览器概要设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、开放源码的嵌入式浏览器概要设计开放源码的嵌入式浏览器概要设计Copyright(C)2001,RedFlagSoftware,Co.Ltd.Allrightsreserved.该文档仅用于内部技术交流。未经许可不得转载全部和部分内容,禁止随意散发,严禁用于商业目的。【文档名称】开放源码的嵌入式浏览器概要设计【文档编号】SUM-DESIGN-BROWSER-V1.0【编写人员】孙勇【编写日期】2001/09/03【文档内容】本文档进行将进行浏览器的概要设计,主要集中在系统框架的搭建上【主要内容】【修订记录】序号修订内容修订人、日期1开放源码的嵌入式浏览器概要设计嵌入式浏览器实

2、现的总体目标在Konqueror以及Konq-Emb的基础上,实现以下的目标:兼容HTML4.1全面实现DOMLevel1,部分实现DOMLevel2与Level3支持样式单,基本实现CSS1和部分实现CSS2基本实现DOM与ECMAScript的绑定,支持JavaScript1.4支持多字节语言以及双向排版采用ViewML中采用的”GlueLayer”方法,实现渲染部分和GUI平台无关支持HTTP1.1协议,支持非阻塞网络访问,通过OpenSSL支持SSL支持Cookie支持Netscape规范的Plugin规范内建支持多种图象格式嵌入式浏览器整体结构及其概要设计Rend

3、er引擎EJCavMaDOMHTMLDOMEventASSccriripDOMCorept引t绑擎定XML/HTMLTokenizer/Parser网络访问我们简单的描述一下浏览器的工作过程:1.通过网络读取一个HTML文件2.交给XML/HTML的Parser进行解析,在解析的过程中如果发现新的URL(主要是图片、样式单以及Jscript外部代码),提交给网络部分去读取3.在解析的过程中按照DOM规范的要求形成一棵DOM树4.在形成DOM树的过程中,为每个DOM结点形成一个Render结点并且Render结点形成一棵Render树(Render树和DOM树的结构不一定相同

4、)5.对Render树进行排版,最后进行输出。6.把解析过程中的JavaScript代码交给JavaScript解释引擎去解释执行。接下来,我们对每个模块进行概要设计2开放源码的嵌入式浏览器概要设计Render部分的概要设计设计思路与Render部分相连比较紧密的CSS部分,基本上是对CSS语法的分析,生成相应的属性和选择符,这部分与底层的GUI无关不需要大的改动,Kong-emb的Render类排版部分实现基本上也是与GUI无关,包括layout,calWidth,calHeight,calMinMaxWidth等等就不需要做什么大的改动。需要改动的地方主要是最后Rend

5、er类的绘制,它是依赖与底层GUI的,下面,我们就简要说一下实现思路。Qt模拟层Konq-emb的Render部分的实现是基于Qt的,因此需要把实现当中的Qt部分去掉。事实上Qt有着自己比较独特的signal-slot的机制,因此模拟siganl-slot机制肯定是我们的首要任务,我们可以访照Qt的实现,仍然采用Qt的moc预编译工具。1.实现一个QObject类,这个类主要包括connect,disconnect,activate_signale函数的实现。2.实现一个QMetaObject,这个类主要是维护signal/slot的资料,它应该是内聚在Qobject中的Q

6、object的函数的实现最终要依赖它来实现,存储了一些signal,slot的名字和它所对应的函数指针,这样就可以由QObject调用相应的槽函数。Qt-widget的替换在Kong-emb的Render类里面基本上可以分为两类一种是和Qt-widget紧密相连的类,另外一部分是没什么大关系的,主要是利用QPaint和Qcolor进行一些图形的绘制工作,这一部分说作的工作并不是很大。另一部分和Qwidget相关的Render,这些类主要是RenderFormElement类的孩子类,这些类都有一个成员m_widget,m_widget是用Qt-widget实现的,并且做了一

7、些相关的消息处理机制的设置,因此这部分我们要做的工作是用mini-gui的widget来代替它原来的widget实现。QEvent的模拟在Render类里面,有一些函数是处理Qt-widget的消息的,这些消息是以QEvent传递的。对于这部分我们应该把它转换为对mini-gui的消息的处理。众所周之,消息的传递是通过一个消息循环来实现的,也就是说Qt的消息循环要转化为mini-gui的消息循环,这部分涉及到了整个浏览器的框架结构,整个浏览就是以这个消息循环为中心3开放源码的嵌入式浏览器概要设计Qt的数据收集类的模

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。