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.
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|
> “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? 😀
Great! thanks for the share!
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.
Ben, did you checked the signal properties? it may send more arg than button action….