LGTM. Kudos for the detailed description.
On 19-11-2013 14:44, Menard, Alexis wrote:
LGTM.
Software Engineer @
Intel Open Source Technology Center
On Nov 19, 2013, at 9:31 AM, Kenneth Rohde Christiansen
<[email protected]<mailto:[email protected]>> wrote:
LGTM. Very nice detailed description of the various steps.
Kenneth
On Mon, Nov 18, 2013 at 8:44 PM, Caio Marcelo de Oliveira Filho
<[email protected]<mailto:[email protected]>> wrote:
*Description*
We would like to add a mode of running Crosswalk in which the main
Crosswalk process ("Browser Process") will be shared among different
applications. In this mode, we should use IPC mechanisms to
communicate with the existing process and ask for
installing/uninstalling/launching applications.
The high level design for this approach was done by Ming Bai and
Gustavo Barbieri, with various contributions from others, see
https://docs.google.com/a/intel.com/document/d/1q2Zl_P949NLe5YnQoLP2OWcZStVJgXyHKZDUwhiUxJQ/edit?usp=sharing.
The
resource benefits were previously discussed on the mailing list.
We are focusing on the Tizen platform, but we expect the mode to be
also usable on Linux platform. The IPC mechanism used will be D-Bus, and the
interfaces will follow Barbieri's description in
https://github.com/crosswalk-project/crosswalk/pull/1071#commitcomment-4548736.
*Contacts*
Caio and Vinicius from the Campinas team.
*Affected components*
- A new switch to Crosswalk will be added '--run-as-service'
- Changes to 'applications/' to expose more functionality in
ApplicationService, as well as add hooks for the
ApplicationServiceProvider object.
- Changes in Tizen packaging so that we register the auto launching
for the 'org.crosswalkproject' service in D-Bus.
- Instead of calling 'xwalk' (or tizen-extensions-crosswalk) directly
to install/uninstall/launch applications, a set of separated
binaries will be provided. The old method will be deprecated.
*Related feature*
https://crosswalk-project.org/jira/browse/XWALK-87
We'll also create subtasks based on the details below.
*Target Release*
Crosswalk 3
*Implementation details*
1. Add '--run-as-service' switch and ApplicationServiceProvider.
That object, part of ApplicationSystem will be the main object for the
run as a service mode. The provider will use a pointer to
ApplicationService (the object responsible for
Install/Uninstall/Launch) to interact with the subsystem.
ApplicationServiceProvider implementation should be used only to setup
and expose the functionality from ApplicationService to the external
environment.
2. Expose "installed apps" interface via D-Bus.
When running as a service on Linux, Crosswalk will own the service
name org.crosswalkproject and expose one object with the interface to
Install/Uninstall applications. List happens by looking at the
subobjects. We'll follow the current practice for D-Bus APIs.
We will add an Observer to ApplicationService to know information
about installed / uninstalled applications, so that
ApplicationServiceProvider.
D-Bus implementation of the "service" side will be on top of
src/dbus.
3. Add a command-line tool to interact with "installed apps" interface
The goal is replace previous calls to 'xwalk --install', 'xwalk
--uninstall' and 'xwalk --list-apps'. The tool will be part of
Crosswalk repository but will be implemented using Glib instead of
Chromium tools. See below for rationale.
4. Expose "running apps" interface via D-Bus.
This includes the "Launch" operation. The structure of this will be
similar to the (2), but with different set of operations. Differently
from (2), though, the objects representing the actual running
applications will be more interactive.
Currently the code for Application is limited to one application
running only, if possible we plan to enable more than one application
running, so better testing can be done of the system.
5. Add a Crosswalk launcher application to interact with "running
apps" interface.
The goal here is to replace execution of 'xwalk <app_id>' (or the
symlinked executable with '<app_id>' as name) with a launcher
application that communicates with the Crosswalk D-Bus service. That
launcher application will be developed in Glib and use appcore-glib to
interact with Tizen.
We are using Glib here (and in the other tool for consistency) mainly
because appcore-glib and gdbus will be working out-of-the-box, and the
launcher is merely a proxy between Tizen and Crosswalk.
In this step we also expect to change the code for installing apps in
Tizen so that they link the app binary with this new launcher
application instead of Crosswalk.
For testing purposes, we may also want to add a tool for launching
without hooking with appcore-glib.
6. Make Tizen package install the appropriate service files, launcher
and management tool.
After this step is done, we expect to be install/uninstall/launch
applications using the tools we implemented. Crosswalk process will be
automatically launched by D-Bus autolaunching mechanism.
The old commands 'xwalk --install' and similar will now return
instructions on how to use the new tools.
Cheers,
Caio
_______________________________________________
Crosswalk-dev mailing list
[email protected]<mailto:[email protected]>
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
--
Kenneth Rohde Christiansen
Web Platform Architect, Intel Corporation.
Phone +45 4294 9458 ﹆﹆﹆
_______________________________________________
Crosswalk-dev mailing list
[email protected]<mailto:[email protected]>
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
_______________________________________________
Crosswalk-dev mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
_______________________________________________
Crosswalk-dev mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev