| // Copyright 2017 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/signin/signin_util.h" |
| |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/prefs/pref_service.h" |
| |
| namespace signin_util { |
| namespace { |
| |
| enum ForceSigninPolicyCache { |
| NOT_CACHED = 0, |
| ENABLE, |
| DISABLE |
| } g_is_force_signin_enabled_cache = NOT_CACHED; |
| |
| void SetForceSigninPolicy(bool enable) { |
| g_is_force_signin_enabled_cache = enable ? ENABLE : DISABLE; |
| } |
| |
| } // namespace |
| |
| bool IsForceSigninEnabled() { |
| if (g_is_force_signin_enabled_cache == NOT_CACHED) { |
| PrefService* prefs = g_browser_process->local_state(); |
| if (prefs) |
| SetForceSigninPolicy(prefs->GetBoolean(prefs::kForceBrowserSignin)); |
| else |
| return false; |
| } |
| return (g_is_force_signin_enabled_cache == ENABLE); |
| } |
| |
| void SetForceSigninForTesting(bool enable) { |
| SetForceSigninPolicy(enable); |
| } |
| |
| void ResetForceSigninForTesting() { |
| g_is_force_signin_enabled_cache = NOT_CACHED; |
| } |
| |
| } // namespace signin_util |