Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1296)

Side by Side Diff: chrome/browser/chromeos/login/session/user_session_manager.cc

Issue 444903002: [cros] user_manager component - move UserManagerBase and UserManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
24 #include "chrome/browser/chrome_notification_types.h" 24 #include "chrome/browser/chrome_notification_types.h"
25 #include "chrome/browser/chromeos/base/locale_util.h" 25 #include "chrome/browser/chromeos/base/locale_util.h"
26 #include "chrome/browser/chromeos/boot_times_loader.h" 26 #include "chrome/browser/chromeos/boot_times_loader.h"
27 #include "chrome/browser/chromeos/input_method/input_method_util.h" 27 #include "chrome/browser/chromeos/input_method/input_method_util.h"
28 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h" 28 #include "chrome/browser/chromeos/login/demo_mode/demo_app_launcher.h"
29 #include "chrome/browser/chromeos/login/profile_auth_data.h" 29 #include "chrome/browser/chromeos/login/profile_auth_data.h"
30 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h" 30 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter.h"
31 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory .h" 31 #include "chrome/browser/chromeos/login/saml/saml_offline_signin_limiter_factory .h"
32 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" 32 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h"
33 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h" 33 #include "chrome/browser/chromeos/login/signin/oauth2_login_manager_factory.h"
34 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h"
34 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" 35 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h"
35 #include "chrome/browser/chromeos/login/users/user_manager.h"
36 #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h" 36 #include "chrome/browser/chromeos/ownership/owner_settings_service_factory.h"
37 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 37 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
38 #include "chrome/browser/chromeos/profiles/profile_helper.h" 38 #include "chrome/browser/chromeos/profiles/profile_helper.h"
39 #include "chrome/browser/chromeos/settings/cros_settings.h" 39 #include "chrome/browser/chromeos/settings/cros_settings.h"
40 #include "chrome/browser/component_updater/component_updater_service.h" 40 #include "chrome/browser/component_updater/component_updater_service.h"
41 #include "chrome/browser/first_run/first_run.h" 41 #include "chrome/browser/first_run/first_run.h"
42 #include "chrome/browser/google/google_brand_chromeos.h" 42 #include "chrome/browser/google/google_brand_chromeos.h"
43 #include "chrome/browser/lifetime/application_lifetime.h" 43 #include "chrome/browser/lifetime/application_lifetime.h"
44 #include "chrome/browser/net/crl_set_fetcher.h" 44 #include "chrome/browser/net/crl_set_fetcher.h"
45 #include "chrome/browser/net/nss_context.h" 45 #include "chrome/browser/net/nss_context.h"
(...skipping 11 matching lines...) Expand all
57 #include "chromeos/dbus/dbus_thread_manager.h" 57 #include "chromeos/dbus/dbus_thread_manager.h"
58 #include "chromeos/dbus/session_manager_client.h" 58 #include "chromeos/dbus/session_manager_client.h"
59 #include "chromeos/ime/input_method_manager.h" 59 #include "chromeos/ime/input_method_manager.h"
60 #include "chromeos/network/portal_detector/network_portal_detector.h" 60 #include "chromeos/network/portal_detector/network_portal_detector.h"
61 #include "chromeos/network/portal_detector/network_portal_detector_strategy.h" 61 #include "chromeos/network/portal_detector/network_portal_detector_strategy.h"
62 #include "chromeos/settings/cros_settings_names.h" 62 #include "chromeos/settings/cros_settings_names.h"
63 #include "components/policy/core/common/cloud/cloud_policy_constants.h" 63 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
64 #include "components/session_manager/core/session_manager.h" 64 #include "components/session_manager/core/session_manager.h"
65 #include "components/signin/core/browser/signin_manager_base.h" 65 #include "components/signin/core/browser/signin_manager_base.h"
66 #include "components/user_manager/user.h" 66 #include "components/user_manager/user.h"
67 #include "components/user_manager/user_manager.h"
67 #include "components/user_manager/user_type.h" 68 #include "components/user_manager/user_type.h"
68 #include "content/public/browser/browser_thread.h" 69 #include "content/public/browser/browser_thread.h"
69 #include "content/public/browser/notification_service.h" 70 #include "content/public/browser/notification_service.h"
70 71
71 namespace chromeos { 72 namespace chromeos {
72 73
73 namespace { 74 namespace {
74 75
75 void InitLocaleAndInputMethodsForNewUser( 76 void InitLocaleAndInputMethodsForNewUser(
76 PrefService* prefs, 77 PrefService* prefs,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 UserSessionManager* UserSessionManager::GetInstance() { 184 UserSessionManager* UserSessionManager::GetInstance() {
184 return Singleton<UserSessionManager, 185 return Singleton<UserSessionManager,
185 DefaultSingletonTraits<UserSessionManager> >::get(); 186 DefaultSingletonTraits<UserSessionManager> >::get();
186 } 187 }
187 188
188 // static 189 // static
189 void UserSessionManager::OverrideHomedir() { 190 void UserSessionManager::OverrideHomedir() {
190 // Override user homedir, check for ProfileManager being initialized as 191 // Override user homedir, check for ProfileManager being initialized as
191 // it may not exist in unit tests. 192 // it may not exist in unit tests.
192 if (g_browser_process->profile_manager()) { 193 if (g_browser_process->profile_manager()) {
193 UserManager* user_manager = UserManager::Get(); 194 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
194 if (user_manager->GetLoggedInUsers().size() == 1) { 195 if (user_manager->GetLoggedInUsers().size() == 1) {
195 base::FilePath homedir = ProfileHelper::GetProfilePathByUserIdHash( 196 base::FilePath homedir = ProfileHelper::GetProfilePathByUserIdHash(
196 user_manager->GetPrimaryUser()->username_hash()); 197 user_manager->GetPrimaryUser()->username_hash());
197 // This path has been either created by cryptohome (on real Chrome OS 198 // This path has been either created by cryptohome (on real Chrome OS
198 // device) or by ProfileManager (on chromeos=1 desktop builds). 199 // device) or by ProfileManager (on chromeos=1 desktop builds).
199 PathService::OverrideAndCreateIfNeeded(base::DIR_HOME, 200 PathService::OverrideAndCreateIfNeeded(base::DIR_HOME,
200 homedir, 201 homedir,
201 true /* path is absolute */, 202 true /* path is absolute */,
202 false /* don't create */); 203 false /* don't create */);
203 } 204 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 if (!has_active_session) 242 if (!has_active_session)
242 StartCrosSession(); 243 StartCrosSession();
243 244
244 // TODO(nkostylev): Notify UserLoggedIn() after profile is actually 245 // TODO(nkostylev): Notify UserLoggedIn() after profile is actually
245 // ready to be used (http://crbug.com/361528). 246 // ready to be used (http://crbug.com/361528).
246 NotifyUserLoggedIn(); 247 NotifyUserLoggedIn();
247 PrepareProfile(); 248 PrepareProfile();
248 } 249 }
249 250
250 void UserSessionManager::PerformPostUserLoggedInActions() { 251 void UserSessionManager::PerformPostUserLoggedInActions() {
251 UserManager* user_manager = UserManager::Get(); 252 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
252 if (user_manager->GetLoggedInUsers().size() == 1) { 253 if (user_manager->GetLoggedInUsers().size() == 1) {
253 // Owner must be first user in session. DeviceSettingsService can't deal 254 // Owner must be first user in session. DeviceSettingsService can't deal
254 // with multiple user and will mix up ownership, crbug.com/230018. 255 // with multiple user and will mix up ownership, crbug.com/230018.
255 OwnerSettingsServiceFactory::GetInstance()-> 256 OwnerSettingsServiceFactory::GetInstance()->
256 SetUsername(user_manager->GetActiveUser()->email()); 257 SetUsername(user_manager->GetActiveUser()->email());
257 258
258 if (NetworkPortalDetector::IsInitialized()) { 259 if (NetworkPortalDetector::IsInitialized()) {
259 NetworkPortalDetector::Get()->SetStrategy( 260 NetworkPortalDetector::Get()->SetStrategy(
260 PortalDetectorStrategy::STRATEGY_ID_SESSION); 261 PortalDetectorStrategy::STRATEGY_ID_SESSION);
261 } 262 }
262 } 263 }
263 } 264 }
264 265
265 void UserSessionManager::RestoreAuthenticationSession(Profile* user_profile) { 266 void UserSessionManager::RestoreAuthenticationSession(Profile* user_profile) {
266 UserManager* user_manager = UserManager::Get(); 267 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
267 // We need to restore session only for logged in regular (GAIA) users. 268 // We need to restore session only for logged in regular (GAIA) users.
268 // Note: stub user is a special case that is used for tests, running 269 // Note: stub user is a special case that is used for tests, running
269 // linux_chromeos build on dev workstations w/o user_id parameters. 270 // linux_chromeos build on dev workstations w/o user_id parameters.
270 // Stub user is considered to be a regular GAIA user but it has special 271 // Stub user is considered to be a regular GAIA user but it has special
271 // user_id (kStubUser) and certain services like restoring OAuth session are 272 // user_id (kStubUser) and certain services like restoring OAuth session are
272 // explicitly disabled for it. 273 // explicitly disabled for it.
273 if (!user_manager->IsUserLoggedIn() || 274 if (!user_manager->IsUserLoggedIn() ||
274 !user_manager->IsLoggedInAsRegularUser() || 275 !user_manager->IsLoggedInAsRegularUser() ||
275 user_manager->IsLoggedInAsStub()) { 276 user_manager->IsLoggedInAsStub()) {
276 return; 277 return;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 360
360 bool UserSessionManager::RespectLocalePreference( 361 bool UserSessionManager::RespectLocalePreference(
361 Profile* profile, 362 Profile* profile,
362 const user_manager::User* user, 363 const user_manager::User* user,
363 scoped_ptr<locale_util::SwitchLanguageCallback> callback) const { 364 scoped_ptr<locale_util::SwitchLanguageCallback> callback) const {
364 // TODO(alemate): http://crbug.com/288941 : Respect preferred language list in 365 // TODO(alemate): http://crbug.com/288941 : Respect preferred language list in
365 // the Google user profile. 366 // the Google user profile.
366 if (g_browser_process == NULL) 367 if (g_browser_process == NULL)
367 return false; 368 return false;
368 369
369 UserManager* user_manager = UserManager::Get(); 370 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
370 if (!user || (user_manager->IsUserLoggedIn() && 371 if (!user || (user_manager->IsUserLoggedIn() &&
371 user != user_manager->GetPrimaryUser())) { 372 user != user_manager->GetPrimaryUser())) {
372 return false; 373 return false;
373 } 374 }
374 375
375 // In case of multi-profiles session we don't apply profile locale 376 // In case of multi-profiles session we don't apply profile locale
376 // because it is unsafe. 377 // because it is unsafe.
377 if (user_manager->GetLoggedInUsers().size() != 1) 378 if (user_manager->GetLoggedInUsers().size() != 1)
378 return false; 379 return false;
379 380
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 420
420 // Here we don't enable keyboard layouts for normal users. Input methods 421 // Here we don't enable keyboard layouts for normal users. Input methods
421 // are set up when the user first logs in. Then the user may customize the 422 // are set up when the user first logs in. Then the user may customize the
422 // input methods. Hence changing input methods here, just because the user's 423 // input methods. Hence changing input methods here, just because the user's
423 // UI language is different from the login screen UI language, is not 424 // UI language is different from the login screen UI language, is not
424 // desirable. Note that input method preferences are synced, so users can use 425 // desirable. Note that input method preferences are synced, so users can use
425 // their farovite input methods as soon as the preferences are synced. 426 // their farovite input methods as soon as the preferences are synced.
426 // 427 //
427 // For Guest mode, user locale preferences will never get initialized. 428 // For Guest mode, user locale preferences will never get initialized.
428 // So input methods should be enabled somewhere. 429 // So input methods should be enabled somewhere.
429 const bool enable_layouts = UserManager::Get()->IsLoggedInAsGuest(); 430 const bool enable_layouts =
431 user_manager::UserManager::Get()->IsLoggedInAsGuest();
430 locale_util::SwitchLanguage(pref_locale, 432 locale_util::SwitchLanguage(pref_locale,
431 enable_layouts, 433 enable_layouts,
432 false /* login_layouts_only */, 434 false /* login_layouts_only */,
433 callback.Pass()); 435 callback.Pass());
434 436
435 return true; 437 return true;
436 } 438 }
437 439
438 void UserSessionManager::AddSessionStateObserver( 440 void UserSessionManager::AddSessionStateObserver(
439 UserSessionStateObserver* observer) { 441 UserSessionStateObserver* observer) {
(...skipping 29 matching lines...) Expand all
469 case OAuth2LoginManager::SESSION_RESTORE_NOT_STARTED: 471 case OAuth2LoginManager::SESSION_RESTORE_NOT_STARTED:
470 case OAuth2LoginManager::SESSION_RESTORE_PREPARING: 472 case OAuth2LoginManager::SESSION_RESTORE_PREPARING:
471 case OAuth2LoginManager::SESSION_RESTORE_IN_PROGRESS: 473 case OAuth2LoginManager::SESSION_RESTORE_IN_PROGRESS:
472 return; 474 return;
473 } 475 }
474 476
475 // We should not be clearing existing token state if that was a connection 477 // We should not be clearing existing token state if that was a connection
476 // error. http://crbug.com/295245 478 // error. http://crbug.com/295245
477 if (!connection_error) { 479 if (!connection_error) {
478 // We are in one of "done" states here. 480 // We are in one of "done" states here.
479 UserManager::Get()->SaveUserOAuthStatus( 481 user_manager::UserManager::Get()->SaveUserOAuthStatus(
480 UserManager::Get()->GetLoggedInUser()->email(), 482 user_manager::UserManager::Get()->GetLoggedInUser()->email(),
481 user_status); 483 user_status);
482 } 484 }
483 485
484 login_manager->RemoveObserver(this); 486 login_manager->RemoveObserver(this);
485 } 487 }
486 488
487 void UserSessionManager::OnNewRefreshTokenAvaiable(Profile* user_profile) { 489 void UserSessionManager::OnNewRefreshTokenAvaiable(Profile* user_profile) {
488 // Check if we were waiting to restart chrome. 490 // Check if we were waiting to restart chrome.
489 if (!exit_after_session_restore_) 491 if (!exit_after_session_restore_)
490 return; 492 return;
491 493
492 OAuth2LoginManager* login_manager = 494 OAuth2LoginManager* login_manager =
493 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile); 495 OAuth2LoginManagerFactory::GetInstance()->GetForProfile(user_profile);
494 login_manager->RemoveObserver(this); 496 login_manager->RemoveObserver(this);
495 497
496 // Mark user auth token status as valid. 498 // Mark user auth token status as valid.
497 UserManager::Get()->SaveUserOAuthStatus( 499 user_manager::UserManager::Get()->SaveUserOAuthStatus(
498 UserManager::Get()->GetLoggedInUser()->email(), 500 user_manager::UserManager::Get()->GetLoggedInUser()->email(),
499 user_manager::User::OAUTH2_TOKEN_STATUS_VALID); 501 user_manager::User::OAUTH2_TOKEN_STATUS_VALID);
500 502
501 VLOG(1) << "Exiting after new refresh token fetched"; 503 VLOG(1) << "Exiting after new refresh token fetched";
502 504
503 // We need to restart cleanly in this case to make sure OAuth2 RT is actually 505 // We need to restart cleanly in this case to make sure OAuth2 RT is actually
504 // saved. 506 // saved.
505 chrome::AttemptRestart(); 507 chrome::AttemptRestart();
506 } 508 }
507 509
508 void UserSessionManager::OnConnectionTypeChanged( 510 void UserSessionManager::OnConnectionTypeChanged(
509 net::NetworkChangeNotifier::ConnectionType type) { 511 net::NetworkChangeNotifier::ConnectionType type) {
510 bool is_running_test = 512 bool is_running_test =
511 base::CommandLine::ForCurrentProcess()->HasSwitch( 513 base::CommandLine::ForCurrentProcess()->HasSwitch(
512 ::switches::kTestName) || 514 ::switches::kTestName) ||
513 base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestType); 515 base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestType);
514 UserManager* user_manager = UserManager::Get(); 516 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
515 if (type == net::NetworkChangeNotifier::CONNECTION_NONE || 517 if (type == net::NetworkChangeNotifier::CONNECTION_NONE ||
516 !user_manager->IsUserLoggedIn() || 518 !user_manager->IsUserLoggedIn() ||
517 !user_manager->IsLoggedInAsRegularUser() || 519 !user_manager->IsLoggedInAsRegularUser() ||
518 user_manager->IsLoggedInAsStub() || is_running_test) { 520 user_manager->IsLoggedInAsStub() || is_running_test) {
519 return; 521 return;
520 } 522 }
521 523
522 // Need to iterate over all users and their OAuth2 session state. 524 // Need to iterate over all users and their OAuth2 session state.
523 const user_manager::UserList& users = user_manager->GetLoggedInUsers(); 525 const user_manager::UserList& users = user_manager->GetLoggedInUsers();
524 for (user_manager::UserList::const_iterator it = users.begin(); 526 for (user_manager::UserList::const_iterator it = users.begin();
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 BootTimesLoader* btl = BootTimesLoader::Get(); 580 BootTimesLoader* btl = BootTimesLoader::Get();
579 btl->AddLoginTimeMarker("StartSession-Start", false); 581 btl->AddLoginTimeMarker("StartSession-Start", false);
580 DBusThreadManager::Get()->GetSessionManagerClient()-> 582 DBusThreadManager::Get()->GetSessionManagerClient()->
581 StartSession(user_context_.GetUserID()); 583 StartSession(user_context_.GetUserID());
582 btl->AddLoginTimeMarker("StartSession-End", false); 584 btl->AddLoginTimeMarker("StartSession-End", false);
583 } 585 }
584 586
585 void UserSessionManager::NotifyUserLoggedIn() { 587 void UserSessionManager::NotifyUserLoggedIn() {
586 BootTimesLoader* btl = BootTimesLoader::Get(); 588 BootTimesLoader* btl = BootTimesLoader::Get();
587 btl->AddLoginTimeMarker("UserLoggedIn-Start", false); 589 btl->AddLoginTimeMarker("UserLoggedIn-Start", false);
588 UserManager* user_manager = UserManager::Get(); 590 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
589 user_manager->UserLoggedIn(user_context_.GetUserID(), 591 user_manager->UserLoggedIn(user_context_.GetUserID(),
590 user_context_.GetUserIDHash(), 592 user_context_.GetUserIDHash(),
591 false); 593 false);
592 btl->AddLoginTimeMarker("UserLoggedIn-End", false); 594 btl->AddLoginTimeMarker("UserLoggedIn-End", false);
593 } 595 }
594 596
595 void UserSessionManager::PrepareProfile() { 597 void UserSessionManager::PrepareProfile() {
596 bool is_demo_session = 598 bool is_demo_session =
597 DemoAppLauncher::IsDemoAppSession(user_context_.GetUserID()); 599 DemoAppLauncher::IsDemoAppSession(user_context_.GetUserID());
598 600
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 case Profile::CREATE_STATUS_CANCELED: 635 case Profile::CREATE_STATUS_CANCELED:
634 case Profile::MAX_CREATE_STATUS: 636 case Profile::MAX_CREATE_STATUS:
635 NOTREACHED(); 637 NOTREACHED();
636 break; 638 break;
637 } 639 }
638 } 640 }
639 641
640 void UserSessionManager::InitProfilePreferences( 642 void UserSessionManager::InitProfilePreferences(
641 Profile* profile, 643 Profile* profile,
642 const UserContext& user_context) { 644 const UserContext& user_context) {
643 if (UserManager::Get()->IsCurrentUserNew()) { 645 if (user_manager::UserManager::Get()->IsCurrentUserNew()) {
644 SetFirstLoginPrefs(profile->GetPrefs(), 646 SetFirstLoginPrefs(profile->GetPrefs(),
645 user_context.GetPublicSessionLocale(), 647 user_context.GetPublicSessionLocale(),
646 user_context.GetPublicSessionInputMethod()); 648 user_context.GetPublicSessionInputMethod());
647 } 649 }
648 650
649 if (UserManager::Get()->IsLoggedInAsSupervisedUser()) { 651 if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) {
650 user_manager::User* active_user = UserManager::Get()->GetActiveUser(); 652 user_manager::User* active_user =
653 user_manager::UserManager::Get()->GetActiveUser();
651 std::string supervised_user_sync_id = 654 std::string supervised_user_sync_id =
652 UserManager::Get()->GetSupervisedUserManager()-> 655 ChromeUserManager::Get()->GetSupervisedUserManager()->GetUserSyncId(
653 GetUserSyncId(active_user->email()); 656 active_user->email());
654 profile->GetPrefs()->SetString(prefs::kSupervisedUserId, 657 profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
655 supervised_user_sync_id); 658 supervised_user_sync_id);
656 } else if (UserManager::Get()->IsLoggedInAsRegularUser()) { 659 } else if (user_manager::UserManager::Get()->IsLoggedInAsRegularUser()) {
657 // Make sure that the google service username is properly set (we do this 660 // Make sure that the google service username is properly set (we do this
658 // on every sign in, not just the first login, to deal with existing 661 // on every sign in, not just the first login, to deal with existing
659 // profiles that might not have it set yet). 662 // profiles that might not have it set yet).
660 SigninManagerBase* signin_manager = 663 SigninManagerBase* signin_manager =
661 SigninManagerFactory::GetForProfile(profile); 664 SigninManagerFactory::GetForProfile(profile);
662 signin_manager->SetAuthenticatedUsername(user_context.GetUserID()); 665 signin_manager->SetAuthenticatedUsername(user_context.GetUserID());
663 } 666 }
664 } 667 }
665 668
666 void UserSessionManager::UserProfileInitialized(Profile* profile, 669 void UserSessionManager::UserProfileInitialized(Profile* profile,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 CryptohomeClient* client = DBusThreadManager::Get()->GetCryptohomeClient(); 739 CryptohomeClient* client = DBusThreadManager::Get()->GetCryptohomeClient();
737 btl->AddLoginTimeMarker("TPMOwn-Start", false); 740 btl->AddLoginTimeMarker("TPMOwn-Start", false);
738 if (cryptohome_util::TpmIsEnabled() && !cryptohome_util::TpmIsBeingOwned()) { 741 if (cryptohome_util::TpmIsEnabled() && !cryptohome_util::TpmIsBeingOwned()) {
739 if (cryptohome_util::TpmIsOwned()) 742 if (cryptohome_util::TpmIsOwned())
740 client->CallTpmClearStoredPasswordAndBlock(); 743 client->CallTpmClearStoredPasswordAndBlock();
741 else 744 else
742 client->TpmCanAttemptOwnership(EmptyVoidDBusMethodCallback()); 745 client->TpmCanAttemptOwnership(EmptyVoidDBusMethodCallback());
743 } 746 }
744 btl->AddLoginTimeMarker("TPMOwn-End", false); 747 btl->AddLoginTimeMarker("TPMOwn-End", false);
745 748
746 UserManager* user_manager = UserManager::Get(); 749 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
747 if (user_manager->IsLoggedInAsRegularUser()) { 750 if (user_manager->IsLoggedInAsRegularUser()) {
748 SAMLOfflineSigninLimiter* saml_offline_signin_limiter = 751 SAMLOfflineSigninLimiter* saml_offline_signin_limiter =
749 SAMLOfflineSigninLimiterFactory::GetForProfile(profile); 752 SAMLOfflineSigninLimiterFactory::GetForProfile(profile);
750 if (saml_offline_signin_limiter) 753 if (saml_offline_signin_limiter)
751 saml_offline_signin_limiter->SignedIn(user_context_.GetAuthFlow()); 754 saml_offline_signin_limiter->SignedIn(user_context_.GetAuthFlow());
752 } 755 }
753 756
754 profile->OnLogin(); 757 profile->OnLogin();
755 758
756 g_browser_process->platform_part()->SessionManager()->SetSessionState( 759 g_browser_process->platform_part()->SessionManager()->SetSessionState(
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 // When switching to RLZ enabled/disabled state, clear all recorded events. 863 // When switching to RLZ enabled/disabled state, clear all recorded events.
861 RLZTracker::ClearRlzState(); 864 RLZTracker::ClearRlzState();
862 local_state->SetBoolean(prefs::kRLZDisabled, disabled); 865 local_state->SetBoolean(prefs::kRLZDisabled, disabled);
863 } 866 }
864 // Init the RLZ library. 867 // Init the RLZ library.
865 int ping_delay = profile->GetPrefs()->GetInteger( 868 int ping_delay = profile->GetPrefs()->GetInteger(
866 first_run::GetPingDelayPrefName().c_str()); 869 first_run::GetPingDelayPrefName().c_str());
867 // Negative ping delay means to send ping immediately after a first search is 870 // Negative ping delay means to send ping immediately after a first search is
868 // recorded. 871 // recorded.
869 RLZTracker::InitRlzFromProfileDelayed( 872 RLZTracker::InitRlzFromProfileDelayed(
870 profile, UserManager::Get()->IsCurrentUserNew(), 873 profile,
871 ping_delay < 0, base::TimeDelta::FromMilliseconds(abs(ping_delay))); 874 user_manager::UserManager::Get()->IsCurrentUserNew(),
875 ping_delay < 0,
876 base::TimeDelta::FromMilliseconds(abs(ping_delay)));
872 if (delegate_) 877 if (delegate_)
873 delegate_->OnRlzInitialized(); 878 delegate_->OnRlzInitialized();
874 #endif 879 #endif
875 } 880 }
876 881
877 void UserSessionManager::InitializeCerts(Profile* profile) { 882 void UserSessionManager::InitializeCerts(Profile* profile) {
878 // Now that the user profile has been initialized 883 // Now that the user profile has been initialized
879 // |GetNSSCertDatabaseForProfile| is safe to be used. 884 // |GetNSSCertDatabaseForProfile| is safe to be used.
880 if (CertLoader::IsInitialized() && base::SysInfo::IsRunningOnChromeOS()) { 885 if (CertLoader::IsInitialized() && base::SysInfo::IsRunningOnChromeOS()) {
881 GetNSSCertDatabaseForProfile(profile, 886 GetNSSCertDatabaseForProfile(profile,
(...skipping 20 matching lines...) Expand all
902 bool success) { 907 bool success) {
903 if (!success) { 908 if (!success) {
904 LOG(ERROR) << "Could not get list of active user sessions after crash."; 909 LOG(ERROR) << "Could not get list of active user sessions after crash.";
905 // If we could not get list of active user sessions it is safer to just 910 // If we could not get list of active user sessions it is safer to just
906 // sign out so that we don't get in the inconsistent state. 911 // sign out so that we don't get in the inconsistent state.
907 DBusThreadManager::Get()->GetSessionManagerClient()->StopSession(); 912 DBusThreadManager::Get()->GetSessionManagerClient()->StopSession();
908 return; 913 return;
909 } 914 }
910 915
911 // One profile has been already loaded on browser start. 916 // One profile has been already loaded on browser start.
912 UserManager* user_manager = UserManager::Get(); 917 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
913 DCHECK(user_manager->GetLoggedInUsers().size() == 1); 918 DCHECK(user_manager->GetLoggedInUsers().size() == 1);
914 DCHECK(user_manager->GetActiveUser()); 919 DCHECK(user_manager->GetActiveUser());
915 std::string active_user_id = user_manager->GetActiveUser()->email(); 920 std::string active_user_id = user_manager->GetActiveUser()->email();
916 921
917 SessionManagerClient::ActiveSessionsMap::const_iterator it; 922 SessionManagerClient::ActiveSessionsMap::const_iterator it;
918 for (it = sessions.begin(); it != sessions.end(); ++it) { 923 for (it = sessions.begin(); it != sessions.end(); ++it) {
919 if (active_user_id == it->first) 924 if (active_user_id == it->first)
920 continue; 925 continue;
921 pending_user_sessions_[it->first] = it->second; 926 pending_user_sessions_[it->first] = it->second;
922 } 927 }
(...skipping 10 matching lines...) Expand all
933 SessionManagerClient::ActiveSessionsMap::const_iterator it = 938 SessionManagerClient::ActiveSessionsMap::const_iterator it =
934 pending_user_sessions_.begin(); 939 pending_user_sessions_.begin();
935 std::string user_id = it->first; 940 std::string user_id = it->first;
936 std::string user_id_hash = it->second; 941 std::string user_id_hash = it->second;
937 DCHECK(!user_id.empty()); 942 DCHECK(!user_id.empty());
938 DCHECK(!user_id_hash.empty()); 943 DCHECK(!user_id_hash.empty());
939 pending_user_sessions_.erase(user_id); 944 pending_user_sessions_.erase(user_id);
940 945
941 // Check that this user is not logged in yet. 946 // Check that this user is not logged in yet.
942 user_manager::UserList logged_in_users = 947 user_manager::UserList logged_in_users =
943 UserManager::Get()->GetLoggedInUsers(); 948 user_manager::UserManager::Get()->GetLoggedInUsers();
944 bool user_already_logged_in = false; 949 bool user_already_logged_in = false;
945 for (user_manager::UserList::const_iterator it = logged_in_users.begin(); 950 for (user_manager::UserList::const_iterator it = logged_in_users.begin();
946 it != logged_in_users.end(); 951 it != logged_in_users.end();
947 ++it) { 952 ++it) {
948 const user_manager::User* user = (*it); 953 const user_manager::User* user = (*it);
949 if (user->email() == user_id) { 954 if (user->email() == user_id) {
950 user_already_logged_in = true; 955 user_already_logged_in = true;
951 break; 956 break;
952 } 957 }
953 } 958 }
(...skipping 17 matching lines...) Expand all
971 976
972 void UserSessionManager::NotifyPendingUserSessionsRestoreFinished() { 977 void UserSessionManager::NotifyPendingUserSessionsRestoreFinished() {
973 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 978 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
974 user_sessions_restored_ = true; 979 user_sessions_restored_ = true;
975 FOR_EACH_OBSERVER(UserSessionStateObserver, 980 FOR_EACH_OBSERVER(UserSessionStateObserver,
976 session_state_observer_list_, 981 session_state_observer_list_,
977 PendingUserSessionsRestoreFinished()); 982 PendingUserSessionsRestoreFinished());
978 } 983 }
979 984
980 } // namespace chromeos 985 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698