webkit
文章平均质量分 70
shuimuniao
一分耕耘,一分收获。
展开
-
WebKit源码解析 -- WebCore:: CSSParserValue
转载,请注明出处! CSSParser对象解析CSS样式表时,解析出表示属性值的语法元素后,就会创建CSSParserValue对象。CSSParserValue对象记录了属性值。 属性值粗略的可以分为如下几种类型:1)关键字,例如:”visibility: hidden”等;2)字符串,例如“border:12px”等;3)整型数值,例如”z-index:5”;4)浮点数,原创 2012-08-29 15:33:38 · 781 阅读 · 0 评论 -
<3D Transforms>简译
原文地址是:https://www.webkit.org/blog/386/3d-transforms ,写于2009年7月16日。Mac OS X平台上的webkit已经支持了3d转换。3d转换就是:通过css属性值设置DOM节点的3d坐标,最终实现一种3d立体效果。3d转换是对2d转换的一个升级。关于2d转换可以阅读文章:译文。从iphone2.0版本开始,webkit已经翻译 2013-03-08 14:17:54 · 724 阅读 · 0 评论 -
css样式表解析过程
如果转载本文,请注明出处!CSSGrammar.y文件中定义了编译css样式表的词法规则和语法规则。我先将CSSGrammar.y文件中的非终结符与WebCore模块的c++类的对应关系总结出来。term对应CSSParserValue对象。expr对应CSSParserValueList对象。operator刚被解析出来时,以字符形式存储在解释器堆栈上原创 2013-02-22 10:48:57 · 6419 阅读 · 0 评论 -
DataRef源码分析
如果转载本文,请注明出处!DataRef是一个类模板,实现位于Source/WebCore/rendering/style/DataRef.h文件。这个模板的内容真的是太少了,具体如下:成员变量m_data,类型为RefPtr。get方法,获取T*类型变量,与m_data.get()的功能完全相同。重载指针运算符"*"和"->"。access方法,返回类型T原创 2013-02-22 11:27:23 · 1802 阅读 · 0 评论 -
StyleBoxData源码分析
如果转载本文,请注明出处!StyleBoxData对象记录box模型的三维参数。宽度值,高度值,z序二维属性的类型。具体有两个可取值:border-box表示宽高描述的是border边界;content-box表示宽高描述的是content边界。z序的类型。有两个可取值:如果定义了z-index,那么是显示定义的;否则,是内核自动设定的。最小宽值/最小高值最大宽值/原创 2013-02-22 14:30:57 · 529 阅读 · 0 评论 -
EventTarget源码分析
如果转载本文,请注明出处!从这个类的命名上就可已看出,这是一个接收站,是事件的目的地。注意,我并未说EventTarget是事件的终点。事件的本质是信息,事件的作用是交流。一个事件的生命周期是如何的呢?创建交流通道。这个步骤有两个工作必须完成。第一个工作是约定信息的格式,第二个是设立地址。发送方对信息进行编码、把信息转换成事件。信息发送到目的地。接收放对事件进行解码原创 2013-02-20 15:53:31 · 674 阅读 · 0 评论 -
EventListenerMap源码分析
如果转载本文,请注明出处!EventListenerMap类的声明位于文件Source/WebCore/dom/EventListenerMap.h中,实现位于文件Source/WebCore/dom/EventListenerMap.cpp中。这个类的本质与HashMap >的本质是相同的。string是事件名称,vector是处理事件的监听器集合。这个类需要实现类似于Has原创 2013-02-20 15:51:58 · 631 阅读 · 0 评论 -
KeywordLookup.h生成错误
如转载本文,请注明出处:http://blog.csdn.net/shuimuniao。2>------ 已启动生成: 项目: JavaScriptCoreGenerated, 配置: Debug Win32 ------2>正在执行生成文件项目操作2>系统找不到指定的路径。2> touch "%ConfigurationBuildDir%\buildfailed"2> bas原创 2013-01-28 15:25:35 · 2121 阅读 · 1 评论 -
RefPtr and PassRefPtr Basics
如转载,请注明出处!原文地址:http://www.webkit.org/coding/RefPtr.htmlHistory 在WebKit内核中,很多对象都有引用计数。操作引用计数的方法有两个,分别是用于增加引用计数的方法ref以及减少引用计数的方法deref。调用ref的次数与调用deref的次数必须相等。如果在对象的引用计数等于1时调用deref,那么对象就会被翻译 2012-10-21 12:23:23 · 814 阅读 · 0 评论 -
WebKit解析之API Boundary
转载,请注明出处! WebKit是浏览器引擎,而非浏览器。浏览器可以使用WebKit提供的接口来创建DOM树、创建Render树等。例如,Chrome浏览器、Safari浏览器。在使用WebKit引擎时,不应该直接使用甚至修改WebCore模块的类及接口,而应该通过WebKit子模块的接口来使用WebKit引擎。 WebKit的整体架构为:图1原创 2012-08-17 15:11:09 · 2668 阅读 · 0 评论 -
WebKit接口解析之Accessibility
转载,请注明出处! Accessibility的全称是Microsoft Active Accessibility,是windows平台实现的一套技术。这套技术实现的效果是:允许某进程查询、操作另一进程的UI元素。WebKit引擎也实现了这套理念:允许应用查询、操作Render树。 Accessibility Framework有重要的2个子组件。1)A原创 2012-08-18 16:11:55 · 2039 阅读 · 0 评论 -
分析 webkit 的Timer类
转载,请注明出处!Timer类是webkit 内核的一个必需的基础组件。有很多功能的实现需要依赖此类提供的功能。详细阅读了与Timer相关的各个c++类,滤清了Timer事件的产生、传输机制。与Timer有关的类包括MainThreadSharedTimer, SharedTimer, ThreadTimers, ThreadGlobalData, Timer, Timer。另外,需要用到原创 2012-02-20 19:36:12 · 1589 阅读 · 0 评论 -
WebKit源码解析之network移植接口
转载,请注明出处! WebCore模块需要下载某资源时,会使用ResourceRequest对象来记录资源的地址,然后将资源地址传递给目标平台网络模块,最后利用目标平台网络模块下载资源。为了方便移植,WebCore模块严格定义了网络模块需要提供的功能。主要功能如下:具有一个接受下载请求的接口。现在这个接口由ResourceHandle类提供,是一个静态方法。方法名称是原创 2012-10-08 23:22:12 · 1488 阅读 · 0 评论 -
计算CellBlock的大小
转载,请注明出处!在Collector.h文件中有如下一行代码:const size_t CELLS_PER_BLOCK = (BLOCK_SIZE - sizeof(Heap*)) * 8 * CELL_SIZE / (8 * CELL_SIZE + 1) / CELL_SIZE; // one bitmap byte can represent 8 cells.我一直不明白这行计算式的原创 2012-02-21 21:14:45 · 477 阅读 · 0 评论 -
Local Storage 分析及在Webkit中的实现
Local Storage 属于 Web Storage 标准,是HTML5的一部分,又称为DOM Storage. 那么究竟什么是HTML5本地存储 ? 简单来说,它就是一种让网页可以把键值对存储在用户浏览器客户端的方法。像Cookie一样,这些数据不会因为你打开新网站,刷新页面,乃至关闭你的浏览器而消失。LocalStorage、SessionStorage、IndexedDB、cooki转载 2012-09-28 09:33:38 · 5532 阅读 · 0 评论 -
WebKit源码解析之WebCore::Length
转载,请注明出处! 这是一个struct结构体,用来表示长度类型。在分析这个类之前,有必要叙述一下长度的相关概念。 一般来说,长度的样式就是”digit unitType”。CSS规范中将长度分为了多种类型:1)auto类型、2)相对类型、3)绝对类型、4)百分数、5)内置类型最大数值、6)内置类型最小数值、7)Undefined类型。 相对类型是指em和ex两原创 2012-09-01 22:13:37 · 883 阅读 · 0 评论 -
WebKit源码解析 -- WebCore::CSSValue
转载,请注明出处! 在创建了CSSParserValue对象之后,会将CSSParserValue对象转换为CSSValue对象,最后使用CSSValue对象以及属性名称propId创建Property对象。可以认为CSS属性值在WebCore模块有两中存储形式:CSSParserValue,CSSValue。CSSParserValue是在CSS语法分析器解析过程中创建的、只能被CS原创 2012-08-29 15:43:51 · 929 阅读 · 0 评论 -
<CSS Transforms>译文
如果转载本文,请注明出处!这篇文章的地址是:https://www.webkit.org/blog/130/css-transforms。写于2007年10月26日。webkit的最新版本已经初步支持了2d转换,方法是通过css设置2d参数。目前支持对box进行伸缩、旋转、倾斜、平移操作。设置2d参数的css属性名称是“-webkit-t翻译 2013-03-08 11:22:03 · 793 阅读 · 0 评论