Between September 22nd and September 24th the Adobe WebKit team in Bucharest organized and hosted an European WebKit hackathon.
Why a WebKit hackathon?
And an European one for that, you might ask. Well, there are a couple of reasons, having to do with both building code and building communities.
Open source projects, more than “closed” projects, need to have at their core a community of people that know, understand and respect each other – technically and, to some extent, personally, too. While it’s possible to meet and be part of the community via the Internet, sometimes direct, face to face interaction can go a long way in helping to understand each other’s position, interests and opinions as well as their skills and areas of expertise.
As such, a WebKit hackathon proved to be the perfect environment for contributing to WebKit – both in terms of code but also in terms of better understanding the contributions and interests of different contributing entities, be it companies or individuals. Hacking sessions were interspersed with presentations and talks about different on-going efforts – ranging from “administrative” tasks to ongoing specification efforts and less common use-cases for WebKit.
With more than 25 people expressing interest in the hackathon, in the end 20 people attended the event – a mix of developers from Intel, Samsung USA, Igalia (Spain) and the University of Szeged (Hungary) and Adobe employees from US and Romania.
The first day debuted with presentations by each team about their work in WebKit and their areas of interest for the rest of the hackathon. In alphabetical order, here’s a brief description of each of these teams.
Adobe‘s current contributions are mainly around new CSS features and their implementation in WebKit – things like CSS Regions and Exclusions, CSS compositing, CSS filters and CSS transforms. There’s also some work around the Chromium Embedding Framework.
Igalia is a company based in Spain and the main contributors/maintainers of the GTK port, their main commercial work being consulting and helping other companies embed WebKitGTK in their products. They shared some interesting insights regarding WebKit development in China and India – apparently many companies are using WebKit and hacking on it and fixing bugs, but close to none contribute back to the trunk.
Samsung US is the other important contributor to the EFL port. They also have some interesting contributions around WebCL, working on both the spec and the implementation in WebKit. Igor showed us some nifty bits and pieces but apparently the best is yet to be announced.
So what did we hack?
Once we got to know each other a little bit better through the aforementioned presentations, there came the tricky part of deciding what to hack on for the next two days. A number of topics were proposed and in the end three groups were created, focused around SVG & graphics, enabling CSS Regions on other ports and Web Inspector. The better part of the next two days was a mix of hacking, discussing approaches and ideas for the bugs we started on, a more in-depth look at Qt gardening and of course, fun and beer (in the evening!).
Saturday afternoon, before heading for a walk in the city, we had a demo session where everyone had the opportunity to present their work after the hackathon. Here are the highlights of this session:
SVG & graphics
Raul Hudea worked on WebKit bug #96381, enabling
-webkit-clip-path to reference fragments inside an SVG document. Andrei Bucur did some similar work, enabling use of gradients defined in an SVG document as CSS masks (think
-webkit-mask). Dirk Schultze decided to try something different (non-SVG 🙂 ) and worked on a prototype implementation for the path object in the upcoming canvas specification.
Cmd (Ctrl) + / keyboard shortcut.
CSS Regions on other ports
The team spent some time on figuring out exactly how to enable and disable features both at compile time and at runtime on the different ports. The good news is that on Qt, GTK and EFL with Regions enabled, most of the regions tests already pass. There are still issues around WebKit vs. WebKit 2 as different ports ship different flavors of WebKit by default. They also set up and configured a VM that can compile and run the Qt, GTK and EFL ports with Regions enabled – very useful for testing patches before hitting the bots.
Working somehow outside of the established teams, Horia Olaru prototyped an extension to the
document DOM API, similar to
document.elementFromPoint() but that actually returns all the elements at the given position, not just the top-most in z-order. Alex Chiculita added the last finishing touches to the CSS FilterLab while also landing a WebKit patch and helping other hackers with his WebKit experience and reviews.
This is the first European WebKit hackathon that Adobe has sponsored. Besides the actual hacking, it was good to see the amount of interaction, learning new things about others, and drafting common lines of actions. Going forward, we’re looking forward to repeating this event, hopefully with even more contributors from more companies interested in WebKit.
In the meanwhile, if you want to make the web better, and would fancy spending a couple of days with web gurus of all stripes in Beijing or Paris, be sure to check out the Test the Web Forward events.