Slide 1

Slide 1 text

஌ΒΕ͟ΔWebKit APIͷੈք @yashigani
 Kyoto.ͳΜ͔

Slide 2

Slide 2 text

@yashigani • iOS / Mac Application Engineer • http://yashigani.hatenablog.com/ • Sleipnir for Mac / Sleipnir Mobile for iOS • ࠷ۙChrome ExtensionsσϏϡʔ͠·ͨ͠

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Architecture of WebKit ! ! ! WebKit API WebCore JaveScriptCore WTF

Slide 5

Slide 5 text

WebKitʹ͸3छྨͷAPI͕͋Δ

Slide 6

Slide 6 text

3छྨͷAPI • WebKit(WebKit 1) • Chromium WebKit(Blink) • WebKit 2

Slide 7

Slide 7 text

Ͳͷϒϥ΢βʁ • Other WebKit base Browsers • Chromium / Google Chrome • Safari / Mobile Safari

Slide 8

Slide 8 text

What different?

Slide 9

Slide 9 text

Process Model

Slide 10

Slide 10 text

WebKit 1 • ॴҦWebView/UIWebView • ϥΠϒϥϦͱͯ͠࢖͍΍͘͢ઃܭ • ϓϥοτϑΥʔϜ͝ͱʹ߹ͬͨAPI • ϨϯμϦϯάΛؚΊͯ୯ҰͷϓϩηεͰ׬݁

Slide 11

Slide 11 text

Chromium WebKit(Blink) • RendererͷͨΊͷAPI • WebKit(WebCore)Λແཧ໼ཧϚϧνϓϩηε Ͱ࢖͏ • Chromiumຊମͱ͸IPCͰ΍ΓͱΓ • JavaScriptCore -> V8

Slide 12

Slide 12 text

! ! ! ! ! WebKit API WebCore Chromium (Application) Renderer (Application) IPC Chromium WebKit API Boundary Host Process Renderer Process

Slide 13

Slide 13 text

WebKit 2 • WebKitࣗମʹϚϧνϓϩηεϞσϧΛಋೖ • API͕UI ProcessͱWeb Processʹ෼཭ • C API • υΩϡϝϯτ͕Ұ੾ແ͍ • ࠓͷͱ͜ΖSafariͷͨΊͷAPI

Slide 14

Slide 14 text

! ! WebKit2 ! ! WebKit API(UI Process) WebCore WebKit API(Web Process) API Boundary Application UI Process Web Process

Slide 15

Slide 15 text

WebKitʹ΋͍Ζ͍Ζ͋Δʂ

Slide 16

Slide 16 text

·ͱΊ • WebKit = ͓͍ͦ • Chromium WebKit = ΊͬͪΌ͸΍͍ • WebKit 2 = ΊͬͪΌ͸΍͍

Slide 17

Slide 17 text

Sleipnir͕Μ͹ͬͯΔʂ

Slide 18

Slide 18 text

WebKitࡶஊ • No release, No versions • WWDCΑΓલʹ࠷৽৘ใ͕Θ͔Δ(͜ͱ΋͋Δ) • Chromium Embedded Framework • node-webkit

Slide 19

Slide 19 text

More info… • WebKit2 ͱ༇շͳ஥ؒͨͪ • http://steps.dodgson.org/b/2012/03/28/ webkit2-and-other-approaches/ • How WebKit Works • https://docs.google.com/presentation/d/ 1ZRIQbUKw9Tf077odCh66OrrwRIVNLvI_nhLm 2Gi__F0/pub#slide=id.p

Slide 20

Slide 20 text

• WebKit Open Source Project - Technical Articles • http://www.webkit.org/coding/technical- articles.html • WebKit 2 - WebKit • http://trac.webkit.org/wiki/WebKit2 • For Developers - The Chromium Project • http://www.chromium.org/developers

Slide 21

Slide 21 text

Thank you!