| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module ash.mojom; |
| |
| import "components/account_id/interfaces/account_id.mojom"; |
| import "mojo/public/mojom/base/token.mojom"; |
| import "ui/gfx/image/mojo/image.mojom"; |
| |
| // Matches user_manager::UserType. |
| enum UserType { |
| // Regular user, has a user name and password. |
| REGULAR, |
| |
| // Guest user, logs in without authentication. |
| GUEST, |
| |
| // Public account user, logs in without authentication. Available only if |
| // enabled through policy. |
| PUBLIC_ACCOUNT, |
| |
| // Supervised user, logs in only with local authentication. |
| SUPERVISED, |
| |
| // Kiosk app robot, logs in without authentication. |
| KIOSK, |
| |
| // Child user, with supervised options. |
| CHILD, |
| |
| // Android app in kiosk mode, logs in without authentication. |
| ARC_KIOSK, |
| |
| // Active Directory user. Authenticates against Active Directory server. |
| ACTIVE_DIRECTORY, |
| }; |
| |
| // Data for a user's avatar. |
| struct UserAvatar { |
| gfx.mojom.ImageSkia image; |
| // The raw bytes for the avatar. Useful if the avatar is animated. |
| // TODO(crbug.com/770373): Use a shared buffer (mojo.Blob), as this may be |
| // large enough to congest IPC. |
| array<uint8> bytes; |
| }; |
| |
| // Info about a user. May be sent repeatedly for a single user because |
| // individual fields may change (e.g. the avatar image or custodians). |
| struct UserInfo { |
| UserType type; |
| signin.mojom.AccountId account_id; |
| mojo_base.mojom.Token? service_instance_group; |
| string display_name; |
| string display_email; |
| UserAvatar avatar; |
| // True if this user has a newly created profile (first time login on the |
| // device) |
| bool is_new_profile; |
| // True if the user's non-cryptohome data (wallpaper, avatar etc.) is |
| // ephemeral. See |UserManager::IsUserNonCryptohomeDataEphemeral| for details. |
| bool is_ephemeral; |
| // True if the user is also the device owner. |
| bool is_device_owner; |
| // True if the user has a gaia account. |
| bool has_gaia_account; |
| }; |