| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/auth/auth_attempt_state.h" | 5 #include "chromeos/login/auth/auth_attempt_state.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "content/public/browser/browser_thread.h" | |
| 10 #include "google_apis/gaia/gaia_auth_consumer.h" | 9 #include "google_apis/gaia/gaia_auth_consumer.h" |
| 11 #include "google_apis/gaia/gaia_auth_fetcher.h" | 10 #include "google_apis/gaia/gaia_auth_fetcher.h" |
| 12 | 11 |
| 13 using content::BrowserThread; | |
| 14 | |
| 15 namespace chromeos { | 12 namespace chromeos { |
| 16 | 13 |
| 17 AuthAttemptState::AuthAttemptState(const UserContext& user_context, | 14 AuthAttemptState::AuthAttemptState(const UserContext& user_context, |
| 18 user_manager::UserType user_type, | 15 user_manager::UserType user_type, |
| 19 bool unlock, | 16 bool unlock, |
| 20 bool online_complete, | 17 bool online_complete, |
| 21 bool user_is_new) | 18 bool user_is_new) |
| 22 : user_context(user_context), | 19 : user_context(user_context), |
| 23 user_type(user_type), | 20 user_type(user_type), |
| 24 unlock(unlock), | 21 unlock(unlock), |
| 25 online_complete_(online_complete), | 22 online_complete_(online_complete), |
| 26 online_outcome_(online_complete ? AuthFailure::UNLOCK_FAILED | 23 online_outcome_(online_complete ? AuthFailure::UNLOCK_FAILED |
| 27 : AuthFailure::NONE), | 24 : AuthFailure::NONE), |
| 28 hosted_policy_(GaiaAuthFetcher::HostedAccountsAllowed), | 25 hosted_policy_(GaiaAuthFetcher::HostedAccountsAllowed), |
| 29 is_first_time_user_(user_is_new), | 26 is_first_time_user_(user_is_new), |
| 30 cryptohome_complete_(false), | 27 cryptohome_complete_(false), |
| 31 cryptohome_outcome_(false), | 28 cryptohome_outcome_(false), |
| 32 cryptohome_code_(cryptohome::MOUNT_ERROR_NONE), | 29 cryptohome_code_(cryptohome::MOUNT_ERROR_NONE), |
| 33 username_hash_obtained_(true), | 30 username_hash_obtained_(true), |
| 34 username_hash_valid_(true) { | 31 username_hash_valid_(true) { |
| 35 } | 32 } |
| 36 | 33 |
| 37 AuthAttemptState::~AuthAttemptState() {} | 34 AuthAttemptState::~AuthAttemptState() { |
| 35 } |
| 38 | 36 |
| 39 void AuthAttemptState::RecordOnlineLoginStatus(const AuthFailure& outcome) { | 37 void AuthAttemptState::RecordOnlineLoginStatus(const AuthFailure& outcome) { |
| 40 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 41 online_complete_ = true; | 38 online_complete_ = true; |
| 42 online_outcome_ = outcome; | 39 online_outcome_ = outcome; |
| 43 // We're either going to not try again, or try again with HOSTED | 40 // We're either going to not try again, or try again with HOSTED |
| 44 // accounts not allowed, so just set this here. | 41 // accounts not allowed, so just set this here. |
| 45 DisableHosted(); | 42 DisableHosted(); |
| 46 } | 43 } |
| 47 | 44 |
| 48 void AuthAttemptState::DisableHosted() { | 45 void AuthAttemptState::DisableHosted() { |
| 49 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 50 hosted_policy_ = GaiaAuthFetcher::HostedAccountsNotAllowed; | 46 hosted_policy_ = GaiaAuthFetcher::HostedAccountsNotAllowed; |
| 51 } | 47 } |
| 52 | 48 |
| 53 void AuthAttemptState::RecordCryptohomeStatus( | 49 void AuthAttemptState::RecordCryptohomeStatus( |
| 54 bool cryptohome_outcome, | 50 bool cryptohome_outcome, |
| 55 cryptohome::MountError cryptohome_code) { | 51 cryptohome::MountError cryptohome_code) { |
| 56 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 57 cryptohome_complete_ = true; | 52 cryptohome_complete_ = true; |
| 58 cryptohome_outcome_ = cryptohome_outcome; | 53 cryptohome_outcome_ = cryptohome_outcome; |
| 59 cryptohome_code_ = cryptohome_code; | 54 cryptohome_code_ = cryptohome_code; |
| 60 } | 55 } |
| 61 | 56 |
| 62 void AuthAttemptState::RecordUsernameHash(const std::string& username_hash) { | 57 void AuthAttemptState::RecordUsernameHash(const std::string& username_hash) { |
| 63 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 64 user_context.SetUserIDHash(username_hash); | 58 user_context.SetUserIDHash(username_hash); |
| 65 username_hash_obtained_ = true; | 59 username_hash_obtained_ = true; |
| 66 username_hash_valid_ = true; | 60 username_hash_valid_ = true; |
| 67 } | 61 } |
| 68 | 62 |
| 69 void AuthAttemptState::RecordUsernameHashFailed() { | 63 void AuthAttemptState::RecordUsernameHashFailed() { |
| 70 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 71 username_hash_obtained_ = true; | 64 username_hash_obtained_ = true; |
| 72 username_hash_valid_ = false; | 65 username_hash_valid_ = false; |
| 73 } | 66 } |
| 74 | 67 |
| 75 void AuthAttemptState::UsernameHashRequested() { | 68 void AuthAttemptState::UsernameHashRequested() { |
| 76 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 77 username_hash_obtained_ = false; | 69 username_hash_obtained_ = false; |
| 78 } | 70 } |
| 79 | 71 |
| 80 void AuthAttemptState::ResetCryptohomeStatus() { | 72 void AuthAttemptState::ResetCryptohomeStatus() { |
| 81 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 82 cryptohome_complete_ = false; | 73 cryptohome_complete_ = false; |
| 83 cryptohome_outcome_ = false; | 74 cryptohome_outcome_ = false; |
| 84 cryptohome_code_ = cryptohome::MOUNT_ERROR_NONE; | 75 cryptohome_code_ = cryptohome::MOUNT_ERROR_NONE; |
| 85 } | 76 } |
| 86 | 77 |
| 87 bool AuthAttemptState::online_complete() { | 78 bool AuthAttemptState::online_complete() { |
| 88 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 89 return online_complete_; | 79 return online_complete_; |
| 90 } | 80 } |
| 91 | 81 |
| 92 const AuthFailure& AuthAttemptState::online_outcome() { | 82 const AuthFailure& AuthAttemptState::online_outcome() { |
| 93 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 94 return online_outcome_; | 83 return online_outcome_; |
| 95 } | 84 } |
| 96 | 85 |
| 97 bool AuthAttemptState::is_first_time_user() { | 86 bool AuthAttemptState::is_first_time_user() { |
| 98 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 99 return is_first_time_user_; | 87 return is_first_time_user_; |
| 100 } | 88 } |
| 101 | 89 |
| 102 GaiaAuthFetcher::HostedAccountsSetting AuthAttemptState::hosted_policy() { | 90 GaiaAuthFetcher::HostedAccountsSetting AuthAttemptState::hosted_policy() { |
| 103 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 104 return hosted_policy_; | 91 return hosted_policy_; |
| 105 } | 92 } |
| 106 | 93 |
| 107 bool AuthAttemptState::cryptohome_complete() { | 94 bool AuthAttemptState::cryptohome_complete() { |
| 108 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 109 return cryptohome_complete_; | 95 return cryptohome_complete_; |
| 110 } | 96 } |
| 111 | 97 |
| 112 bool AuthAttemptState::cryptohome_outcome() { | 98 bool AuthAttemptState::cryptohome_outcome() { |
| 113 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 114 return cryptohome_outcome_; | 99 return cryptohome_outcome_; |
| 115 } | 100 } |
| 116 | 101 |
| 117 cryptohome::MountError AuthAttemptState::cryptohome_code() { | 102 cryptohome::MountError AuthAttemptState::cryptohome_code() { |
| 118 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 119 return cryptohome_code_; | 103 return cryptohome_code_; |
| 120 } | 104 } |
| 121 | 105 |
| 122 bool AuthAttemptState::username_hash_obtained() { | 106 bool AuthAttemptState::username_hash_obtained() { |
| 123 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 124 return username_hash_obtained_; | 107 return username_hash_obtained_; |
| 125 } | 108 } |
| 126 | 109 |
| 127 bool AuthAttemptState::username_hash_valid() { | 110 bool AuthAttemptState::username_hash_valid() { |
| 128 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
| 129 return username_hash_obtained_; | 111 return username_hash_obtained_; |
| 130 } | 112 } |
| 131 | 113 |
| 132 } // namespace chromeos | 114 } // namespace chromeos |
| OLD | NEW |