Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.h" | 5 #include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.h" |
| 6 | 6 |
| 7 #include "base/feature_list.h" | 7 #include "base/feature_list.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 9 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 10 #include "chrome/common/chrome_features.h" | 10 #include "chrome/common/chrome_features.h" |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 29 quick_unlock_whitelist_default.DeepCopy()); | 29 quick_unlock_whitelist_default.DeepCopy()); |
| 30 registry->RegisterIntegerPref( | 30 registry->RegisterIntegerPref( |
| 31 prefs::kQuickUnlockTimeout, | 31 prefs::kQuickUnlockTimeout, |
| 32 static_cast<int>(QuickUnlockPasswordConfirmationFrequency::DAY)); | 32 static_cast<int>(QuickUnlockPasswordConfirmationFrequency::DAY)); |
| 33 | 33 |
| 34 // Preferences related the lock screen pin unlock. | 34 // Preferences related the lock screen pin unlock. |
| 35 registry->RegisterIntegerPref(prefs::kPinUnlockMinimumLength, 4); | 35 registry->RegisterIntegerPref(prefs::kPinUnlockMinimumLength, 4); |
| 36 // 0 indicates no maximum length for the pin. | 36 // 0 indicates no maximum length for the pin. |
| 37 registry->RegisterIntegerPref(prefs::kPinUnlockMaximumLength, 0); | 37 registry->RegisterIntegerPref(prefs::kPinUnlockMaximumLength, 0); |
| 38 registry->RegisterBooleanPref(prefs::kPinUnlockWeakPinsAllowed, true); | 38 registry->RegisterBooleanPref(prefs::kPinUnlockWeakPinsAllowed, true); |
| 39 | |
| 40 registry->RegisterBooleanPref(prefs::kEnableQuickUnlockFingerprint, false); | |
| 39 } | 41 } |
| 40 | 42 |
| 41 bool IsPinUnlockEnabled(PrefService* pref_service) { | 43 bool IsPinUnlockEnabled(PrefService* pref_service) { |
| 42 if (enable_for_testing_) | 44 if (enable_for_testing_) |
| 43 return true; | 45 return true; |
| 44 | 46 |
| 45 // Check if policy allows PIN. | 47 // Check if policy allows PIN. |
| 46 const base::ListValue* quick_unlock_whitelist = | 48 const base::ListValue* quick_unlock_whitelist = |
| 47 pref_service->GetList(prefs::kQuickUnlockModeWhitelist); | 49 pref_service->GetList(prefs::kQuickUnlockModeWhitelist); |
| 48 base::StringValue all_value(kQuickUnlockWhitelistOptionAll); | 50 base::StringValue all_value(kQuickUnlockWhitelistOptionAll); |
| 49 base::StringValue pin_value(kQuickUnlockWhitelistOptionPin); | 51 base::StringValue pin_value(kQuickUnlockWhitelistOptionPin); |
| 50 if (quick_unlock_whitelist->Find(all_value) == | 52 if (quick_unlock_whitelist->Find(all_value) == |
| 51 quick_unlock_whitelist->end() && | 53 quick_unlock_whitelist->end() && |
| 52 quick_unlock_whitelist->Find(pin_value) == | 54 quick_unlock_whitelist->Find(pin_value) == |
| 53 quick_unlock_whitelist->end()) { | 55 quick_unlock_whitelist->end()) { |
| 54 return false; | 56 return false; |
| 55 } | 57 } |
| 56 | 58 |
| 57 // TODO(jdufault): Disable PIN for supervised users until we allow the owner | 59 // TODO(jdufault): Disable PIN for supervised users until we allow the owner |
| 58 // to set the PIN. See crbug.com/632797. | 60 // to set the PIN. See crbug.com/632797. |
| 59 user_manager::User* user = user_manager::UserManager::Get()->GetActiveUser(); | 61 user_manager::User* user = user_manager::UserManager::Get()->GetActiveUser(); |
| 60 if (user && user->IsSupervised()) | 62 if (user && user->IsSupervised()) |
| 61 return false; | 63 return false; |
| 62 | 64 |
| 63 // Enable quick unlock only if the switch is present. | 65 // Enable quick unlock only if the switch is present. |
| 64 return base::FeatureList::IsEnabled(features::kQuickUnlockPin); | 66 return base::FeatureList::IsEnabled(features::kQuickUnlockPin); |
| 65 } | 67 } |
| 66 | 68 |
| 69 bool IsFingerprintUnlockEnabled() { | |
| 70 // Enable fingerprint unlock only if the switch is present. The fingerprint | |
| 71 // settings are under the lock screen so we cannot set it up without | |
| 72 // kQuickUnlockPin enabled, so make sure that feature is turned on as well. | |
| 73 return base::FeatureList::IsEnabled(features::kQuickUnlockPin) && | |
|
Dan Beam
2016/12/13 19:53:23
can we rename the Pin version to just kQuickUnlock
sammiequon
2016/12/13 23:33:33
Should I add a TODO and bug or do you prefer to do
jdufault
2016/12/14 17:58:57
That seems confusing; in the context of kQuickUnlo
Dan Beam
2016/12/14 22:25:17
it's not too long, it's confusing that the PIN ver
jdufault
2016/12/14 23:32:56
Yes, I agree. I think renaming only the flag/pref
sammiequon
2017/01/10 22:33:27
I removed the dependence on kQuickUnlockPin.
| |
| 74 base::FeatureList::IsEnabled(features::kQuickUnlockFingerprint); | |
| 75 } | |
| 76 | |
| 67 void EnableQuickUnlockForTesting() { | 77 void EnableQuickUnlockForTesting() { |
| 68 enable_for_testing_ = true; | 78 enable_for_testing_ = true; |
| 69 } | 79 } |
| 70 | 80 |
| 71 } // namespace chromeos | 81 } // namespace chromeos |
| OLD | NEW |