1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns=
"http://www.w3.org/1999/xhtml">
7 <title>Inside (Qt)WebKit/GTK+
</h1>
9 <meta name=
"generator" content=
"S5" />
10 <meta name=
"version" content=
"S5 1.1" />
11 <meta name=
"presdate" content=
"20090706" />
12 <meta name=
"author" content=
"Simon Hausmann, Alp Toker, Holger Hans Peter Freyther" />
13 <meta name=
"company" content=
"GNOME, KDE, Nokia, Nuanti" />
14 <!-- configuration parameters -->
15 <meta name=
"defaultView" content=
"slideshow" />
16 <meta name=
"controlVis" content=
"hidden" />
17 <!-- style sheet links -->
18 <link rel=
"stylesheet" href=
"ui/default/slides.css" type=
"text/css" media=
"projection" id=
"slideProj" />
19 <link rel=
"stylesheet" href=
"ui/default/outline.css" type=
"text/css" media=
"screen" id=
"outlineStyle" />
20 <link rel=
"stylesheet" href=
"ui/default/print.css" type=
"text/css" media=
"print" id=
"slidePrint" />
21 <link rel=
"stylesheet" href=
"ui/default/opera.css" type=
"text/css" media=
"projection" id=
"operaFix" />
23 <script src=
"ui/default/slides.js" type=
"text/javascript"></script>
28 <div id=
"controls"><!-- DO NOT EDIT --></div>
29 <div id=
"currentSlide"><!-- DO NOT EDIT --></div>
30 <div id=
"header"></div>
32 <h1>Gran Canaria Desktop Summit
2009</h1>
33 <h2>Inside (Qt)WebKit/GTK+
</h2>
39 <div class=
"presentation">
42 <h1>Inside (Qt)WebKit/GTK+
</h1>
43 <h2>Collaboration and Competition
</h2>
44 <h3>Simon Hausmann, Alp Toker, Holger Freyther
</h3>
45 <h4>GNOME, KDE, Nokia QtSoftware, Nuanti Ltd.
</h4>
50 <h1>What is WebKit?
</h1>
52 <li>A rendering engine for Web Content.
</li>
53 <li>Apple took KHTML and ran far away.
</li>
54 <li>A project got initiated around it.
</li>
55 <li>Policies for contribution were setup.
</li>
56 <li>The creator of KHTML became a reviewer.
</li>
60 Explain where WebKit is coming from, who is working on it, and what the project
61 goals of this project are.
65 <h1>What to talk about?
</h1>
67 <li>Progress of the Web?
</li>
68 <li>HTML5 and JavaScript development?
</li>
69 <li>How next generation native toolkits will be built on top of it?
</li>
70 <li>How squeak/the lively kernel will take over the world?
</li>
74 Mention various areas to talk about and then explain which ones we are
75 currently focusing on.
79 <h1>What to talk about?
</h1>
81 <li>Will focus on cross port collaboration!
</li>
82 <li>Talk to us if you are interested about the other things.
</li>
86 <!-- A look at the ports -->
88 <h1>The goals of the WebKit project
</h1>
90 <li>Produce the fastest web content renderer.
</li>
91 <li>Development is driven by company interests.
</li>
92 <li>Policies like no performance regression are enforced.
</li>
98 <h1>Looking at the players
</h1>
100 <li>Apple maintaining a Mac and Windows port.
</li>
101 <li>Google is merging their Chromium work.
</li>
102 <li>Windows CE, EFL, Haiku, Palm... and others are out of tree.
</li>
103 <li><b>QtWebKit
</b> and
<b>WebKit/GTK+
</b> in tree.
</li>
106 <div class=
"handout">
107 Which ports exist and what we are focusing on... This is a introduction to the
112 <h1>Anatomy of WebKit
</h1>
114 <li>The cross platform engine
</li>
115 <li>Platform code for Fonts, Painting, Networking, Events
</li>
116 <li>Platform code for the API
</li>
117 <li>Platform layer changes a lot, like the internal Linux API
</li>
122 <h1>Improvements in the Core
</h1>
124 <li>Performance, Performance, Performance.
</li>
125 <li>JavaScript runtime is so much faster.
</li>
126 <li>DOM Access, XPath are so much faster.
</li>
127 <li>Implementation of CSS3+ and HTML5 progress.
</li>
130 <div class=
"handout">
131 At last aKademy Simon demonstrated HTML5 video features. We can demonstrate some
132 new features. This time.
136 <h1>Some examples
</h1>
138 <li>CSS3 transformation and animation
</li>
139 <li>Offline Database support
</li>
142 <!-- Cross platform competition and collaboration -->
144 <h1>Competition and Collaboration
</h1>
146 <li>WebCore/ is the actual rendering engine.
</li>
147 <li>WebKit/ is the API and where ports differentiate them.
</li>
148 <li>Ports should only compete on API and performance.
</li>
149 <li>Features might start in WebKit/ but move to WebCore.
</li>
150 <li>Examples include printing, event handling, ...
</li>
155 <h1>Printing example
</h1>
157 <li>Started in WebKit/win
</li>
158 <li>Alp made it general usable and put it into WebKit/gtk.
</li>
159 <li>Simon took the copy and put it into WebCore/platform.
</li>
160 <li>Other ports like Chromium can directly use it.
</li>
165 <h1>Handling of bugs
</h1>
167 <li>Certain bugs are in port specific code?
</li>
168 <li>Ideally it would be automatically fixed in every port.
</li>
169 <li>In practice: Watch commits, get poked by port maintainers
</li>
170 <li>In practice: Kill duplication and share in WebCore/
</li>
174 <!-- Port specific talking -->
176 <h1>DOM API for Qt
</h1>
178 <div class=
"handout">
179 Explain and demonstrate QWebElement... and explain why this is cool to have.
184 <h1>A look at Qt
4.6</h1>
188 <h1>The road to GNOME
2.28</h1>
190 <li>Regular releases.
</li>
191 <li>Make epiphany work.
</li>
192 <li>Meet a11y requirements.
</li>
193 <li>Topic for another talk by Xan, Kov and Christian
</li>
198 <!-- Contribution. How does this it work -->
200 <h1>The
101 to contribution
</h1>
202 <li>Have an itch!
</li>
203 <li>Become a comitter... Just
10 patches
</li>
204 <li>Become a reviewer... Just
100 patches
</li>
209 <div class=
"handout">
210 Small demo. From reading the CodingStyle, from reading the Contribution guideline, to filing
211 a bug report, to getting it reviewed, to getting it commited... to watching the bots.