webkit整体结构略览

时间:2021-11-04 15:53:29

开始研究一下webkit:)欢迎大家多交流

############################################################################

by zevolo

名词:
icu:    International Components for Unicode, software libraries supporting internationalization
KJS:    是KDE的ECMAScript/JavaScript引擎
JSC:    jsc is a command-line utility that allows you to run JavaScript programs outside of the context of a web browser
IDL:    Interface description language. http://www.w3.org/TR/WebIDL/
V8:     V8 is Google's open source JavaScript engine. http://code.google.com/p/v8/
ECMAScript: ECMAScript是一种由欧洲计算机制造商协会(ECMA)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的扩展。
gyp:    generate your project

webkit功能:
网络功能(主要负责下载网页等),dom分析(负责分析html文件,生成dom树),render功能(显示图形和文字),以及javascript分析

文件结构:
文件很多,2012年包增长的很快,现在已经60多兆的压缩包:( WebKit-r126323有17339 files,其中idl有717个

├── autotools
├── cmake
├── gyp
├── JavaScriptCore
├── JavaScriptGlue
├── ThirdParty
├── WebCore
├── WebKit
└── WebKit2

JavaScriptCore/
├── API
├── assembler
├── bytecode
├── bytecompiler
├── Configurations
├── debugger
├── dfg
├── docs
├── ForwardingHeaders
├── gyp
├── heap
├── icu
├── interpreter
├── JavaScriptCore.gyp
├── JavaScriptCore.vcproj
├── JavaScriptCore.xcodeproj
├── jit
├── os-win32
├── parser
├── profiler
├── qt
├── runtime
├── shell
├── wtf         WTF:KDE的C++模板库
└── yarr


WebCore
├── accessibility
├── bindings        有一个script目录,使用perl(pl, pm)来生成一些文件
├── bridge
├── Configurations
├── css
├── dom
├── editing
├── English.lproj
├── fileapi
├── ForwardingHeaders
├── gyp
├── history
├── html
├── icu
├── inspector
├── loader
├── mathml
├── notifications
├── p2p
├── page
├── platform        将根据平台来选择编译的内容,如gtk, qt等
├── plugins
├── rendering
├── Resources
├── storage
├── svg
├── testing
├── webaudio
├── WebCore.gyp
├── WebCore.vcproj
├── WebCore.xcodeproj
├── websockets
├── workers
└── xml

浏览器内核分类主要有三种:
trident:    IE
Gecko:      firefox
webkit:     safari, chrome

webkit相比gecko更受程序员欢迎,原因是其引擎高效稳定,源码结构清晰,便于维护