Google is committed to advancing racial equity for Black communities. See how.

fuchsia.modular.session

PROTOCOLS

Launcher

Defined in fuchsia.modular.session/launcher.fidl

A protocol used to launch sessionmgr.

basemgr serves this protocol to session components.

LaunchSessionmgr

Launches an instance of sessionmgr with the given Modular configuration.

|config| should contain all configuration necessary for starting a session. When LaunchSessionmgr is called, basemgr uses only |config| to configure the session. It does not use any fields from its startup configuration (/config(_override)/data/startup.config).

|config| cannot include a session launcher component.

If sessionmgr is already running, it will be stopped and restarted with the new configuration.

On error, the protocol channel is closed with:

  • ZX_ERR_INVALID_ARGS: |config| is invalid, could not be read, or includes a session launcher component.

  • ZX_ERR_BAD_STATE: The session cannot be launched because basemgr is shutting down.

  • config Modular configuration serialized as UTF-8 JSON

Request

NameType
config fuchsia.mem/Buffer

LaunchSessionmgrWithServices

Launches an instance of sessionmgr with the given Modular configuration and a list of services to be provided to agents in ModularConfig.sessionmgr_config.session_agents and .startup_agents.

|additional_services.host_directory| is required. The channel will close with ZX_ERR_INVALID_ARGS if not present.

Request

NameType
config fuchsia.mem/Buffer
additional_services fuchsia.sys/ServiceList

STRUCTS

TABLES

AgentServiceIndexEntry

Defined in fuchsia.modular.session/modular_config.fidl

A service and the URL of the agent known to provide that service.

OrdinalNameTypeDescription
1 service_name string

The service name.

2 agent_url fuchsia.sys/component_url

The fuchsia component url for agent.

AppConfig

Defined in fuchsia.modular.session/modular_config.fidl

Used to pass around configuration references to apps such as base shell, session shell, story shell, and agents.

OrdinalNameTypeDescription
1 url string[4096]

The fuchsia package url for app.

2 args vector<string>

The arguments for the app.

BaseShellConfig

Defined in fuchsia.modular.session/modular_config.fidl

OrdinalNameTypeDescription
1 app_config AppConfig

Contains the fuchsia package url and arguments to pass to the shell.

2 keep_alive_after_login bool

When set to true, the base shell is kept alive after a log in. This is used for testing because current integration tests expect base shell to always be running. Default: false

BasemgrConfig

Defined in fuchsia.modular.session/modular_config.fidl

Descriptions and defaults for these configurations are echoed in peridot/docs/modular/guide/config.md.

OrdinalNameTypeDescription
1 enable_cobalt bool

When set to false, Cobalt statistics are disabled. Default: true

2
3 use_session_shell_for_story_shell_factory bool

Create story shells through StoryShellFactory exposed by the session shell instead of creating separate story shell components. When set, story_shell_url and any story shell args are ignored. Default: false

4 base_shell BaseShellConfig

Launch configurations specific to base shell.

5 session_shell_map vector<SessionShellMapEntry>

A map of launch configurations specific to session shells.

6 story_shell StoryShellConfig

Launch configurations specific to story shell.

7
8 session_launcher AppConfig

Launch configuration for a session launcher component.

If specified, this component is started instead of sessionmgr, and all other configuration fields are ignored, except enable_cobalt.

The session launcher component can then use the Launcher protocol to launch sessionmgr with a particular configuration.

ModularConfig

Defined in fuchsia.modular.session/modular_config.fidl

Contains the configurations for the modular framework components.

OrdinalNameTypeDescription
1 basemgr_config BasemgrConfig
2 sessionmgr_config SessionmgrConfig

SessionShellConfig

Defined in fuchsia.modular.session/modular_config.fidl

OrdinalNameTypeDescription
1 app_config AppConfig

Contains the fuchsia package url and arguments to pass to the shell.

2 display_usage fuchsia.ui.policy/DisplayUsage

The display usage policy for this session shell.

Optional: defaults to DisplayUsage::kUnknown.

3 screen_height float32

The screen height in millimeters for the session shell's display.

Optional: defaults to full screen.

4 screen_width float32

The screen width in millimeters for the session shell's display.

Optional: defaults to full screen.

SessionShellMapEntry

Defined in fuchsia.modular.session/modular_config.fidl

OrdinalNameTypeDescription
1 name string[4096]

The name of the session shell represented by its url.

2 config SessionShellConfig

The launch configurations for the session shell.

SessionmgrConfig

Defined in fuchsia.modular.session/modular_config.fidl

OrdinalNameTypeDescription
1
2 enable_cobalt bool

When set to false, Cobalt statistics are disabled. This is used for testing. Default: true

3 reserved bool
4
5 startup_agents vector<string>

A list of fuchsia package urls that specify which agents to launch at startup.

6 session_agents vector<string>

A list of fuchsia package urls that specify which agents to launch at startup with PuppetMaster and FocusProvider services.

7 story_shell_url string[4096]

The fuchsia package url for which story shell to use.

8 component_args vector<AppConfig>

A map of agents to the arguments they should be started with.

9
10 agent_service_index vector<AgentServiceIndexEntry>

A list of services mapped to the component URL that serves it. Valid components to specify here are agents or the session shell. Services listed here are available in the incoming namespaces for modules, shells, and agents.

11 restart_session_on_agent_crash vector<string>

A list of agent URLs that will cause the session to be restarted when they terminate. If an agent is not in this list, sessionmgr will restart it individually, preserving the session.

The session shell is automatically added to this list.

StoryShellConfig

Defined in fuchsia.modular.session/modular_config.fidl

OrdinalNameTypeDescription
1 app_config AppConfig

Contains the fuchsia package url and arguments to pass to the shell.