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

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

Issue 819133004: Make callers of CommandLine use it via the base:: namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 6 years 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
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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 // Callback to GetNSSCertDatabaseForProfile. It starts CertLoader using the 196 // Callback to GetNSSCertDatabaseForProfile. It starts CertLoader using the
197 // provided NSS database. It must be called for primary user only. 197 // provided NSS database. It must be called for primary user only.
198 void OnGetNSSCertDatabaseForUser(net::NSSCertDatabase* database) { 198 void OnGetNSSCertDatabaseForUser(net::NSSCertDatabase* database) {
199 if (!CertLoader::IsInitialized()) 199 if (!CertLoader::IsInitialized())
200 return; 200 return;
201 201
202 CertLoader::Get()->StartWithNSSDB(database); 202 CertLoader::Get()->StartWithNSSDB(database);
203 } 203 }
204 204
205 // Returns new CommandLine with per-user flags. 205 // Returns new CommandLine with per-user flags.
206 CommandLine CreatePerSessionCommandLine(Profile* profile) { 206 base::CommandLine CreatePerSessionCommandLine(Profile* profile) {
207 CommandLine user_flags(CommandLine::NO_PROGRAM); 207 base::CommandLine user_flags(base::CommandLine::NO_PROGRAM);
208 about_flags::PrefServiceFlagsStorage flags_storage_(profile->GetPrefs()); 208 about_flags::PrefServiceFlagsStorage flags_storage_(profile->GetPrefs());
209 about_flags::ConvertFlagsToSwitches(&flags_storage_, &user_flags, 209 about_flags::ConvertFlagsToSwitches(&flags_storage_, &user_flags,
210 about_flags::kAddSentinels); 210 about_flags::kAddSentinels);
211 return user_flags; 211 return user_flags;
212 } 212 }
213 213
214 // Returns true if restart is needed to apply per-session flags. 214 // Returns true if restart is needed to apply per-session flags.
215 bool NeedRestartToApplyPerSessionFlags( 215 bool NeedRestartToApplyPerSessionFlags(
216 const CommandLine& user_flags, 216 const base::CommandLine& user_flags,
217 std::set<CommandLine::StringType>* out_command_line_difference) { 217 std::set<base::CommandLine::StringType>* out_command_line_difference) {
218 // Don't restart browser if it is not first profile in session. 218 // Don't restart browser if it is not first profile in session.
219 if (user_manager::UserManager::Get()->GetLoggedInUsers().size() != 1) 219 if (user_manager::UserManager::Get()->GetLoggedInUsers().size() != 1)
220 return false; 220 return false;
221 221
222 // Only restart if needed and if not going into managed mode. 222 // Only restart if needed and if not going into managed mode.
223 if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()) 223 if (user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser())
224 return false; 224 return false;
225 225
226 if (about_flags::AreSwitchesIdenticalToCurrentCommandLine( 226 if (about_flags::AreSwitchesIdenticalToCurrentCommandLine(
227 user_flags, *CommandLine::ForCurrentProcess(), 227 user_flags, *base::CommandLine::ForCurrentProcess(),
228 out_command_line_difference)) { 228 out_command_line_difference)) {
229 return false; 229 return false;
230 } 230 }
231 231
232 return true; 232 return true;
233 } 233 }
234 234
235 bool CanPerformEarlyRestart() { 235 bool CanPerformEarlyRestart() {
236 // Desktop build is used for development only. Early restart is not supported. 236 // Desktop build is used for development only. Early restart is not supported.
237 if (!base::SysInfo::IsRunningOnChromeOS()) 237 if (!base::SysInfo::IsRunningOnChromeOS())
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 if (user_manager::UserManager::IsInitialized()) 335 if (user_manager::UserManager::IsInitialized())
336 user_manager::UserManager::Get()->RemoveSessionStateObserver(this); 336 user_manager::UserManager::Get()->RemoveSessionStateObserver(this);
337 net::NetworkChangeNotifier::RemoveConnectionTypeObserver(this); 337 net::NetworkChangeNotifier::RemoveConnectionTypeObserver(this);
338 } 338 }
339 339
340 void UserSessionManager::CompleteGuestSessionLogin(const GURL& start_url) { 340 void UserSessionManager::CompleteGuestSessionLogin(const GURL& start_url) {
341 VLOG(1) << "Completing guest session login"; 341 VLOG(1) << "Completing guest session login";
342 342
343 // For guest session we ask session_manager to restart Chrome with --bwsi 343 // For guest session we ask session_manager to restart Chrome with --bwsi
344 // flag. We keep only some of the arguments of this process. 344 // flag. We keep only some of the arguments of this process.
345 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); 345 const base::CommandLine& browser_command_line =
346 CommandLine command_line(browser_command_line.GetProgram()); 346 *base::CommandLine::ForCurrentProcess();
347 base::CommandLine command_line(browser_command_line.GetProgram());
347 std::string cmd_line_str = 348 std::string cmd_line_str =
348 GetOffTheRecordCommandLine(start_url, 349 GetOffTheRecordCommandLine(start_url,
349 StartupUtils::IsOobeCompleted(), 350 StartupUtils::IsOobeCompleted(),
350 browser_command_line, 351 browser_command_line,
351 &command_line); 352 &command_line);
352 353
353 // This makes sure that Chrome restarts with no per-session flags. The guest 354 // This makes sure that Chrome restarts with no per-session flags. The guest
354 // profile will always have empty set of per-session flags. If this is not 355 // profile will always have empty set of per-session flags. If this is not
355 // done and device owner has some per-session flags, when Chrome is relaunched 356 // done and device owner has some per-session flags, when Chrome is relaunched
356 // the guest profile session flags will not match the current command line and 357 // the guest profile session flags will not match the current command line and
357 // another restart will be attempted in order to reset the user flags for the 358 // another restart will be attempted in order to reset the user flags for the
358 // guest user. 359 // guest user.
359 const CommandLine user_flags(CommandLine::NO_PROGRAM); 360 const base::CommandLine user_flags(base::CommandLine::NO_PROGRAM);
360 if (!about_flags::AreSwitchesIdenticalToCurrentCommandLine( 361 if (!about_flags::AreSwitchesIdenticalToCurrentCommandLine(
361 user_flags, 362 user_flags, *base::CommandLine::ForCurrentProcess(), NULL)) {
362 *CommandLine::ForCurrentProcess(),
363 NULL)) {
364 DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser( 363 DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser(
365 chromeos::login::kGuestUserName, 364 chromeos::login::kGuestUserName, base::CommandLine::StringVector());
366 CommandLine::StringVector());
367 } 365 }
368 366
369 RestartChrome(cmd_line_str); 367 RestartChrome(cmd_line_str);
370 } 368 }
371 369
372 void UserSessionManager::StartSession( 370 void UserSessionManager::StartSession(
373 const UserContext& user_context, 371 const UserContext& user_context,
374 StartSessionType start_session_type, 372 StartSessionType start_session_type,
375 scoped_refptr<Authenticator> authenticator, 373 scoped_refptr<Authenticator> authenticator,
376 bool has_auth_cookies, 374 bool has_auth_cookies,
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 579
582 bool UserSessionManager::RestartToApplyPerSessionFlagsIfNeed( 580 bool UserSessionManager::RestartToApplyPerSessionFlagsIfNeed(
583 Profile* profile, 581 Profile* profile,
584 bool early_restart) { 582 bool early_restart) {
585 if (ProfileHelper::IsSigninProfile(profile)) 583 if (ProfileHelper::IsSigninProfile(profile))
586 return false; 584 return false;
587 585
588 if (early_restart && !CanPerformEarlyRestart()) 586 if (early_restart && !CanPerformEarlyRestart())
589 return false; 587 return false;
590 588
591 const CommandLine user_flags(CreatePerSessionCommandLine(profile)); 589 const base::CommandLine user_flags(CreatePerSessionCommandLine(profile));
592 std::set<CommandLine::StringType> command_line_difference; 590 std::set<base::CommandLine::StringType> command_line_difference;
593 if (!NeedRestartToApplyPerSessionFlags(user_flags, &command_line_difference)) 591 if (!NeedRestartToApplyPerSessionFlags(user_flags, &command_line_difference))
594 return false; 592 return false;
595 593
596 LogCustomSwitches(command_line_difference); 594 LogCustomSwitches(command_line_difference);
597 595
598 about_flags::ReportCustomFlags("Login.CustomFlags", command_line_difference); 596 about_flags::ReportCustomFlags("Login.CustomFlags", command_line_difference);
599 597
600 CommandLine::StringVector flags; 598 CommandLine::StringVector flags;
601 // argv[0] is the program name |CommandLine::NO_PROGRAM|. 599 // argv[0] is the program name |base::CommandLine::NO_PROGRAM|.
602 flags.assign(user_flags.argv().begin() + 1, user_flags.argv().end()); 600 flags.assign(user_flags.argv().begin() + 1, user_flags.argv().end());
603 LOG(WARNING) << "Restarting to apply per-session flags..."; 601 LOG(WARNING) << "Restarting to apply per-session flags...";
604 DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser( 602 DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser(
605 user_manager::UserManager::Get()->GetActiveUser()->email(), flags); 603 user_manager::UserManager::Get()->GetActiveUser()->email(), flags);
606 AttemptRestart(profile); 604 AttemptRestart(profile);
607 return true; 605 return true;
608 } 606 }
609 607
610 bool UserSessionManager::NeedsToUpdateEasyUnlockKeys() const { 608 bool UserSessionManager::NeedsToUpdateEasyUnlockKeys() const {
611 return EasyUnlockService::IsSignInEnabled() && 609 return EasyUnlockService::IsSignInEnabled() &&
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 login_manager->ContinueSessionRestore(); 719 login_manager->ContinueSessionRestore();
722 } else if (should_restore_session) { 720 } else if (should_restore_session) {
723 pending_signin_restore_sessions_.erase((*it)->email()); 721 pending_signin_restore_sessions_.erase((*it)->email());
724 RestoreAuthSessionImpl(user_profile, false /* has_auth_cookies */); 722 RestoreAuthSessionImpl(user_profile, false /* has_auth_cookies */);
725 } 723 }
726 } 724 }
727 } 725 }
728 726
729 void UserSessionManager::OnProfilePrepared(Profile* profile, 727 void UserSessionManager::OnProfilePrepared(Profile* profile,
730 bool browser_launched) { 728 bool browser_launched) {
731 if (!CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestName)) { 729 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
730 ::switches::kTestName)) {
732 // Did not log in (we crashed or are debugging), need to restore Sync. 731 // Did not log in (we crashed or are debugging), need to restore Sync.
733 // TODO(nkostylev): Make sure that OAuth state is restored correctly for all 732 // TODO(nkostylev): Make sure that OAuth state is restored correctly for all
734 // users once it is fully multi-profile aware. http://crbug.com/238987 733 // users once it is fully multi-profile aware. http://crbug.com/238987
735 // For now if we have other user pending sessions they'll override OAuth 734 // For now if we have other user pending sessions they'll override OAuth
736 // session restore for previous users. 735 // session restore for previous users.
737 RestoreAuthenticationSession(profile); 736 RestoreAuthenticationSession(profile);
738 } 737 }
739 738
740 // Restore other user sessions if any. 739 // Restore other user sessions if any.
741 RestorePendingUserSessions(); 740 RestorePendingUserSessions();
742 } 741 }
743 742
744 void UserSessionManager::CreateUserSession(const UserContext& user_context, 743 void UserSessionManager::CreateUserSession(const UserContext& user_context,
745 bool has_auth_cookies) { 744 bool has_auth_cookies) {
746 user_context_ = user_context; 745 user_context_ = user_context;
747 has_auth_cookies_ = has_auth_cookies; 746 has_auth_cookies_ = has_auth_cookies;
748 InitSessionRestoreStrategy(); 747 InitSessionRestoreStrategy();
749 } 748 }
750 749
751 void UserSessionManager::PreStartSession() { 750 void UserSessionManager::PreStartSession() {
752 // Switch log file as soon as possible. 751 // Switch log file as soon as possible.
753 if (base::SysInfo::IsRunningOnChromeOS()) 752 if (base::SysInfo::IsRunningOnChromeOS())
754 logging::RedirectChromeLogging(*(CommandLine::ForCurrentProcess())); 753 logging::RedirectChromeLogging(*(base::CommandLine::ForCurrentProcess()));
755 } 754 }
756 755
757 void UserSessionManager::StartCrosSession() { 756 void UserSessionManager::StartCrosSession() {
758 BootTimesLoader* btl = BootTimesLoader::Get(); 757 BootTimesLoader* btl = BootTimesLoader::Get();
759 btl->AddLoginTimeMarker("StartSession-Start", false); 758 btl->AddLoginTimeMarker("StartSession-Start", false);
760 DBusThreadManager::Get()->GetSessionManagerClient()-> 759 DBusThreadManager::Get()->GetSessionManagerClient()->
761 StartSession(user_context_.GetUserID()); 760 StartSession(user_context_.GetUserID());
762 btl->AddLoginTimeMarker("StartSession-End", false); 761 btl->AddLoginTimeMarker("StartSession-End", false);
763 } 762 }
764 763
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 } 1017 }
1019 } 1018 }
1020 1019
1021 // Only show getting started guide for a new user. 1020 // Only show getting started guide for a new user.
1022 const bool should_show_getstarted_guide = user_manager->IsCurrentUserNew(); 1021 const bool should_show_getstarted_guide = user_manager->IsCurrentUserNew();
1023 1022
1024 if (can_show_getstarted_guide && should_show_getstarted_guide) { 1023 if (can_show_getstarted_guide && should_show_getstarted_guide) {
1025 // Don't open default Chrome window if we're going to launch the first-run 1024 // Don't open default Chrome window if we're going to launch the first-run
1026 // app. Because we dont' want the first-run app to be hidden in the 1025 // app. Because we dont' want the first-run app to be hidden in the
1027 // background. 1026 // background.
1028 CommandLine::ForCurrentProcess()->AppendSwitch(::switches::kSilentLaunch); 1027 base::CommandLine::ForCurrentProcess()->AppendSwitch(
1028 ::switches::kSilentLaunch);
1029 first_run::MaybeLaunchDialogAfterSessionStart(); 1029 first_run::MaybeLaunchDialogAfterSessionStart();
1030 } else { 1030 } else {
1031 for (size_t i = 0; i < start_urls.size(); ++i) { 1031 for (size_t i = 0; i < start_urls.size(); ++i) {
1032 CommandLine::ForCurrentProcess()->AppendArg(start_urls[i]); 1032 base::CommandLine::ForCurrentProcess()->AppendArg(start_urls[i]);
1033 } 1033 }
1034 } 1034 }
1035 } 1035 }
1036 1036
1037 bool UserSessionManager::InitializeUserSession(Profile* profile) { 1037 bool UserSessionManager::InitializeUserSession(Profile* profile) {
1038 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); 1038 user_manager::UserManager* user_manager = user_manager::UserManager::Get();
1039 1039
1040 // Kiosk apps has their own session initialization pipeline. 1040 // Kiosk apps has their own session initialization pipeline.
1041 if (user_manager->IsLoggedInAsKioskApp()) 1041 if (user_manager->IsLoggedInAsKioskApp())
1042 return false; 1042 return false;
1043 1043
1044 if (start_session_type_ == PRIMARY_USER_SESSION) { 1044 if (start_session_type_ == PRIMARY_USER_SESSION) {
1045 UserFlow* user_flow = ChromeUserManager::Get()->GetCurrentUserFlow(); 1045 UserFlow* user_flow = ChromeUserManager::Get()->GetCurrentUserFlow();
1046 WizardController* oobe_controller = WizardController::default_controller(); 1046 WizardController* oobe_controller = WizardController::default_controller();
1047 base::CommandLine* cmdline = CommandLine::ForCurrentProcess(); 1047 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
1048 bool skip_post_login_screens = 1048 bool skip_post_login_screens =
1049 user_flow->ShouldSkipPostLoginScreens() || 1049 user_flow->ShouldSkipPostLoginScreens() ||
1050 (oobe_controller && oobe_controller->skip_post_login_screens()) || 1050 (oobe_controller && oobe_controller->skip_post_login_screens()) ||
1051 cmdline->HasSwitch(chromeos::switches::kOobeSkipPostLogin); 1051 cmdline->HasSwitch(chromeos::switches::kOobeSkipPostLogin);
1052 1052
1053 if (user_manager->IsCurrentUserNew() && !skip_post_login_screens) { 1053 if (user_manager->IsCurrentUserNew() && !skip_post_login_screens) {
1054 // Don't specify start URLs if the administrator has configured the start 1054 // Don't specify start URLs if the administrator has configured the start
1055 // URLs via policy. 1055 // URLs via policy.
1056 if (!SessionStartupPref::TypeIsManaged(profile->GetPrefs())) 1056 if (!SessionStartupPref::TypeIsManaged(profile->GetPrefs()))
1057 InitializeStartUrls(); 1057 InitializeStartUrls();
1058 1058
1059 // Mark the device as registered., i.e. the second part of OOBE as 1059 // Mark the device as registered., i.e. the second part of OOBE as
1060 // completed. 1060 // completed.
1061 if (!StartupUtils::IsDeviceRegistered()) 1061 if (!StartupUtils::IsDeviceRegistered())
1062 StartupUtils::MarkDeviceRegistered(base::Closure()); 1062 StartupUtils::MarkDeviceRegistered(base::Closure());
1063 1063
1064 ActivateWizard(WizardController::kTermsOfServiceScreenName); 1064 ActivateWizard(WizardController::kTermsOfServiceScreenName);
1065 return false; 1065 return false;
1066 } 1066 }
1067 } 1067 }
1068 1068
1069 LoginUtils::Get()->DoBrowserLaunch(profile, 1069 LoginUtils::Get()->DoBrowserLaunch(profile,
1070 LoginDisplayHostImpl::default_host()); 1070 LoginDisplayHostImpl::default_host());
1071 return true; 1071 return true;
1072 } 1072 }
1073 1073
1074 void UserSessionManager::InitSessionRestoreStrategy() { 1074 void UserSessionManager::InitSessionRestoreStrategy() {
1075 CommandLine* command_line = CommandLine::ForCurrentProcess(); 1075 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
1076 bool in_app_mode = chrome::IsRunningInForcedAppMode(); 1076 bool in_app_mode = chrome::IsRunningInForcedAppMode();
1077 1077
1078 // Are we in kiosk app mode? 1078 // Are we in kiosk app mode?
1079 if (in_app_mode) { 1079 if (in_app_mode) {
1080 if (command_line->HasSwitch(::switches::kAppModeOAuth2Token)) { 1080 if (command_line->HasSwitch(::switches::kAppModeOAuth2Token)) {
1081 oauth2_refresh_token_ = command_line->GetSwitchValueASCII( 1081 oauth2_refresh_token_ = command_line->GetSwitchValueASCII(
1082 ::switches::kAppModeOAuth2Token); 1082 ::switches::kAppModeOAuth2Token);
1083 } 1083 }
1084 1084
1085 if (command_line->HasSwitch(::switches::kAppModeAuthCode)) { 1085 if (command_line->HasSwitch(::switches::kAppModeAuthCode)) {
(...skipping 24 matching lines...) Expand all
1110 } 1110 }
1111 } 1111 }
1112 1112
1113 void UserSessionManager::RestoreAuthSessionImpl( 1113 void UserSessionManager::RestoreAuthSessionImpl(
1114 Profile* profile, 1114 Profile* profile,
1115 bool restore_from_auth_cookies) { 1115 bool restore_from_auth_cookies) {
1116 CHECK((authenticator_.get() && authenticator_->authentication_context()) || 1116 CHECK((authenticator_.get() && authenticator_->authentication_context()) ||
1117 !restore_from_auth_cookies); 1117 !restore_from_auth_cookies);
1118 1118
1119 if (chrome::IsRunningInForcedAppMode() || 1119 if (chrome::IsRunningInForcedAppMode() ||
1120 CommandLine::ForCurrentProcess()->HasSwitch( 1120 base::CommandLine::ForCurrentProcess()->HasSwitch(
1121 chromeos::switches::kDisableGaiaServices)) { 1121 chromeos::switches::kDisableGaiaServices)) {
1122 return; 1122 return;
1123 } 1123 }
1124 1124
1125 exit_after_session_restore_ = false; 1125 exit_after_session_restore_ = false;
1126 1126
1127 // Remove legacy OAuth1 token if we have one. If it's valid, we should already 1127 // Remove legacy OAuth1 token if we have one. If it's valid, we should already
1128 // have OAuth2 refresh token in OAuth2TokenService that could be used to 1128 // have OAuth2 refresh token in OAuth2TokenService that could be used to
1129 // retrieve all other tokens and user_context. 1129 // retrieve all other tokens and user_context.
1130 OAuth2LoginManager* login_manager = 1130 OAuth2LoginManager* login_manager =
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
1432 #if defined(USE_ATHENA) 1432 #if defined(USE_ATHENA)
1433 athena::StartAthenaSessionWithContext(profile); 1433 athena::StartAthenaSessionWithContext(profile);
1434 #else 1434 #else
1435 StartupBrowserCreator browser_creator; 1435 StartupBrowserCreator browser_creator;
1436 int return_code; 1436 int return_code;
1437 chrome::startup::IsFirstRun first_run = 1437 chrome::startup::IsFirstRun first_run =
1438 ::first_run::IsChromeFirstRun() ? chrome::startup::IS_FIRST_RUN 1438 ::first_run::IsChromeFirstRun() ? chrome::startup::IS_FIRST_RUN
1439 : chrome::startup::IS_NOT_FIRST_RUN; 1439 : chrome::startup::IS_NOT_FIRST_RUN;
1440 1440
1441 browser_creator.LaunchBrowser( 1441 browser_creator.LaunchBrowser(
1442 *CommandLine::ForCurrentProcess(), profile, base::FilePath(), 1442 *base::CommandLine::ForCurrentProcess(), profile, base::FilePath(),
1443 chrome::startup::IS_PROCESS_STARTUP, first_run, &return_code); 1443 chrome::startup::IS_PROCESS_STARTUP, first_run, &return_code);
1444 1444
1445 // Triggers app launcher start page service to load start page web contents. 1445 // Triggers app launcher start page service to load start page web contents.
1446 app_list::StartPageService::Get(profile); 1446 app_list::StartPageService::Get(profile);
1447 #endif 1447 #endif
1448 1448
1449 // Mark login host for deletion after browser starts. This 1449 // Mark login host for deletion after browser starts. This
1450 // guarantees that the message loop will be referenced by the 1450 // guarantees that the message loop will be referenced by the
1451 // browser before it is dereferenced by the login host. 1451 // browser before it is dereferenced by the login host.
1452 if (login_host) 1452 if (login_host)
(...skipping 26 matching lines...) Expand all
1479 InputEventsBlocker* /* input_events_blocker */, 1479 InputEventsBlocker* /* input_events_blocker */,
1480 const locale_util::LanguageSwitchResult& /* result */) { 1480 const locale_util::LanguageSwitchResult& /* result */) {
1481 callback.Run(); 1481 callback.Run();
1482 } 1482 }
1483 1483
1484 void UserSessionManager::RemoveProfileForTesting(Profile* profile) { 1484 void UserSessionManager::RemoveProfileForTesting(Profile* profile) {
1485 default_ime_states_.erase(profile); 1485 default_ime_states_.erase(profile);
1486 } 1486 }
1487 1487
1488 } // namespace chromeos 1488 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698