构建基于Chromium的应用程序 chromium是google chrome浏览器所采用的内核,最开始由苹果的webkit发展而出,由于webkit在发展上存在分歧,而google希望在开发上有更大的自由 度,2013年google决定自己开发webcore的分支,叫做Blink引擎,而后goo
分类:
Web程序 时间:
2016-03-05 00:17:54
阅读次数:
3469
断断续续调试好几天,才把X5WebView的整体流程大概了解清除。本篇是上篇,侧重于讲java层的逻辑。
整个WebKit主要分为2个线程,一个是Ui线程,也就是应用程序使用WebView所在的主线程,另一个WebCore线程。webview.java运行在ui线程,webviewcore运行在webkit线程,之间通过消息通信。不同webview对应不同webviewcore(同...
分类:
Web程序 时间:
2015-05-20 20:40:36
阅读次数:
2091
1、什么叫WebView?Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。WebKit是一个开源项目,包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。2、WebView是干什...
分类:
移动开发 时间:
2015-05-01 00:28:51
阅读次数:
235
众所周知,Webkit需要创建DOM树。为此它需要创建WebView, Chrome,Page,Frame, Document, Document Parser, DOM Tree Builder(DOM树的建造引擎),ScriptRunner, Resource Handle等等对象。
同时,还需要创建为上面这些对象服务或者与之通信的支持对象,比如:与本地窗口相关的ChromeClient, 与FrameLoader事件相关的FrameLoaderClient,为Document服务的D...
分类:
Web程序 时间:
2015-03-20 12:53:53
阅读次数:
132
QtWebKit从绘制事件(Qt的paint)发出,到WebCore的RenderLayer数的绘制详细流程分析如下。
首先是QWidget收到paintEvent,发送给Qt的QWebView,在QWebView里,创建Qt的画笔QPainter,然后使用此画笔再调用Qt的QWebFrame的渲染函数render把这个QWebFrame绘制到裁剪区里。在QWebFrame的ren...
分类:
Web程序 时间:
2015-03-19 00:58:40
阅读次数:
307
3.3 分片底衬仓库(TiledBackingStore)的可见区域矩形
如下图所示,WebCore::Frame::tiledBackingStoreVisibleRect最终请求QGraphicsWebView给出可见区域:
3.4 使分片底衬仓库无效
如果frame内容所在的矩形变脏了,WebCore::Frame会使这个矩形变成无效区域,同时告诉分片...
分类:
其他好文 时间:
2015-03-03 13:38:09
阅读次数:
132
3.Qt WebKit之QGraphicsWebView
本节叙述如何通过Qt的QGraphicsWebView实现分片底衬存储区(tiled
backing store)。
如上静态类图所示,只有实现了分片底衬存储区客户端(TiledBackingStoreClient)的接口的WebCore::Frame才拥有分片底衬存储区实例。其他类只能通过WebCore::Fra...
分类:
其他好文 时间:
2015-03-03 11:40:08
阅读次数:
170
这里不想讲什么是V8,请自行百度。自己搞webkit,故以后的V8学习研究都是基于webkit与V8的结合(目前没有研究blink,仅仅是把webkit官方的JavaScriptCore引擎换作了V8),不是纯粹的V8。
这里仅介绍从webcore的入口处
1.先从webcore的js入口说起,在html词法解析的时候,有一个这个函数:
bool HTMLDocumentParser::ca...
分类:
Web程序 时间:
2015-03-02 21:02:17
阅读次数:
149
继上文
ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode)这个函数算是正式脱离webcore进入bingding模块了。先看下这个函数,再分析
// Evaluate a script file in the environment of this proxy.
ScriptValue Scri...
分类:
其他好文 时间:
2015-03-02 20:57:59
阅读次数:
194
顾名思义,WebPage就是指网页。这一点也可以从Webkit的WebCore的架构看出来:WebCore->page。在page目录下,实现了一些DOM的全局对象,比如Window,Timer,popup窗口,DOM的选择,焦点的控制、history等等。
总之,与WebView类似,WebPage就是WebCore用来编辑、查看网页内容的对象。
WebCore::page:
...
分类:
Web程序 时间:
2015-02-28 18:45:14
阅读次数:
197