== Problem: Containerization == #1992 Activities need to be created inside containers. Situation: "Activities" are launched as follows: 1. Clicking on an activity launch icon in Sugar triggers the `sugar.shell.view.frame.ActivitiesBox._activity_clicked_cb' callback which in turn fires off a call to `sugar.shell.view.start_activity' with the corresponding service name. 2. `sugar.shell.start_activity' calls `sugar.activity.activityfactory.create()' which constructs a `sugar.activity.activityfactory.ActivityCreationHandler', initialized with an `ActivityHandle' describing the activity being started. 3. The `__init__' method of ActivityCreationHandler connects to the DBus session bus, uses a well-known name to locate an appropriate ActivityFactory _DBus object_, and calls this _DBus object's_ `create' method. (The ActivityCreationHandler also installs callbacks to log the success or failure of the attempt to launch the activity) 4. The appropriate `ActivityServiceFactory' DBus service is automatically launched by DBus from a service file if necessary. Then it's `create' method is dispatched, which results in the activity itself being constructed and presented. Plan: We will modify the ActivityCreationHandler to call over DBus to Rainbow. P1. Replace step (S3) with 3b. The `__init__' method of ActivityCreationHandler connects to the DBus session bus, locates the `org.laptop.security.Rainbow' service, and calls the `create_activity' method of Rainbow's `org.laptop.security.Rainbow' interface. Followup: F1. Design and implement the appropriate method in Rainbow. F2. Step (S4) is now cruft and should be cleaned. F3. Talk to Marco about how he thinks this really ought to be done. --- F4. Marco agrees with our proposal so it can move ahead once we're ready to integrate Rainbow into the builds. F5. Bert Freudenberg would like us to update a wiki page and rewrite sugar-native-factory.c for him. F6. However, Michael is not comfortable depending on the glib/gobject mainloop. How long until we can get a libevent-based mainloop? (or move away from DBus?)