| Index: components/arc/arc_util.cc
|
| diff --git a/components/arc/arc_util.cc b/components/arc/arc_util.cc
|
| index 83436fe2d1ed0d612ebe28c4d12a918736550c68..986807fb5022f3976b8429fd77daa8ae926fd878 100644
|
| --- a/components/arc/arc_util.cc
|
| +++ b/components/arc/arc_util.cc
|
| @@ -145,6 +145,11 @@ bool IsArcKioskMode() {
|
| user_manager::UserManager::Get()->IsLoggedInAsArcKioskApp();
|
| }
|
|
|
| +bool IsPublicSessionMode() {
|
| + return user_manager::UserManager::IsInitialized() &&
|
| + user_manager::UserManager::Get()->IsLoggedInAsPublicAccount();
|
| +}
|
| +
|
| bool IsArcAllowedForUser(const user_manager::User* user) {
|
| if (!user) {
|
| VLOG(1) << "No ARC for nullptr user.";
|
| @@ -155,23 +160,18 @@ bool IsArcAllowedForUser(const user_manager::User* user) {
|
| // - Users have Gaia accounts;
|
| // - Active directory users;
|
| // - ARC kiosk session;
|
| + // - Public Session users;
|
| // USER_TYPE_ARC_KIOSK_APP check is compatible with IsArcKioskMode()
|
| // above because ARC kiosk user is always the primary/active user of a
|
| - // user session.
|
| + // user session. The same for USER_TYPE_PUBLIC_ACCOUNT.
|
| if (!user->HasGaiaAccount() && !user->IsActiveDirectoryUser() &&
|
| - user->GetType() != user_manager::USER_TYPE_ARC_KIOSK_APP) {
|
| + user->GetType() != user_manager::USER_TYPE_ARC_KIOSK_APP &&
|
| + user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) {
|
| VLOG(1) << "Users without GAIA or AD accounts, or not ARC kiosk apps are "
|
| "not supported in ARC.";
|
| return false;
|
| }
|
|
|
| - // Do not allow for ephemeral data user. cf) b/26402681
|
| - if (user_manager::UserManager::Get()->IsUserCryptohomeDataEphemeral(
|
| - user->GetAccountId())) {
|
| - VLOG(1) << "Users with ephemeral data are not supported in ARC.";
|
| - return false;
|
| - }
|
| -
|
| return true;
|
| }
|
|
|
|
|