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