WebKit内核系列
文章平均质量分 60
东辉在线
专注webkit内核技术研究
展开
-
webkit常见问题汇总
前段时间有人问我一个简单的问题,html如何创建解析的? 我讲了一大堆,什么通过DocumentLoader, CachedResourceLoader, CacheResource, ResourceLoaderScheduler, ResourceHandle这些类一步一步的完成cache查找然后请求下载等等。 滔滔不绝,直到我调试xml解析时,我才发现好多问题都与理解的不一原创 2015-04-15 19:02:41 · 3312 阅读 · 0 评论 -
webkit html 解析流程
转自:http://blog.csdn.net/dlmu2001/article/details/5998130语言的解析一般分为词法分析(lexical analysis)和语法分析(Syntax analysis)两个阶段,WebKit中的html解析也不例外,本文主要讨论词法分析。词法分析的任务是对输入字节流进行逐字扫描,根据构词规则识别单词和符号,分词。在WebKit中,有转载 2012-10-30 14:53:13 · 3200 阅读 · 2 评论 -
webkit Dump Render Tree 工作流程
1.下载一个webkit的版本,目前我使用的版本是webkit-r54749,这个版本正好是android2.2版本对应webkit版本2.进行编译,这个过程根据自己机器环境qt,gtk,win之类都是可以编译,在这里简单说一下怎么进行编译切换到WebKit-r54749目录下./WebKitTools/Scripts/build-webkit --help下面罗列出很多的细节:原创 2012-10-18 18:10:07 · 4349 阅读 · 4 评论 -
webkit 绘制流程解析(2)
<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->webkit在绘制的时候首先要确定一个大的容器,所有的绘制都是在这个容器内展开。根据我之前做传统webkit的经验一般都是针对某个窗口就对应window,在android系统上也不例外:具体参考代码如下#ifPLATFORM(ANDROID)clas原创 2012-10-11 17:40:13 · 3504 阅读 · 0 评论 -
新版本的webkit 针对jsc的js扩展方式
转自:http://www.xue5.com/WebDev/Web/627470.html一.基础知识首先WebKit IDL并非完全遵循Web IDL,只是借鉴使用。WebKit官网提供了一份说明(WebKitIDL),比如Web IDL称"operation”(操作), 而WebKitIDL称为"method"(方法), 另外Web IDL也不像WebKitIDL那样将属性和参数分开。转载 2012-07-19 13:15:14 · 2624 阅读 · 0 评论 -
c++ 前置声明不能随便用 会引起类型不完全的错误
as: XX.h namespace WebCore{ class Stringclass A{String test() const;};}XX.cppnamespace WebCore{String A::test()const{}} 在XX.cpp的test函数就容易引起返回类型不完全错误根本的原因就是原创 2012-07-18 09:16:30 · 1770 阅读 · 1 评论 -
webkit js扩展 指名idl的位置是WebCore下面的两个文件
Android.derived.jscbindings.mkAndroid.derived.mkAndroid.derived.v8bindings.mkAndroid.jscbindings.mk这个四个文件原创 2012-07-17 19:05:41 · 957 阅读 · 0 评论 -
截断加载plugin的具体位置
bool SubframeLoader::requestPlugin(HTMLPlugInImageElement* ownerElement, const KURL& url, const String& mimeType, const Vector& paramNames, const Vector& paramValues, bool useFallback){ Setting原创 2012-07-13 16:28:22 · 720 阅读 · 0 评论 -
android webkit 汇总
如需转载,请注明出处!WebSite: http://www.jjos.org/作者: 姜江 linuxemacs@gmail.comQQ: 457283这是一篇自己写于一年前的工作文档,分享出来。一、WebKit简介WebKit是一个开源的浏览器网页排版引擎,包含WebCore排版引擎和JSCore引擎。WebCore和JSCore引擎来自于KDE项目的KHTML和K转载 2012-03-29 11:46:29 · 1792 阅读 · 0 评论 -
webkit 更新播放状态
之前做过类似的几个项目都是通过开启一个线程或者通过glib自带的定时器的机制不停的更新播放的进度以及播放的状态最近发现在这一块的处理时候使用的底层播放器callback的方式有关的操作代码如下:#0 WebCore::HTMLMediaElement::updatePlayState (this=0xadd800) at ../../WebCore/html/HTMLMediaEle原创 2012-03-09 13:11:44 · 1333 阅读 · 2 评论 -
webkit 有关Date类型底层实现
我们在JavaScript中使用new Date() 这样来使用这个date的原型在webkit内部的对应实际上是double这个在idl文件构造的时候已经进行了映射对应的就是double return "int" if $type eq "int"; return "int" if $type eq "short" or $type eq "unsigned sh原创 2012-03-06 15:08:44 · 1026 阅读 · 0 评论 -
webkit 编码格式转化
1.对于JavaScript来说默认的格式就是utf8那就是说如果我们在底层传入的参数都是需要转化成utf8的编码格式的才能被上层所使用目前对编码的格式支持比较好的库有icu和glib两种最终的对接的层就是在external/webkit/WebCore/platform/text/String.cpp这个里面涉及到CString String::utf8()原创 2012-03-02 17:55:57 · 1210 阅读 · 0 评论 -
由 Android WebKit html5 引发的联想
由 Android WebKit html5 引发的联想 转载请注明出处:http://blog.csdn.net/lihui130135 作者:李东辉 邮件:lihui40319@gmail.com针对android webkit html5的支持目前已经开始,目前html5的标准,也最终还没有最终定论,因此各个浏览器对于支持的力度大不一样而且有些标准接口还没原创 2012-11-02 18:45:02 · 2179 阅读 · 0 评论 -
Android WebKit EventSource 支持修改记录
转载请注明出处:http://blog.csdn.net/lihui130135作者:李东辉邮件:lihui40319@gmail.com最近有人问道如何解决在android4.0平台上支持Event Source事件,好方便与服务器通讯如果不支持的话就打印下面的错误“Uncaught ReferenceError: EventSource is not defined原创 2012-11-05 13:45:35 · 2767 阅读 · 2 评论 -
Android webkit css样式定制
我们知道不同的浏览器对css有不同的解析方式,在android webkit 上面默认的定制自己样式的通道,假如我们对这个流程有一个比较清晰的了解,那么我们也可以自己去do itself。 首先介绍下android webkit的默认的css样式表(声明我都是基于android4.0.1讲解),默认的css样式位置在(android/external/webkit/Source/W原创 2013-06-18 00:56:47 · 6415 阅读 · 0 评论 -
android webkit JavaScript 不能处理onkeydown的上下左右键,引发的话题
前段时间有个在android上面做网页的同事,对我说在JavaScript的里面的onKeyDown不能接收上下左右按键,当时我还觉得不好思议,这是网页的一个标准,android对接webkit怎么可能改变原有的标准那,当时只是随口说说也没有怎么在意 结果前一段时间,客户写了一个网页包含onKeyDown处理的函数,结果在android平台上怎么也不能接收到事件,当时我突然想到以前有原创 2012-10-12 19:09:25 · 6379 阅读 · 16 评论 -
webkit 绘制部分代码解析
webkit进行最终绘制的逻辑是从frameview进行刷新调用 RenderLayer RenderBlock RenderBox加入我们针对各个elemenet的定制的情况 下面我们看一个具体的调用的流程:#0 WebCore::RenderTheme::paint (this=0x24eed0, o=0xd15fa8, paintInf原创 2012-02-16 16:31:13 · 5422 阅读 · 0 评论 -
Android webkit 时代结束,我们需要做些什么准备?
Android 4.4最新发布版本对浏览器来说是一个革命性变化,external下面的webkit源码已经被移除,前一阵子吵得沸沸扬扬的chromium作为android默认浏览器的猜测已经尘埃落定,这对于已经习惯于android webkit开发的人来说,需要去学习android chromium。根据本人观察这次大的变化需要以下几点。(1).WebView接口没有任何变化,基于此的应用可以原创 2014-03-03 01:26:51 · 4183 阅读 · 0 评论 -
Ubuntu编译最新版本WebKit
好久都没更新webkit 源码在ubuntu上编译了,网上搜了一下,基本上都是早期编译的webkit版本。可能是大家都去搞高大上的谷歌浏览器了吧。今天就以ubuntu14.04版本作为编译环境来讲讲webkit编译一、下载源码wget http://builds.nightly.webkit.org/files/trunk/src/WebKit-r174650.tar.bz原创 2015-04-22 18:09:39 · 2730 阅读 · 0 评论 -
WebKit 编码设置
转自:http://blog.sina.com.cn/s/blog_71b5e2520100s1cr.html本文描述了Webkit文本资源解码时,编码格式的选择问题。这里的文本资源是指HTML/XML、CSS,以及JS文件等。如果没有明确说明,本文提到的“文本解码器”均特指TextResourceDecoder类。文本资源解码器由TextResourceDecoder类表示。该类主要转载 2014-03-04 16:15:21 · 2470 阅读 · 0 评论 -
深入理解webkit内核系列第二篇:JavaScript引擎深度解析
看到HorkeyChen写的文章《[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现》,写的很好,深受启发。想补充一些Horkey没有写到的细节比如字节码是如何生成的等等,为此成文。 JSC对JavaScript的处理,其实与Webkit对CSS的处理许多地方是类似的,它这么几个部分:(1)词法分析->出来词语(原创 2015-03-28 19:22:37 · 4219 阅读 · 1 评论 -
WebKit源码分析系列之(一) html5 canvas
如今html5概念炒的很是火热,其中不乏标志性的tags,其中video算一个,把Adobe憋的不行,收购PhoneGap等系列的活动以应对html5之强势两大不开源的公司Apple Adobe谁都不服气,以目前的势头看Apple走的更加深远些,闲话少说,我们说说今天的tag主角canvas我们知道flash开发的时候,有专门画点画线的函数,有这样的接口对于开发小游戏,是相当方便,而且还可原创 2012-10-25 15:21:00 · 6221 阅读 · 3 评论 -
深入理解webkit内核系列第一篇:如何快速编译
最近发现询问webkit如何编译的人很多,为了方便大家写一篇关于如何在linux下面编译webkit的文章,方便大家来学习讨论。我们知道webkit是一个跨平台的浏览器能够在苹果,windows,linux等平台运行。个人对linux平台稍微熟悉些,本文主要介绍在linux平台下如何编译成功webkit。一:环境准备(1).直接安装ubuntu 12.04 系统,目前ubuntu 13原创 2014-03-13 01:43:50 · 12046 阅读 · 1 评论 -
webkit dom 事件种类
事件种类有:abort beforecopy beforecut beforeload beforepaste beforeunload blur cached change checking click close connect contextmenu copy原创 2014-03-15 17:00:27 · 3258 阅读 · 0 评论 -
android webkit 图片解码
从之前的文章中我们知道,image是一种派生资源,它下载之后会有memory cache机制进行缓存,而image对应的缓存类为CacheImage。CacheImage有一个成员SharedBuffer存储的是图片元数据,也就是没解码前的数据(由loader传递而来)。还有一个Image对象(实际是个BitmapImage),该对象在GraphicsContext绘制时使用。看如下堆栈:转载 2014-03-09 17:09:16 · 1373 阅读 · 0 评论 -
windows qt webkit 编译
[+]动态编译静态编译动机:因为官网的QT安装包是64位的,于是要做一个本地的32位的这里仅仅做动态连接库,先不做静态编译,静态编译一堆破问题,后面再说。动态编译1、下载源代码:qt-everywhere-opensource-src-5.0.2.zip2、解压到E:\Qt_compl,重命名文件夹为qt-src-5.0.23、安装依赖的工具,安装的时候转载 2014-03-12 17:56:51 · 6340 阅读 · 0 评论 -
android webkit 调试坐标位置方法
我们在绘制的时候经常会对应屏幕的坐标,这个时候只是根据屏幕的位置进行估算在android webkit的里面已经包含了一种很巧妙的办法在external/webkit/WebKit/android/jni/PictureSet.h的开头几句话包含着:#define PICTURE_SET_DUMP 0#define PICTURE_SET_DEBUG 0#define原创 2012-03-01 14:56:11 · 1232 阅读 · 0 评论 -
webkit 源码分析系列--css样式解析
http://www.cnblogs.com/yc_sunniwell/archive/2010/06/29/1767399.html1、css解析和执行过程(1).浏览器自带属性解析;(2).网页上css属性解析,在 此之前有部分浏览器自带属性被执行;(3).更新css样式:丢弃无效的属性,使执行时取到的值为解析过程中设置的值;(4).匹配样式 规则;(5).浏览器自带属转载 2012-02-19 22:34:24 · 4064 阅读 · 0 评论 -
有关webkit编译遇到的一些错误
1.在webkit编译的过程中总是遇到一些glib的版本找到新的但是又发现旧的这种错误这种情况在编译的时候 加上 ../../configure --with-gtk=2.0 --disable-glibtest --disable-schemas-compile就会绕过这个错误。make -t 这个又是是很管用原创 2012-02-06 15:33:32 · 1322 阅读 · 0 评论 -
html5 的标准
http://www.w3.org/TR/2011/WD-html5-20110525/这个 标准包含的东西是很多的。测试得分的网站:http://www.html5test.com/1.目前的chromium对于html5的支持相对来说已经相对比较好了2.目前基本的html5的标准我都没有去仔细的研究过,这个必须要看一下到底是怎么回事3.google-原创 2012-02-03 09:35:27 · 1230 阅读 · 0 评论 -
html5 全屏播放模式探索
移动设备上的视频控制与桌面浏览器有很大的不同:在iPad上,视频控制还是非常相似的,只是它没有音量控制条(音量控制使用硬件按钮完成)。和Safari一样,它也有一个全屏按钮。在iPhone上,在屏幕中间只有一个循环播放按钮。点击以后,视频将自动全屏播放。退出全屏模式以后,循环播放按钮重新出现。Android2.2上,不会显示任何控制按键。这意味着,只能通过自定义的JavaScript代码播原创 2012-02-03 18:54:36 · 3336 阅读 · 0 评论 -
一些特殊的JS扩展的实例
var deliveryArry = new Array(1);var delivery = new Delivery();delivery.frequency = 706 ;delivery.symbolRate = 6875;delivery.modulation = 3;deliveryArry.push(delivery);Search.startC原创 2012-01-11 10:57:20 · 653 阅读 · 0 评论 -
有关webkit背景挖洞透明的思维集合
void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo& paintInfo, const Color& c, const FillLayer* bgLayer, int tx, int ty, int w, int h, InlineFlowBox* box, CompositeOperator op, RenderOb原创 2011-12-28 15:54:07 · 1066 阅读 · 0 评论 -
Gears 的应用
一、Gears是什么 Gears是由Google公司开发维护的一个开源项目,该项目的目的是通过增强浏览器特性,使得支持强大的Web应用。Gears的主要特点如下:1. 使得Web应用程序可以非常自然的与桌面交互(Desktop)2. 支持资源本地化(LocalServer)3. 将访问的数据本地存储在关系数据库中(Database)4. 高效的后端执行Javascript脚转载 2011-12-16 09:12:39 · 856 阅读 · 0 评论 -
XML DOM HTMLCollection 对象
HTMLCollection 对象HTMLCollection 是一个接口,表示 HTML 元素的集合,它提供了可以遍历列表的方法和属性。HTML DOM 中的 HTMLCollection 是“活”的;如果基本的文档改变时,那些改变通过所有 HTMLCollection 对象会立即显示出来。下面的每个项目(以及它们指定的属性)都返回 HTMLCollection:Docume原创 2011-12-16 10:38:49 · 765 阅读 · 0 评论 -
js 扩展语言IDL 网站
两个 idl 资料:webidl接口http://www.w3.org/TR/WebIDL/webkit 对idl文件的定义:http://trac.webkit.org/wiki/IdlAttributes[webkit-dev] How to handle Array types in IDL files?Sam Weinig sam.weinig at原创 2011-12-16 09:14:35 · 1424 阅读 · 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-15 10:15:12 · 1150 阅读 · 0 评论 -
android webkit HTML5 video研究
摘要:本文主要介绍HTML5 video在android2.2中实现的主要架构和程序流程。一、实现HTML5 video主要的类1. 主要类结构及介绍 图1中绿色类为java类,其余为c++类,下面是各个类的具体介绍:(1) HTMLElement类不是最上层类,其父类可追到为Node类。为了表述方便省去了上面的类继承结构。该类是一个通用基类,大部分HTML转载 2011-12-22 10:38:25 · 1173 阅读 · 0 评论 -
选择html5 在优酷播放的时候
hromium-browser -user-agent="Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"这是通过hromium-browser的方式and原创 2011-12-20 14:25:54 · 1072 阅读 · 0 评论 -
html5 支持的一些功能
Accessibility support cross document messaging support database support datagrid support dom strorage support filter support geolocation offline web application support server-sent events support shar原创 2012-02-06 17:05:27 · 575 阅读 · 0 评论