3. ewebkit
webkit based rendering engine for EFL.
TIZEN(2.x) uses ewebkit.
current version of ewebkit : 1.11
WebKit2
multi process architecture.
4. ewebkit - features
- Many HTML5 features
- INDEXED DATABASE(X)
- Accelerated compositing
- Viewport meta tag
- Fixed Layout
- Touch event
- UI Side compositing
6. EFL(evas, ecore, …)
ewebkit vs elm_web
Elementary
ewebkit
● elm_web is optional winset of Elementary
○ ./autogen.sh --with-elementary-web-backend=ewebkit2
● TIZEN does not use elm_web yet.
elm_web
use
EFL(evas, ecore, …)
Elementary
ewebkit
use
<open source> <TIZEN>
7. How to build/install ewebkit
# Download source code
wget http://download.enlightenment.org/rel/libs/webkit-efl/ewebkit-1.11.0.tar.xz
tar xvJf ewebkit-1.11.0.tar.xz # extract from archieve
cd ewebkit # move to the root directory of souce code.
mkdir build && cd build
cmake .. -DPORT=Efl -DENABLE_BATTERY_STATUS=OFF -
DCMAKE_INSTALL_PREFIX=/usr/elocal
make -j8 && sudo make install
9. Major objects
● ewk_view (evas object)
○ view object to load and draw web contents.
○ based on smart object.
● Ewk_Context (Ewk_Object)
○ Instance to represent and control processes.
○ Each context only creates each web process.
● Ewk_Page_Group (Ewk_Object)
○ Instance to represent and control session.
● Ewk_Settings
11. Ewk_Object
● Almost ewk objects are based on Ewk_Object
● Ewk_Object is just simple smart pointer.
● There are two APIs to control the life of objects
○ ewk_object_ref
○ ewk_object_unref
14. Internals
Read How browsers work (korean)
webcore
javascript core
EFL, cairo, libsoup, gstreamer, ...
ewebkit
html,
css, js
DOM
Tree
Render
Tree
Render
Layer
Tree
Graphics
Layer Tree
Page
18. Internals - Coordinated Graphics
● WebProcess draws the render tree.
○ Into not one surface but multiple layers.
(Accelerated compositing)
○ Each layers also consist of multiple tiles.
(Tiled BackingStore)
○ Tile memory and layer states are shared between
UIProcess and WebProcess.
● UIProcess composite layers.(UI side compositing)
○ UIProcess ‘can’ scroll/scale the layers.
19. ewebkit extension
ewebkit-extension is simple interface to inject user’
s shared objects to WebProcess for the extension
such as javascript binding.
Plan to add it into
release 1.13