| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/login_utils.h" | 5 #include "chrome/browser/chromeos/login/login_utils.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 CommandLine user_flags(CommandLine::NO_PROGRAM); | 97 CommandLine user_flags(CommandLine::NO_PROGRAM); |
| 98 about_flags::PrefServiceFlagsStorage flags_storage_(profile->GetPrefs()); | 98 about_flags::PrefServiceFlagsStorage flags_storage_(profile->GetPrefs()); |
| 99 about_flags::ConvertFlagsToSwitches( | 99 about_flags::ConvertFlagsToSwitches( |
| 100 &flags_storage_, &user_flags, about_flags::kAddSentinels); | 100 &flags_storage_, &user_flags, about_flags::kAddSentinels); |
| 101 return user_flags; | 101 return user_flags; |
| 102 } | 102 } |
| 103 | 103 |
| 104 // Returns true if restart is needed to apply per-session flags. | 104 // Returns true if restart is needed to apply per-session flags. |
| 105 bool NeedRestartToApplyPerSessionFlags(const CommandLine& user_flags) { | 105 bool NeedRestartToApplyPerSessionFlags(const CommandLine& user_flags) { |
| 106 // Don't restart browser if it is not first profile in session. | 106 // Don't restart browser if it is not first profile in session. |
| 107 if (UserManager::Get()->GetLoggedInUsers().size() != 1) | 107 if (GetUserManager()->GetLoggedInUsers().size() != 1) |
| 108 return false; | 108 return false; |
| 109 | 109 |
| 110 // Only restart if needed and if not going into managed mode. | 110 // Only restart if needed and if not going into managed mode. |
| 111 if (UserManager::Get()->IsLoggedInAsLocallyManagedUser()) | 111 if (GetUserManager()->IsLoggedInAsLocallyManagedUser()) |
| 112 return false; | 112 return false; |
| 113 | 113 |
| 114 if (about_flags::AreSwitchesIdenticalToCurrentCommandLine( | 114 if (about_flags::AreSwitchesIdenticalToCurrentCommandLine( |
| 115 user_flags, *CommandLine::ForCurrentProcess())) { | 115 user_flags, *CommandLine::ForCurrentProcess())) { |
| 116 return false; | 116 return false; |
| 117 } | 117 } |
| 118 | 118 |
| 119 return true; | 119 return true; |
| 120 } | 120 } |
| 121 | 121 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 context->login_utils_impl->DoBrowserLaunchOnLocaleLoadedImpl( | 256 context->login_utils_impl->DoBrowserLaunchOnLocaleLoadedImpl( |
| 257 context->profile, context->display_host); | 257 context->profile, context->display_host); |
| 258 } | 258 } |
| 259 | 259 |
| 260 // Called from DoBrowserLaunch() or from | 260 // Called from DoBrowserLaunch() or from |
| 261 // DoBrowserLaunchOnLocaleLoaded() depending on | 261 // DoBrowserLaunchOnLocaleLoaded() depending on |
| 262 // if locale switch was needed. | 262 // if locale switch was needed. |
| 263 void LoginUtilsImpl::DoBrowserLaunchOnLocaleLoadedImpl( | 263 void LoginUtilsImpl::DoBrowserLaunchOnLocaleLoadedImpl( |
| 264 Profile* profile, | 264 Profile* profile, |
| 265 LoginDisplayHost* login_host) { | 265 LoginDisplayHost* login_host) { |
| 266 if (!UserManager::Get()->GetCurrentUserFlow()->ShouldLaunchBrowser()) { | 266 if (!GetUserManager()->GetCurrentUserFlow()->ShouldLaunchBrowser()) { |
| 267 UserManager::Get()->GetCurrentUserFlow()->LaunchExtraSteps(profile); | 267 GetUserManager()->GetCurrentUserFlow()->LaunchExtraSteps(profile); |
| 268 return; | 268 return; |
| 269 } | 269 } |
| 270 | 270 |
| 271 if (RestartToApplyPerSessionFlagsIfNeed(profile, false)) | 271 if (RestartToApplyPerSessionFlagsIfNeed(profile, false)) |
| 272 return; | 272 return; |
| 273 | 273 |
| 274 if (login_host) { | 274 if (login_host) { |
| 275 login_host->SetStatusAreaVisible(true); | 275 login_host->SetStatusAreaVisible(true); |
| 276 login_host->BeforeSessionStart(); | 276 login_host->BeforeSessionStart(); |
| 277 } | 277 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 293 &return_code); | 293 &return_code); |
| 294 | 294 |
| 295 // Triggers app launcher start page service to load start page web contents. | 295 // Triggers app launcher start page service to load start page web contents. |
| 296 app_list::StartPageService::Get(profile); | 296 app_list::StartPageService::Get(profile); |
| 297 | 297 |
| 298 // Mark login host for deletion after browser starts. This | 298 // Mark login host for deletion after browser starts. This |
| 299 // guarantees that the message loop will be referenced by the | 299 // guarantees that the message loop will be referenced by the |
| 300 // browser before it is dereferenced by the login host. | 300 // browser before it is dereferenced by the login host. |
| 301 if (login_host) | 301 if (login_host) |
| 302 login_host->Finalize(); | 302 login_host->Finalize(); |
| 303 UserManager::Get()->SessionStarted(); | 303 GetUserManager()->SessionStarted(); |
| 304 chromeos::BootTimesLoader::Get()->LoginDone( | 304 chromeos::BootTimesLoader::Get()->LoginDone( |
| 305 chromeos::UserManager::Get()->IsCurrentUserNew()); | 305 chromeos::GetUserManager()->IsCurrentUserNew()); |
| 306 } | 306 } |
| 307 | 307 |
| 308 void LoginUtilsImpl::DoBrowserLaunch(Profile* profile, | 308 void LoginUtilsImpl::DoBrowserLaunch(Profile* profile, |
| 309 LoginDisplayHost* login_host) { | 309 LoginDisplayHost* login_host) { |
| 310 if (browser_shutdown::IsTryingToQuit()) | 310 if (browser_shutdown::IsTryingToQuit()) |
| 311 return; | 311 return; |
| 312 | 312 |
| 313 User* const user = ProfileHelper::Get()->GetUserByProfile(profile); | 313 User* const user = ProfileHelper::Get()->GetUserByProfile(profile); |
| 314 scoped_ptr<DoBrowserLaunchOnLocaleLoadedData> data( | 314 scoped_ptr<DoBrowserLaunchOnLocaleLoadedData> data( |
| 315 new DoBrowserLaunchOnLocaleLoadedData(this, profile, login_host)); | 315 new DoBrowserLaunchOnLocaleLoadedData(this, profile, login_host)); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 | 359 |
| 360 const CommandLine user_flags(CreatePerSessionCommandLine(profile)); | 360 const CommandLine user_flags(CreatePerSessionCommandLine(profile)); |
| 361 if (!NeedRestartToApplyPerSessionFlags(user_flags)) | 361 if (!NeedRestartToApplyPerSessionFlags(user_flags)) |
| 362 return false; | 362 return false; |
| 363 | 363 |
| 364 CommandLine::StringVector flags; | 364 CommandLine::StringVector flags; |
| 365 // argv[0] is the program name |CommandLine::NO_PROGRAM|. | 365 // argv[0] is the program name |CommandLine::NO_PROGRAM|. |
| 366 flags.assign(user_flags.argv().begin() + 1, user_flags.argv().end()); | 366 flags.assign(user_flags.argv().begin() + 1, user_flags.argv().end()); |
| 367 VLOG(1) << "Restarting to apply per-session flags..."; | 367 VLOG(1) << "Restarting to apply per-session flags..."; |
| 368 DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser( | 368 DBusThreadManager::Get()->GetSessionManagerClient()->SetFlagsForUser( |
| 369 UserManager::Get()->GetActiveUser()->email(), flags); | 369 GetUserManager()->GetActiveUser()->email(), flags); |
| 370 AttemptRestart(profile); | 370 AttemptRestart(profile); |
| 371 return true; | 371 return true; |
| 372 } | 372 } |
| 373 | 373 |
| 374 void LoginUtilsImpl::CompleteOffTheRecordLogin(const GURL& start_url) { | 374 void LoginUtilsImpl::CompleteOffTheRecordLogin(const GURL& start_url) { |
| 375 VLOG(1) << "Completing incognito login"; | 375 VLOG(1) << "Completing incognito login"; |
| 376 | 376 |
| 377 // For guest session we ask session manager to restart Chrome with --bwsi | 377 // For guest session we ask session manager to restart Chrome with --bwsi |
| 378 // flag. We keep only some of the arguments of this process. | 378 // flag. We keep only some of the arguments of this process. |
| 379 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); | 379 const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess(); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 CrosSettings* cros_settings = CrosSettings::Get(); | 462 CrosSettings* cros_settings = CrosSettings::Get(); |
| 463 bool allow_new_user = false; | 463 bool allow_new_user = false; |
| 464 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); | 464 cros_settings->GetBoolean(kAccountsPrefAllowNewUser, &allow_new_user); |
| 465 if (allow_new_user) | 465 if (allow_new_user) |
| 466 return true; | 466 return true; |
| 467 return cros_settings->FindEmailInList( | 467 return cros_settings->FindEmailInList( |
| 468 kAccountsPrefUsers, username, wildcard_match); | 468 kAccountsPrefUsers, username, wildcard_match); |
| 469 } | 469 } |
| 470 | 470 |
| 471 } // namespace chromeos | 471 } // namespace chromeos |
| OLD | NEW |