| 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..1baf65949ad6a4e64aae3ff44119ec8bc9841b50 100644
|
| --- a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
|
| +++ b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
|
| @@ -72,7 +72,7 @@ void UserPolicySigninServiceBase::Observe(
|
| const content::NotificationDetails& details) {
|
| // If using a TestingProfile with no SigninManager or UserCloudPolicyManager,
|
| // skip initialization.
|
| - if (!GetManager() || !SigninManagerFactory::GetForProfile(profile_)) {
|
| + if (!GetManager() || !GetSigninManager()) {
|
| DVLOG(1) << "Skipping initialization for tests due to missing components.";
|
| return;
|
| }
|
| @@ -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);
|
| @@ -181,9 +185,7 @@ bool UserPolicySigninServiceBase::ShouldLoadPolicyForUser(
|
| }
|
|
|
| void UserPolicySigninServiceBase::InitializeOnProfileReady() {
|
| - SigninManager* signin_manager =
|
| - SigninManagerFactory::GetForProfile(profile_);
|
| - std::string username = signin_manager->GetAuthenticatedUsername();
|
| + std::string username = GetSigninManager()->GetAuthenticatedUsername();
|
| if (username.empty())
|
| ShutdownUserCloudPolicyManager();
|
| else
|
| @@ -230,7 +232,7 @@ void UserPolicySigninServiceBase::InitializeUserCloudPolicyManager(
|
| }
|
|
|
| void UserPolicySigninServiceBase::ShutdownUserCloudPolicyManager() {
|
| - Shutdown();
|
| + PrepareForUserCloudPolicyManagerShutdown();
|
| UserCloudPolicyManager* manager = GetManager();
|
| if (manager)
|
| manager->DisconnectAndRemovePolicy();
|
| @@ -240,4 +242,8 @@ UserCloudPolicyManager* UserPolicySigninServiceBase::GetManager() {
|
| return UserCloudPolicyManagerFactory::GetForProfile(profile_);
|
| }
|
|
|
| +SigninManager* UserPolicySigninServiceBase::GetSigninManager() {
|
| + return SigninManagerFactory::GetForProfile(profile_);
|
| +}
|
| +
|
| } // namespace policy
|
|
|