wiki:EFLWebKit

Version 20 (modified by afonso.costa@openbossa.org, 10 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.

Status

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/cpplint.py tool) - DONE.
  • Make typing UTF8 char possible in HTML forms - DONE.
  • Integrate changes for theme-per-page patch - DONE.
  • Support building without X - (WIP).
  • Fix issues with flash positioning (see EVE).
  • Fix crash on GMail (related to Flash).
  • Integrate plugin refactored code in WebKit/EFL.
  • Prepare WebKit|WebCore|JavaScriptCore|BuildSystem specific patches to be reviewed in WebKit Bugzilla.

Other desired features:

  • Implement proper hooks for virtual keyboard.
  • Make text_selection via mouse settable.
  • Check Gtk's way of implementing Editor commands (hashMap) called by EditorClientEfl.cpp .

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://gitorious.org/webkit-efl/webkit-efl.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.

Development

Dependencies

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:

$ ./autogen.sh --prefix=/path/to/install/directory --with-port=efl --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 irc.freenode.net.

Attachments (1)

Download all attachments as: .zip