zoukankan      html  css  js  c++  java
  • WebKit结构

    WebKit结构 - - ITeye技术网站


    简要的说,WebKit由三个模块组成:JavaScriptCoreWebCore  WebKitWebKit作为了整个项目的名称。

    JavaScriptCore:是JavaScript解释器;

    WebCore:是整个项目的核心,用来实现render引擎:解析Web页面,生成一个DOM树和一个render树,并最终render it with a backend(后端?),当前已经有很多移植的Backend,如WebKit/GTKWebKitQT等。在上图中,backendWebCore中分离出来了,但实际上它是WebCore的一部分。

    WebKit:它隐藏并选择WebCore到当前平台。在WebKit/Gtk中,WebCoreGtk objects的形式出现,并且它们的signalsAPI类似其他的Gtk objects.

    WebKit工程组织与管理

    平台与工具

    当前WebKit支持四种平台:GTKQTMac OS X、和Cygwin

    GTKQT使用qmake

    Mac OS X使用xcodebuild

    Cygwin则使用Visual Studio

    下面主要针对Qt版的WebKit作分析介绍:

    首先,执行WebKitTools/Scripts下的build-webkit Perl 脚本,可以使用一些参数配置需要的功能模块,主要有SVG的一些功能配置,以及XPATHXSLTVIDEO等。脚本执行过程中会对相应的参数进行解析,确定编译选项、功能模块、平台信息以及相应的工具、输出路径等等参数,最后根据不同的参数,使用qmake工具由webkit.pro生成整个工程的makefile。在make的过程中会进一步调用qmake由各个子模块的.pro项目文件生成各模块的makefile。最后make各个子模块的makefile就可以得到需要的目标文件。

    工程结构

    这个project可以分成JavaScriptCoreWebCoreWebKit三个子模块,对应到三个子目录,具体的如上面WebKit结构介绍的。

           更进一步,整个project又分成了六个可构建出来的子project,对应到相应的.pro文件。

    WebKit\WebCore\WebCore.pro:生成libQtWebKit.solibQtWebKit.a,是整个WebKit引擎库,WebKit应用都是基于这个库。

    WebKit\JavaScriptCore\kjs\testkjs.pro:生成testkjs可执行文件,它是一个JavaScript的测试工具,测试JavaScriptCore模块的功能实现。

    WebKit\JavaScriptCore\pcre\dftables.pro:生成dftables可执行文件,也是一个工具。

    WebKit\WebKit\qt\QtLauncher\QtLauncher.pro:生成QtLauncher可执行文件,它是基于WebKit的一个简单浏览器的应用。

    WebKit\WebKit\qt\Plugins\plugins.pro:生成了libqtwebico.soinstall后会放到/usr/lib/qt4/plugins/imageformats/下,这个库的作用还不明了,因为目前运行的QtLauncher应用没有用到它,有待研究。

    WebKit\WebKitTools\DumpRenderTree\qt\DumpRenderTree.pro:生成DumpRenderTree工具,也是基于WebKit的一个应用工具。

  • 相关阅读:
    PAT 解题报告 1009. Product of Polynomials (25)
    PAT 解题报告 1007. Maximum Subsequence Sum (25)
    PAT 解题报告 1003. Emergency (25)
    PAT 解题报告 1004. Counting Leaves (30)
    【转】DataSource高级应用
    tomcat下jndi配置
    java中DriverManager跟DataSource获取getConnection有什么不同?
    理解JDBC和JNDI
    JDBC
    Dive into python 实例学python (2) —— 自省,apihelper
  • 原文地址:https://www.cnblogs.com/lexus/p/2433369.html
Copyright © 2011-2022 走看看