| Index: chrome/browser/policy/user_policy_signin_service.cc
|
| diff --git a/chrome/browser/policy/user_policy_signin_service.cc b/chrome/browser/policy/user_policy_signin_service.cc
|
| index 19b70ae14f84c4e573066b6d3f6feca7a4683ebd..96c7a2e93de01bf22af13ce0d1611b0f482814bb 100644
|
| --- a/chrome/browser/policy/user_policy_signin_service.cc
|
| +++ b/chrome/browser/policy/user_policy_signin_service.cc
|
| @@ -408,6 +408,7 @@ void UserPolicySigninService::InitializeUserCloudPolicyManager(
|
| manager->Connect(g_browser_process->local_state(), client.Pass());
|
| DCHECK(manager->core()->service());
|
| StartObserving();
|
| + ProhibitSignoutIfNeeded();
|
| }
|
|
|
| void UserPolicySigninService::InitializeForSignedInUser() {
|
| @@ -474,6 +475,8 @@ void UserPolicySigninService::OnInitializationCompleted(
|
| }
|
| RegisterCloudPolicyService(token);
|
| }
|
| + // If client is registered now, prohibit signout.
|
| + ProhibitSignoutIfNeeded();
|
| }
|
|
|
| void UserPolicySigninService::RegisterCloudPolicyService(
|
| @@ -496,9 +499,19 @@ void UserPolicySigninService::RegisterCloudPolicyService(
|
| }
|
|
|
| void UserPolicySigninService::OnRegistrationComplete() {
|
| + ProhibitSignoutIfNeeded();
|
| registration_helper_.reset();
|
| }
|
|
|
| +void UserPolicySigninService::ProhibitSignoutIfNeeded() {
|
| + if (GetManager()->IsClientRegistered()) {
|
| + DVLOG(1) << "User is registered for policy - prohibiting signout";
|
| + SigninManager* signin_manager =
|
| + SigninManagerFactory::GetForProfile(profile_);
|
| + signin_manager->ProhibitSignout();
|
| + }
|
| +}
|
| +
|
| void UserPolicySigninService::Shutdown() {
|
| // Stop any pending registration helper activity. We do this here instead of
|
| // in the destructor because we want to shutdown the registration helper
|
|
|