blob: 159974670076acb9b9b6abe01c104b9ec1194db5 [file] [log] [blame] [view]
Xiyuan Xia593f9632020-06-29 15:27:171# UserManager
2
3This directory contains files for managing ChromeOS users. Historically,
4the code manages both user and user sessions. There is an on-going effort
5to move user session related code into //components/session_manager.
6
Hidehiko Abe4e0baf92024-10-07 18:05:587UserManager is the interface for managing ChromeOS users. UserManagerImpl
Hidehiko Abe1bd40d72024-10-09 16:36:198is the production implementation of the interface.
Xiyuan Xia593f9632020-06-29 15:27:179
Hidehiko Abe1bd40d72024-10-09 16:36:1910UserManagerImpl is created at the PreProfileInit stage and destroyed at
Xiyuan Xia593f9632020-06-29 15:27:1711the PostMainMessageLoopRun stage, via
Hidehiko Abec145a732024-02-15 05:26:3512BrowserProcessPlatformPart::InitializeUserManager() and
13BrowserProcessPlatformPart::DestroyUserManager.
Elie Maamarif29f0d92022-08-17 08:51:2014
15# UserDirectoryIntegrityManager
16
17This directory contains the UserDirectoryIntegrityManager class.
18This class is responsible for detecting when a user did not completely
19complete the onboarding flow and crashed before adding an auth factor.
20This can leave the user in an inconsistent state as their home directory
21will be encrypted with no auth factors added.
22
23UserDirectoryIntegrityManager writes the user's email to local state
24before creating the user home directory and erases it after adding a
25successful auth factor. Those operations are initiated from
26`MountPerformer::CreateNewUser` and `AuthFactorEditor::OnAddCredentials`
27respectively.
28
29[design doc](https://docs.google.com/document/d/1SjVwlckD-cB9zC84RfmHbsflD3g01lKm8m21Dh1sn70/edit?resourcekey=0-SseJsx99IUSckOWDqHh69g#)