Implementation Tour

3 Implementation Tour

Implementation Tour

A high level overview of the Unity Webapps Service implementation

There are four primary components to the Unity Webapps Service implementation, found in the source directory.

- DBus interface specifications, located in libunity-webapps/src these XML files describe the DBus protocols various components use to interact with eachother.
- The Webapps Service daemon, located in libunity-webapps/src/webapps-service. This daemon owns the name com.canonical.Unity.Webapps.Service and implements the interface of the same name (from webapps-service.xml).
- The Context Daemon, located in libunity-webapps/src/context-daemon. As discussed in "An introduction to the Unity Webapps Service", this is the heart of the implementation.
- libunity-webapps client bindings. These are both useful to application hosts (to integrate a new browser or web app container in to the service), or to observers of the Webapps Service, such as BAMF and the Unity Shell.

As the Unity Webapps Service is new technology. There are not many examples of the API in usage, however a few are available.

- The Unity Firefox Extension, contained in lp:unity-firefox-extension.
- The libunity-webapps tests, in libunity-webapps/tests/traced, provide coverage of the C API.
- The service-tracker tool provides an example of using the service observer API, located in libunity-webapps/tools. A more thorough implementation can be found in the BamfUnityWebappsObserver class (located in lp:bamf).