Revert "[scenic] basemgr now uses eventpairs"
This reverts commit 8cb213b8614816bc043d813dcc499cf4dcc49731.
Reason for revert: Breaks mods being displayed in Ermine.
Original change's description:
> [scenic] basemgr now uses eventpairs
>
> TEST: set_root_view perspective; Ran SysUI
> SCN-897 #comment
> SCN-1033 #comment
>
> Change-Id: Ifceddb01cfdae8c7524c93bc0d940f879d4c4004
TBR=mikejurka@google.com,thatguy@google.com,jaeheon@google.com,dworsham@google.com,alexmin@google.com
Change-Id: I6fbc9792d0ba398be18153441b000951ecf500c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
diff --git a/bin/basemgr/BUILD.gn b/bin/basemgr/BUILD.gn
index 7daa45f..d98ba4c 100644
--- a/bin/basemgr/BUILD.gn
+++ b/bin/basemgr/BUILD.gn
@@ -21,11 +21,11 @@
]
sources = [
+ "main.cc",
"basemgr_impl.cc",
"basemgr_impl.h",
"basemgr_settings.cc",
"basemgr_settings.h",
- "main.cc",
]
deps = [
@@ -33,7 +33,6 @@
"//garnet/public/fidl/fuchsia.auth",
"//garnet/public/fidl/fuchsia.devicesettings",
"//garnet/public/fidl/fuchsia.sys",
- "//garnet/public/fidl/fuchsia.ui.app",
"//garnet/public/fidl/fuchsia.ui.policy",
"//garnet/public/fidl/fuchsia.ui.viewsv1",
"//garnet/public/lib/component/cpp",
diff --git a/bin/basemgr/basemgr_impl.cc b/bin/basemgr/basemgr_impl.cc
index 71ddd2e..51ed71e 100644
--- a/bin/basemgr/basemgr_impl.cc
+++ b/bin/basemgr/basemgr_impl.cc
@@ -10,8 +10,9 @@
#include <fuchsia/modular/auth/cpp/fidl.h>
#include <fuchsia/modular/cpp/fidl.h>
#include <fuchsia/sys/cpp/fidl.h>
-#include <fuchsia/ui/app/cpp/fidl.h>
#include <fuchsia/ui/policy/cpp/fidl.h>
+#include <fuchsia/ui/viewsv1/cpp/fidl.h>
+#include <fuchsia/ui/viewsv1token/cpp/fidl.h>
#include <lib/async/cpp/future.h>
#include <lib/component/cpp/startup_context.h>
#include <lib/fidl/cpp/interface_handle.h>
@@ -66,7 +67,8 @@
basemgr_bindings_.AddBinding(this, std::move(request));
}
-void BasemgrImpl::InitializePresentation(zx::eventpair view_holder_token) {
+void BasemgrImpl::InitializePresentation(
+ fidl::InterfaceHandle<fuchsia::ui::viewsv1token::ViewOwner> view_owner) {
if (settings_.test && !settings_.enable_presenter) {
return;
}
@@ -76,7 +78,7 @@
? presentation_state_.presentation.Unbind().NewRequest()
: presentation_state_.presentation.NewRequest();
- presenter_->Present2(std::move(view_holder_token),
+ presenter_->Present2(zx::eventpair(view_owner.TakeChannel().release()),
std::move(presentation_request));
AddGlobalKeyboardShortcuts(presentation_state_.presentation);
@@ -126,21 +128,17 @@
launcher_, CloneStruct(settings_.base_shell));
base_shell_app_->services().ConnectToService(base_shell_.NewRequest());
- fuchsia::ui::app::ViewProviderPtr base_shell_view_provider;
+ fuchsia::ui::viewsv1::ViewProviderPtr base_shell_view_provider;
base_shell_app_->services().ConnectToService(
base_shell_view_provider.NewRequest());
- zx::eventpair root_view_token, root_view_holder_token;
- if (zx::eventpair::create(0u, &root_view_token, &root_view_holder_token) !=
- ZX_OK)
- FXL_NOTREACHED() << "Failed to create view tokens";
-
- // We still need to pass a token for root view to base shell since
+ // We still need to pass a request for root view to base shell since
// dev_base_shell (which mimics flutter behavior) blocks until it receives
- // the root view token.
- base_shell_view_provider->CreateView(std::move(root_view_token), nullptr,
- nullptr);
- InitializePresentation(std::move(root_view_holder_token));
+ // the root view request.
+ fidl::InterfaceHandle<fuchsia::ui::viewsv1token::ViewOwner> root_view;
+ base_shell_view_provider->CreateView(root_view.NewRequest(), nullptr);
+
+ InitializePresentation(std::move(root_view));
// Populate parameters and initialize the base shell.
fuchsia::modular::BaseShellParams params;
@@ -293,7 +291,7 @@
StopBaseShell();
}
- InitializePresentation(std::move(session_shell_view_holder_token_));
+ InitializePresentation(session_shell_view_owner_);
}
void BasemgrImpl::DidLogout() {
@@ -310,23 +308,17 @@
StartBaseShell();
}
-zx::eventpair BasemgrImpl::GetSessionShellViewToken(
- zx::eventpair /*default_view_token*/) {
- if (session_shell_view_holder_token_.is_valid()) {
- session_shell_view_holder_token_.reset();
- }
-
- zx::eventpair session_shell_view_token;
- if (zx::eventpair::create(0u, &session_shell_view_token,
- &session_shell_view_holder_token_) != ZX_OK)
- FXL_NOTREACHED() << "Failed to create view tokens";
-
- return session_shell_view_token;
+fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+BasemgrImpl::GetSessionShellViewOwner(
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>) {
+ return session_shell_view_owner_.is_bound()
+ ? session_shell_view_owner_.Unbind().NewRequest()
+ : session_shell_view_owner_.NewRequest();
}
fidl::InterfaceHandle<fuchsia::sys::ServiceProvider>
BasemgrImpl::GetSessionShellServiceProvider(
- fidl::InterfaceHandle<fuchsia::sys::ServiceProvider> /*default_services*/) {
+ fidl::InterfaceHandle<fuchsia::sys::ServiceProvider>) {
fidl::InterfaceHandle<fuchsia::sys::ServiceProvider> handle;
service_namespace_.AddBinding(handle.NewRequest());
return handle;
diff --git a/bin/basemgr/basemgr_impl.h b/bin/basemgr/basemgr_impl.h
index 7d88f2e..be0f6ee 100644
--- a/bin/basemgr/basemgr_impl.h
+++ b/bin/basemgr/basemgr_impl.h
@@ -13,6 +13,8 @@
#include <fuchsia/modular/cpp/fidl.h>
#include <fuchsia/sys/cpp/fidl.h>
#include <fuchsia/ui/policy/cpp/fidl.h>
+#include <fuchsia/ui/viewsv1/cpp/fidl.h>
+#include <fuchsia/ui/viewsv1token/cpp/fidl.h>
#include <lib/async/cpp/future.h>
#include <lib/component/cpp/startup_context.h>
#include <lib/fidl/cpp/binding.h>
@@ -20,7 +22,6 @@
#include <lib/fidl/cpp/interface_request.h>
#include <lib/fidl/cpp/string.h>
#include <lib/fxl/macros.h>
-#include <lib/zx/eventpair.h>
#include "peridot/bin/basemgr/basemgr_settings.h"
#include "peridot/bin/basemgr/cobalt/cobalt.h"
@@ -68,7 +69,8 @@
fidl::InterfaceRequest<fuchsia::modular::internal::BasemgrDebug> request);
private:
- void InitializePresentation(zx::eventpair view_holder_token);
+ void InitializePresentation(
+ fidl::InterfaceHandle<fuchsia::ui::viewsv1token::ViewOwner> view_owner);
void StartBaseShell();
@@ -97,14 +99,15 @@
void DidLogout() override;
// |UserProviderImpl::Delegate|
- zx::eventpair GetSessionShellViewToken(
- zx::eventpair /*default_view_token*/) override;
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+ GetSessionShellViewOwner(
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>)
+ override;
// |UserProviderImpl::Delegate|
fidl::InterfaceHandle<fuchsia::sys::ServiceProvider>
GetSessionShellServiceProvider(
- fidl::InterfaceHandle<
- fuchsia::sys::ServiceProvider> /*default_services*/) override;
+ fidl::InterfaceHandle<fuchsia::sys::ServiceProvider>) override;
// |KeyboardCaptureListenerHACK|
void OnEvent(fuchsia::ui::input::KeyboardEvent event) override;
@@ -165,7 +168,7 @@
fidl::BindingSet<fuchsia::ui::policy::KeyboardCaptureListenerHACK>
keyboard_capture_listener_bindings_;
- zx::eventpair session_shell_view_holder_token_;
+ fuchsia::ui::viewsv1token::ViewOwnerPtr session_shell_view_owner_;
struct {
fuchsia::ui::policy::PresentationPtr presentation;
diff --git a/bin/basemgr/dev_base_shell.cc b/bin/basemgr/dev_base_shell.cc
index 353ecb3..f01490c 100644
--- a/bin/basemgr/dev_base_shell.cc
+++ b/bin/basemgr/dev_base_shell.cc
@@ -2,11 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// Implementation of the fuchsia::modular::BaseShell service that passes a
+// command line configurable user name to its fuchsia::modular::UserProvider,
+// and is able to run a story with a single module through its life cycle.
+
#include <memory>
#include <utility>
#include <fuchsia/auth/cpp/fidl.h>
#include <fuchsia/modular/cpp/fidl.h>
+#include <fuchsia/ui/viewsv1token/cpp/fidl.h>
#include <lib/app_driver/cpp/app_driver.h>
#include <lib/async-loop/cpp/loop.h>
#include <lib/callback/scoped_callback.h>
@@ -15,8 +20,7 @@
#include <lib/fxl/logging.h>
#include <lib/fxl/macros.h>
#include <lib/fxl/memory/weak_ptr.h>
-#include <lib/fxl/strings/string_number_conversions.h>
-#include <lib/zx/eventpair.h>
+#include "lib/fxl/strings/string_number_conversions.h"
#include "peridot/lib/fidl/single_service_app.h"
#include "peridot/public/lib/integration_testing/cpp/reporting.h"
@@ -55,9 +59,6 @@
bool test{};
};
-// Implementation of the fuchsia::modular::BaseShell service that passes a
-// command line configurable user name to its fuchsia::modular::UserProvider,
-// and is able to run a story with a single module through its life cycle.
class DevBaseShellApp : modular::SingleServiceApp<fuchsia::modular::BaseShell>,
fuchsia::modular::UserWatcher {
public:
@@ -105,7 +106,9 @@
fuchsia::sys::ServiceProvider> /*incoming_services*/,
fidl::InterfaceHandle<
fuchsia::sys::ServiceProvider> /*outgoing_services*/) override {
- view_token_ = std::move(view_token);
+ view_owner_request_ =
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>(
+ zx::channel(view_token.release()));
Connect();
}
@@ -138,14 +141,14 @@
void Login(const std::string& account_id) {
fuchsia::modular::UserLoginParams params;
params.account_id = account_id;
- params.view_token = std::move(view_token_);
+ params.view_owner = std::move(view_owner_request_);
params.user_controller = user_controller_.NewRequest();
user_provider_->Login(std::move(params));
user_controller_->Watch(user_watcher_binding_.NewBinding());
}
void Connect() {
- if (user_provider_ && view_token_) {
+ if (user_provider_ && view_owner_request_) {
if (settings_.user.empty()) {
// Incognito mode.
Login("");
@@ -184,10 +187,11 @@
const Settings settings_;
fidl::Binding<fuchsia::modular::UserWatcher> user_watcher_binding_;
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+ view_owner_request_;
fuchsia::modular::BaseShellContextPtr base_shell_context_;
fuchsia::modular::UserControllerPtr user_controller_;
fuchsia::modular::UserProviderPtr user_provider_;
- zx::eventpair view_token_;
fxl::WeakPtrFactory<DevBaseShellApp> weak_ptr_factory_;
FXL_DISALLOW_COPY_AND_ASSIGN(DevBaseShellApp);
};
diff --git a/bin/basemgr/user_controller_impl.cc b/bin/basemgr/user_controller_impl.cc
index 07329d4..1dc48d9 100644
--- a/bin/basemgr/user_controller_impl.cc
+++ b/bin/basemgr/user_controller_impl.cc
@@ -23,7 +23,9 @@
fuchsia::modular::AppConfig story_shell,
fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager,
fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
- fuchsia::modular::auth::AccountPtr account, zx::eventpair view_token,
+ fuchsia::modular::auth::AccountPtr account,
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+ view_owner_request,
fidl::InterfaceHandle<fuchsia::sys::ServiceProvider> base_shell_services,
fidl::InterfaceRequest<fuchsia::modular::UserController>
user_controller_request,
@@ -55,10 +57,10 @@
// 2. Initialize the Sessionmgr service.
sessionmgr_app_->services().ConnectToService(sessionmgr_.NewRequest());
- sessionmgr_->Initialize2(
+ sessionmgr_->Initialize(
std::move(account), std::move(session_shell), std::move(story_shell),
std::move(ledger_token_manager), std::move(agent_token_manager),
- user_context_binding_.NewBinding(), std::move(view_token));
+ user_context_binding_.NewBinding(), std::move(view_owner_request));
sessionmgr_app_->SetAppErrorHandler([this] {
FXL_LOG(ERROR) << "Sessionmgr seems to have crashed unexpectedly. "
diff --git a/bin/basemgr/user_controller_impl.h b/bin/basemgr/user_controller_impl.h
index b9d24c6..1af0f6a 100644
--- a/bin/basemgr/user_controller_impl.h
+++ b/bin/basemgr/user_controller_impl.h
@@ -11,6 +11,7 @@
#include <fuchsia/modular/internal/cpp/fidl.h>
#include <fuchsia/sys/cpp/fidl.h>
#include <fuchsia/ui/policy/cpp/fidl.h>
+#include <fuchsia/ui/viewsv1token/cpp/fidl.h>
#include <lib/async/cpp/future.h>
#include <lib/component/cpp/startup_context.h>
#include <lib/fidl/cpp/array.h>
@@ -19,7 +20,6 @@
#include <lib/fidl/cpp/interface_ptr_set.h>
#include <lib/fidl/cpp/interface_request.h>
#include <lib/fxl/macros.h>
-#include <lib/zx/eventpair.h>
#include "peridot/lib/fidl/app_client.h"
#include "peridot/lib/fidl/environment.h"
@@ -46,7 +46,9 @@
fuchsia::modular::AppConfig story_shell,
fidl::InterfaceHandle<fuchsia::auth::TokenManager> ledger_token_manager,
fidl::InterfaceHandle<fuchsia::auth::TokenManager> agent_token_manager,
- fuchsia::modular::auth::AccountPtr account, zx::eventpair view_token,
+ fuchsia::modular::auth::AccountPtr account,
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+ view_owner_request,
fidl::InterfaceHandle<fuchsia::sys::ServiceProvider> base_shell_services,
fidl::InterfaceRequest<fuchsia::modular::UserController>
user_controller_request,
diff --git a/bin/basemgr/user_controller_impl_unittest.cc b/bin/basemgr/user_controller_impl_unittest.cc
index d1d769f..ff99304 100644
--- a/bin/basemgr/user_controller_impl_unittest.cc
+++ b/bin/basemgr/user_controller_impl_unittest.cc
@@ -7,7 +7,6 @@
#include <fuchsia/sys/cpp/fidl.h>
#include <lib/component/cpp/testing/fake_launcher.h>
#include <lib/gtest/test_loop_fixture.h>
-#include <lib/zx/eventpair.h>
#include "peridot/lib/fidl/clone.h"
@@ -40,7 +39,7 @@
&launcher, CloneStruct(app_config), CloneStruct(app_config),
CloneStruct(app_config), std::move(ledger_token_manager),
std::move(agent_token_manager), nullptr /* account */,
- zx::eventpair() /* view_token */, nullptr /* base_shell_services */,
+ nullptr /* view_owner_request */, nullptr /* base_shell_services */,
user_controller.NewRequest(), nullptr /* done_callback */);
EXPECT_TRUE(callback_called);
@@ -70,7 +69,7 @@
&launcher, CloneStruct(app_config), CloneStruct(app_config),
CloneStruct(app_config), std::move(ledger_token_manager),
std::move(agent_token_manager), nullptr /* account */,
- zx::eventpair() /* view_token */, nullptr /* base_shell_services */,
+ nullptr /* view_owner_request */, nullptr /* base_shell_services */,
user_controller.NewRequest(),
/* done_callback = */ [&done_callback_called](UserControllerImpl*) {
done_callback_called = true;
diff --git a/bin/basemgr/user_provider_impl.cc b/bin/basemgr/user_provider_impl.cc
index 8bc9ee4..7bfb4e4 100644
--- a/bin/basemgr/user_provider_impl.cc
+++ b/bin/basemgr/user_provider_impl.cc
@@ -501,19 +501,15 @@
fuchsia::auth::TokenManagerPtr agent_token_manager =
CreateTokenManager(account_id);
- zx::eventpair default_view_token =
- params.view_token
- ? std::move(params.view_token)
- : zx::eventpair(params.view_owner.TakeChannel().release());
- auto view_token =
- delegate_->GetSessionShellViewToken(std::move(default_view_token));
+ auto view_owner =
+ delegate_->GetSessionShellViewOwner(std::move(params.view_owner));
auto service_provider =
delegate_->GetSessionShellServiceProvider(std::move(params.services));
auto controller = std::make_unique<UserControllerImpl>(
launcher_, CloneStruct(sessionmgr_), CloneStruct(session_shell_),
CloneStruct(story_shell_), std::move(ledger_token_manager),
- std::move(agent_token_manager), std::move(account), std::move(view_token),
+ std::move(agent_token_manager), std::move(account), std::move(view_owner),
std::move(service_provider), std::move(params.user_controller),
[this](UserControllerImpl* c) {
user_controllers_.erase(c);
diff --git a/bin/basemgr/user_provider_impl.h b/bin/basemgr/user_provider_impl.h
index 5fcc246..815315b 100644
--- a/bin/basemgr/user_provider_impl.h
+++ b/bin/basemgr/user_provider_impl.h
@@ -12,7 +12,6 @@
#include <lib/component/cpp/startup_context.h>
#include <lib/fidl/cpp/binding_set.h>
#include <lib/fidl/cpp/interface_request.h>
-#include <lib/zx/eventpair.h>
#include "peridot/bin/basemgr/user_controller_impl.h"
@@ -36,19 +35,24 @@
// Called after UserProviderImpl successfully logs out a user.
virtual void DidLogout() = 0;
- // Enables the delegate to intercept the session shell's view token, so that
+ // Enables the delegate to intercept the session shell's view owner, so that
// e.g. the delegate can embed it in a parent view or present it.
- virtual zx::eventpair GetSessionShellViewToken(
- zx::eventpair /*default_view_token*/) = 0;
+ // |default_view_owner| is the view owner request that's passed to
+ // UserProviderImpl from base shell. If you don't need to intercept the
+ // view owner, return it without modifying it.
+ virtual fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+ GetSessionShellViewOwner(
+ fidl::InterfaceRequest<fuchsia::ui::viewsv1token::ViewOwner>
+ default_view_owner) = 0;
// Enables the delegate to supply a different service provider to the user
// shell. |default_service_provider| is the service provider passed to the
// session shell by the base shell. If you don't need to replace it, return
// it without modifying it.
virtual fidl::InterfaceHandle<fuchsia::sys::ServiceProvider>
- GetSessionShellServiceProvider(
- fidl::InterfaceHandle<
- fuchsia::sys::ServiceProvider> /*default_services*/) = 0;
+ GetSessionShellServiceProvider(
+ fidl::InterfaceHandle<fuchsia::sys::ServiceProvider>
+ default_service_provider) = 0;
};
// |account_provider| and |delegate| must outlive UserProviderImpl.
diff --git a/public/fidl/fuchsia.modular/basemgr/base_shell.fidl b/public/fidl/fuchsia.modular/basemgr/base_shell.fidl
index 56efef0..ff27c45 100644
--- a/public/fidl/fuchsia.modular/basemgr/base_shell.fidl
+++ b/public/fidl/fuchsia.modular/basemgr/base_shell.fidl
@@ -13,31 +13,31 @@
// teardown.
//
// In one component instance there can only be one BaseShell service instance.
-// The view token is sent to the separate ViewProvider service. This way,
+// The ViewOwner request is sent to the separate ViewProvider service. This way,
// the base shell may be implemented as a flutter component.
//
// Teardown may be initiated by the base shell calling
// BaseShellContext.Shutdown(), or by the system shutting down.
[Discoverable]
interface BaseShell {
- Initialize(BaseShellContext base_shell_context,
- BaseShellParams base_shell_params);
+ 1: Initialize(BaseShellContext base_shell_context,
+ BaseShellParams base_shell_params);
// This method may be invoked by the basemgr to request an
// AuthenticationUIContext. |request| will then be used to request the base
// shell to show login screen during a UserProvider.AddUser() or if a token
// needs to be refreshed.
- GetAuthenticationUIContext(request<fuchsia.auth.AuthenticationUIContext> request);
+ 3: GetAuthenticationUIContext(request<fuchsia.auth.AuthenticationUIContext> request);
};
// This interface allows the |BaseShell| to request capabilities from the
// |Basemgr| in a way that is more explicit about the services that are
// offered than a generic |ServiceProvider|.
interface BaseShellContext {
- GetUserProvider(request<UserProvider> request);
+ 1: GetUserProvider(request<UserProvider> request);
// This requests the shutdown of the basemgr.
- Shutdown();
+ 2: Shutdown();
};
// These params are passed to |BaseShell.Initialize|.
diff --git a/public/fidl/fuchsia.modular/basemgr/user_provider.fidl b/public/fidl/fuchsia.modular/basemgr/user_provider.fidl
index 5f5d8ad..45aeca7 100644
--- a/public/fidl/fuchsia.modular/basemgr/user_provider.fidl
+++ b/public/fidl/fuchsia.modular/basemgr/user_provider.fidl
@@ -24,23 +24,23 @@
//
// |account| is NULL if there was an error during identification and
// |error_code| is set.
- AddUser(fuchsia.modular.auth.IdentityProvider identity_provider)
- -> (fuchsia.modular.auth.Account? account, string? error_code);
+ 1: AddUser(fuchsia.modular.auth.IdentityProvider identity_provider)
+ -> (fuchsia.modular.auth.Account? account, string? error_code);
// Removes information of a user from the local user database.
//
// |account_id| is received from either AddUser() or PreviousUsers().
- RemoveUser(string account_id) -> (string? error_code);
+ 2: RemoveUser(string account_id) -> (string? error_code);
// Uses the credentials provided in AddUser() to start a user session. This
// would mean syncing with the user's ledger instance and displaying a user
// shell with all of the user's stories.
// TODO(alhaad): In the future, we want to protect Login() with a password,
// Android lock pattern, etc.
- Login(UserLoginParams user_login_params);
+ 3: Login(UserLoginParams user_login_params);
// List of all users who have authenticated to this device in the past.
- PreviousUsers() -> (vector<fuchsia.modular.auth.Account> accounts);
+ 4: PreviousUsers() -> (vector<fuchsia.modular.auth.Account> accounts);
};
// Used to specify arguments to log into a user session.
@@ -49,11 +49,9 @@
// can be NULL which means logging-in in an incognito mode.
string? account_id;
- // |view_token| identifies the view for the |SessionShell| started for the newly
+ // |view_owner| is the view given to the |SessionShell| started for the newly
// logged-in user.
- // TODO(SCN-1018): Remove the deprecated |view_owner|.
- handle<eventpair>? view_token;
- request<fuchsia.ui.viewsv1token.ViewOwner>? view_owner;
+ request<fuchsia.ui.viewsv1token.ViewOwner> view_owner;
// Services provided by the |BaseShell| that can be offered to the
// |SessionShell| that is being logged into.
@@ -89,15 +87,15 @@
// Logs out a user by tearing down its sessionmgr. Returns once the
// Sessionmgr has been torn down. This also triggers OnLogout() for
// |UserWatcher|s.
- Logout() -> ();
+ 1: Logout() -> ();
// Registers a watcher for the user's life cycle events.
- Watch(UserWatcher watcher);
+ 2: Watch(UserWatcher watcher);
// Stops the currently running session shell and starts the one specified by
// |session_shell_config|. This operation stops all stories before starting
// the new shell.
- SwapSessionShell(AppConfig session_shell_config) -> ();
+ 3: SwapSessionShell(AppConfig session_shell_config) -> ();
};
// Implemented by a |BaseShell| implementation in order to receive
@@ -109,5 +107,5 @@
//
// TODO(vardhan): Make a guarantee that once OnLogout() is invoked, it is
// possible to UserProvider.Login() the same user.
- OnLogout();
+ 1: OnLogout();
};