Top Banner
Webkit Overview UIT개발실 조은
31

Webkit overview

Jan 13, 2015

Download

Technology

Eun Cho

How Webkit Works?
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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~