Version 14 (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.
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 building without X.
- Support <video> (--disable-video is currently required for building).
- Fix issues with flash positioning (see EVE).
- Improve theme support: Crash when no theme file is set.
- Fix randon crashes related to einastringshared in CursorEfl.cpp .
- Fix crash on GMail (related to Flash).
- Integrate changes for theme-per-page patch.
- Prepare WebKit|WebCore|JavaScriptCore|BuildSystem specific patches to be reviewed in WebKit Bugzilla.
- Investigate libsoup network backend (?)
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 --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)
-
ewk_frame_tutorial.pdf
(465.3 KB
) - added by 12 years ago.
Ewk_frame tutorial
Download all attachments as: .zip