Version 17 (modified by, 15 years ago) (diff)


EFL Port of WebKit

WebKit is an open source web browser engine. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE. As part of KDE framework KHTML was based on Qt but during their porting efforts Apple's engineers made WebKit toolkit independent.

About EFL

The Enlightenment Foundation Libraries (EFL for short) are a set of graphical libraries intended to provide easy-to-use resources for building rich user interfaces based applications. It is the core of the Enlightenment (E!) window environment. As mentioned in E!'s official web site, "the libraries are meant to be portable and optimized to be functional even on devices such as mobile devices". Its core components are:

  • Evas: Highly optimized raster canvas
  • Edje: Declarative UI library
  • Ecore: Event loop and utility classes
  • Eina: Basic data types
  • Embryo: Scripting

About the port

WebKit/EFL is a project aiming at porting WebKit to the Enlightenment Foundation Libraries, and as the developers also work on the Qt port, we try to keep the implementation as close as possible to that of QtWebKit.


Port is being developed and maintained by INdT and it has just been released the 0.1 version (Jun/16/2009). It features:

  • Embedding API mostly consistent w/ QtWebKit's.
  • Basic browsing functionalities: back, forward, reload, stop.
  • Session history support.
  • Hook up for new_window and global_history callbacks.
  • Glib mainloop integration (needed for flash plugin support).
  • Support to flash plugin (require X backend).
  • True zooming.
  • Theme support per WebView.

Features and bugfixes planned for 0.2:

  • Support <video> (--disable-video is currently required for building) - DONE.
  • Improve theme support: Crash when no theme file is set - DONE.
  • Fix randon crashes related to einastringshared in CursorEfl.cpp - DONE.
  • Fix code style issue throughout the code (use WebKitTools/Scripts/modules/ tool) - DONE.
  • Support building without X.
  • Fix issues with flash positioning (see EVE).
  • Fix crash on GMail (related to Flash).
  • Integrate changes for theme-per-page patch.
  • Integrate plugin refactored code in WebKit/EFL.
  • Prepare WebKit|WebCore|JavaScriptCore|BuildSystem specific patches to be reviewed in WebKit Bugzilla.

Other desired features:

  • Make typing UTF8 char possible in HTML forms.
  • Implement proper hooks for virtual keyboard.
  • Make text_selection via mouse settable.

NOTE: For all future releases sync with svn/master is expected.

Getting the source

As the port is not upstreamed, one can not get the source from official WebKit repository. Instead, we are hosting our development in the Gitorious server at thie stage of development. See also WebKit/EFL project homepage there.

$ git clone git:// webkit
$ cd webkit
$ git checkout origin/master
$ git checkout -b < branch name > # e.g. webkit-efl

NOTE: We try to keep it in sync with WebKit trunk as much as possible, though it might be a week or two behind.



Below is a list of Debian package names you will need to install.

  • libicu-dev
  • libxslt-dev
  • libcurl3
  • libsqlite3-dev
  • gperf
  • bison
  • flex
  • libjpeg62-dev
  • libpng12-dev
  • libxt-dev
  • autotools-dev
  • libfontconfig1-dev
  • libcairo2-dev
  • libfreetype6-dev
  • libglib2.0-dev (for flash support)

Additionally, the EFL specific packages (not officially debianized) have to be installed.

  • eina
  • evas
  • ecore
  • edje

Find them here or build it from the source.

Build and Install

Like Gtk+ port, EFL port can also be built using autotools (autoconf, automake, libtool). This will build a demo browser that uses the EFL port which can be run using the following commands:

$ ./ --prefix=/path/to/install/directory --disable-video
$ make
$ sudo make install
$ Programs/EWebLauncher <url>

OR through webkit's build instructure scripts:

WEBKITOUTPUTDIR=<path_to_objdir> WebKitInstallationPrefix=/path/to/install/directory WebKitTools/Scripts/build-webkit --efl --makeargs=<-s -jXX> --no-video
WEBKITOUTPUTDIR=<path_to_objdir> WebKitTools/Scripts/run-launcher --efl
sudo make install -C <path_to_objdir>/WebKitBuild

Questions, feedback

If you have questions please join #webkit-efl on

Attachments (1)

Download all attachments as: .zip