31
Webkit Overview UIT개발실 조은

Webkit overview

  • Upload
    eun-cho

  • View
    705

  • Download
    2

Embed Size (px)

DESCRIPTION

How Webkit Works?

Citation preview

Page 1: Webkit overview

Webkit Overview

UIT개발실 조은

Page 2: Webkit overview

Web Browser

Page 3: Webkit overview

High Level Structure

http://helloworld.naver.com/helloworld/59361

Page 4: Webkit overview

Webkit

Rendering Engine

Page 5: Webkit overview

Major ComponentWebkit & Webkit2(Embedding API)

Bindings (JS API, Objective-C API)

Web Core(HTML, CSS, DOM, ETC)

Platform(Network, Storage, Graphic)

JavaScript Core(JS Virtual Machine)

WTF(Data Structures, Threading)

http://goo.gl/pXtG2S

Page 6: Webkit overview

Major ComponentWebkit & Webkit2(Embedding API)

Bindings (JS API, Objective-C API)

Web Core(HTML, CSS, DOM, ETC)

Platform(Network, Storage, Graphic)

JavaScript Core(JS Virtual Machine)

WTF(Data Structures, Threading)

http://goo.gl/pXtG2S

Page 7: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 8: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 9: Webkit overview

LoaderResource, Document, Frames, page

Page

Main Frame

Document

Frame Frame

Frame

Document Document

Document

Page 10: Webkit overview

LoaderHow Webkit Loads a Web Page

https://www.webkit.org/blog/1188

Page 11: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 12: Webkit overview

HTML ParserHTML Code (Charactor)

<html> <body> <p>Hello</p> </body> </html>

Page 13: Webkit overview

HTML ParserHow work HTML Tokenizer

Start Tag: html

Start Tag: body

<html> <body> <p>Hello</p> </body> </html>

Start Tag: p

Hello

End Tag : p

End Tag : body

End Tag : html

Page 14: Webkit overview

HTML ParserTree Builder

<html> <body> <p>Hello</p> </body> </html>

html

p Hello

body

html

body

p

Hello

Page 15: Webkit overview

HTML ParserFlow

Charactors

Tokens

Nodes

DOM

Tokenizer

Tree Builder

<html><body><p>Hello</p></body></html>

Start Tag: html Start Tag: body Start Tag: p Hello

End Tag : p End Tag : body End Tag : html

html p Hellobody

html

body

p

Hello

Page 16: Webkit overview

HTML ParserScript execution

<html> <body> <p>Hello</p> <script></script> </body> </html>

Page 17: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 18: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 19: Webkit overview

HTML ParserWhere Define Parsing Role?

Page 20: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 21: Webkit overview

Render TreeDOM & CSS

HTML

Head Body

Title

Hello?

spanHello,

World! img

img {border:0} span {font-size:14px}

DOM Tree

Page 22: Webkit overview

Render TreeDOM + CSS = Render Tree

HTML

Head Body

Title

Hello?

spanHello,

World! img

img {border:0} span {font-size:14px}

Render Block

Render Block

Render Text Render Inline

Render Text Render Image

border

size

Page 23: Webkit overview

Render TreeAnonymous RenderObject

Body

divHello,

World!

Render Block

Render Text Render Block

Render Text

Page 24: Webkit overview

Render TreeAnonymous RenderObject

Render Block

Render Block

Render Text

Render Block

Render Text

Not Every Render Object has a DOM Node

Body

divHello,

World!

Page 25: Webkit overview

Render TreeFlow

http://www.webkit.org/coding/dom-element-attach.html

Page 26: Webkit overview

Render TreeMinimizing Layout

clientHeight clientLeft clientTop clientWidth offsetHeight offsetLeft offsetParent offsetTop offsetWIdth

scrollLeft scrollTop scrollWidth innerText outerText focus() getBoundingClinetRect() getClientRect() scrollByLines

Page 27: Webkit overview

Normal FlowNetwork Loader HTML Parser

CSS DOM Script

Render Tree

Graphics Context

Page 28: Webkit overview

GraphicsContextPrinting

Page 29: Webkit overview

More?I Love Firefox

Page 30: Webkit overview

Reference• How Browser Works? : Hello World

• HTML5 Parsing HTML

• How Webkit Works?

• Webkit For Developers

Page 31: Webkit overview

ThankYou~