Index: chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.cc |
diff --git a/chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.cc b/chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.cc |
index afd4e68382a125618bf15689f464cbf84223e2c3..3beae8927a1fa80f5b903877df4f881b2266fdd4 100644 |
--- a/chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.cc |
+++ b/chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.cc |
@@ -8,23 +8,43 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
#include "chrome/common/chrome_features.h" |
+#include "chrome/common/pref_names.h" |
+#include "components/prefs/pref_registry_simple.h" |
+#include "components/prefs/pref_service.h" |
#include "components/user_manager/user_manager.h" |
namespace chromeos { |
namespace { |
bool enable_for_testing_ = false; |
+// Options for the quick unlock whitelist. |
+const char kQuickUnlockWhitelistOptionAll[] = "all"; |
+const char kQuickUnlockWhitelistOptionPin[] = "PIN"; |
} // namespace |
-bool IsQuickUnlockEnabled() { |
+void RegisterQuickUnlockProfilePrefs(PrefRegistrySimple* registry) { |
+ base::ListValue quick_unlock_whitelist_default; |
+ quick_unlock_whitelist_default.AppendString(kQuickUnlockWhitelistOptionPin); |
+ registry->RegisterListPref(prefs::kQuickUnlockModeWhitelist, |
+ quick_unlock_whitelist_default.DeepCopy()); |
+ registry->RegisterIntegerPref( |
+ prefs::kQuickUnlockTimeout, |
+ static_cast<int>(QuickUnlockPasswordConfirmationFrequency::DAY)); |
+} |
+ |
+bool IsPinUnlockEnabled(PrefService* pref_service) { |
if (enable_for_testing_) |
return true; |
- // TODO(jdufault): Implement a proper policy check. For now, just disable if |
- // the device is enterprise enrolled. See crbug.com/612271. |
- if (g_browser_process->platform_part() |
- ->browser_policy_connector_chromeos() |
- ->IsEnterpriseManaged()) { |
+ // Check if policy allows PIN. |
+ const base::ListValue* quick_unlock_whitelist = |
+ pref_service->GetList(prefs::kQuickUnlockModeWhitelist); |
+ base::StringValue all_value(kQuickUnlockWhitelistOptionAll); |
+ base::StringValue pin_value(kQuickUnlockWhitelistOptionPin); |
+ if (quick_unlock_whitelist->Find(all_value) == |
+ quick_unlock_whitelist->end() && |
+ quick_unlock_whitelist->Find(pin_value) == |
+ quick_unlock_whitelist->end()) { |
return false; |
} |