20. Naver Webkit
그나마 많은 engineer
할 수 있는 것이 많다
더 나은 architecture
windows/android port 부재
새로운 cross platform 시도
경량화 가능
webkit base 개발 경험
Tizen 경험
21. Naver Webkit : cross platform
Android/windows webview
- 세계 최초의 webkit2 기반
android/windows engine
- java/win c++ interface 동시
생성
Droid Framework (JAVA)
Android Platform C++ APIs
Droid Framework (C++)
JNI TemplateJNI
Native Droid Framework
WebKit2 Interface (WK)
WebPag
eProxy
WebContext
WebProces
sProxy
Network
Process
Proxy
Connection MessageHandler MessageReceiver
WTF::RunLoop Shared Memory Native Event
WebProces
s
WebPage
Network
Process
DB
Process
WebCore
DB
Process
Proxy
PluginProc
essProxy
Plugin
Process
JavaScriptCore
WebCoreSupport
Android Windows
Framework
Web Process
Core
OS
3rd Party Lib.
UI Process
IPC
cURL CairoFreeType HarfBuzz ICU Sqlite
22. Naver Webkit : thin client
Thin client browser
MarioNet, Amazon Silk, Puffin
CPU는 서버 자원을
small device에서 rich web 가능
seamless handoff
Client WebKit
UI
Process
Android
Webview
Server WebKit
Web
Process
Network
Process
Database
Process
Plugin
Process
Droid Framework
JAVA C++
Server Webkit
23. Naver Webkit : browser
Desktop용 web browser를 만들자
Higgs
Engine
: solve current
problem
Naver
Webkit
: thin client
web engine
Browser
: next
generation
web browser
Devices
App Engine Web OS
24. Naver Webkit : browser tasks
Save Page
Copy & Paste & Selection
Download Manager
Settings
Combo Box
Touch Magnifier
Double Tapping Zoom
HTTP Authentication
SSL Certification
Favicon
File Chooser
Visited Link
NPAPI Plugins
HomeScreen Webapp
Auto Complete
theme 지원
개발자 도구
Multi process per tab
Canvas/Rendering
Javascript FTL
asm.js
Scroll
Compositing
Test framework
Test Gardening
Network
3rd party library - jpeg-turbo
IndexedDB
Network Information API
Geolocation
Multimedia
FileSystem API
CORS
Animation Timing API
FullScreen API
Page Visibility API
Form New Controls
WebGL
Media Capture Stream (getUserMedia)
WebRTC
Web Audio API
Notifications API
Web SQL storage
Device Orientation and Motion
Web Speech API
27. Webkit 웹엔진
대부분의 WebKit 개발에 크로스플랫폼이 고려됨
• 같은 소스 기반으로 Windows/Android 빌드 유지
• 다른 OS/플랫폼으로의 이식이 용이하도록 구성
이후 웹엔진의 확장을 고려한 설계
• 각 컴포넌트가 독자성을 가질 수 있도록 함
• 웹엔진이 자체적인 어플리케이션이 될 수 있도록 함
28. SLING ONIG
크로스플랫폼 개발의 기초적인 빌딩 블록
Java = Java + JNI + C/C++
Java와 C++의 합의점을 찾는다
better than SWIG
Java의 구조와 개념에 충실
Object-oriented Native Interfaces Generator
크로스플랫폼 개발에서 많은 시간과 노력을 절약
29. 새로운 접근
한계를 넘기 위하여
WebKit2
Sling-WebPlatform
SWK (Sling WebKit) APIs
WebNetwork WebScript WebGraphics WebExtension
Chromium
Network Stack
Curl ChakraCore JSC Moz2D Cairo
Chrome
Extension
Safari
Extension
Sling Port
30. SLING status
Sling Chrome 54
JetStream 139.79 134.77
Sunspider 170.2 ms 211.1 ms
Kraken 1328.5 ms 1231.7 ms
JSBench 21.96 ms 128.05 ms
Octane 22755 24804
Sling Chrome 54
DavidRousset-sprite 3715 3050
GUIMark2-chart 58 50
GUIMark2-game 58 58
Bunnymark 57 57
MarineBlue 110 110
JS engine Graphics
Test Environments
- OS : Windows 10
- CPU : intel i5-2500
- Memory :4GB
- Graphics : AMD Radeon HD 6450