Index: chrome/browser/policy/cloud/user_policy_signin_service_base.cc |
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc |
index d50902ec6c83f497fd86330fd241741ae53bfb1c..ae1d7bdfa080f684d0479f21f1537f69412f363e 100644 |
--- a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc |
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc |
@@ -133,6 +133,10 @@ void UserPolicySigninServiceBase::OnClientError(CloudPolicyClient* client) { |
} |
void UserPolicySigninServiceBase::Shutdown() { |
+ PrepareForUserCloudPolicyManagerShutdown(); |
+} |
+ |
+void UserPolicySigninServiceBase::PrepareForUserCloudPolicyManagerShutdown() { |
UserCloudPolicyManager* manager = GetManager(); |
if (manager && manager->core()->client()) |
manager->core()->client()->RemoveObserver(this); |
@@ -230,7 +234,7 @@ void UserPolicySigninServiceBase::InitializeUserCloudPolicyManager( |
} |
void UserPolicySigninServiceBase::ShutdownUserCloudPolicyManager() { |
- Shutdown(); |
+ PrepareForUserCloudPolicyManagerShutdown(); |
UserCloudPolicyManager* manager = GetManager(); |
if (manager) |
manager->DisconnectAndRemovePolicy(); |