The main entities used to show the login/lock screen UI.
-
//ash/public/cpp/
:- This folder contains inferfaces that are implemented in ash or chrome and are used to communicate between ash and chrome services.
LoginScreenClient
- handles method calls sent from ash to chrome & handles messages from chrome to ash. Forwards some of the calls to theDelegate
.
-
//chrome/browser/ash/login/ui/
:- This folder contains implementations of login and OOBE UIs.
- [
LoginDisplayHostMojo
](/chrome/browser/ash/login/ui/ login_display_host_mojo.h) - aLoginDisplayHost
instance that implementsLoginScreenClient
and sends requests to the views-based sign in. Handles calls likeHandleAuthenticateUserWith...()
. Owned byChromeBrowserMainExtraPartsAsh
.
-
//ash/login/
:- This folder contains the implementation of login UI views (buttons, inputs, etc), and additional classes that handle notifications and update the UI. Also see ash/login/ui/README.md
LoginScreenController
- mostly forwards requests toLoginScreenClient
or callsShelf
APIs directly. Owned byShell
.LoginDataDispatcher
- provides access to data notification events needed by the lock/login screen (via the observer). Owned byLoginScreenController
.LockContentsView
- hosts the root view for the login/lock screen. Receives notifications from theLoginDataDispatcher
and updates the UI. Owned byLockScreen
.
-
//chrome/browser/ash/login/lock/
:- This folder contains the lock screen - specific logic for the login UIs.
ViewsScreenLocker
handles calls between ash and chrome on the lock screen by implementing Delegate interfaces.