XWalk WebView patchset, README and LICENSE files.
[platform/framework/web/xwalk_webview.git] / README.txt
1 Intel's Chromium EFL WebView Release
2 ====================================
3
4 Version 0.1, 08/2013
5
6 1) Introduction
7
8 Today we're releasing a patchset on top of Chromium 28.0.1500.36 that enables you to use Chromium as an Evas_Object inside
9 EFL applications.
10
11 2) License
12
13 Please see LICENSE.txt.
14
15 3) Architectural Overview
16
17 The EFL WebView is based on Chromium's WebContentView architecture. In the Chromium codebase, 4 implementations of the
18 WebContentView class exist: Win, Mac, Gtk+, Aura. It is the basic abstraction of a UI toolkit-independent control that
19 renders web pages. Our patch set adds an additional implementation that uses and complies with concepts from the EFL
20 toolkit. So, in addition to Chromium's implementations we added WebContentsViewEfl. The WebContentsView architecture
21 requires a related container, for our case this is RenderWidgetHostViewEfl.
22
23 Additional integrations with EFL were required, such as implementing a message pump based on the EFL event loop (see
24 efl_webview/lib/message_pump_xwalk.h), and modifying Chromium's gyp-based build files to link against the EFL toolkit.
25
26 The EFL WebView was designed as a library that complies with EFL concepts. As such, when developing an application based
27 on the Chromium EFL WebView, you can just link against our new library and use the provided API header.
28
29 The EFL WebView provides an executable launcher that runs a Chromium renderer process which is used as soon as the EFL
30 WebView is used in an EFL application.
31
32 3) Instructions
33
34   1. Check out Chromium using git or svn equivalent to the following revision:
35      http://src.chromium.org/svn/branches/1500/src@204086
36      (Instructions at http://dev.chromium.org/developers/how-tos/get-the-code )
37   2. Make sure you can build Chromium from upstream, ideally using make, not ninja.
38   3. Apply the files from the patchset/* directory:
39      $ cd ${CHROMIUM_CHECKOUT_DIR}/src
40      $ git apply ${WEBVIEW_DELIVERY_DIR}/patchset/*.patch
41   4. In order to build the example code, run
42        $ make efl_webview_example
43   5. In the out/Debug directory, run
44        $ ./efl_webview_example
45      to run the example application.
46
47 4) API
48
49 After applying the patch set, the API header, including Doxygen-style documentation is found in:
50 efl_webview/public/*, especially efl_webview/public/xwalk_view.h
51
52 5) Example application
53
54 The documented code for the example application that is built in step 4 of the build instructions is found in
55 efl_webview/examples/main.cc
56
57 6) Known Issues
58
59 - Lifetime of the host application threads:
60   In Chromium architecture, the UI process spins a number of support threads whose purpose is to serve requests coming
61   from the renderer process. As soon as the xwalk_view is used, these threads are created and keep running for the
62   lifetime of the application that uses the control. This lifetime could be optimized so that they are stopped when the
63   control is not used any more.
64 - EFL event integration
65   Care was taken when it comes to implementing full keyboard and mouse event support. However, there might be remaining
66   issues, especially with regards to touch events.
67 - EFL theming integration
68   Integration with Edje to control the rendering of form controls still needs to be developed. As of now, Chromium's
69   default theming is always used.
70 - Video playback support
71   Chromium uses its own libffmpegsumo.so library for video playback. Currently, it always expects this library to be
72   located in the same directory as the executable being run.
73 - X window update on Tizen 2.1
74   On Tizen 2.1 mobile devices there is an issue with updating xwalk_view X window after GPU process swaps the buffers:
75   X window is not updated in time, heavily affecting the user experience. At the moment, we have a temporary work around
76   (forced X window update) however the correct solution should be found in future.
77 - OpenGL backends
78   By default, the Chromium code first tries to load a Desktop (GLX) implementation for it to use for accelerated
79   compositing. While this works fine on the desktop, Tizen 2.1 Mobile only provides an EGL implementation. This means
80   that in order to properly run applications on a device it is necessary to either pass "--use-gl=egl" to them or adjust
81   the GL backend loading code for EGL to be preferred.
82   The Tizen 2.1 emulator's EGL implementation; using Chromium's libosmesa.so and passing "--use-gl=osmesa" to
83   applications is advised.
84
85 7) Authors
86
87 People who have contributed to this release, in alphabetical order:
88
89 Bhaumik, Rijubrata <rijubrata.bhaumik@intel.com>
90 Hwang, Dongseong <dongseong.hwang@intel.com>
91 Kubo Da Costa, Raphael <raphael.kubo.da.costa@intel.com>
92 Pozdnyakov, Mikhail <mikhail.pozdnyakov@intel.com>
93 Röttsches, Dominik <dominik.rottsches@intel.com>
94 Shalamov, Alexander <alexander.shalamov@intel.com>