Index: chrome/browser/chromeos/login/parallel_authenticator.h |
diff --git a/chrome/browser/chromeos/login/parallel_authenticator.h b/chrome/browser/chromeos/login/parallel_authenticator.h |
index fc50c38909ac4d6547dc5cf6e9b2f8097d25d9d5..8f898e1975e7d72b53383c0de4e1451780300757 100644 |
--- a/chrome/browser/chromeos/login/parallel_authenticator.h |
+++ b/chrome/browser/chromeos/login/parallel_authenticator.h |
@@ -76,7 +76,8 @@ class ParallelAuthenticator : public Authenticator, |
UNLOCK, // Screen unlock succeeded. |
ONLINE_FAILED, // Online login disallowed, but offline succeeded. |
GUEST_LOGIN, // Logged in guest mode. |
- LOGIN_FAILED // Login denied. |
+ LOGIN_FAILED, // Login denied. |
+ OWNER_REQUIRED // Login is restricted to the owner only. |
}; |
explicit ParallelAuthenticator(LoginStatusConsumer* consumer); |
@@ -217,6 +218,15 @@ class ParallelAuthenticator : public Authenticator, |
// Returns false if the key can not be loaded/created. |
bool LoadSupplementalUserKey(); |
+ // checks if the current mounted home contains the owner case and either |
+ // continues or fails the log-in. Used for policy lost mitigation "safe-mode". |
+ void VerifyOwnerOnUIThread(); |
+ |
+ // checks if the current mounted home contains the owner case and either |
+ // continues or fails the log-in. Used for policy lost mitigation "safe-mode". |
+ void FinishVerifyOwnerOnFileThread(); |
+ |
+ |
// Records OAuth1 access token verification failure for |user_account|. |
void RecordOAuthCheckFailure(const std::string& user_account); |
@@ -247,7 +257,14 @@ class ParallelAuthenticator : public Authenticator, |
// This allows us to present the same behavior to the caller, regardless |
// of the order in which we receive these results. |
bool already_reported_success_; |
- base::Lock success_lock_; // A lock around already_reported_success_. |
+ base::Lock success_lock_; // A lock around |already_reported_success_|. |
+ |
+ // Flags signaling whether the owner verification has been done and the result |
+ // of it. |
+ bool owner_is_verified_; |
+ bool user_can_login_; |
+ // A lock for |owner_is_verified_| and |current_user_is_owner_|. |
+ base::Lock owner_verified_lock_; |
// True if we use OAuth-based authentication flow. |
bool using_oauth_; |