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

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

Issue 751703003: Implemented consumer management unenrollment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dcpm
Patch Set: Created 6 years, 1 month 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 fff337fcc7a73dae4283215ab1ff62f81831e130..b4c31c3de9254e7f379ee84533991775e5049573 100644
--- a/chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc
+++ b/chrome/browser/chromeos/policy/device_cloud_policy_initializer.cc
@@ -57,7 +57,8 @@ DeviceCloudPolicyInitializer::DeviceCloudPolicyInitializer(
ServerBackedStateKeysBroker* state_keys_broker,
DeviceCloudPolicyStoreChromeOS* device_store,
DeviceCloudPolicyManagerChromeOS* manager,
- chromeos::DeviceSettingsService* device_settings_service)
+ chromeos::DeviceSettingsService* device_settings_service,
+ ConsumerManagementService* consumer_management_service)
: local_state_(local_state),
enterprise_service_(enterprise_service),
consumer_service_(consumer_service),
@@ -67,6 +68,7 @@ DeviceCloudPolicyInitializer::DeviceCloudPolicyInitializer(
device_store_(device_store),
manager_(manager),
device_settings_service_(device_settings_service),
+ consumer_management_service_(consumer_management_service),
is_initialized_(false) {
}
@@ -79,6 +81,8 @@ void DeviceCloudPolicyInitializer::Init() {
is_initialized_ = true;
device_store_->AddObserver(this);
+ if (consumer_management_service_)
+ consumer_management_service_->AddObserver(this);
state_keys_update_subscription_ = state_keys_broker_->RegisterUpdateCallback(
base::Bind(&DeviceCloudPolicyInitializer::TryToCreateClient,
base::Unretained(this)));
@@ -95,6 +99,8 @@ void DeviceCloudPolicyInitializer::Init() {
void DeviceCloudPolicyInitializer::Shutdown() {
DCHECK(is_initialized_);
+ if (consumer_management_service_)
+ consumer_management_service_->RemoveObserver(this);
device_store_->RemoveObserver(this);
device_status_provider_.reset();
enrollment_handler_.reset();
@@ -189,6 +195,10 @@ void DeviceCloudPolicyInitializer::OnStoreError(CloudPolicyStore* store) {
// Do nothing.
}
+void DeviceCloudPolicyInitializer::OnConsumerManagementStatusChanged() {
+ TryToCreateClient();
+}
+
void DeviceCloudPolicyInitializer::EnrollmentCompleted(
const EnrollmentCallback& enrollment_callback,
EnrollmentStatus status) {
@@ -224,21 +234,23 @@ 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 = NULL;
- if (device_store_->policy()->management_mode() ==
- em::PolicyData::CONSUMER_MANAGED) {
- service = consumer_service_;
- } else {
- service = enterprise_service_;
- }
- if (service)
- StartConnection(CreateClient(service));
+ if (enrollment_handler_ || state_keys_broker_->pending())
+ return;
+
+ DeviceManagementService* service = NULL;
bartfab (slow) 2014/11/28 13:25:18 Nit: s/NULL/nullptr/
davidyu 2014/12/01 17:05:22 Done.
+ if (consumer_management_service_ &&
+ consumer_management_service_->IsManaged()) {
+ service = consumer_service_;
+ } else if (device_store_->is_initialized() &&
+ device_store_->has_policy() &&
+ !device_store_->policy()->request_token().empty()) {
+ DCHECK_NE(em::PolicyData::CONSUMER_MANAGED,
+ device_store_->policy()->management_mode());
+ service = enterprise_service_;
}
+
+ if (service)
+ StartConnection(CreateClient(service));
}
void DeviceCloudPolicyInitializer::StartConnection(

Powered by Google App Engine
This is Rietveld 408576698