# Device Ownership In ChromeOS, one account is determined as a device owner. This is a concept seperated from the account which you are currently logged in. This ownership information is required for Lacros since we retrive policy from the ownership account. Let's see the current behavior of device ownership in Lacros. ## Initialization The device owner is initialized in UserManager. Lacros launching is delayed until the device ownership is initialized. [GetOwnerAccountIdAsync](https://source.chromium.org/chromium/chromium/src/+/main:components/user_manager/user_manager_base.cc;l=194;drc=3edf60cfce53c3f4cddab45e838b0ddbb1acaa96) gets owner account id asynchronously. It passes the callback and wait calling it until the owner id is ready. `pending_owner_callbacks_` is invoked when owner id is set from [SetOwnerId](https://source.chromium.org/chromium/chromium/src/+/main:components/user_manager/user_manager_base.cc;l=962;drc=3edf60cfce53c3f4cddab45e838b0ddbb1acaa960). ## Blocking There is a delay between requesting an owner account id and actually getting it, so this step potentially could block launching. [BrowserManager::Start](https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ash/crosapi/browser_manager.cc;l=1030;drc=3edf60cfce53c3f4cddab45e838b0ddbb1acaa96) starts prepareing Lacros launch. It posts a task [WaitForDeviceOwnerFetchedAndThen](https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ash/crosapi/browser_manager.cc;l=1721;drc=3edf60cfce53c3f4cddab45e838b0ddbb1acaa96) to wait until the owner id. This is a behavior on an actual device. ### Behavior on other Account / Platforms Here's are other behavior: - Launching at login screen -> device owner is not determined yet. - guest session: guest session may not require OOBE, deigned without an owner - demo mode: same as guest session - linux-chromeos: skipping check (DeviceSettingsService is using fake behavior)