2012 WebKitGTK+ hackfest

After four years we all know the hackfest is wearing and interesting at the same time, long hacking days is the rule here. This year we got people attending from more companies and different parts of the world than ever: RedHat, Collabora, Intel, Samsung, Adobe and of course Igalia organizing the event.
As usual we have spent four days at Igalia office in A Coruña working in multiple topics: Epiphany (new designs, solve pending issues for 3.8), release last stable version, WebKit2 support and API development for 3.8, graphics (2D canvas acceleration, threaded graphics coordination), compilation performance, JavaScript memory usage, a11y bug fixing, GStreamer 1.0 integration, CSSRegions and CSSExclusions support, libsoup bug fixing, etc. We talked about roadmaps, future features for the port and for the GNOME browser, which would help to define the work for the next year.
I would like to thank everyone for attending and working so hard to keep making this WebKit port successful these years. And also the sponsors who make the event happen, if we continue growing next year maybe we would need a bigger venue.


Status update …

Long time without blogging, you can check my last post was about WebKit meeting in 2011, wow. The truth is that I wanted to wait until I had a list of points big enough for a dull post, it seems now it is the perfect moment. Sorry about it Internet.
Regarding hacking and technical stuff:
  •  In 2011, when I wrote my last post I was working on WebKit2 stuff, I was helping to create the initial parts of the GTK+ code. Our goal was to prove it was the best way to spend our time if we wanted to improve graphical result, and I’m glad to say we were right. If you test Epiphany WebKit2 it is easy you check the differences. Now better developers than me are taking care of that work and we are getting a good multiprocess engine.
WebGL game in Epiphany with WebKit2
  • We started working in the accelerated compositing for WebKitGTK+, after some initial tests and decisions nowadays we have a fairly complete solution with TextureMapper. The implementation includes a fallback cairo backend and the OpenGL one, it even works in WebKit2. We are trying to push this work as much as we can in order to have it integrated as the GNOME 3.6 graphical solution. WebGL is also working in both versions of the API and even video acceleration is among our goals for this release.
  • We added WebKit2 test support and we are now passing 27000 tests, that is an amazing figure. Phil made a great effort to rationalize the use of our bots and we have now a good solution.
  • We released WebKitGTK 1.8 for GNOME 3.4 and we started the 1.9 cycle. And after this time it is still a painful task to do, good thing that now Carlos takes care to keep dist-check working.
  • We started helping with cairo-gl multisampling compositor, our plan is WebKit integration, this library and last changes in accelerated compositing are good foundations to create a great user experience in any device. There has been good feedback from the WebKitEFL people. They are using this backend in Tizen browser with very good results.
With regard to community and conferences some things also happened:
  • Awesome Martin and me talked in the last desktop summit (Berlin) about WebKit2GTK+ current situation of the engine and future work. We introduced some work we have done this last year, I think we get the picture mostly right.
  • I attended another WebKitGTK+ hackfest in A Coruña, it was great to meet old and new collaborators of the project. We spent a lot of time with accelerated compositing at that point.
  • Last year some guys decided to nominate me as a WebKit reviewer and other nice guys backed the proposal.
  • In 2012 I had the opportunity to attend the last WebKit meeting in Cupertino, it is really amazing how many interesting things are being developed around the technology and the possibilities we have in the future for a platform like this. I like San Francisco and it is always great to come back every year.

Also in the last year we celebrated Igalia’s 10th anniversary, the truth is that we started working on the project in the beginning of 2001, so I have been working here for more than 11 years already. We use the legal date to celebrate it for technical reasons. It has been a very long trip already, and I feel I’ve changed a lot because all the experiences we had, good and bad. Best thing is that I was able to work in a challenging project with great people, and learn a lot from them.

I think that was all for the wrap-up, probably I’m missing something someone will remind me, sorry about it Internet. I almost forgot, another interesting experience was the time off I had in the beginning of this year, for a little bit more than one month, it was a good way to celebrate the 10 years working.

The 3.6 release is going to bring the WebKit2 support and we will try to have Epiphany integration ready at that point, that would close a great development cycle. I’ll try to blog more from now on and give more information about this (/me smiles), probably explaining some of that work more in detail would make a lot of sense.

By the way, I’ll attend GUADEC this year again, see you there.


2011 WebKit contributors meeting

On April several developers from our team had the chance to attend the WebKit contributors meeting in Cupertino, I’ve spent a couple of more days in San Francisco to take advantage of the long trip and spend some time hacking with Martin and Xan.

WebKit meeting group photo

It is always a good moment to catch up with the people in the WebKit community and think about your position and motivation in the project. I would like to thank the Apple team for making it happen. We talked about WebKit2, not all the decisions are made and things like C API could change its design in the future, stay tuned. We are pushing WebKit2GTK+ and now it is more complete and it is easier to contribute to. We even have landed the test runner patch, and now running tests is possible.

We also did some hacking, fixed some issues in WebKitGTK and prepared 1.4.0 release, the new stable release that includes most of the work we have done the last year. All the tests that are passing now have made this new stable release a better library, it is easy to realize about it after spending some time using the browser. It is clear that software needs taking care of the small details, if you want someone to use it, and that takes time and effort. Our team in Igalia has made a good work creating the best WebKitGTK+ release so far. We have come from a big file with skipped tests to more than 22.000 tests passed and that is a huge difference that the final user can check.

I hope more people can enjoy the software and contribute to the code, this is one of the reasons free software rocks.

WebKit2 MiniBrowser for the GTK+ port running!

After some months of cleaning, fixing and landing all the required patches (some provided by Motorola devs), yesterday we landed the last one adding the shared memory support, so you can safely download and compile WebKit2 with GTK+ using the trunk of the WebKit svn. Just add –enable-webkit2 to the compilation configuration of your choice and you’ll get a small MiniBrowser implemented with WebKit2 C API.

WebKit2 MiniBrowser

Basic feature of this new API is that it uses a split process architecture, the UI is separated from the web content in a different process. It means a lot of pros and some cons, currently at Igalia we are ready to face the cons so we can get all the pros, creating more stable and responsive applications using the port. Our plan is to add the complete support and make Epiphany work with it at some point.

We are also adding WebKitTestRunner support which will help a lot with the development. Besides the C API we are implementing a GTK+ friendly API, basically we are using the WebKit1 API over the WebKit2 C API, so you can even test it with the GtkLauncher and your own GNOME application easily.

Of course we are not going to forget about all the gardening work we are doing, maintaining, releasing and improving the core GTK+ port.

The code and APIs are still development status, there is still a lot of work to do, so just use them for testing purposes, this is just the initial step and we hope after this a lot of people can contribute to make the port rock even more.