Changes between Version 20 and Version 21 of EFLWebKit


Ignore:
Timestamp:
04/27/10 17:33:52 (3 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.