naiveproxy/ash/public/interfaces/user_info.mojom
2018-08-14 22:19:20 +00:00

65 lines
1.9 KiB
Plaintext

// 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<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;
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;
// True if the user is also the device owner.
bool is_device_owner;
};