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

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

Issue 751703003: Implemented consumer management unenrollment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dcpm
Patch Set: Rebase. Created 5 years, 11 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/browser_policy_connector_chromeos.cc
diff --git a/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc b/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc
index d21ca9a22e1890ae691b55bb38c8ea2ce3f20e21..dd7dd53e218e434268a003c800f9beb515d8bf6b 100644
--- a/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc
+++ b/chrome/browser/chromeos/policy/browser_policy_connector_chromeos.cc
@@ -149,6 +149,7 @@ BrowserPolicyConnectorChromeOS::~BrowserPolicyConnectorChromeOS() {}
void BrowserPolicyConnectorChromeOS::Init(
PrefService* local_state,
scoped_refptr<net::URLRequestContextGetter> request_context) {
+ local_state_ = local_state;
ChromeBrowserPolicyConnector::Init(local_state, request_context);
const base::CommandLine* command_line =
@@ -171,18 +172,7 @@ void BrowserPolicyConnectorChromeOS::Init(
device_cloud_policy_manager_->Initialize(local_state);
device_cloud_policy_manager_->AddDeviceCloudPolicyManagerObserver(this);
-
- device_cloud_policy_initializer_.reset(
- new DeviceCloudPolicyInitializer(
- local_state,
- device_management_service(),
- consumer_device_management_service_.get(),
- GetBackgroundTaskRunner(),
- install_attributes_.get(),
- state_keys_broker_.get(),
- device_cloud_policy_manager_->device_store(),
- device_cloud_policy_manager_));
- device_cloud_policy_initializer_->Init();
+ RestartDeviceCloudPolicyInitializer();
}
device_local_account_policy_service_.reset(
@@ -315,13 +305,19 @@ void BrowserPolicyConnectorChromeOS::RegisterPrefs(
}
void BrowserPolicyConnectorChromeOS::OnDeviceCloudPolicyManagerConnected() {
+ CHECK(device_cloud_policy_initializer_);
+
// DeviceCloudPolicyInitializer might still be on the call stack, so we
// should release the initializer after this function returns.
- if (device_cloud_policy_initializer_) {
- device_cloud_policy_initializer_->Shutdown();
- base::MessageLoop::current()->DeleteSoon(
- FROM_HERE, device_cloud_policy_initializer_.release());
- }
+ device_cloud_policy_initializer_->Shutdown();
+ base::MessageLoop::current()->DeleteSoon(
+ FROM_HERE, device_cloud_policy_initializer_.release());
+}
+
+void BrowserPolicyConnectorChromeOS::OnDeviceCloudPolicyManagerDisconnected() {
+ DCHECK(!device_cloud_policy_initializer_);
+
+ RestartDeviceCloudPolicyInitializer();
}
void BrowserPolicyConnectorChromeOS::SetTimezoneIfPolicyAvailable() {
@@ -343,4 +339,18 @@ void BrowserPolicyConnectorChromeOS::SetTimezoneIfPolicyAvailable() {
}
}
+void BrowserPolicyConnectorChromeOS::RestartDeviceCloudPolicyInitializer() {
+ device_cloud_policy_initializer_.reset(
+ new DeviceCloudPolicyInitializer(
+ local_state_,
+ device_management_service(),
+ consumer_device_management_service_.get(),
+ GetBackgroundTaskRunner(),
+ install_attributes_.get(),
+ state_keys_broker_.get(),
+ device_cloud_policy_manager_->device_store(),
+ device_cloud_policy_manager_));
+ device_cloud_policy_initializer_->Init();
+}
+
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698