blob: f0d33784b9e04fe118836c8ac69442647f8a261f [file] [log] [blame]
// 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/signin/public/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,
};
// 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 display_name;
string display_email;
gfx.mojom.ImageSkia avatar;
// 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> avatar_bytes;
// 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;
};