Index: chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc |
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc |
index 0036c260981d30cec2d5ac0b4f9927efef26404a..f509183c36ae10ed4808b59113b29b743d1e4821 100644 |
--- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc |
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc |
@@ -136,6 +136,7 @@ void DeviceCloudPolicyManagerChromeOS::Initialize(PrefService* local_state) { |
base::Unretained(this))); |
InitializeRequisition(); |
+ InitializeEnrollment(); |
} |
void DeviceCloudPolicyManagerChromeOS::AddDeviceCloudPolicyManagerObserver( |
@@ -175,8 +176,7 @@ void DeviceCloudPolicyManagerChromeOS::SetDeviceRequisition( |
local_state_->ClearPref(prefs::kDeviceEnrollmentAutoStart); |
local_state_->ClearPref(prefs::kDeviceEnrollmentCanExit); |
} else { |
- local_state_->SetBoolean(prefs::kDeviceEnrollmentAutoStart, true); |
- local_state_->SetBoolean(prefs::kDeviceEnrollmentCanExit, false); |
+ SetDeviceEnrollmentAutoStart(); |
} |
} |
} |
@@ -320,8 +320,7 @@ void DeviceCloudPolicyManagerChromeOS::InitializeRequisition() { |
requisition); |
if (requisition == kRemoraRequisition || |
requisition == kSharkRequisition) { |
- local_state_->SetBoolean(prefs::kDeviceEnrollmentAutoStart, true); |
- local_state_->SetBoolean(prefs::kDeviceEnrollmentCanExit, false); |
+ SetDeviceEnrollmentAutoStart(); |
} else { |
local_state_->SetBoolean( |
prefs::kDeviceEnrollmentAutoStart, |
@@ -336,6 +335,23 @@ void DeviceCloudPolicyManagerChromeOS::InitializeRequisition() { |
} |
} |
+const char kZeroTouchEnrollmentForced[] = "forced"; |
pastarmovj
2016/06/29 08:46:01
nit: Can you move this to the top of the file plea
The one and only Dr. Crash
2016/06/29 21:04:38
Done.
|
+ |
+void DeviceCloudPolicyManagerChromeOS::InitializeEnrollment() { |
+ // Enrollment happens during OOBE only. |
+ if (chromeos::StartupUtils::IsOobeCompleted()) |
+ return; |
+ |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch( |
+ chromeos::switches::kEnterpriseEnableZeroTouchEnrollment) && |
+ command_line->GetSwitchValueASCII( |
+ chromeos::switches::kEnterpriseEnableZeroTouchEnrollment) == |
+ kZeroTouchEnrollmentForced) { |
+ SetDeviceEnrollmentAutoStart(); |
+ } |
+} |
+ |
void DeviceCloudPolicyManagerChromeOS::NotifyConnected() { |
FOR_EACH_OBSERVER( |
Observer, observers_, OnDeviceCloudPolicyManagerConnected()); |