WebKit2 GTK+ MiniBrowser ported to GTK+ API!

MiniBrowser is a small web browser application for testing WebKit2. MiniBrowser for the GTK+ port has been working for some time now, but it was implemented using the C-based WebKit2 API. WebKitGTK+ 1.7.1 introduced an initial high level GTK+ API for WebKit2 more similar to the current WebKit1 GTK+ API. This week, Igalia‘s WebKit team started to port the MiniBrowser code to use the new GTK+ API.

MiniBrowser running
MiniBrowser running

This new GTK+ API is far from complete compared to the WebKit1 API, but it’s already possible to implement a small application with basic features, and we have plans to create a webkit2 branch for epiphany soon. API is already documented in the code, but the html generation is not available yet. We are already working on it so that WebKitGTK+ 1.7.2 will generate the API documentation when compiled with –enable-gtk-doc and –enable-webkit2 and it will be available on the WebKitGTK+ website too.

Thanks to the multiprocess architecture, WebKit2GTK+ solves the problem of using flash (or any other plugin using GTK+2) with GTK+3. The UI process depends unconditonally on GTK+3 and the plugin process is always built with GTK+2. And of course, flash will never crash or block your web browser. Plugins are broken in WebKitGTK+ 1.7.1 due to a bug that has already been fixed, so in order to try it out you need to either wait until 1.7.2 is released or build WebKit from current git master.

MiniBrowser showing a youtube video
MiniBrowser showing a youtube video

8 comments

  1. > “and we have plans to create a webkit2 branch for epiphany soon”

    Please, when it’s starting to be usable, do blog about it. I’d love to jhbuild it and report a few bugs. 🙂

    Am I dreaming too much if I imagine the Gnome 3.4 release notes mentioning that Epiphany now uses WebKit2? 😀

  2. I put together a little browser with Webkit, Gtk+ and Glade, in C. It works and it’s small (20K compiled + 14K ui file), but there’s one bug that’s got me stumped:

    Whenever I try to get the currently selected notebook page (aka, tab; at the moment, I’ve not implemented a way to open more tabs) from an “icon-release” signal callback, it segfaults. There aren’t any compiler or run-time warnings, and the same exact callback is used for a button action without a segfault…it’s perplexing.

Leave a Reply

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

*