Skip to content

WebKitGTK

Pablo Saavedra edited this page Nov 9, 2021 · 7 revisions

WebKitGTK+

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. It offers WebKit’s full functionality and is useful in a wide range of systems from desktop computers to embedded systems like phones, tablets, and televisions.

When creating an image with with WebkitGTK+, take into account:

  • The package webkitgtk contains the shared libraries and the webkitgtk runtime.
  • The package webkitgtk-bin contains the MiniBrowser executable (a very basic browser built on top of the webkitgtk runtime, mainly used for testing purposes).
  • The name of the recipe is the same than the one available in oe-core (master), so you should select which version of webkitgtk you want to build in your local.conf
  • The webkitgtk recipe has several packageconfig options that you can tune. Check the source code of the recipe to see all the ones available. For example, for enabling WebGL support you can add the following to your conf/local.conf file:
PACKAGECONFIG:append:pn-webkitgtk = " webgl"
  • Add the following lines to your conf/local.conf file (for building the X11 backend of WebKitGTK+) :
DISTRO_FEATURES:append = " opengl x11"
IMAGE_INSTALL:append = " webkitgtk-bin"
  • Then build the X11 image
bitbake core-image-sato
  • Run MiniBrowser from an X terminal.

About the recipe of webkitgtk in oe-core

The oe-core repository (since jethro release) already includes a recipe for WebKit2GTK+ with the very same name than the one included here.

The purpose of this layer is:

  • To ship a WPE recipe.
  • To provide WebKit2GTK+ recipes newer or different than the ones included in oe-core. For example, people with releases older than jethro can use this layer for easily building WebKit2GTK+. And people using jethro can use this layer to get more recent WebKit2GTK+ recipes.

Using the same name for the webkitgtk recipe than in oe-core is done on purpose. The idea is that you can select between the webkitgtk recipe from oe-core or from this layer by selecting the version with the variable PREFERRED_VERSION_webkitgtk in conf/local.conf.

If you don't want to use or experiment with the webkitgtk recipes from this layer, then the best thing to do is to simply ignore this layer and don't try to use it.

Building an image with WebKitGTK+ for the RPi

Currently the only supported way to compile WebKitGTK+ for the RPi is using Mesa VC4 driver. The instructions are similar to building WPE, with the following local.conf to build with X11:

MACHINE = "raspberrypi3"
MACHINE_FEATURES_append = " vc4graphics"
GPU_MEM_256 = "128"
GPU_MEM_512 = "196"
GPU_MEM_1024 = "396"
EXTRA_IMAGE_FEATURES = "debug-tweaks"
IMAGE_FEATURES:append = " ssh-server-dropbear hwcodecs"
DISTRO_FEATURES:append = " opengl x11"
IMAGE_INSTALL:append = " webkitgtk-bin cog"
PACKAGECONFIG:pn-cog = "webkitgtk"

Then, run bitbake core-image-sato

Note: Use DISTRO_FEATURES_append = " opengl wayland" and run bitbake core-image-weston to build for Wayland instead.