diff --git a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc
index 9cf4890c2c902..8421a1040ccc9 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc
@@ -421,9 +421,9 @@ bool DeviceCommandStartCrdSessionJob::UserTypeSupportsCrd() const {
case UserType::kAffiliatedUser:
case UserType::kAutoLaunchedKiosk:
case UserType::kManagedGuestSession:
+ case UserType::kManuallyLaunchedKiosk:
return true;
case UserType::kNoUser:
- case UserType::kNonAutoLaunchedKiosk:
case UserType::kOther:
return false;
}
@@ -442,7 +442,7 @@ DeviceCommandStartCrdSessionJob::GetUserType() const {
if (IsRunningAutoLaunchedKiosk())
return UserType::kAutoLaunchedKiosk;
else
- return UserType::kNonAutoLaunchedKiosk;
+ return UserType::kManuallyLaunchedKiosk;
}
if (user_manager->IsLoggedInAsPublicAccount())
@@ -463,10 +463,11 @@ DeviceCommandStartCrdSessionJob::GetUmaSessionType() const {
return UmaSessionType::kAffiliatedUser;
case UserType::kManagedGuestSession:
return UmaSessionType::kManagedGuestSession;
+ case UserType::kManuallyLaunchedKiosk:
+ return UmaSessionType::kManuallyLaunchedKiosk;
case UserType::kNoUser:
// TODO(b/236689277): Introduce UmaSessionType::kNoLocalUser.
return UmaSessionType::kMaxValue;
- case UserType::kNonAutoLaunchedKiosk:
case UserType::kOther:
NOTREACHED();
return UmaSessionType::kMaxValue;
@@ -507,8 +508,8 @@ bool DeviceCommandStartCrdSessionJob::ShouldShowConfirmationDialog() const {
case UserType::kManagedGuestSession:
return true;
case UserType::kAutoLaunchedKiosk:
+ case UserType::kManuallyLaunchedKiosk:
case UserType::kNoUser:
- case UserType::kNonAutoLaunchedKiosk:
case UserType::kOther:
return false;
}
@@ -532,9 +533,9 @@ bool DeviceCommandStartCrdSessionJob::ShouldTerminateUponInput() const {
// user input.
return false;
case UserType::kAutoLaunchedKiosk:
+ case UserType::kManuallyLaunchedKiosk:
return !acked_user_presence_;
case UserType::kNoUser:
- case UserType::kNonAutoLaunchedKiosk:
case UserType::kOther:
// This method will only be called for user types for which we support
// CRD sessions.
@@ -562,8 +563,8 @@ const char* DeviceCommandStartCrdSessionJob::UserTypeToString(
switch (value) {
case UserType::kAutoLaunchedKiosk:
return "kAutoLaunchedKiosk";
- case UserType::kNonAutoLaunchedKiosk:
- return "kNonAutoLaunchedKiosk";
+ case UserType::kManuallyLaunchedKiosk:
+ return "kManuallyLaunchedKiosk";
case UserType::kNoUser:
return "kNoUser";
case UserType::kAffiliatedUser:
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.h b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.h
index 0b311ef0f807e..5a86bc73b5d80 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.h
+++ b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.h
@@ -95,12 +95,13 @@ class DeviceCommandStartCrdSessionJob : public RemoteCommandJob {
// fetch an oauth token.
void SetOAuthTokenForTest(const std::string& token);
- // This enum can't be renumbered because its logged to UMA.
+ // This enum can't be renumbered because it is logged to UMA.
enum class UmaSessionType {
kAutoLaunchedKiosk = 0,
kAffiliatedUser = 1,
kManagedGuestSession = 2,
- kMaxValue = kManagedGuestSession
+ kManuallyLaunchedKiosk = 3,
+ kMaxValue = kManuallyLaunchedKiosk
};
protected:
@@ -116,7 +117,7 @@ class DeviceCommandStartCrdSessionJob : public RemoteCommandJob {
enum class UserType {
kAutoLaunchedKiosk,
- kNonAutoLaunchedKiosk,
+ kManuallyLaunchedKiosk,
kNoUser,
kAffiliatedUser,
kManagedGuestSession,
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc
index 8d6528b009147..dac0a34b5af8b 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_unittest.cc
@@ -270,6 +270,12 @@ class DeviceCommandStartCrdSessionJobTest : public ash::DeviceSettingsTestBase {
->set_current_app_was_auto_launched_with_zero_delay_for_testing(true);
}
+ void LogInAsManuallyLaunchedKioskAppUser() {
+ LogInAsKioskAppUser();
+ ash::KioskAppManager::Get()
+ ->set_current_app_was_auto_launched_with_zero_delay_for_testing(false);
+ }
+
void SetDeviceIdleTime(int idle_time_in_sec) {
user_activity_detector_->set_last_activity_time_for_test(
base::TimeTicks::Now() - base::Seconds(idle_time_in_sec));
@@ -439,18 +445,17 @@ TEST_F(DeviceCommandStartCrdSessionJobTest, ShouldFailForRegularUser) {
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldFailForKioskUserWithoutAutoLaunch) {
+ ShouldSucceedForManuallyLaunchedKioskUser) {
LogInAsKioskAppUser();
ash::KioskAppManager::Get()
->set_current_app_was_auto_launched_with_zero_delay_for_testing(false);
- EXPECT_ERROR(RunJobAndWaitForResult(),
- DeviceCommandStartCrdSessionJob::FAILURE_UNSUPPORTED_USER_TYPE);
+ EXPECT_SUCCESS(RunJobAndWaitForResult());
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldSucceedForKioskUserWithZeroDelayAutoLaunch) {
+ ShouldSucceedForAutoLaunchedKioskUser) {
LogInAsKioskAppUser();
ash::KioskAppManager::Get()
->set_current_app_was_auto_launched_with_zero_delay_for_testing(true);
@@ -459,19 +464,18 @@ TEST_F(DeviceCommandStartCrdSessionJobTest,
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldFailForArcKioskUserWithoutAutoLaunch) {
+ ShouldSucceedForManuallyLaunchedArcKioskUser) {
SetOAuthToken(kTestOAuthToken);
LogInAsArcKioskAppUser();
ash::ArcKioskAppManager::Get()
->set_current_app_was_auto_launched_with_zero_delay_for_testing(false);
- EXPECT_ERROR(RunJobAndWaitForResult(),
- DeviceCommandStartCrdSessionJob::FAILURE_UNSUPPORTED_USER_TYPE);
+ EXPECT_SUCCESS(RunJobAndWaitForResult());
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldSucceedForArcKioskUserWithZeroDelayAutoLaunch) {
+ ShouldSucceedForAutoLaunchedArcKioskUser) {
LogInAsArcKioskAppUser();
ash::ArcKioskAppManager::Get()
->set_current_app_was_auto_launched_with_zero_delay_for_testing(true);
@@ -480,17 +484,16 @@ TEST_F(DeviceCommandStartCrdSessionJobTest,
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldFailForWebKioskUserWithoutAutoLaunch) {
+ ShouldSucceedForManuallyLaunchedWebKioskUser) {
LogInAsWebKioskAppUser();
ash::WebKioskAppManager::Get()
->set_current_app_was_auto_launched_with_zero_delay_for_testing(false);
- EXPECT_ERROR(RunJobAndWaitForResult(),
- DeviceCommandStartCrdSessionJob::FAILURE_UNSUPPORTED_USER_TYPE);
+ EXPECT_SUCCESS(RunJobAndWaitForResult());
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldSucceedForWebKioskUserWithZeroDelayAutoLaunch) {
+ ShouldSucceedForAutoLaunchedWebKioskUser) {
LogInAsWebKioskAppUser();
ash::WebKioskAppManager::Get()
->set_current_app_was_auto_launched_with_zero_delay_for_testing(true);
@@ -585,7 +588,7 @@ TEST_F(DeviceCommandStartCrdSessionJobTest,
TEST_F(
DeviceCommandStartCrdSessionJobTest,
- ShouldPassTerminateUponInputTrueToDelegateForKioskUserIfAckedUserPresenceSetFalse) {
+ ShouldPassTerminateUponInputTrueToDelegateForAutolaunchedKioskIfAckedUserPresenceSetFalse) {
LogInAsAutoLaunchedKioskAppUser();
EXPECT_SUCCESS(
@@ -597,7 +600,7 @@ TEST_F(
TEST_F(
DeviceCommandStartCrdSessionJobTest,
- ShouldPassTerminateUponInputFalseToDelegateForKioskUserIfAckedUserPresenceSetTrue) {
+ ShouldPassTerminateUponInputFalseToDelegateForAutolaunchedKioskIfAckedUserPresenceSetTrue) {
LogInAsAutoLaunchedKioskAppUser();
EXPECT_SUCCESS(
@@ -607,6 +610,30 @@ TEST_F(
crd_host_delegate().session_parameters().terminate_upon_input);
}
+TEST_F(
+ DeviceCommandStartCrdSessionJobTest,
+ ShouldPassTerminateUponInputTrueToDelegateForManuallylaunchedKioskIfAckedUserPresenceSetFalse) {
+ LogInAsManuallyLaunchedKioskAppUser();
+
+ EXPECT_SUCCESS(
+ RunJobAndWaitForResult(Payload().Set("acked_user_presence", false)));
+
+ EXPECT_EQ(true,
+ crd_host_delegate().session_parameters().terminate_upon_input);
+}
+
+TEST_F(
+ DeviceCommandStartCrdSessionJobTest,
+ ShouldPassTerminateUponInputFalseToDelegateForManuallyLaunchedKioskIfAckedUserPresenceSetTrue) {
+ LogInAsManuallyLaunchedKioskAppUser();
+
+ EXPECT_SUCCESS(
+ RunJobAndWaitForResult(Payload().Set("ackedUserPresence", true)));
+
+ EXPECT_EQ(false,
+ crd_host_delegate().session_parameters().terminate_upon_input);
+}
+
TEST_F(DeviceCommandStartCrdSessionJobTest,
ShouldPassShowConfirmationDialogFalseToDelegateForKioskUser) {
LogInAsAutoLaunchedKioskAppUser();
@@ -673,7 +700,7 @@ TEST_F(DeviceCommandStartCrdSessionJobTest,
}
TEST_F(DeviceCommandStartCrdSessionJobTest,
- ShouldSendSuccessUmaLogWhenAutoLaunchKioskConnects) {
+ ShouldSendSuccessUmaLogWhenAutoLaunchedKioskConnects) {
base::HistogramTester histogram_tester;
LogInAsAutoLaunchedKioskAppUser();
@@ -687,6 +714,21 @@ TEST_F(DeviceCommandStartCrdSessionJobTest,
UmaSessionType::kAutoLaunchedKiosk, 1);
}
+TEST_F(DeviceCommandStartCrdSessionJobTest,
+ ShouldSendSuccessUmaLogWhenManuallyLaunchedKioskConnects) {
+ base::HistogramTester histogram_tester;
+
+ LogInAsManuallyLaunchedKioskAppUser();
+ crd_host_delegate().SetHasActiveSession(true);
+ RunJobAndWaitForResult();
+
+ histogram_tester.ExpectUniqueSample(
+ "Enterprise.DeviceRemoteCommand.Crd.Result", ResultCode::SUCCESS, 1);
+ histogram_tester.ExpectUniqueSample(
+ "Enterprise.DeviceRemoteCommand.Crd.SessionType",
+ UmaSessionType::kManuallyLaunchedKiosk, 1);
+}
+
TEST_F(DeviceCommandStartCrdSessionJobTest,
ShouldSendSuccessUmaLogWhenAffiliatedUserConnects) {
base::HistogramTester histogram_tester;
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index a7090618deb61..38d50876e8197 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -30726,6 +30726,7 @@ Called by update_document_policy_enum.py.-->
+