diff options
Diffstat (limited to 'docs/old/containerization')
-rw-r--r-- | docs/old/containerization | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/docs/old/containerization b/docs/old/containerization new file mode 100644 index 0000000..8a40637 --- /dev/null +++ b/docs/old/containerization @@ -0,0 +1,58 @@ + +== 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?) |