| { |
| include: [ "sdk/lib/diagnostics/syslog/client.shard.cml" ], |
| program: { |
| runner: "elf", |
| binary: "bin/session_manager", |
| }, |
| collections: [ |
| // Holds all the sessions this session_manager will create. Capabilities |
| // offered to and exposed by sessions should be routed here. |
| { |
| name: "session", |
| durability: "transient", |
| }, |
| ], |
| capabilities: [ |
| { |
| protocol: [ |
| "fuchsia.element.Manager", |
| "fuchsia.input.injection.InputDeviceRegistry", |
| "fuchsia.session.ElementManager", |
| "fuchsia.session.Launcher", |
| "fuchsia.session.Restarter", |
| "fuchsia.sessionmanager.Startup", |
| "fuchsia.ui.lifecycle.LifecycleController", |
| ], |
| }, |
| ], |
| use: [ |
| { |
| // The Realm service allows session_manager to start components. |
| protocol: "fuchsia.sys2.Realm", |
| from: "framework", |
| }, |
| { |
| protocol: [ "fuchsia.cobalt.LoggerFactory" ], |
| from: "parent", |
| }, |
| { protocol: "fuchsia.ui.lifecycle.LifecycleController" }, |
| { |
| directory: "config-data", |
| from: "parent", |
| rights: [ "r*" ], |
| path: "/config/data", |
| }, |
| ], |
| offer: [ |
| { |
| protocol: [ |
| "fuchsia.logger.LogSink", |
| "fuchsia.sys.Launcher", |
| "fuchsia.ui.focus.FocusChainListenerRegistry", |
| "fuchsia.ui.input.ImeService", |
| "fuchsia.ui.input3.Keyboard", |
| "fuchsia.ui.scenic.Scenic", |
| "fuchsia.ui.shortcut.Manager", |
| "fuchsia.ui.views.ViewRefInstalled", |
| ], |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| |
| // features: build-info |
| { |
| directory: "config-build-info", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| |
| // features: root-ssl-certificates |
| { |
| directory: "config-ssl", |
| from: "parent", |
| to: [ "#session" ], |
| rights: [ "r*" ], |
| }, |
| |
| // features: isolated-persistent-storage |
| { |
| directory: "data", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| |
| // devices |
| { |
| directory: "dev-input", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| { |
| directory: "dev-input-report", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| { |
| directory: "dev-null", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| { |
| directory: "dev-zero", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| |
| // features: config-data |
| { |
| directory: "config-data", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| |
| // features: isolated-temp |
| { |
| directory: "tmp", |
| from: "parent", |
| to: [ "#session" ], |
| }, |
| ], |
| expose: [ |
| { |
| protocol: [ |
| "fuchsia.element.Manager", |
| "fuchsia.input.injection.InputDeviceRegistry", |
| "fuchsia.session.ElementManager", |
| "fuchsia.session.Launcher", |
| "fuchsia.session.Restarter", |
| "fuchsia.sessionmanager.Startup", |
| ], |
| from: "self", |
| }, |
| ], |
| } |