| 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/session/user_session_manager.h" | 5 #include "chrome/browser/chromeos/login/session/user_session_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "chrome/browser/chromeos/base/locale_util.h" | 24 #include "chrome/browser/chromeos/base/locale_util.h" |
| 25 #include "chrome/browser/chromeos/boot_times_loader.h" | 25 #include "chrome/browser/chromeos/boot_times_loader.h" |
| 26 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 26 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
| 27 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" | 27 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" |
| 28 #include "chrome/browser/chromeos/login/profile_auth_data.h" | 28 #include "chrome/browser/chromeos/login/profile_auth_data.h" |
| 29 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h" | 29 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h" |
| 30 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory
.h" | 30 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory
.h" |
| 31 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" | 31 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" |
| 32 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" | 32 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" |
| 33 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" | 33 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" |
| 34 #include "chrome/browser/chromeos/login/users/user.h" | |
| 35 #include "chrome/browser/chromeos/login/users/user_manager.h" | 34 #include "chrome/browser/chromeos/login/users/user_manager.h" |
| 36 #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" | 35 #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" |
| 37 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 36 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 38 #include "chrome/browser/first_run/first_run.h" | 37 #include "chrome/browser/first_run/first_run.h" |
| 39 #include "chrome/browser/google/google_brand_chromeos.h" | 38 #include "chrome/browser/google/google_brand_chromeos.h" |
| 40 #include "chrome/browser/lifetime/application_lifetime.h" | 39 #include "chrome/browser/lifetime/application_lifetime.h" |
| 41 #include "chrome/browser/net/nss_context.h" | 40 #include "chrome/browser/net/nss_context.h" |
| 42 #include "chrome/browser/profiles/profile.h" | 41 #include "chrome/browser/profiles/profile.h" |
| 43 #include "chrome/browser/profiles/profile_manager.h" | 42 #include "chrome/browser/profiles/profile_manager.h" |
| 44 #include "chrome/browser/rlz/rlz.h" | 43 #include "chrome/browser/rlz/rlz.h" |
| 45 #include "chrome/browser/signin/signin_manager_factory.h" | 44 #include "chrome/browser/signin/signin_manager_factory.h" |
| 46 #include "chrome/common/chrome_switches.h" | 45 #include "chrome/common/chrome_switches.h" |
| 47 #include "chrome/common/logging_chrome.h" | 46 #include "chrome/common/logging_chrome.h" |
| 48 #include "chrome/common/pref_names.h" | 47 #include "chrome/common/pref_names.h" |
| 49 #include "chromeos/cert_loader.h" | 48 #include "chromeos/cert_loader.h" |
| 50 #include "chromeos/chromeos_switches.h" | 49 #include "chromeos/chromeos_switches.h" |
| 51 #include "chromeos/cryptohome/cryptohome_util.h" | 50 #include "chromeos/cryptohome/cryptohome_util.h" |
| 52 #include "chromeos/dbus/cryptohome_client.h" | 51 #include "chromeos/dbus/cryptohome_client.h" |
| 53 #include "chromeos/dbus/dbus_thread_manager.h" | 52 #include "chromeos/dbus/dbus_thread_manager.h" |
| 54 #include "chromeos/dbus/session_manager_client.h" | 53 #include "chromeos/dbus/session_manager_client.h" |
| 55 #include "chromeos/ime/input_method_manager.h" | 54 #include "chromeos/ime/input_method_manager.h" |
| 56 #include "chromeos/network/portal_detector/network_portal_detector.h" | 55 #include "chromeos/network/portal_detector/network_portal_detector.h" |
| 57 #include "chromeos/network/portal_detector/network_portal_detector_strategy.h" | 56 #include "chromeos/network/portal_detector/network_portal_detector_strategy.h" |
| 58 #include "components/session_manager/core/session_manager.h" | 57 #include "components/session_manager/core/session_manager.h" |
| 59 #include "components/signin/core/browser/signin_manager_base.h" | 58 #include "components/signin/core/browser/signin_manager_base.h" |
| 59 #include "components/user_manager/user.h" |
| 60 #include "content/public/browser/browser_thread.h" | 60 #include "content/public/browser/browser_thread.h" |
| 61 #include "content/public/browser/notification_service.h" | 61 #include "content/public/browser/notification_service.h" |
| 62 | 62 |
| 63 namespace chromeos { | 63 namespace chromeos { |
| 64 | 64 |
| 65 namespace { | 65 namespace { |
| 66 | 66 |
| 67 void InitLocaleAndInputMethodsForNewUser(PrefService* prefs) { | 67 void InitLocaleAndInputMethodsForNewUser(PrefService* prefs) { |
| 68 // First, we'll set kLanguagePreloadEngines. | 68 // First, we'll set kLanguagePreloadEngines. |
| 69 std::string locale = g_browser_process->GetApplicationLocale(); | 69 std::string locale = g_browser_process->GetApplicationLocale(); |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 // linux_chromeos build on dev workstations w/o user_id parameters. | 235 // linux_chromeos build on dev workstations w/o user_id parameters. |
| 236 // Stub user is considered to be a regular GAIA user but it has special | 236 // Stub user is considered to be a regular GAIA user but it has special |
| 237 // user_id (kStubUser) and certain services like restoring OAuth session are | 237 // user_id (kStubUser) and certain services like restoring OAuth session are |
| 238 // explicitly disabled for it. | 238 // explicitly disabled for it. |
| 239 if (!user_manager->IsUserLoggedIn() || | 239 if (!user_manager->IsUserLoggedIn() || |
| 240 !user_manager->IsLoggedInAsRegularUser() || | 240 !user_manager->IsLoggedInAsRegularUser() || |
| 241 user_manager->IsLoggedInAsStub()) { | 241 user_manager->IsLoggedInAsStub()) { |
| 242 return; | 242 return; |
| 243 } | 243 } |
| 244 | 244 |
| 245 User* user = ProfileHelper::Get()->GetUserByProfile(user_profile); | 245 user_manager::User* user = |
| 246 ProfileHelper::Get()->GetUserByProfile(user_profile); |
| 246 DCHECK(user); | 247 DCHECK(user); |
| 247 if (!net::NetworkChangeNotifier::IsOffline()) { | 248 if (!net::NetworkChangeNotifier::IsOffline()) { |
| 248 pending_signin_restore_sessions_.erase(user->email()); | 249 pending_signin_restore_sessions_.erase(user->email()); |
| 249 RestoreAuthSessionImpl(user_profile, false /* has_auth_cookies */); | 250 RestoreAuthSessionImpl(user_profile, false /* has_auth_cookies */); |
| 250 } else { | 251 } else { |
| 251 // Even if we're online we should wait till initial | 252 // Even if we're online we should wait till initial |
| 252 // OnConnectionTypeChanged() call. Otherwise starting fetchers too early may | 253 // OnConnectionTypeChanged() call. Otherwise starting fetchers too early may |
| 253 // end up canceling all request when initial network connection type is | 254 // end up canceling all request when initial network connection type is |
| 254 // processed. See http://crbug.com/121643. | 255 // processed. See http://crbug.com/121643. |
| 255 pending_signin_restore_sessions_.insert(user->email()); | 256 pending_signin_restore_sessions_.insert(user->email()); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 const std::string& chrome_client_secret) { | 319 const std::string& chrome_client_secret) { |
| 319 if (!chrome::IsRunningInForcedAppMode()) | 320 if (!chrome::IsRunningInForcedAppMode()) |
| 320 return; | 321 return; |
| 321 | 322 |
| 322 chrome_client_id_ = chrome_client_id; | 323 chrome_client_id_ = chrome_client_id; |
| 323 chrome_client_secret_ = chrome_client_secret; | 324 chrome_client_secret_ = chrome_client_secret; |
| 324 } | 325 } |
| 325 | 326 |
| 326 bool UserSessionManager::RespectLocalePreference( | 327 bool UserSessionManager::RespectLocalePreference( |
| 327 Profile* profile, | 328 Profile* profile, |
| 328 const User* user, | 329 const user_manager::User* user, |
| 329 scoped_ptr<locale_util::SwitchLanguageCallback> callback) const { | 330 scoped_ptr<locale_util::SwitchLanguageCallback> callback) const { |
| 330 // TODO(alemate): http://crbug.com/288941 : Respect preferred language list in | 331 // TODO(alemate): http://crbug.com/288941 : Respect preferred language list in |
| 331 // the Google user profile. | 332 // the Google user profile. |
| 332 if (g_browser_process == NULL) | 333 if (g_browser_process == NULL) |
| 333 return false; | 334 return false; |
| 334 | 335 |
| 335 UserManager* user_manager = UserManager::Get(); | 336 UserManager* user_manager = UserManager::Get(); |
| 336 if ((user == NULL) || (user != user_manager->GetPrimaryUser()) || | 337 if ((user == NULL) || (user != user_manager->GetPrimaryUser()) || |
| 337 (!user->is_profile_created())) | 338 (!user->is_profile_created())) |
| 338 return false; | 339 return false; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 | 405 |
| 405 void UserSessionManager::RemoveSessionStateObserver( | 406 void UserSessionManager::RemoveSessionStateObserver( |
| 406 UserSessionStateObserver* observer) { | 407 UserSessionStateObserver* observer) { |
| 407 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 408 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| 408 session_state_observer_list_.RemoveObserver(observer); | 409 session_state_observer_list_.RemoveObserver(observer); |
| 409 } | 410 } |
| 410 | 411 |
| 411 void UserSessionManager::OnSessionRestoreStateChanged( | 412 void UserSessionManager::OnSessionRestoreStateChanged( |
| 412 Profile* user_profile, | 413 Profile* user_profile, |
| 413 OAuth2LoginManager::SessionRestoreState state) { | 414 OAuth2LoginManager::SessionRestoreState state) { |
| 414 User::OAuthTokenStatus user_status = User::OAUTH_TOKEN_STATUS_UNKNOWN; | 415 user_manager::User::OAuthTokenStatus user_status = |
| 416 user_manager::User::OAUTH_TOKEN_STATUS_UNKNOWN; |
| 415 OAuth2LoginManager* login_manager = | 417 OAuth2LoginManager* login_manager = |
| 416 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); | 418 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); |
| 417 | 419 |
| 418 bool connection_error = false; | 420 bool connection_error = false; |
| 419 switch (state) { | 421 switch (state) { |
| 420 case OAuth2LoginManager::SESSION_RESTORE_DONE: | 422 case OAuth2LoginManager::SESSION_RESTORE_DONE: |
| 421 user_status = User::OAUTH2_TOKEN_STATUS_VALID; | 423 user_status = user_manager::User::OAUTH2_TOKEN_STATUS_VALID; |
| 422 break; | 424 break; |
| 423 case OAuth2LoginManager::SESSION_RESTORE_FAILED: | 425 case OAuth2LoginManager::SESSION_RESTORE_FAILED: |
| 424 user_status = User::OAUTH2_TOKEN_STATUS_INVALID; | 426 user_status = user_manager::User::OAUTH2_TOKEN_STATUS_INVALID; |
| 425 break; | 427 break; |
| 426 case OAuth2LoginManager::SESSION_RESTORE_CONNECTION_FAILED: | 428 case OAuth2LoginManager::SESSION_RESTORE_CONNECTION_FAILED: |
| 427 connection_error = true; | 429 connection_error = true; |
| 428 break; | 430 break; |
| 429 case OAuth2LoginManager::SESSION_RESTORE_NOT_STARTED: | 431 case OAuth2LoginManager::SESSION_RESTORE_NOT_STARTED: |
| 430 case OAuth2LoginManager::SESSION_RESTORE_PREPARING: | 432 case OAuth2LoginManager::SESSION_RESTORE_PREPARING: |
| 431 case OAuth2LoginManager::SESSION_RESTORE_IN_PROGRESS: | 433 case OAuth2LoginManager::SESSION_RESTORE_IN_PROGRESS: |
| 432 return; | 434 return; |
| 433 } | 435 } |
| 434 | 436 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 449 if (!exit_after_session_restore_) | 451 if (!exit_after_session_restore_) |
| 450 return; | 452 return; |
| 451 | 453 |
| 452 OAuth2LoginManager* login_manager = | 454 OAuth2LoginManager* login_manager = |
| 453 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); | 455 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); |
| 454 login_manager->RemoveObserver(this); | 456 login_manager->RemoveObserver(this); |
| 455 | 457 |
| 456 // Mark user auth token status as valid. | 458 // Mark user auth token status as valid. |
| 457 UserManager::Get()->SaveUserOAuthStatus( | 459 UserManager::Get()->SaveUserOAuthStatus( |
| 458 UserManager::Get()->GetLoggedInUser()->email(), | 460 UserManager::Get()->GetLoggedInUser()->email(), |
| 459 User::OAUTH2_TOKEN_STATUS_VALID); | 461 user_manager::User::OAUTH2_TOKEN_STATUS_VALID); |
| 460 | 462 |
| 461 VLOG(1) << "Exiting after new refresh token fetched"; | 463 VLOG(1) << "Exiting after new refresh token fetched"; |
| 462 | 464 |
| 463 // We need to restart cleanly in this case to make sure OAuth2 RT is actually | 465 // We need to restart cleanly in this case to make sure OAuth2 RT is actually |
| 464 // saved. | 466 // saved. |
| 465 chrome::AttemptRestart(); | 467 chrome::AttemptRestart(); |
| 466 } | 468 } |
| 467 | 469 |
| 468 void UserSessionManager::OnConnectionTypeChanged( | 470 void UserSessionManager::OnConnectionTypeChanged( |
| 469 net::NetworkChangeNotifier::ConnectionType type) { | 471 net::NetworkChangeNotifier::ConnectionType type) { |
| 470 bool is_running_test = | 472 bool is_running_test = |
| 471 base::CommandLine::ForCurrentProcess()->HasSwitch( | 473 base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 472 ::switches::kTestName) || | 474 ::switches::kTestName) || |
| 473 base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestType); | 475 base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestType); |
| 474 UserManager* user_manager = UserManager::Get(); | 476 UserManager* user_manager = UserManager::Get(); |
| 475 if (type == net::NetworkChangeNotifier::CONNECTION_NONE || | 477 if (type == net::NetworkChangeNotifier::CONNECTION_NONE || |
| 476 !user_manager->IsUserLoggedIn() || | 478 !user_manager->IsUserLoggedIn() || |
| 477 !user_manager->IsLoggedInAsRegularUser() || | 479 !user_manager->IsLoggedInAsRegularUser() || |
| 478 user_manager->IsLoggedInAsStub() || is_running_test) { | 480 user_manager->IsLoggedInAsStub() || is_running_test) { |
| 479 return; | 481 return; |
| 480 } | 482 } |
| 481 | 483 |
| 482 // Need to iterate over all users and their OAuth2 session state. | 484 // Need to iterate over all users and their OAuth2 session state. |
| 483 const UserList& users = user_manager->GetLoggedInUsers(); | 485 const user_manager::UserList& users = user_manager->GetLoggedInUsers(); |
| 484 for (UserList::const_iterator it = users.begin(); it != users.end(); ++it) { | 486 for (user_manager::UserList::const_iterator it = users.begin(); |
| 487 it != users.end(); |
| 488 ++it) { |
| 485 if (!(*it)->is_profile_created()) | 489 if (!(*it)->is_profile_created()) |
| 486 continue; | 490 continue; |
| 487 | 491 |
| 488 Profile* user_profile = ProfileHelper::Get()->GetProfileByUser(*it); | 492 Profile* user_profile = ProfileHelper::Get()->GetProfileByUser(*it); |
| 489 bool should_restore_session = | 493 bool should_restore_session = |
| 490 pending_signin_restore_sessions_.find((*it)->email()) != | 494 pending_signin_restore_sessions_.find((*it)->email()) != |
| 491 pending_signin_restore_sessions_.end(); | 495 pending_signin_restore_sessions_.end(); |
| 492 OAuth2LoginManager* login_manager = | 496 OAuth2LoginManager* login_manager = |
| 493 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); | 497 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); |
| 494 if (login_manager->state() == | 498 if (login_manager->state() == |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 break; | 596 break; |
| 593 } | 597 } |
| 594 } | 598 } |
| 595 | 599 |
| 596 void UserSessionManager::InitProfilePreferences(Profile* profile, | 600 void UserSessionManager::InitProfilePreferences(Profile* profile, |
| 597 const std::string& user_id) { | 601 const std::string& user_id) { |
| 598 if (UserManager::Get()->IsCurrentUserNew()) | 602 if (UserManager::Get()->IsCurrentUserNew()) |
| 599 SetFirstLoginPrefs(profile->GetPrefs()); | 603 SetFirstLoginPrefs(profile->GetPrefs()); |
| 600 | 604 |
| 601 if (UserManager::Get()->IsLoggedInAsSupervisedUser()) { | 605 if (UserManager::Get()->IsLoggedInAsSupervisedUser()) { |
| 602 User* active_user = UserManager::Get()->GetActiveUser(); | 606 user_manager::User* active_user = UserManager::Get()->GetActiveUser(); |
| 603 std::string supervised_user_sync_id = | 607 std::string supervised_user_sync_id = |
| 604 UserManager::Get()->GetSupervisedUserManager()-> | 608 UserManager::Get()->GetSupervisedUserManager()-> |
| 605 GetUserSyncId(active_user->email()); | 609 GetUserSyncId(active_user->email()); |
| 606 profile->GetPrefs()->SetString(prefs::kSupervisedUserId, | 610 profile->GetPrefs()->SetString(prefs::kSupervisedUserId, |
| 607 supervised_user_sync_id); | 611 supervised_user_sync_id); |
| 608 } else if (UserManager::Get()->IsLoggedInAsRegularUser()) { | 612 } else if (UserManager::Get()->IsLoggedInAsRegularUser()) { |
| 609 // Make sure that the google service username is properly set (we do this | 613 // Make sure that the google service username is properly set (we do this |
| 610 // on every sign in, not just the first login, to deal with existing | 614 // on every sign in, not just the first login, to deal with existing |
| 611 // profiles that might not have it set yet). | 615 // profiles that might not have it set yet). |
| 612 SigninManagerBase* signin_manager = | 616 SigninManagerBase* signin_manager = |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 // Send the notification before creating the browser so additional objects | 697 // Send the notification before creating the browser so additional objects |
| 694 // that need the profile (e.g. the launcher) can be created first. | 698 // that need the profile (e.g. the launcher) can be created first. |
| 695 content::NotificationService::current()->Notify( | 699 content::NotificationService::current()->Notify( |
| 696 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, | 700 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, |
| 697 content::NotificationService::AllSources(), | 701 content::NotificationService::AllSources(), |
| 698 content::Details<Profile>(profile)); | 702 content::Details<Profile>(profile)); |
| 699 | 703 |
| 700 InitializeCertsForPrimaryUser(profile); | 704 InitializeCertsForPrimaryUser(profile); |
| 701 | 705 |
| 702 // Initialize RLZ only for primary user. | 706 // Initialize RLZ only for primary user. |
| 703 const User* user = ProfileHelper::Get()->GetUserByProfile(profile); | 707 const user_manager::User* user = |
| 708 ProfileHelper::Get()->GetUserByProfile(profile); |
| 704 if (user_manager->GetPrimaryUser() == user) | 709 if (user_manager->GetPrimaryUser() == user) |
| 705 InitRlz(profile); | 710 InitRlz(profile); |
| 706 | 711 |
| 707 // TODO(altimofeev): This pointer should probably never be NULL, but it looks | 712 // TODO(altimofeev): This pointer should probably never be NULL, but it looks |
| 708 // like LoginUtilsImpl::OnProfileCreated() may be getting called before | 713 // like LoginUtilsImpl::OnProfileCreated() may be getting called before |
| 709 // UserSessionManager::PrepareProfile() has set |delegate_| when Chrome is | 714 // UserSessionManager::PrepareProfile() has set |delegate_| when Chrome is |
| 710 // killed during shutdown in tests -- see http://crosbug.com/18269. Replace | 715 // killed during shutdown in tests -- see http://crosbug.com/18269. Replace |
| 711 // this 'if' statement with a CHECK(delegate_) once the underlying issue is | 716 // this 'if' statement with a CHECK(delegate_) once the underlying issue is |
| 712 // resolved. | 717 // resolved. |
| 713 if (delegate_) | 718 if (delegate_) |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 ping_delay < 0, base::TimeDelta::FromMilliseconds(abs(ping_delay))); | 808 ping_delay < 0, base::TimeDelta::FromMilliseconds(abs(ping_delay))); |
| 804 if (delegate_) | 809 if (delegate_) |
| 805 delegate_->OnRlzInitialized(); | 810 delegate_->OnRlzInitialized(); |
| 806 #endif | 811 #endif |
| 807 } | 812 } |
| 808 | 813 |
| 809 void UserSessionManager::InitializeCertsForPrimaryUser(Profile* profile) { | 814 void UserSessionManager::InitializeCertsForPrimaryUser(Profile* profile) { |
| 810 // Now that the user profile has been initialized | 815 // Now that the user profile has been initialized |
| 811 // |GetNSSCertDatabaseForProfile| is safe to be used. | 816 // |GetNSSCertDatabaseForProfile| is safe to be used. |
| 812 UserManager* user_manager = UserManager::Get(); | 817 UserManager* user_manager = UserManager::Get(); |
| 813 const User* primary_user = user_manager->GetPrimaryUser(); | 818 const user_manager::User* primary_user = user_manager->GetPrimaryUser(); |
| 814 if (user_manager->IsUserLoggedIn() && | 819 if (user_manager->IsUserLoggedIn() && |
| 815 primary_user && | 820 primary_user && |
| 816 profile == ProfileHelper::Get()->GetProfileByUser(primary_user) && | 821 profile == ProfileHelper::Get()->GetProfileByUser(primary_user) && |
| 817 CertLoader::IsInitialized() && | 822 CertLoader::IsInitialized() && |
| 818 base::SysInfo::IsRunningOnChromeOS()) { | 823 base::SysInfo::IsRunningOnChromeOS()) { |
| 819 GetNSSCertDatabaseForProfile(profile, | 824 GetNSSCertDatabaseForProfile(profile, |
| 820 base::Bind(&OnGetNSSCertDatabaseForUser)); | 825 base::Bind(&OnGetNSSCertDatabaseForUser)); |
| 821 } | 826 } |
| 822 } | 827 } |
| 823 | 828 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 856 // Get next user to restore sessions and delete it from list. | 861 // Get next user to restore sessions and delete it from list. |
| 857 SessionManagerClient::ActiveSessionsMap::const_iterator it = | 862 SessionManagerClient::ActiveSessionsMap::const_iterator it = |
| 858 pending_user_sessions_.begin(); | 863 pending_user_sessions_.begin(); |
| 859 std::string user_id = it->first; | 864 std::string user_id = it->first; |
| 860 std::string user_id_hash = it->second; | 865 std::string user_id_hash = it->second; |
| 861 DCHECK(!user_id.empty()); | 866 DCHECK(!user_id.empty()); |
| 862 DCHECK(!user_id_hash.empty()); | 867 DCHECK(!user_id_hash.empty()); |
| 863 pending_user_sessions_.erase(user_id); | 868 pending_user_sessions_.erase(user_id); |
| 864 | 869 |
| 865 // Check that this user is not logged in yet. | 870 // Check that this user is not logged in yet. |
| 866 UserList logged_in_users = UserManager::Get()->GetLoggedInUsers(); | 871 user_manager::UserList logged_in_users = |
| 872 UserManager::Get()->GetLoggedInUsers(); |
| 867 bool user_already_logged_in = false; | 873 bool user_already_logged_in = false; |
| 868 for (UserList::const_iterator it = logged_in_users.begin(); | 874 for (user_manager::UserList::const_iterator it = logged_in_users.begin(); |
| 869 it != logged_in_users.end(); | 875 it != logged_in_users.end(); |
| 870 ++it) { | 876 ++it) { |
| 871 const User* user = (*it); | 877 const user_manager::User* user = (*it); |
| 872 if (user->email() == user_id) { | 878 if (user->email() == user_id) { |
| 873 user_already_logged_in = true; | 879 user_already_logged_in = true; |
| 874 break; | 880 break; |
| 875 } | 881 } |
| 876 } | 882 } |
| 877 DCHECK(!user_already_logged_in); | 883 DCHECK(!user_already_logged_in); |
| 878 | 884 |
| 879 if (!user_already_logged_in) { | 885 if (!user_already_logged_in) { |
| 880 UserContext user_context(user_id); | 886 UserContext user_context(user_id); |
| 881 user_context.SetUserIDHash(user_id_hash); | 887 user_context.SetUserIDHash(user_id_hash); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 894 | 900 |
| 895 void UserSessionManager::NotifyPendingUserSessionsRestoreFinished() { | 901 void UserSessionManager::NotifyPendingUserSessionsRestoreFinished() { |
| 896 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 902 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| 897 user_sessions_restored_ = true; | 903 user_sessions_restored_ = true; |
| 898 FOR_EACH_OBSERVER(UserSessionStateObserver, | 904 FOR_EACH_OBSERVER(UserSessionStateObserver, |
| 899 session_state_observer_list_, | 905 session_state_observer_list_, |
| 900 PendingUserSessionsRestoreFinished()); | 906 PendingUserSessionsRestoreFinished()); |
| 901 } | 907 } |
| 902 | 908 |
| 903 } // namespace chromeos | 909 } // namespace chromeos |
| OLD | NEW |