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

Unified Diff: chrome/browser/profiles/profile_attributes_entry.cc

Issue 2478173003: Lock profile before sign in when force sign in is enabled. (Closed)
Patch Set: rogerta's comments Created 4 years, 1 month 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
« no previous file with comments | « chrome/browser/profiles/profile_attributes_entry.h ('k') | chrome/browser/signin/chrome_signin_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..0d6afba4c8afe8eb32f3b9091eaea9a32a786497 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,8 @@ bool ProfileAttributesEntry::IsOmitted() const {
}
bool ProfileAttributesEntry::IsSigninRequired() const {
- return profile_info_cache_->ProfileIsSigninRequiredAtIndex(profile_index());
+ return profile_info_cache_->ProfileIsSigninRequiredAtIndex(profile_index()) ||
+ is_force_signin_profile_locked_;
}
std::string ProfileAttributesEntry::GetSupervisedUserId() const {
@@ -223,6 +236,13 @@ void ProfileAttributesEntry::SetIsUsingGAIAPicture(bool value) {
void ProfileAttributesEntry::SetIsSigninRequired(bool value) {
profile_info_cache_->SetProfileSigninRequiredAtIndex(profile_index(), value);
+ if (is_force_signin_enabled_)
+ LockForceSigninProfile(value);
+}
+
+void ProfileAttributesEntry::LockForceSigninProfile(bool is_lock) {
+ DCHECK(is_force_signin_enabled_);
+ is_force_signin_profile_locked_ = is_lock;
}
void ProfileAttributesEntry::SetIsEphemeral(bool value) {
« no previous file with comments | « chrome/browser/profiles/profile_attributes_entry.h ('k') | chrome/browser/signin/chrome_signin_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698