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 3497f0754df1035d585a668aecf88b25aa38add2..1f67d754551b9c75b08954990e29503436c1a9d6 100644 |
--- a/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc |
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.cc |
@@ -16,6 +16,7 @@ |
#include "chrome/browser/policy/cloud/device_management_service.h" |
#include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h" |
#include "chrome/common/pref_names.h" |
+#include "chromeos/chromeos_constants.h" |
namespace em = enterprise_management; |
@@ -49,6 +50,18 @@ const char* kMachineInfoSerialNumberKeys[] = { |
"sn", // old ZGB devices (more recent ones use serial_number) |
}; |
+// Fetches a machine statics from StatisticsProvider, returns an empty string on |
+// failure. |
+std::string GetMachineStatistic(const std::string& key) { |
+ std::string value; |
+ chromeos::system::StatisticsProvider* provider = |
+ chromeos::system::StatisticsProvider::GetInstance(); |
+ if (!provider->GetMachineStatistic(key, &value)) |
+ LOG(WARNING) << "Failed to get machine statistic " << key; |
+ |
+ return value; |
+} |
+ |
} // namespace |
DeviceCloudPolicyManagerChromeOS::DeviceCloudPolicyManagerChromeOS( |
@@ -88,11 +101,14 @@ void DeviceCloudPolicyManagerChromeOS::StartEnrollment( |
CHECK(device_management_service_); |
core()->Disconnect(); |
+ if (requisition_.empty()) |
+ requisition_ = GetMachineStatistic(chromeos::kOemDeviceRequisitionKey); |
+ |
enrollment_handler_.reset( |
new EnrollmentHandlerChromeOS( |
device_store_.get(), install_attributes_, CreateClient(), auth_token, |
install_attributes_->GetDeviceId(), is_auto_enrollment, |
- allowed_device_modes, |
+ requisition_, allowed_device_modes, |
base::Bind(&DeviceCloudPolicyManagerChromeOS::EnrollmentCompleted, |
base::Unretained(this), callback))); |
enrollment_handler_->StartEnrollment(); |
@@ -138,13 +154,7 @@ std::string DeviceCloudPolicyManagerChromeOS::GetMachineID() { |
// static |
std::string DeviceCloudPolicyManagerChromeOS::GetMachineModel() { |
- std::string machine_model; |
- chromeos::system::StatisticsProvider* provider = |
- chromeos::system::StatisticsProvider::GetInstance(); |
- if (!provider->GetMachineStatistic(kMachineInfoSystemHwqual, &machine_model)) |
- LOG(WARNING) << "Failed to get machine model."; |
- |
- return machine_model; |
+ return GetMachineStatistic(kMachineInfoSystemHwqual); |
} |
scoped_ptr<CloudPolicyClient> DeviceCloudPolicyManagerChromeOS::CreateClient() { |