LGTM. Very nice detailed description of the various steps.

Kenneth


On Mon, Nov 18, 2013 at 8:44 PM, Caio Marcelo de Oliveira Filho <
caio.olive...@intel.com> 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
> Crosswalk-dev@lists.crosswalk-project.org
> 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
Crosswalk-dev@lists.crosswalk-project.org
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

Reply via email to