The main entities used to show the login/lock screen UI.
//ash/public/cpp/:
LoginScreenClient - handles method calls sent from ash to chrome & handles messages from chrome to ash. Forwards some of the calls to the Delegate.//chrome/browser/ui/ash/login/:
LoginDisplayHostMojo](/chrome/browser/ui/ash/login/ login_display_host_mojo.h) - a LoginDisplayHost instance that implements LoginScreenClient and sends requests to the views-based sign in. Handles calls like HandleAuthenticateUserWith...(). Owned by ChromeBrowserMainExtraPartsAsh.//ash/login/:
LoginScreenController - mostly forwards requests to LoginScreenClient or calls Shelf APIs directly. Owned by Shell.LoginDataDispatcher - provides access to data notification events needed by the lock/login screen (via the observer). Owned by LoginScreenController.LockContentsView - hosts the root view for the login/lock screen. Receives notifications from the LoginDataDispatcher and updates the UI. Owned by LockScreen.//chrome/browser/ash/login/lock/:
ViewsScreenLocker handles calls between ash and chrome on the lock screen by implementing Delegate interfaces.