﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-citywanderer-文章分类-webkit</title><link>http://www.cppblog.com/citywanderer/category/18491.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 26 Aug 2013 19:47:11 GMT</lastBuildDate><pubDate>Mon, 26 Aug 2013 19:47:11 GMT</pubDate><ttl>60</ttl><item><title>webkit加载网页(qtwebkit,citywanderer)</title><link>http://www.cppblog.com/citywanderer/articles/164216.html</link><dc:creator>citywanderer</dc:creator><author>citywanderer</author><pubDate>Thu, 22 Aug 2013 06:25:00 GMT</pubDate><guid>http://www.cppblog.com/citywanderer/articles/164216.html</guid><wfw:comment>http://www.cppblog.com/citywanderer/comments/164216.html</wfw:comment><comments>http://www.cppblog.com/citywanderer/articles/164216.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/citywanderer/comments/commentRss/164216.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/citywanderer/services/trackbacks/164216.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、读取url以下内容部分引自http://blog.csdn.net/dlmu2001/article/details/5936122http的协议细节实现并不需要WebCore来关注，WebCore要关注的是，如何设置请求的相关头部信息，如何获取服务器返回回来的响应体部数据。WebKit中同http打交道的类主要是ResourceRequest，ResourceResonse，Resource...&nbsp;&nbsp;<a href='http://www.cppblog.com/citywanderer/articles/164216.html'>阅读全文</a><img src ="http://www.cppblog.com/citywanderer/aggbug/164216.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/citywanderer/" target="_blank">citywanderer</a> 2013-08-22 14:25 <a href="http://www.cppblog.com/citywanderer/articles/164216.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webkit回调接口全剖析——storm</title><link>http://www.cppblog.com/citywanderer/articles/177363.html</link><dc:creator>citywanderer</dc:creator><author>citywanderer</author><pubDate>Thu, 22 Aug 2013 06:25:00 GMT</pubDate><guid>http://www.cppblog.com/citywanderer/articles/177363.html</guid><wfw:comment>http://www.cppblog.com/citywanderer/comments/177363.html</wfw:comment><comments>http://www.cppblog.com/citywanderer/articles/177363.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/citywanderer/comments/commentRss/177363.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/citywanderer/services/trackbacks/177363.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、下载回调接口Source/WebCore/loader/DocumentLoader.cpp&nbsp; 798 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->798&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;...&nbsp;&nbsp;<a href='http://www.cppblog.com/citywanderer/articles/177363.html'>阅读全文</a><img src ="http://www.cppblog.com/citywanderer/aggbug/177363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/citywanderer/" target="_blank">citywanderer</a> 2013-08-22 14:25 <a href="http://www.cppblog.com/citywanderer/articles/177363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>StormWebkit的编译</title><link>http://www.cppblog.com/citywanderer/articles/165356.html</link><dc:creator>citywanderer</dc:creator><author>citywanderer</author><pubDate>Thu, 22 Aug 2013 06:25:00 GMT</pubDate><guid>http://www.cppblog.com/citywanderer/articles/165356.html</guid><wfw:comment>http://www.cppblog.com/citywanderer/comments/165356.html</wfw:comment><comments>http://www.cppblog.com/citywanderer/articles/165356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/citywanderer/comments/commentRss/165356.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/citywanderer/services/trackbacks/165356.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: StormWebkit：webkit的一个port，专用于linux字符模式下的运行。2012年由storm创建参考qt1、判定知否支持的port Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->541&nbsp;#&nbsp;Force&nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/citywanderer/articles/165356.html'>阅读全文</a><img src ="http://www.cppblog.com/citywanderer/aggbug/165356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/citywanderer/" target="_blank">citywanderer</a> 2013-08-22 14:25 <a href="http://www.cppblog.com/citywanderer/articles/165356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webkit源码分析</title><link>http://www.cppblog.com/citywanderer/articles/164911.html</link><dc:creator>citywanderer</dc:creator><author>citywanderer</author><pubDate>Thu, 22 Aug 2013 06:25:00 GMT</pubDate><guid>http://www.cppblog.com/citywanderer/articles/164911.html</guid><wfw:comment>http://www.cppblog.com/citywanderer/comments/164911.html</wfw:comment><comments>http://www.cppblog.com/citywanderer/articles/164911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/citywanderer/comments/commentRss/164911.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/citywanderer/services/trackbacks/164911.html</trackback:ping><description><![CDATA[<div>attach pid<br />初始两个线程<br />thread 1<br />&nbsp;&nbsp;&nbsp; main Tools/QtTestBrowser/main.cpp<br />thread 2<br />&nbsp;&nbsp;&nbsp; b IconDatabase.cpp:1438 <br />&nbsp;&nbsp;&nbsp; 输入网址<br />&nbsp;&nbsp;&nbsp; (如何记录log LOG -&gt; WTFLog Source/JavaScriptCore/wtf/Assertions.cpp 引用<a href="http://blog.csdn.net/bluepath/article/details/7029215(WTF" target="_blank"><font color="#2595b7">http://blog.csdn.net/bluepath/article/details/7029215(WTF</font></a>是一个子工程，其主要为WebKit提供各种基础工具，这里封装了，著名的智能指针，断言，log输出，内存分配管理，甚至重写了一套独立的容器类，比如hashmap,hashSet,Vector等，其中最为重要是智能指针的实现。其输出为\WebKitBuild\lib)<br />&nbsp;&nbsp;&nbsp; LOG(channel, ...) 宏定义 Source/JavaScriptCore/wtf/Assertions.h:365 第一个变量的实际名称为 Log##channel<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; WTFLog(WTFLogChannel* channel, const char* format, ...)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WTFLogChannel变量定义示例<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extern WTFLogChannel LogIconDatabase; Source/WebCore/platform/Logging.h:45<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WTFLogChannel LogIconDatabase =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 0x00000400, "WebCoreLogLevel", WTFLogChannelOff }; Source/WebCore/platform/Logging.cpp:41<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用: LOG(IconDatabase, "test"),开启时将WTFLogChannelOff替换成WTFLogChannelOn<br />&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;技术文章</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.webkit.org/coding/technical-articles.html" target="_blank"><font color="#2595b7">http://www.webkit.org/coding/technical-articles.html</font></a>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;Major Objects in WebCore&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;RefPtr and PassRefPtr Basics<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;A guide to Assertion macros in WebKit&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;WebCore Rendering<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;How WebKit loads a Web Page&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;WebKit Page Cache<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#9632;How a DOM Element is Attached</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://trac.webkit.org/wiki/WebDevelopers" target="_blank"><font color="#2595b7">http://trac.webkit.org/wiki/WebDevelopers</font></a></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未知</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/dlmu2001/article/category/741748" target="_blank"><font color="#2595b7">http://blog.csdn.net/dlmu2001/article/category/741748</font></a></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webkit的qt移植<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Webcore中文本资源编解码<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore中的http请求信息维护<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore中的http响应信息维护<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebKit加载网页的流程<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebKit中的html词法解析<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html解析模型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html的解析过程，DOM节点树的建立<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Frame类<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FrameLoader类<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Page类<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loader 模块是如何加载资源的，分主资源和派生资源分析 loader 模块的类关系</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/keensword007/article/category/728108" target="_blank"><font color="#2595b7">http://blog.csdn.net/keensword007/article/category/728108</font></a></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebKit中的设计模式(一): Noncopyable .<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webkit技术译文系列（二）：RefPtr和PassRefPtr基础 .<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebKit如何加载web页面 .<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore中的渲染机制（一）：基础知识 .<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore中的渲染机制（二）：块和内嵌(Blocks and Inlines) .<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Webkit技术译文系列（一）：WebCore中的主要对象 .</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/hou_jiong/article/details/3831022" target="_blank"><font color="#2595b7">http://blog.csdn.net/hou_jiong/article/details/3831022</font></a></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.体系结构<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebKit上层组织应用 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;Page与外框相关的内容(Frame,Page,History,Focus,Window) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;Loader加载资源及Cache <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;HTML-DOM HTML内容及解析 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;DOM- DOM CORE内容 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;XML- XML内容及解析 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;Render-排版功能 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;CSS-DOM CSS内容 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;Binding-DOM与JavascriptCore绑定的功能 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;Editing-所有与编辑相关的功能 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JavascriptCore-javascript引擎 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;API-基本javascript功能 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;Binding与其它功能绑定的功能,如:DOM,C,JNI <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;DerviedSource自动产生的代码 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;ForwordHeads头文件,无实际意义 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;PCRE-Perl-Compatible Regular Expressions&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;KJS-Javascript Kernel <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#168;WTF-KDE的C++模板库 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unicode unicode 库 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tools tools库 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CURL-url 客户端传输库 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PlatForm- 与平台相关的功能,如图形图像,字体,Unicode, IO,输入法等.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.解析流程<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CURL获得网站的stream<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解析划分字符串<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通过Dom Builder按合法的html规范生成Dom树<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果有javascript，JSEngine就通过ECMA-262标准完善Dom树<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把Dom传给LayoutEngine,进行布局，如果有CSS样式，就通过CSSParser解析。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后Rendering out出来</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DisplayWebContent/Concepts/WebKitDesign.html#//apple_ref/doc/uid/20002024-CJBEJBHH" target="_blank"><font color="#2595b7">http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DisplayWebContent/Concepts/WebKitDesign.html#//apple_ref/doc/uid/20002024-CJBEJBHH</font></a></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Core WebKit Classes</div>
<div>&nbsp;&nbsp; 下载网页</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;加载页面</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.webkit.org/blog/1188/how-webkit-loads-a-web-page/" target="_blank"><font color="#2595b7">http://www.webkit.org/blog/1188/how-webkit-loads-a-web-page/</font></a></div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 处理页面</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:586 WebCore::QNetworkReplyHandler::forwardData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/ResourceLoader.cpp:430&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebCore::ResourceLoader::didReceiveData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/MainResourceLoader.cpp:463&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::MainResourceLoader::didReceiveData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source/WebCore/loader/ResourceLoader.cpp:279&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::ResourceLoader::didReceiveData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/MainResourceLoader.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::MainResourceLoader::addData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentLoader.cpp:333&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentLoader::receivedData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentLoader.cpp:299&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentLoader::commitLoad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentLoader.cpp:278&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentLoader::commitIfReady</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/FrameLoader.cpp:1960&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::FrameLoader::commitProvisionalLoad</div>
<div>&nbsp;&nbsp;&nbsp;页面解析 dom</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1547&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTMLTreeBuilder::processBodyEndTagForInBody</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:305&nbsp;&nbsp;&nbsp;&nbsp;WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:320&nbsp;&nbsp;&nbsp;&nbsp;WebCore::QNetworkReplyWrapper::emitMetaDataChanged</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:203&nbsp;&nbsp;&nbsp;&nbsp;WebCore::QueueLocker::~QueueLocker</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:178&nbsp;&nbsp;&nbsp;&nbsp;WebCore::QNetworkReplyHandlerCallQueue::unlock&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:195&nbsp;&nbsp;&nbsp;&nbsp;WebCore::QNetworkReplyHandlerCallQueue::flush</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:454&nbsp;&nbsp;&nbsp;&nbsp;WebCore::QNetworkReplyHandler::finish</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/ResourceLoader.cpp:436&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::ResourceLoader::didFinishLoading</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/MainResourceLoader.cpp:484&nbsp;&nbsp;&nbsp;&nbsp;WebCore::MainResourceLoader::didFinishLoading</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentLoader.cpp:288&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentLoader::finishedLoading</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentWriter.cpp:214&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentWriter::end</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentWriter.cpp:228&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentWriter::endIfNotLoadingMainResource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/DocumentWriter.cpp:208&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DocumentWriter::addData</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/dom/DecodedDataDocumentParser.cpp:54&nbsp;&nbsp;&nbsp;&nbsp;WebCore::DecodedDataDocumentParser::appendBytes</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLDocumentParser.cpp:367&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLDocumentParser::append</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLDocumentParser.cpp:175&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLDocumentParser::pumpTokenizerIfPossible</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLDocumentParser.cpp:276&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLDocumentParser::pumpTokenizer</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:450&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLTreeBuilder::constructTreeFromToken</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:460&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:482&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLTreeBuilder::processToken</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLTreeBuilder::processEndTag</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1883&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLTreeBuilder::processEndTagForInBody</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1547&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebCore::HTMLTreeBuilder::processBodyEndTagForInBody</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据库？</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/WebCore/loader/icon/IconDatabase.cpp</div>
<div>&nbsp;&nbsp;&nbsp;js执行</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 智能指针 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source/JavaScriptCore/wtf/RefPtr.h</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.webkit.org/coding/RefPtr.html" target="_blank"><font color="#2595b7">http://www.webkit.org/coding/RefPtr.html</font></a>&nbsp; <a href="http://blog.csdn.net/keensword007/article/details/5863367" target="_blank"><font color="#2595b7">http://blog.csdn.net/keensword007/article/details/5863367</font></a></div>
<div>&nbsp;&nbsp;&nbsp;</div><img src ="http://www.cppblog.com/citywanderer/aggbug/164911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/citywanderer/" target="_blank">citywanderer</a> 2013-08-22 14:25 <a href="http://www.cppblog.com/citywanderer/articles/164911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>qtwebkit的编译、运行</title><link>http://www.cppblog.com/citywanderer/articles/164214.html</link><dc:creator>citywanderer</dc:creator><author>citywanderer</author><pubDate>Thu, 19 Apr 2012 03:05:00 GMT</pubDate><guid>http://www.cppblog.com/citywanderer/articles/164214.html</guid><wfw:comment>http://www.cppblog.com/citywanderer/comments/164214.html</wfw:comment><comments>http://www.cppblog.com/citywanderer/articles/164214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/citywanderer/comments/commentRss/164214.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/citywanderer/services/trackbacks/164214.html</trackback:ping><description><![CDATA[<p>qtwebkit(QtWebKit-2.2.0.tar.gz)</p>
<p><a href="http://trac.webkit.org/wiki/BuildingQtOnLinux" target="_blank"><font color="#1b73b6">http://trac.webkit.org/wiki/BuildingQtOnLinux</font></a></p>
<p>&nbsp;</p>
<p>一、编译(opensuse)<br />1、下载源<br /><font color="#000000" face="Verdana">zypper ar http://mirrors.163.com/openSUSE/distribution/11.4/repo/non-oss/ non-oss;<br />zypper ar http://mirrors.163.com/openSUSE/distribution/11.4/repo/oss oss;<br />zypper ar http://mirrors.163.com/openSUSE/update/11.4/ update ;</font><br />#遇到错误：<br />#Retrieving package OpenOffice_org-icon-themes-3.0.0.6-1.2.noarch (1/592), 17.4 <br />#M (27.4 M unpacked)<br />#Failed to mount cd:///?devices=/dev/hdc on : Mounting media failed<br />#需要禁止掉dvd安装源：<br />#<font color="#000000" face="Verdana">zypper ls&nbsp;;<font color="#000000" face="Verdana">zypper mr --disable </font>6(dvd对应的id)<br /></font>#sqlite-devel :&nbsp;<font color="#000000" face="Verdana">http://rpmfind.net/linux/rpm2html/search.php?query=sqlite3-devel<br /><br /></font>2、链接使用gold（否则会出现内存耗光的错误）<br />下载gold <a href="http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.gz" target="_blank"><font color="#2595b7">http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.gz</font></a> </p>
<p>&nbsp;&nbsp; ./configure --prefix=/usr/local/gold/</p>
<p>&nbsp;&nbsp;&nbsp; make;make install;</p>
<p>&nbsp;&nbsp;&nbsp; mv /usr/bin/ld /usr/bin/ld.orig</p>
<p>&nbsp;&nbsp;&nbsp; ln -fs /usr/local/gold/bin/ld.gold /usr/bin/ld</p>
<p><br />&nbsp;</p>
<p>zypper in libqt4-devel gperf bison libicu-devel sqlite-devel libQtWebKit-devel;</p>
<p>./Tools/Scripts/build-webkit --qt --no-video --debug &gt; /root/build.log 2&gt;&amp;1 &amp;</p>
<p>&nbsp;</p>
<p>运行（图形模式下）</p>
<p>./Tools/Scripts/run-launcher --qt --debug</p><img src ="http://www.cppblog.com/citywanderer/aggbug/164214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/citywanderer/" target="_blank">citywanderer</a> 2012-04-19 11:05 <a href="http://www.cppblog.com/citywanderer/articles/164214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>