WebKitGTK+, GTK2, GTK3

Gradient picture Gradient · Oct 30, 2013 · Viewed 8.8k times · Source

I have some difficulty to understand what WebKit, WebKitGTK, GTK are with the different versions. Here is what I have so far :

  • WebKit is a library which contains both WebKit1 and WebKit2. Which one is called with this include #include <webkit/webkit.h>?

  • WebKitGTK 1.10.2 is the last version to depend on GTK2. Is it still maintained/developped?

  • Does it always need to be supported by GTK, Qt or some other toolkit? Or would it be possible to use it alone?

Answer

Ivaldi picture Ivaldi · Oct 31, 2013

You have to distinguish between version number and api level.

  • The version number is something like 1.10.2 or 2.2.1 - and that's it, just the version number - it has nothing to do with the GTK version or api level.
  • There are two different apis: webkit (webkit/webkit.h) and webkit2 (webkit2/webkit2.h). The main difference is that webkit2 uses a multi process architecture for the rendering, javascript and plugins instead of the single process architecture of webkit.

WebKitGTK+ can be compiled against either GTK+2 or GTK+3. This will result in library filenames like libwebkitgtk-1.0.so or libwebkitgtk-3.0.so, respectively. (This has nothing to do with the version of WebKit itself.) However, the webkit2 api depends on GTK+3 and the library filename is something like libwebkit2gtk-3.0.so.

WebKitGTK+ and the other ports implement stuff like:

  • drawing ui elements (checkbox, selectbox,...)
  • dialogs (file choose, download, http auth)
  • network communications (handling dns and http)
  • ...

You would need to implement this all by yourself if you want to avoid any available webkit port.

PS: WebKitGTK+ 2.x.x does still support GTK+2