webkit 目录说明

一、external/webkit/webcore

Accessibility

   提供控件的可用性相关的内容。主要说明使用Mac和Win操作系统下的图形控件的可用性,以及使用不同的图形库Gtk、Qt、Wx的控件的绑定和使用情况等。

Mac: MAC OS X

Chromium:一个开源的网页浏览器,也相当于Google Chrome的工程版。

Gtk:是unix-like系统下开发图形界面的应用程序的主流开发工具之一。

Qt:是一个跨平台的c++应用程序开发框架。广泛用于开发GUI程序。

Wx:wxwindows,一种可移植的c++和Python GUI 工具箱

Bindings

将Dom Binding给JavascriptCore方面的代码,同时包含依据idl接口描述文件,自动

生成对应于JavaScriptCore的Binding实现的脚本等内容。

Bridge

   主要包含NPplugin方面的接口访问内容。提供了在各个环境下转换c代码和脚本文件的API。

Configurations

   X code环境相关的配置文件,用于webcore。

Css

主要包括与css方面相关的内容如解析、不同css规则的定义与实现、css Binding给JS的接口定义等内容。

Dom

主要包括dom方面相关的内容如不同dom元素的定义与实现、dom binding给JS的接口定义等内容。

  Editing

      在不同平台或是不同的图形软件下的编辑相关的功能,比如与剪切板相关。

English.lproj

   本地化文件,表示显示的语言是英文。

ForwardingHeader

   定义webcore解析运行的头文件。

  History

     页面浏览历史,记录不同平台的网页历史内容。

Html

关于html方面相关的内容,如不同html元素的定义与实现、HTMLTokenizer及HTMLParser等内容。其下的Canvas目录定义了3D画布以及WebGL库的相关的内容。

Icu

     里面放了专门为Mac OS X 10.4编译的icu相关头文件

     ICU:InternationalComponents for Unicode,一个成熟,广泛使用的一套为c/c++和java库提供Unicode的全球化支持软件。

Inspector

     该目录是Webkit提供的查看网页源代码,DOM树以及调试脚本的工具。

Loader

      主要包括装载资源如html页面、css、js及image等方面内容,还可以装载Cache。

Manual-tests

   测试用的html文件。

Mathml

   W3C为网页中的数学表达式制定的规范,有编译选项。

   W3C:万维网联盟 World Wide WebConsortium,又称W3C理事会

Notifications

   内部模块间的事件通信。

Page

      主要包括描述一个Web页面所涉及的内容如page、frame、frameview、frametree

  、setting、history、chrome、chromeclient等内容。浏览相关内容,并非是我们看到的一个页面,在一次浏览器会话中,它只有一个实例。

  Haiku:一种开源OS,从BeOS而来,2001开始,2009发布首版。

Platform

   提供了平台相关的具体实现,如事件响应、本地化、网络连接等。主要包括与不同平台或外部库相关的内容如graphics(图形输出方面)、network(网络处理方面)、image-decoders(解析不同图片格式方面)等。

(一) platform\qt

ClipboardQT:实现了管理剪切板的包装

ContextMenuQt和ContextMenuItemQt:对于菜单信息的一个封装,里面没有GUI的图形支持。

CookieJarQt:调用webkit封装的cookitAPI实现对cookie的信息的管理

CursorQt:实现对于光标的封装,提供了多种状态的光标式样。

DragDataQt:用来临时存储UI部分拖拽的对象数据,在QT中需要QMImierData支持,在ARM上可以不做考虑实现。

DragImageQt:功能与上面相似,可以不进行支持。

FileChooserQt:用开打开一个本地文件用的功能,里面包含了对GUI的对话框的调用。

FileSystemQt:用于提供对文件的一些IO支持的函数。

KeyboardCodes.h:里面根据平台的不同定义了相关的键值

Localizations:提供不同平台下返回的一些特定需要的字符串,比如Download Image,都是以函数的形式得到

MenuEventProxy:无用文件,可能是以前版本的QT的支持,新版本没有用处。

MIMETypeRegistryQT:通过输入的MIME字符串返回自定义的MIME类型,仅仅是用到了对字符串的处理。

PasteboardQt:对于剪切板的封装,封装一些设置剪切板内容的工作

PlatformKeyboardEventQt:主要是2个关于平台相关的按键转换函数,需要移植

PlatformMouseEventQt:对于鼠标事件的封装

