开放源码的嵌入式浏览器概要设计.pdf 立即下载
2024-09-12
约6千字
约9页
0
162KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

免费试读已结束,剩余 4 页请下载文档后查看

15 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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


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


Copyright(C)2001,RedFlagSoftware,Co.Ltd.
Allrightsreserved.
该文档仅用于内部技术交流。未经许可不得转载全部和部分内容,
禁止随意散发,严禁用于商业目的。

【文档名称】开放源码的嵌入式浏览器概要设计
【文档编号】SUM-DESIGN-BROWSER-V1.0
【编写人员】孙勇
【编写日期】2001/09/03
【文档内容】本文档进行将进行浏览器的概要设计,主要集中在系统框架的搭建上
【主要内容】
【修订记录】
序号修订内容修订人、日期



































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


嵌入式浏览器实现的总体目标

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


嵌入式浏览器整体结构及其概要设计

Render引擎

EJ
a
C
v


M
DOMHTMLDOMEventa
S
A

c
S
r
c
i
p
r

i
t
DOMCorep引
t绑擎
定
XML/HTMLTokenizer/Parser


网络访问

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

接下来,我们对每个模块进行概要设计


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

Render部分的概要设计


设计思路

与Render部分相连比较紧密的CSS部分,基本上是对CSS语法的分析,生成相应的属性
和选择符,这部分与底层的GUI无关不需要大的改动,Kong-emb的Render类排版部分实
现基本上也是与GUI无关,包括layout,calWidth,calHeight,calMinMaxWidth等等就不
需要做什么大的改动。需要改动的地方主要是最后Render类的绘制,它是依赖与底层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
中的Qobject的函数的实现最终要依赖它来实现,存储了一些signal,slot的名字和它所
对应的函数指针,这样就可以由QObject调用相应的槽函数。

Qt-widget的替换

在Kong-emb的Render类里面基本上可以分为两类一种是和Qt-widget紧密相连的类,另
外一部分是没什么大关系的,主要是利用QPaint和Qcolor进行一些图形的绘制工作,这一
部分说作的工作并不是很大。另一部分和Qwidget相关的Render,这些类主要是
RenderFormElement类的孩子类,这些类都有一个成员m_widget,m_widget是用
Qt-widget实现的,并且做了一些相关的消息处理机制的设置,因此这部分我们要做的工作
是用mini-gui的widget来代替它原来的widget实现。

QEvent的模拟

在Render类里面,有一些函数是处理Qt-wid
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

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

文档大小:162KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用