WebKitGtk+ Project

  • 2,746 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,746
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
46
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. WebKitGtk+ 허준회 (Joone Hur)http://opensoftware.kr
  • 2. Who am I? • Working for Collabora – WebKitGtk+, WebKit-Clutter • WebKit CommitterGNOME3 Korea Launching Party 2
  • 3. WeKit Project • 오픈소스 웹 엔진 • 2 백만 라인 코드 , 대부분 C++ • ~10 % 브라우저가 사용 • 150 명 커미터 • LGPL, BSD LicenseGNOME3 Korea Launching Party 3
  • 4. WebKit 의 시작 • KDE Project 에서 KHTML/KJS 로 시작 • Apple 에서 Fork 하여 2001 년 부터 개 발 시작 • 2005 년 오픈소스화 됨 • Apple, Google 주도로 프로젝트 운영GNOME3 Korea Launching Party 4
  • 5. WebKit Port WebKitMac WebKitWin WebKitGtk WebKitQt/EFL WebKitChromium WebCore JavaScriptCore WebCoreSupport OSX/iOS Windows GTK+ QT EFL Android Chromium • WindowsCE, Brew • wxWidget, Haiku(BeOS) 지원GNOME3 Korea Launching Party 5
  • 6. 누가 사용하는가 ?GNOME3 Korea Launching Party 6
  • 7. Who develop WebKit?GNOME3 Korea Launching Party 7
  • 8. WebKit Maintainers etc 50 28% Apple 57 31% Apple Google Nokia RIM 3 2% RIM etc Nokia 7 4% Google 64 35% http://trac.webkit.org/wiki/WebKit%20TeamGNOME3 Korea Launching Party 8
  • 9. WebKit ArchitectureGNOME3 Korea Launching Party 9
  • 10. WebKit Components • WebKit – API, OS Interaction Layer • WebCore – Rendering, Layout, Painting, DOM, Binding, etc • JavaScriptCore/V8 – JavaScript Engine, JS ExecutionGNOME3 Korea Launching Party 10
  • 11. WebKitGtk+GNOME3 Korea Launching Party 11
  • 12. WebKitGtk+ • A regular GtkWidget – you can add to your GtkScrolledWindow and profit • Applications using WebKitGtk+ – Epiphany/Midori – Empathy – DevHelp – Evolution (Experimental) – http://trac.webkit.org/wiki/ApplicationsGtkGNOME3 Korea Launching Party 12
  • 13. Working with GNOME Platform • Cairo for rendering • Pango for fonts • GTK+ for theming/widgets • Soup for networking • GStreamer for HTML5 video • PyGtk+ supportGNOME3 Korea Launching Party 13
  • 14. Release Planning • Well release for GNOME every 6 months • But might not branch from trunk that often. • An API is declared stable when it ships in a new stable release. • We can, and will break APIs during development cycles (this is how GTK+ works today). • After an API is declared deprecated, well remove it from stable releases after a reasonable amount of time (think, two major releases). http://webkitgtk.org/gcds.htmlGNOME3 Korea Launching Party 14
  • 15. GObject DOM bindings • Access to DOM APIs through native GObject layerGNOME3 Korea Launching Party 15
  • 16. GTK+3 Support • Dual support for 2.x and 3.x (--with-gtk={2.0,3.0})GNOME3 Korea Launching Party 16
  • 17. WebKit2 • Multiple Process Support http://trac.webkit.org/wiki/WebKit2GNOME3 Korea Launching Party 17
  • 18. Multiple Process 지원 • 목적 Web Process – UI 반응성 향상 W W W – Content 에 의한 Crash 방지 – 전반적인 성능 향상 – Multi-Core 지원 Tab Tab Tab – 보안성 강화 UI Process • 단점 – 메모리를 많이 사용함 – 포팅이 어렵다GNOME3 Korea Launching Party 18
  • 19. Future Work • DOM binding • WebKit2 • Accelerating CompositingGNOME3 Korea Launching Party 19
  • 20. The WebKit CommunityGNOME3 Korea Launching Party 20
  • 21. WebKit Community • Contributor/Committer/Reviewer 로 구성 • Apple, Google, Nokia, RIM, Samsung, Motorola, Erricson • Collabora, IgaliaGNOME3 Korea Launching Party 21
  • 22. 어떻게 참여하는가 ? 공개 소스 저장소 svn.webkit.org공개 버그 데이터베이스 일일 빌드 다운로드 bugs.webkit.org nightly.webkit.org 웹사이트와 블로그 webkit.org 메일링 리스트 lists.webkit.org IRC 채널 #webkit irc.freenode.net Safari and WebKit Overview, Session 325 - WWDC2008GNOME3 Korea Launching Party 22
  • 23. Download Source Code • http://nightly.webkit.org/GNOME3 Korea Launching Party 23
  • 24. Checkout the development tree • Using git – git clone git://git.webkit.org/WebKit.git • Using svn – svn co http://svn.webkit.org/repository/webkit/trunkGNOME3 Korea Launching Party 24
  • 25. Build • Supported Platforms – Mac for Mac/Window – Gtk/Qt for Linux/Window – MeeGo, Symbian...GNOME3 Korea Launching Party 25
  • 26. Build Prerequisite for Linux • sudo apt-get install autoconf automake autotools-dev bison flex gperf libglib2.0-dev .. • https://trac.webkit.org/wiki/BuildingGtkGNOME3 Korea Launching Party 26
  • 27. Build Command • WebKit/Tools/Scripts/build-webkit --gtk --debugGNOME3 Korea Launching Party 27
  • 28. Build Options • $ Tools/Scripts/build-webkit –gtk --tiled-backing- store –3d-canvas --debug --makeargs=-j4GNOME3 Korea Launching Party 28
  • 29. Running a launcher • $ Tools/Scripts/run-launcher --gtk --debug • $ WebKitBuild/Release/Programs/GtkLauncherGNOME3 Korea Launching Party 29
  • 30. Get involved! • http://live.gnome.org/WebKit • http://webkit.org • http://webkitgtk.org • IRC: #webkit, #webkit-gtk / FreeNodeGNOME3 Korea Launching Party 30
  • 31. WebKitGtk+ HackFestGNOME3 Korea Launching Party 31
  • 32. Q&AGNOME3 Korea Launching Party 32
  • 33. References ● http://webkitgtk.org/gcds.html ● http://webkit.org ● http://Webkitgtk.orgGNOME3 Korea Launching Party 33