blob: 31411a7fcb84dea42e639a77197214fdd9f63555 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.modular.internal;
using fuchsia.auth;
using fuchsia.modular;
using fuchsia.modular.auth;
using fuchsia.ui.policy;
using fuchsia.ui.views;
// The basemgr application (there is no |Basemgr| service) requests
// an instance of this service in order to launch and display a |Sessionmgr|.
[Discoverable] // Created by sessionmgr application.
protocol Sessionmgr {
// Launches a sessionmgr instance identified by a unique device-local
// |session_id|. The uniqueness of |session_id| must be guaranteed by the
// caller, because |sessionmgr| creates an Environment namespace with the
// given |session_id|, and this will crash if we try to create an
// environment with a pre-existing name, because the services sessionmgr
// tries to access won't be available.
//
// TODO(MF-287): Address issues around client-generated session_id and
// initialization pattern of sessionmgr.
Initialize(string session_id,
fuchsia.modular.auth.Account? account,
fuchsia.modular.AppConfig session_shell,
fuchsia.modular.AppConfig story_shell,
bool use_session_shell_for_story_shell_factory,
fuchsia.auth.TokenManager? ledger_token_manager,
fuchsia.auth.TokenManager? agent_token_manager,
SessionContext session_context,
fuchsia.ui.views.ViewToken view_token);
SwapSessionShell(fuchsia.modular.AppConfig session_shell) -> ();
};
// This interface is provided by basemgr to |Sessionmgr|.
protocol SessionContext {
// See detailed comments in SessionShellContext.Logout(). Logs out all the
// users in this session, then shut down the sessionmgr process.
Logout();
// Shut down the sessionmgr process. This method should be called if the
// users of the session should remain logged in. Call Logout() if the intent
// is to also log out the users from the session.
Shutdown();
GetPresentation(request<fuchsia.ui.policy.Presentation> presentation);
};