
webkit
文章平均质量分 72
voipmaker
nnn
展开
-
WebCore中的渲染机制(一):基础知识
原文链接:http://webkit.org/blog/114/webcore-rendering-i-the-basics/ DOM树web页面 解析 后形成节点树,称作文档对象模型(简称DOM),树上所有节点的基类是Node。Node.h节点分为几类,与渲染代码相关的节点类型有:Document - 树的根节点总是Document,WebCore中有三个文档类:转载 2011-12-07 13:18:08 · 1700 阅读 · 0 评论 -
WebCore 中的 http 请求信息维护
WebCore 内核本身并不实现 http 协议,它通过调用不同平台的 http 库 , 比如 Qt 的QnetWorkRequest,gtk 的 soup ,或者 curl 等,来实现 http 协议的功能。这里将以curl 为例,来理解 webcore 中的请求信息维护。 http 协议的细节,如果希望深入了解的话,可以参考 rfc2616 , rfc2617 。简单介绍下它的原理,转载 2011-12-13 12:55:14 · 1364 阅读 · 0 评论 -
WebCore中的http响应信息维护
摘要:WebCore源代码分析,WebKit,dlmu2001,http模块,http响应,ResourceResponse,ResourceHandle,ResourceRequest,DocumentLoader,浏览器内核,curl在“WebCore中的http请求信息维护”中,我们曾经简单介绍过http的原理,并分析了WebCore中对请求信息的维护,这篇文章则分析WebCore对转载 2011-12-13 13:17:37 · 1349 阅读 · 0 评论 -
webkit 控件的绘制
webkit 控件的绘制 webkit UI部分的绘制分为三块,首先是点线以及image的绘制 然后是空间的绘制,最后是窗口的绘制。1. 点线以及image的绘制 webkit 点线以及image的绘制比较简单,webkitcore 抽象出一个GraphicsContext对象,该对象主要就是定义很多点线绘制的接口,然后平台给出具体的实现,image的绘制也类似,只是在Gr转载 2011-12-13 12:42:44 · 1811 阅读 · 0 评论 -
webkit中 Frame对象分析
webkit中 Frame对象分析Frame应该是整个webcore里面最核心的对象之一,前面在讲Page对象的文章中,也提到过,从Page的角度来看,其实一个Page就是由一个或者多个Frame构成,而这些Frame是以树状的关系组织,我们来看一段HTML代码 view plaincopy to clipboardprint?转载 2011-12-13 12:44:34 · 1704 阅读 · 0 评论 -
webkit中timer实现 分析
1. webkit中timer实现的框架类图 1.1 TimerHeap其实就是一个容器,管理一个一个的Timer 1.2 ThreadTimers 相当于整个timer模块的管理者,负责调度SharedTimer并且操作TimerHeap 1.3 SharedTimer是平台相关的一个类 源码如下: view plaincopy to clipboar转载 2011-12-13 12:45:51 · 2673 阅读 · 0 评论 -
webkit jsbind
CREATE_DOM_NODE_WRAPPER(exec, globalObject, Text, text); view plaincopy to clipboardprint?#define CREATE_DOM_NODE_WRAPPER(exec, globalObject, className, object) createDOMNodeWrap转载 2011-12-13 12:51:57 · 1758 阅读 · 0 评论 -
web idl 接口定义语言数据类型与 C++绑定关系
ModulesEvery IDL module corresponds to a C++ namespace. The name of that namespace is based on module's prefixed name.IDL module dom { };C++ namespace org { namespace w3c { n原创 2011-12-23 15:33:50 · 3205 阅读 · 1 评论 -
Android 上调试 webkit framework 层及jni层
1. 调试 framework 层webkit 模块 方式:修改 frameworks/base/core/java/android/webkit/DebugFlags.java 根据需要开启相应开关,这些开关默认是关闭的,修改后重新编译framework(mm framework) ,把生成的framework.tar 及framework-res.apk 放到目标机即可原创 2011-12-15 13:42:54 · 2891 阅读 · 0 评论 -
webkit HTML5 WebSocket 综合分析 2
csdn lidp http://blog.youkuaiyun.com/perfectpdl上一篇文章介绍了 websocket理论,本篇分析websocket协议客户端部分在webkit浏览器引擎上的实现。websocket api 可以看这里, 协议可以看这里RFC 6455.webkit上websocket实现代码在WebCore/websockets目录下原创 2012-01-06 14:59:41 · 3502 阅读 · 0 评论 -
webkit HTML5 WebSocket 综合分析 1
csdn lidp http://blog.youkuaiyun.com/perfectpdl作为下一代的 Web 标准,HTML5 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等等。这其中有“Web 的 TCP ”之称的 WebSocket 格外吸引开发人员的注意。WebSocket 的出现使得浏览器提供对 Socket 的支持成为可能,从而在浏览器和服务原创 2012-01-06 14:29:46 · 2553 阅读 · 0 评论 -
webkit 常用操作代码调用流程
构造 HTML/XML tokenizer [HTML]Document::createTokenizer() [HTML]Document::implicitOpen() FrameLoader::begin(const KURL&, bool dispatch, SecurityOrigin*) FrameLoader::receivedFirstData()Tok原创 2011-12-29 18:00:19 · 2319 阅读 · 0 评论 -
webkit idl parser 模块分析
csdn lidp http://blog.youkuaiyun.com/perfectpdl webkit 中 根据idl接口 语言定义dom对象,然后通过perl 解析模块产生经过包装的c++ 文件。与idl解析相关的五个文件如下:bindings/scripts/CodeGenerator.pm bindings/scripts/CodeGenerator原创 2012-01-05 12:38:42 · 3777 阅读 · 0 评论 -
浏览器引擎相关资料
1. how browsers work ,讲解全面,详细http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/2. How WebKit Loads a Web Pagehttp://www.webkit.org/blog/1188/how-webkit-loads-a-web-page/原创 2012-02-12 20:09:09 · 2062 阅读 · 1 评论 -
基于WebKit浏览器的本地扩展方法
摘要:对浏览器进行本地扩展,对JavaScript的功能进行扩充,能强化浏览器在嵌入式平台的应用。该文将主要介绍基于WebKit内核浏览器的本地JS扩展方法,以实现浏览器对本地JavaScript对象的调用,拓宽浏览器的功能领域。 论文网-关键词:WebKit;JavaScript;本地扩展;嵌入式;播放器 论文发表:www.qikan110.com1009-3044(2011)3原创 2011-12-08 10:17:38 · 3743 阅读 · 0 评论 -
webkit的js对象扩展(一)——binding方式创建自定义对象(单实例)
通过binding方式要扩展一个全局JS对象除了要为webkit添加这个对象的头文件和cpp文件外,还需要为这个对象写一个idl文件以便webkit自动生成相应的代码;另外,还需要修改DOMWindow.*以便把新对象注册上去。下面以MyObject对象为例介绍具体步骤。WebCore/page/1.添加MyObject.h文件view pl原创 2011-12-07 20:19:14 · 6205 阅读 · 1 评论 -
Webkit FrameLoader分析
Webkit FrameLoader分析 FrameLoader是webkit中一个核心的组件,主要是职责是加载一个Frame中的各种资源,比如文档资源,css资源,js资源等等,当然FrameLoader通过组合的方式包含很多其他的组件,它们一起协作,共同完成加载Frame的重任,所以要理解webkit,理解Fameloader就非常的重要。 以下是FrameLoade转载 2011-12-13 12:40:13 · 1766 阅读 · 0 评论 -
Webkit 资源管理
Webkit 资源管理webkit需要管理的资源主要有Font资源,CSS资源,Script资源,以及image资源。webkit也对应抽象出了一些对象,以下是一个资源管理相关的类图。CachedResource就表示一个缓存资源,里面持有一个真正数据的引用,当网络请求的数据到达后,会将数据设置到CacheResource里。这个过程的时序图如下:CachedResourceR转载 2011-12-13 12:48:32 · 1272 阅读 · 0 评论 -
Android中 Js 扩展及交互
Android中的JS扩展有2中方式:1.利用webkit提供的js扩展接口在 java层扩展,直接由app实现优点:容易缺点:跟app耦合,其他app不能使用该js扩展2.利用npapi在cpp层扩展优点:所有app都能共享该扩展缺点:相对有难度引擎主要分为3大模块1.webkit 平台相关代码,是对以下2模块原创 2011-12-08 10:11:53 · 3701 阅读 · 5 评论 -
WebKit如何加载web页面
在WebKit能够渲染web页面之前,它必须从网络加载页面和子资源。从web加载资源涉及到许多层,本文将集中于WebCore,即WebKit的主要渲染组件,如何参与加载过程。WebKit包含两条加载管道,一个用于加载文档到框架(frame),另一个用于加载子资源(如图片和脚本)。下图总结了两条管道涉及的主要对象:加载框架(Frame)FrameLoader负责加载文档到框架,当您点原创 2011-12-07 13:07:48 · 1641 阅读 · 0 评论 -
GTK Webkit 添加JS对象
尽管GTK Webkit没有类似于QT Webkit 的 addToJavaScriptWindowObject()接口,但我们还是可以利用JavascriptCore的接口函数来实现对Javascript扩展对象的添加, 只不过过程会稍微复杂一点。首先要定义一个JSClassRef结构, 该结构用来指定类的成员函数,属性等信息,然后调用JSClassCreate()接口来创建转载 2011-12-07 20:16:49 · 2183 阅读 · 0 评论 -
webkit的js对象扩展(二)——binding方式创建自定义对象(多实例)
今天刚好有时间,把创建多实例对象的方法写一下,也就是可以像new Date()一样。关于new操作符有一篇讲的很详细,大家可以先看下http://www.pushiming.com/blog/2009/10/the-new-operator/了解new操作符后大家应该已经知道,必须有一个构造器才能执行new操作。所以比单实例要多了一个过程,就是要创建构造器,下面我把步骤给贴出来。以转载 2011-12-07 20:24:46 · 4273 阅读 · 3 评论 -
WebKit中的设计模式(一): Noncopyable
WebKit作为一款优秀的浏览器,其中有着非常优秀的设计,值得我们借鉴。本文的目的就是剖析WebKit中值得借鉴的设计模式,了解其设计思想,以达到能为我们使用的目的。关于设计模式,推荐阅读经典书籍>。本文所分析的设计模式,并非全部都是书上所提及的设计模式。因为设计模式是一个非常泛的概念,只要能够重复使用且能解决特定问题的设计,应该都可以算作设计模式,希望朋友们不要较真。言归正传,首先我们来分析转载 2011-12-07 13:16:31 · 1160 阅读 · 0 评论 -
WebKit Plugin 开发指南
WebKit Plugin 开发指南一、NPAPI介绍WebKit plugin遵循了NPAPI (Netscape Plugin Application Programming Interface) 标准,支持这个标准的浏览器需要实现一组规定的API供插件调用,这组API形如NPN_XXX,插件可以利用这些API进行二次开发。而NPAPI插件以一个动态链接库作为物理载体进行提供,转载 2011-12-07 14:50:45 · 2597 阅读 · 0 评论 -
webkit idl 资料
csdn lidp http://blog.youkuaiyun.com/perfectpdlwebcore 通过 idl 实现与 js引擎的绑定,idl为 w3c定义的一个 接口定义语言,为简化开发过程,webkit 通过perl解析 idl文件生成. h .cpp 源码 实现与外部js引擎提供的 js 对象,方法,属性的绑定, 通过自定义idl方式可以 扩展js引擎提供的 本地对象。两个原创 2011-12-09 10:35:01 · 2457 阅读 · 1 评论 -
webkit如何实现JS DOM binding—基于V8分析
一个web页面需要使用到JS的场景Parser阶段HTMLDocumentParser 中的HTMLTokenizer在解析到开始标签时,创建HTMLScriptElement对象,在解 析时,开始解析JS代码啊,如果中含有src,那么发出一个异步请求(在异步请求过程中,parser会中断,等待JS的解析结果,期间Webkit会来做一些 DNS预取,资源预解析等工作,总之WebKi转载 2011-12-08 16:56:29 · 2718 阅读 · 3 评论 -
WebKit 内核源代码分析 ( 四 )
WebKit 内核源代码分析 ( 四 )红心地瓜( tomorrow.cyz@gmail.com )摘要:本文介绍 WebCore 中 Loader 模块是如何加载资源的,分主资源和派生资源分析 loader 模块的类关系。关键词: WebKit,Loader,Network,ResouceLoader,SubresourceLoader一、类结构及接口转载 2011-12-08 23:18:24 · 1762 阅读 · 0 评论 -
webkit 资料
1 what is webkit? WebKit 是一个开源浏览器网页排版引擎,与之相应的引擎有Gecko(Mozilla,Firefox 等使用的排版引擎)和Trident(也称为MSHTML,IE 使用的排版引擎)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit转载 2011-12-11 13:24:00 · 1991 阅读 · 0 评论 -
W3C Web IDL
Web IDL(Interface Definition Language,接口定义语言)该规范定义了一个OMG IDL 3.0的语法子集,用来规范定义的接口。Web IDL 是一个具有多种功能的IDL 变量,便于规范Web平台中的常用脚本对象的操作。其中包括了大量的扩展功能,以及捆绑了针对ECMAScript 3rd Edition 和Java的语言工具。《Web IDL》工作草案,原创 2011-12-11 19:27:56 · 2837 阅读 · 0 评论 -
webkit dom 事件分析
webkit dom事件分析 Dom事件模型可以分为dom0 和dom2两种事件模型,所以支持JavaScript的浏览器都都会支持dom0事件模型,DOM2定义了高级的事件处理API,和DOM0的API相比,有着令人瞩目的不同(而且功能更强大).虽然DOM2标准并没有把已有的API收入其中,但是DOM0级API也没有被去除.对于基本的事件处理任务,你会觉得使用这些简单的API更自由转载 2011-12-13 12:39:32 · 1576 阅读 · 1 评论 -
webkit Page对象的分析
webkit Page对象的分析 Page对象是webkit的核心对象之一,顾名思义,Page数据结构就是描述览器上我们打开的一个页面,这样一个页面包括很多部分,比如菜单控制,拖拽控制,页面显示,以及一些参数设置等。所以webkit中的Page对象里面也对应很多这样相关的对象,下面是一张表示这些对象关系的类图。 从上图中可以看出,Page里面主要是一些对象的组合,Page自转载 2011-12-13 12:43:57 · 1518 阅读 · 0 评论 -
webkit中 html的解析及dom树和render树的生成
1.webkit中每个html页面对应于一颗dom树 和render树,dom用于描述html页面的的信息,而render树则用于布局,具体负责dom树如何显示在屏幕上,从MVC的角度来说,可以将render树看成是V,dom树看成是M,C则是具体的调度者,比HTMLDocumentParser等。webkit将这两部分分开,可以看出其设计意图,同一个dom,可以对应不同的render,或者不同的转载 2011-12-13 12:47:12 · 2450 阅读 · 0 评论 -
android 上 webkit js 扩展之全局本地对象实现步骤
原文出处: csdn lidp http://blog.youkuaiyun.com/perfectpdl最近在做广电项目,要求根据规范做浏览器端javascript扩展。android本身应用层提供了扩展方法,但是这可恶的规范导致应用层根本不可行,只好在webkit引擎里面做。。。android 上编写 浏览器插件有三种方式,1. app 层,通过android fram原创 2011-12-09 18:24:56 · 5879 阅读 · 2 评论