---
# System prepended metadata

title: DeviceOwnership
tags: [elkurin-daily-note, Chromium-Lacros]

---

# 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)