| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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/sync/engine/auth_watcher.h" | 5 #include "chrome/browser/sync/engine/auth_watcher.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "chrome/browser/sync/engine/all_status.h" | 9 #include "chrome/browser/sync/engine/all_status.h" |
| 10 #include "chrome/browser/sync/engine/authenticator.h" | 10 #include "chrome/browser/sync/engine/authenticator.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 | 43 |
| 44 AuthWatcher::AuthWatcher(DirectoryManager* dirman, | 44 AuthWatcher::AuthWatcher(DirectoryManager* dirman, |
| 45 ServerConnectionManager* scm, | 45 ServerConnectionManager* scm, |
| 46 AllStatus* allstatus, | 46 AllStatus* allstatus, |
| 47 const string& user_agent, | 47 const string& user_agent, |
| 48 const string& service_id, | 48 const string& service_id, |
| 49 const string& gaia_url, | 49 const string& gaia_url, |
| 50 UserSettings* user_settings, | 50 UserSettings* user_settings, |
| 51 GaiaAuthenticator* gaia_auth, | 51 GaiaAuthenticator* gaia_auth, |
| 52 TalkMediator* talk_mediator) | 52 TalkMediator* talk_mediator) |
| 53 : dirman_(dirman), | 53 : gaia_(gaia_auth), |
| 54 dirman_(dirman), |
| 54 scm_(scm), | 55 scm_(scm), |
| 55 allstatus_(allstatus), | 56 allstatus_(allstatus), |
| 56 status_(NOT_AUTHENTICATED), | 57 status_(NOT_AUTHENTICATED), |
| 58 user_settings_(user_settings), |
| 59 talk_mediator_(talk_mediator), |
| 57 thread_handle_valid_(false), | 60 thread_handle_valid_(false), |
| 58 authenticating_now_(false), | 61 authenticating_now_(false), |
| 59 current_attempt_trigger_(AuthWatcherEvent::USER_INITIATED), | 62 current_attempt_trigger_(AuthWatcherEvent::USER_INITIATED) { |
| 60 user_settings_(user_settings), | |
| 61 gaia_(gaia_auth), | |
| 62 talk_mediator_(talk_mediator) { | |
| 63 connmgr_hookup_.reset( | 63 connmgr_hookup_.reset( |
| 64 NewEventListenerHookup(scm->channel(), this, | 64 NewEventListenerHookup(scm->channel(), this, |
| 65 &AuthWatcher::HandleServerConnectionEvent)); | 65 &AuthWatcher::HandleServerConnectionEvent)); |
| 66 AuthWatcherEvent done = { AuthWatcherEvent::AUTHWATCHER_DESTROYED }; | 66 AuthWatcherEvent done = { AuthWatcherEvent::AUTHWATCHER_DESTROYED }; |
| 67 channel_.reset(new Channel(done)); | 67 channel_.reset(new Channel(done)); |
| 68 } | 68 } |
| 69 | 69 |
| 70 void* AuthWatcher::AuthenticationThreadStartRoutine(void* arg) { | 70 void* AuthWatcher::AuthenticationThreadStartRoutine(void* arg) { |
| 71 ThreadParams* args = reinterpret_cast<ThreadParams*>(arg); | 71 ThreadParams* args = reinterpret_cast<ThreadParams*>(arg); |
| 72 return args->self->AuthenticationThreadMain(args); | 72 return args->self->AuthenticationThreadMain(args); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 if (AuthWatcherEvent::SERVICE_CONNECTION_FAILED == event.what_happened) | 183 if (AuthWatcherEvent::SERVICE_CONNECTION_FAILED == event.what_happened) |
| 184 return true; | 184 return true; |
| 185 } | 185 } |
| 186 CHECK(event.what_happened != AuthWatcherEvent::ILLEGAL_VALUE); | 186 CHECK(event.what_happened != AuthWatcherEvent::ILLEGAL_VALUE); |
| 187 NotifyListeners(&event); | 187 NotifyListeners(&event); |
| 188 return true; | 188 return true; |
| 189 } | 189 } |
| 190 | 190 |
| 191 bool AuthWatcher::AuthenticateLocally(string email) { | 191 bool AuthWatcher::AuthenticateLocally(string email) { |
| 192 user_settings_->GetEmailForSignin(&email); | 192 user_settings_->GetEmailForSignin(&email); |
| 193 if (file_util::PathExists(dirman_->GetSyncDataDatabasePath())) { | 193 if (file_util::PathExists(FilePath(dirman_->GetSyncDataDatabasePath()))) { |
| 194 gaia_->SetUsername(email); | 194 gaia_->SetUsername(email); |
| 195 status_ = LOCALLY_AUTHENTICATED; | 195 status_ = LOCALLY_AUTHENTICATED; |
| 196 user_settings_->SwitchUser(email); | 196 user_settings_->SwitchUser(email); |
| 197 PathString share_name; | 197 PathString share_name; |
| 198 CHECK(AppendUTF8ToPathString(email.data(), email.size(), &share_name)); | 198 CHECK(AppendUTF8ToPathString(email.data(), email.size(), &share_name)); |
| 199 LoadDirectoryListAndOpen(share_name); | 199 LoadDirectoryListAndOpen(share_name); |
| 200 NotifyAuthSucceeded(email); | 200 NotifyAuthSucceeded(email); |
| 201 return true; | 201 return true; |
| 202 } else { | 202 } else { |
| 203 return false; | 203 return false; |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 string AuthWatcher::email() const { | 410 string AuthWatcher::email() const { |
| 411 return gaia_->email(); | 411 return gaia_->email(); |
| 412 } | 412 } |
| 413 | 413 |
| 414 void AuthWatcher::NotifyListeners(AuthWatcherEvent* event) { | 414 void AuthWatcher::NotifyListeners(AuthWatcherEvent* event) { |
| 415 event->trigger = current_attempt_trigger_; | 415 event->trigger = current_attempt_trigger_; |
| 416 channel_->NotifyListeners(*event); | 416 channel_->NotifyListeners(*event); |
| 417 } | 417 } |
| 418 | 418 |
| 419 } // namespace browser_sync | 419 } // namespace browser_sync |
| OLD | NEW |