PlatformScreenQt:封装了关于得到窗口尺寸的函数,需要重写

PlatformScrollBarQt:对平台用的滚动条进行封装,不同的GUI引擎用到的滚动条接口不一,移植比较麻烦,需要结合上层代码重写

PlugInInfoStoreQt:插件管理器,可以考虑参考GTK的方案放弃支持

PopupMenuQt:对弹出式菜单的封装

QWebPopup:貌似实现了弹出式的菜单,里面的做法是用qcombobox开虚拟了一个菜单

RenderThemeQt:实现了UI部分绘图的工作,里面区分了各控件的种类然后进行绘制,需要移植,比较麻烦

ScreenQt:无用,没有编译

ScrollViewQt:一个必须要用的控件,实现了一些接口的封装,实现比较麻烦

SearchPopupMenuQt:无用,所有函数返回空即可

SharedTimerQt:一个计时器,QT用的是Qtimer进行封装

SoundQt:调用一个系统铃声的函数

SystemTimeQt:返回系统时间

TemporaryLinkStubs:QT和GTK都没有实现,可以忽略

ThreadingQt:主要是做了一些线程方面需要支持的封装,QT的和Gtk的实现的东西不大一样,大多没有用处,ms仅仅callOnMainThread函数需要实现

WheelEventQt:需要实现,目的不明

WidgetQt:对于窗口的一个封装,各个平台封装不一,可按照其中一个作为参考

(二) platform\text

里面代码主要是对于基本字符的处理,每个平台实现方式不一样,webkit本身提供一套字符机制,可以沿用,也可以根据平台重载关键部分做一些修改,如QT的方式和mac的方式

(三) platform\network

ResourceResponse.h:写了一个需要实现的派生类,但是在qt下没有实际意义,在mac和cf下有具体实现。

其余文件都是针对于Http服务而写的一些辅助类

(四) platform\graphics

AffineTransformQt.cpp:对于平台基本图形几何变换用的类函数封装

ColorQt:封装Color属性的类FloatPointQt:关于Float点属性类的一个包装

FloatRectQt:关于浮点数属性的矩形类包装

FontCacheQt:关于字体包装后的一个扩展实现,个平台封装的很简单,基本没实现

FontCustomPlatformData:对于内存字体的管理,除了mac意外其余几乎没有做实现,可参照qt的做法

FontQt:对于字体基本操作的封装

GraphicsContextQt:基本绘画的另外上层封装

IconQt:对Icon处理的类

ImageBufferQt:关于Image处理的几个函数,可能用于中间数据转换用

ImageDecoderQt:一个图片处理的接口类,实现比较复杂

ImageQt:一个图片的接口类,许多实现依靠外部实现,比较复杂

ImageSourceQt:在上述2个文件之上的又一个封装,也是实现了关于图片操作的细节

IntPointQt、IntRectQt、IntSizeQt:这3个类如同名字,仅仅是对于数据结构类的一种封

PathQt:对于QPainterPath的一个封装,其他平台ms没有

SimpleFontData:对于字符之上的另一个封装, QT没有实现功能,其他平台有实现

Plugins

   插件相关内容,主要包括浏览端如何实现NPPlugin方面的内容。

Rendering

      主要包括如何使用样式,组织布局、显示html元素等方面内容。页面渲染相关的内容,在对页面脚本进行DOM树分析之后,需要对这些元素进行渲染和显示。

Resources

      需要用到的资源和图标。主要是一些图片文件

Storage

      WebStorage相关的内容,保存页面的数据,可以看成是Cookie的升级。

Svg

      主要包括与svg方面相关的内容,矢量图形功能。

WebCore.gyp

      工程文件。GYP(GenerateYoure Oroject)是google开发的一个脚本工具,这个工具是采用python编写的。它采用了自定义的一套规则,用于生成各种工程文件。

WebCore.vcproj

      VC工程文件。

WebCore.xcodeproj

      X code工程文件。

Websockets

      与网络连接相关的内容。

Wml

   Wireless Markup Language。

Workers

   Web Workers为WEB前段网页上的脚本提供了一种能在后台进程中运行的方法。一旦它被创建,Web Workers就可以通过postMessage()向任务池发送任务请求,执行完之后再通过postMessage()返回消息给创建者指定的事件处理程序(通过onmessage进行捕获)。

Xml

  主要包括与xml方面相关的内容,如xml parse、Xpath、XSLT等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值