Changes between Version 20 and Version 21 of EFLWebKit


Ignore:
Timestamp:
Apr 27, 2010 5:33:52 PM (10 years ago)
Author:
barbieri@profusion.mobi
Comment:

update to reflect current situation

Legend:

Unmodified
Added
Removed
Modified
  • EFLWebKit

    v20 v21  
    11= EFL Port of WebKit =
    2 
    3 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.
    42
    53== About EFL ==
    64
    7 The [http://en.wikipedia.org/wiki/Enlightenment_Foundation_Libraries 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 [http://enlightenment.org/p.php?p=sponsors&l=en 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:
     5The [http://www.enlightenment.org 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 [http://www.enlightenment.org/ Enlightenment] (E17) desktop shell and window manager. As mentioned in Enlightenment'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:
    86
    9     * Evas: Highly optimized raster canvas
    10     * Edje: Declarative UI library
    11     * Ecore: Event loop and utility classes
     7    * Evas: Highly optimized raster canvas, supports software or hardware accelerated rendering
     8    * Edje: Declarative UI library, provides rich theme
     9    * Ecore: Event loop and utility classes to interface with system (X, DirectFB, Cocoa...)
    1210    * Eina: Basic data types
    13     * Embryo: Scripting
    1411
    1512== About the port ==
    1613
    17 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.
     14WebKit/EFL is a project aiming at porting WebKit to the Enlightenment Foundation Libraries. The port is based on [BuildingGtk Gtk's] as we currently use Cairo for rendering and !LibSoup for networking, just as they do.
    1815
    1916=== Status ===
    2017
    21 Port is being developed and maintained by [http://www.openbossa.org INdT] and it has just been released the [http://tonikitoo.blogspot.com/2009/06/webkitefl-01-released.html 0.1 version (Jun/16/2009)]. It features:
     18Port is being developed and maintained by [http://profusion.mobi ProFUSION] and [http://samsung.com Samsung]. An early version was started by [http://openbossa.org INdT/OpenBossa], but it was changed significantly before inclusion in SVN (See their initial announcement at [http://tonikitoo.blogspot.com/2009/06/webkitefl-01-released.html 0.1 version (Jun/16/2009)]). Current version is quite complete, featuring:
    2219
    23  * Embedding API mostly consistent w/ QtWebKit's.
    24  * Basic browsing functionalities: back, forward, reload, stop.
    25  * Session history support.
    26  * Hook up for new_window and global_history callbacks.
    27  * Glib mainloop integration (needed for flash plugin support).
    28  * Support to flash plugin (require X backend).
    29  * True zooming.
    30  * Theme support per WebView.
     20 * Embedding API mostly consistent w/ Gtk, but following EFL naming scheme and conventions (such as usage of Evas Smart Objects and its callbacks);
     21 * Theme support per Web Frame;
     22 * Most of HTML5 features (video is missing);
     23 * Various delegates to allow full customization of Pop-up and Context menus;
     24 * Most of page settings (auto load images, disable flash or javascript, etc);
     25 * Override-able input handling, allowing custom mouse and keyboard behavior;
     26 * Override-able backing store, allows extensions such as tiled backing store or off screen rendering.
    3127
    32 Features and bugfixes planned for 0.2:
    33 
    34  * Support <video> (--disable-video is currently required for building) - DONE.
    35  * Improve theme support: Crash when no theme file is set - DONE.
    36  * Fix randon crashes related to einastringshared in CursorEfl.cpp - DONE.
    37  * Fix code style issue throughout the code (use WebKitTools/Scripts/modules/cpplint.py tool) - DONE.
    38  * Make typing UTF8 char possible in HTML forms - DONE.
    39  * Integrate changes for theme-per-page patch - DONE.
    40  * Support building without X - (WIP).
    41  * Fix issues with flash positioning (see EVE).
    42  * Fix crash on GMail (related to Flash).
    43  * Integrate plugin refactored code in WebKit/EFL.
    44  * Prepare WebKit|WebCore|JavaScriptCore|BuildSystem specific patches to be reviewed in WebKit Bugzilla.
     28Future plans:
     29 * NSAPI plugins, using windowless systems for integration into Evas;
     30 * HTML5 feature completion (video, geolocation);
     31 * Improve API coverage, exposing more features such as the Editor and Inspector clients;
     32 * Expose DOM;
     33 * WebKit2 support.
    4534
    4635Other desired features:
     36 * Elementary widget wrapping up ewk_view into a convenient widget, providing default implementation for delegates;
     37 * Remove strict X11 dependency, allowing DirectFB and FB at least;
     38 * Less dependency on GNOME technologies, maybe remove Cairo and !LibSoup.
    4739
    48  * Implement proper hooks for virtual keyboard.
    49  * Make text_selection via mouse settable.
    50  * Check Gtk's way of implementing Editor commands (hashMap) called by EditorClientEfl.cpp .
    51 
    52 
    53 NOTE: For all future releases sync with svn/master is expected.
    5440
    5541== Getting the source ==
    5642
    57 As the port is not upstreamed, one can not get the source from official [http://webkit.org/building/checkout.html WebKit repository]. Instead, we are hosting our development in the [http://gitorious.org Gitorious] server at thie stage of development. See also [http://gitorious.org/webkit-efl WebKit/EFL project homepage] there.
     43The port is being uploaded to official SVN. Right now all source files are merged, but build system is missing. Due discussions at webkit-devel, the chosen build system (CMake) might turn into the proposed "official", so discussion is taking place at bug [https://bugs.webkit.org/show_bug.cgi?id=37945 #37945 (CMake buildsystem)]
    5844
    59 {{{
    60 $ git clone git://gitorious.org/webkit-efl/webkit-efl.git webkit
    61 $ cd webkit
    62 $ git checkout origin/master
    63 $ git checkout -b < branch name > # e.g. webkit-efl
    64 }}}
     45''TODO: merge cmake into trunk and add instructions here''
    6546
    66 NOTE: We try to keep it in sync with WebKit trunk as much as possible, though it might be a week or two behind.
    6747
    6848== Development ==
     
    7454 * libicu-dev
    7555 * libxslt-dev
    76  * libcurl3
    7756 * libsqlite3-dev
    7857 * gperf
    7958 * bison
    8059 * flex
    81  * libjpeg62-dev
    82  * libpng12-dev
     60 * libjpeg62-dev (newer libjpeg may be used as well)
     61 * libpng12-dev (newer libpng may be used as well)
    8362 * libxt-dev
    84  * autotools-dev
    8563 * libfontconfig1-dev
    8664 * libcairo2-dev
    8765 * libfreetype6-dev
    88  * libglib2.0-dev (for flash support)
     66 * libglib2.0-dev
     67 * libsoup2.4-dev (newer libsoup may be used as well)
     68 * cmake
    8969
    90 Additionally, the EFL specific packages (not officially debianized) have to be installed.
     70Additionally, the EFL specific packages (not officially release yet, build directly from SVN!) have to be installed.
    9171
    9272 * eina
     73 * eet (required by edje in evas, compile it before evas!)
    9374 * evas
    94  * ecore
     75 * ecore (with ecore-x support)
    9576 * edje
     77 * embryo (required by edje)
    9678
    97 Find them [http://packages.enlightenment.org/ here] or build it [https://svn.enlightenment.org/svn/e/trunk/ from the source].
     79See http://svn.enlightenment.org/.
    9880
    9981== Build and Install ==
    100 
    101 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:
    102 
    103 {{{
    104 $ ./autogen.sh --prefix=/path/to/install/directory --with-port=efl --disable-video
    105 $ make
    106 $ sudo make install
    107 $ Programs/EWebLauncher <url>
    108 }}}
    109 
    110 OR through webkit's build instructure scripts:
    111 
    112 {{{
    113 WEBKITOUTPUTDIR=<path_to_objdir> WebKitInstallationPrefix=/path/to/install/directory WebKitTools/Scripts/build-webkit --efl --makeargs='-s -jXX' --no-video
    114 WEBKITOUTPUTDIR=<path_to_objdir> WebKitTools/Scripts/run-launcher --efl
    115 sudo make install -C <path_to_objdir>/WebKitBuild
    116 }}}
     82''TODO: merge cmake into trunk and add instructions here''
    11783
    11884== Questions, feedback ==
    11985
    120 If you have questions please join #webkit-efl on irc.freenode.net.
     86If you have questions please join #webkit or #edevelop on irc.freenode.net. You may ask k-s, antognolli, acidx, lucasdemarchi, rakuko or other developer there.