Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(520)

Unified Diff: chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc

Issue 374573006: Force enterprise enrollment flow upon detection of inconsistent state. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc b/chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc
index 612e301e855bd1111d2a9218318821df5f31f265..36e0cd1bb6fc98f549643ad8d6ca2e336ce3aad0 100644
--- a/chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc
@@ -11,6 +11,7 @@
#include "base/sequenced_task_runner.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
#include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
#include "chrome/browser/chromeos/policy/device_status_collector.h"
@@ -128,6 +129,21 @@ bool DeviceCloudPolicyInitializer::ShouldAutoStartEnrollment() const {
return GetMachineFlag(chromeos::system::kOemIsEnterpriseManagedKey, false);
}
+bool DeviceCloudPolicyInitializer::ShouldRecoverEnrollment() const {
+ if (install_attributes_->IsEnterpriseDevice()
+ && chromeos::StartupUtils::IsEnrollmentRecoveryRequired()) {
pastarmovj 2014/07/08 12:36:31 nit: Move the && to the line above.
Thiemo Nagel 2014/07/08 14:02:04 Done.
+ LOG(WARNING) << "Enrollment recovery required according to pref.";
+ std::string machine_id;
+ bool machine_id_success =
+ chromeos::system::StatisticsProvider::GetInstance()
+ ->GetMachineStatistic(chromeos::system::kHardwareClassKey, &machine_id);
pastarmovj 2014/07/08 12:36:31 nit this line should be further 4 spaces in. I thi
Thiemo Nagel 2014/07/08 14:02:04 I've tried it, to my eyes that looked worse. But
+ if (machine_id_success && machine_id != "")
+ return true;
+ LOG(WARNING) << "Postponing recovery because machine id is missing.";
+ }
+ return false;
+}
+
bool DeviceCloudPolicyInitializer::CanExitEnrollment() const {
if (GetRestoreMode() == kDeviceStateRestoreModeReEnrollmentEnforced)
return false;
@@ -194,6 +210,7 @@ scoped_ptr<CloudPolicyClient> DeviceCloudPolicyInitializer::CreateClient(
void DeviceCloudPolicyInitializer::TryToCreateClient() {
if (device_store_->is_initialized() &&
device_store_->has_policy() &&
+ !device_store_->policy()->request_token().empty() &&
!state_keys_broker_->pending() &&
!enrollment_handler_) {
DeviceManagementService* service;

Powered by Google App Engine
This is Rietveld 408576698