Chromium Code Reviews| Index: chrome/browser/profiles/profile_attributes_entry.cc |
| diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc |
| index 0db57cbe4eb6f82f3bccbf2d3140d37f2e740d5c..4768f2bb113282d3fd4e06018f2c82cd6f1316e2 100644 |
| --- a/chrome/browser/profiles/profile_attributes_entry.cc |
| +++ b/chrome/browser/profiles/profile_attributes_entry.cc |
| @@ -1,13 +1,22 @@ |
| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| - |
| +// |
| +#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/profiles/profile_attributes_entry.h" |
| #include "chrome/browser/profiles/profile_info_cache.h" |
| +#include "chrome/common/pref_names.h" |
| +#include "components/prefs/pref_service.h" |
| + |
| +namespace { |
| +bool IsForceSigninEnabled() { |
| + PrefService* prefs = g_browser_process->local_state(); |
| + return prefs && prefs->GetBoolean(prefs::kForceBrowserSignin); |
| +} |
| +} // namespace |
| ProfileAttributesEntry::ProfileAttributesEntry() |
| - : profile_info_cache_(nullptr), |
| - profile_path_(base::FilePath()) {} |
| + : profile_info_cache_(nullptr), profile_path_(base::FilePath()) {} |
| void ProfileAttributesEntry::Initialize( |
| ProfileInfoCache* cache, const base::FilePath& path) { |
| @@ -17,6 +26,9 @@ void ProfileAttributesEntry::Initialize( |
| DCHECK(profile_path_.empty()); |
| DCHECK(!path.empty()); |
| profile_path_ = path; |
| + is_force_signin_enabled_ = IsForceSigninEnabled(); |
| + if (!IsAuthenticated() && is_force_signin_enabled_) |
| + is_force_signin_profile_locked_ = true; |
| } |
| base::string16 ProfileAttributesEntry::GetName() const { |
| @@ -96,7 +108,9 @@ bool ProfileAttributesEntry::IsOmitted() const { |
| } |
| bool ProfileAttributesEntry::IsSigninRequired() const { |
| - return profile_info_cache_->ProfileIsSigninRequiredAtIndex(profile_index()); |
| + return ( |
|
anthonyvd
2016/11/04 21:31:02
nit: The parens aren't needed.
zmin
2016/11/04 22:11:53
Done.
|
| + profile_info_cache_->ProfileIsSigninRequiredAtIndex(profile_index()) || |
| + is_force_signin_profile_locked_); |
| } |
| std::string ProfileAttributesEntry::GetSupervisedUserId() const { |
| @@ -223,6 +237,12 @@ void ProfileAttributesEntry::SetIsUsingGAIAPicture(bool value) { |
| void ProfileAttributesEntry::SetIsSigninRequired(bool value) { |
| profile_info_cache_->SetProfileSigninRequiredAtIndex(profile_index(), value); |
| + LockForceSigninProfile(value); |
| +} |
| + |
| +void ProfileAttributesEntry::LockForceSigninProfile(bool is_lock) { |
| + if (is_force_signin_enabled_) |
| + is_force_signin_profile_locked_ = is_lock; |
| } |
| void ProfileAttributesEntry::SetIsEphemeral(bool value) { |