WebKitGTK+ Hackfest 2010

Like last year around these dates, last week some of the WebKitGTK+ hackers gathered in the Igalia offices to spend a few days hacking the good hack, eating tortilla and playing Street Fighter II.

Others have already blogged about the event (Mario, Gustavo, Alex, Diego in multiple occasions eh…) in some detail, so I’ll just try to give some extra information about some of the things that I did.

JIT + Oprofile

One of the few negative side effects of the not-so-recently acquired JIT superpowers of JavaScriptCore is that JIT-generated code does not play very well with the tools we use everyday to debug and improve our code: gdb will have no idea of the name of the chunks of generated code it passes through (since they have none), and will print something unhelpful like “#9 ??”, profile tools like oprofile and sysprof will have exactly the same problem, so you’ll be unable to know which, if any, of the generated code is the culprit of excessive CPU usage, valgrind does not expect executable code to modify itself at runtime, and will freak out and crash unless instructed to not do so, etc. Fortunately some of these problems have solutions, so I spent the beginning of the hackfest reworking (to please the Reviewer gods) a beautiful patch started some time ago by Holger Freyther and the wizards of the University of Szeged to instruct oprofile about our JIT maneuvers. With this in place the tools is able to know the context of the JIT memory chunks it goes through, and is able to go from some useless complains about anonymous memory ranges to printing something like:

141       0.1910  8581.jo   <jit-func>:fannkuch[tests/sunspider-0.9/access-fannkuch.js:5-62]

Nice!

about:plugins

Another topic where I spent a few days is the long struggle to resurrect “about:plugins” in Epiphany. While Dan was busy kicking libsoup into shape so that we can implement about: URLs in a non-terrible way, I worked on adding the APIs in WebKitGTK+ that the browser will eventually use to fetch the plugin data. A couple of patches (here and here) have already landed, and we can now query WebKit for all the plugins it has loaded in the session, ask information about them, and even disable and enable them at runtime. Because seeing is believing you can see a hacky implementation of the about page that I have implemented locally:

Rest assured, this will look nicer (and will have more data and features) when it finally lands upstream!

Tradition

It was of course great to see everyone again, both colleagues from Igalia and all the other hackers, and I hope we’ll be able to repeat the event again next year. If we manage to do it a third time this would pretty much become an ancient tradition of the GNOME community as far as these things go. Thanks to all the contributors and sponsors (Igalia, Collabora and the GNOME foundation) and until next time.

This entry was posted in Blogroll, General, webkit. Bookmark the permalink.

6 Responses to WebKitGTK+ Hackfest 2010

  1. Pingback: WebKitGTK+ Hackfest 2010Iocane powder | 9nd.pl

  2. Pingback: Tweets that mention Iocane powder » Blog Archive » WebKitGTK+ Hackfest 2010 -- Topsy.com

  3. antistress says:

    Thanks for all this work :-)

    BTW, thanks to the new GNOME theme, users can now record with Epiphany !
    https://bugzilla.gnome.org/show_bug.cgi?id=637031

    Moreover this icon sgould not be the most prominent on the toolbar (due to its color). For instance Firefox puts a slant on the <- icon

  4. antistress says:

    (Having this big red button goes against the priority rule in the “text besides icon” system which currently emphasises the <- icon among others by showing its label)

  5. hron84 says:

    Don’t forget define about: pages with utf8 encoding. DivX plugin seems requires it.

  6. Pingback: Strong Please Note

Comments are closed.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>