// 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 "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 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; string service_user_id; 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; };