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

Side by Side Diff: trunk/src/chrome/browser/chromeos/chrome_browser_main_chromeos.cc

Issue 13590004: Revert 192504 "Re-apply 192420: Move login switches to src/chromeos" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 8 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/chrome_browser_main_chromeos.h" 5 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 } 185 }
186 186
187 scoped_refptr<Authenticator> authenticator_; 187 scoped_refptr<Authenticator> authenticator_;
188 bool pending_requests_; 188 bool pending_requests_;
189 bool profile_prepared_; 189 bool profile_prepared_;
190 }; 190 };
191 191
192 bool ShouldAutoLaunchKioskApp(const CommandLine& command_line) { 192 bool ShouldAutoLaunchKioskApp(const CommandLine& command_line) {
193 KioskAppManager* app_manager = KioskAppManager::Get(); 193 KioskAppManager* app_manager = KioskAppManager::Get();
194 return !command_line.HasSwitch(::switches::kDisableAppMode) && 194 return !command_line.HasSwitch(::switches::kDisableAppMode) &&
195 command_line.HasSwitch(switches::kLoginManager) && 195 command_line.HasSwitch(::switches::kLoginManager) &&
196 !command_line.HasSwitch(switches::kForceLoginManagerInTests) && 196 !command_line.HasSwitch(::switches::kForceLoginManagerInTests) &&
197 !app_manager->GetAutoLaunchApp().empty() && 197 !app_manager->GetAutoLaunchApp().empty() &&
198 KioskAppLaunchError::Get() == KioskAppLaunchError::NONE; 198 KioskAppLaunchError::Get() == KioskAppLaunchError::NONE;
199 } 199 }
200 200
201 void OptionallyRunChromeOSLoginManager(const CommandLine& parsed_command_line, 201 void OptionallyRunChromeOSLoginManager(const CommandLine& parsed_command_line,
202 Profile* profile) { 202 Profile* profile) {
203 if (parsed_command_line.HasSwitch(switches::kLoginManager)) { 203 if (parsed_command_line.HasSwitch(::switches::kLoginManager)) {
204 std::string first_screen = 204 std::string first_screen =
205 parsed_command_line.GetSwitchValueASCII(switches::kLoginScreen); 205 parsed_command_line.GetSwitchValueASCII(::switches::kLoginScreen);
206 std::string size_arg = 206 std::string size_arg =
207 parsed_command_line.GetSwitchValueASCII(switches::kLoginScreenSize); 207 parsed_command_line.GetSwitchValueASCII(
208 ::switches::kLoginScreenSize);
208 gfx::Size size(0, 0); 209 gfx::Size size(0, 0);
209 // Allow the size of the login window to be set explicitly. If not set, 210 // Allow the size of the login window to be set explicitly. If not set,
210 // default to the entire screen. This is mostly useful for testing. 211 // default to the entire screen. This is mostly useful for testing.
211 if (size_arg.size()) { 212 if (size_arg.size()) {
212 std::vector<std::string> dimensions; 213 std::vector<std::string> dimensions;
213 base::SplitString(size_arg, ',', &dimensions); 214 base::SplitString(size_arg, ',', &dimensions);
214 if (dimensions.size() == 2) { 215 if (dimensions.size() == 2) {
215 int width, height; 216 int width, height;
216 if (base::StringToInt(dimensions[0], &width) && 217 if (base::StringToInt(dimensions[0], &width) &&
217 base::StringToInt(dimensions[1], &height)) 218 base::StringToInt(dimensions[1], &height))
218 size.SetSize(width, height); 219 size.SetSize(width, height);
219 } 220 }
220 } 221 }
221 222
222 ShowLoginWizard(first_screen, size); 223 ShowLoginWizard(first_screen, size);
223 224
224 if (KioskModeSettings::Get()->IsKioskModeEnabled()) 225 if (KioskModeSettings::Get()->IsKioskModeEnabled())
225 InitializeKioskModeScreensaver(); 226 InitializeKioskModeScreensaver();
226 227
227 // If app mode is enabled, reset reboot after update flag when login 228 // If app mode is enabled, reset reboot after update flag when login
228 // screen is shown. 229 // screen is shown.
229 if (!parsed_command_line.HasSwitch(::switches::kDisableAppMode)) { 230 if (!parsed_command_line.HasSwitch(::switches::kDisableAppMode)) {
230 if (!g_browser_process->browser_policy_connector()-> 231 if (!g_browser_process->browser_policy_connector()->
231 IsEnterpriseManaged()) { 232 IsEnterpriseManaged()) {
232 PrefService* local_state = g_browser_process->local_state(); 233 PrefService* local_state = g_browser_process->local_state();
233 local_state->ClearPref(prefs::kRebootAfterUpdate); 234 local_state->ClearPref(prefs::kRebootAfterUpdate);
234 } 235 }
235 } 236 }
236 } else if (parsed_command_line.HasSwitch(switches::kLoginUser) && 237 } else if (parsed_command_line.HasSwitch(::switches::kLoginUser) &&
237 parsed_command_line.HasSwitch(switches::kLoginPassword)) { 238 parsed_command_line.HasSwitch(::switches::kLoginPassword)) {
238 BootTimesLoader::Get()->RecordLoginAttempted(); 239 BootTimesLoader::Get()->RecordLoginAttempted();
239 new StubLogin( 240 new StubLogin(
240 parsed_command_line.GetSwitchValueASCII(switches::kLoginUser), 241 parsed_command_line.GetSwitchValueASCII(::switches::kLoginUser),
241 parsed_command_line.GetSwitchValueASCII(switches::kLoginPassword)); 242 parsed_command_line.GetSwitchValueASCII(::switches::kLoginPassword));
242 } else { 243 } else {
243 if (!parsed_command_line.HasSwitch(::switches::kTestName)) { 244 if (!parsed_command_line.HasSwitch(::switches::kTestName)) {
244 // We did not log in (we crashed or are debugging), so we need to 245 // We did not log in (we crashed or are debugging), so we need to
245 // restore Sync. 246 // restore Sync.
246 LoginUtils::Get()->RestoreAuthenticationSession(profile); 247 LoginUtils::Get()->RestoreAuthenticationSession(profile);
247 } 248 }
248 } 249 }
249 } 250 }
250 251
251 void RunAutoLaunchKioskApp() { 252 void RunAutoLaunchKioskApp() {
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 // remaining work is negligible, hence we say LogoutDone here. 380 // remaining work is negligible, hence we say LogoutDone here.
380 BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", false); 381 BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", false);
381 BootTimesLoader::Get()->WriteLogoutTimes(); 382 BootTimesLoader::Get()->WriteLogoutTimes();
382 } 383 }
383 384
384 // content::BrowserMainParts and ChromeBrowserMainExtraParts overrides --------- 385 // content::BrowserMainParts and ChromeBrowserMainExtraParts overrides ---------
385 386
386 void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() { 387 void ChromeBrowserMainPartsChromeos::PreEarlyInitialization() {
387 CommandLine* singleton_command_line = CommandLine::ForCurrentProcess(); 388 CommandLine* singleton_command_line = CommandLine::ForCurrentProcess();
388 389
389 if (parsed_command_line().HasSwitch(switches::kGuestSession)) { 390 if (parsed_command_line().HasSwitch(::switches::kGuestSession)) {
390 // Disable sync and extensions if we're in "browse without sign-in" mode. 391 // Disable sync and extensions if we're in "browse without sign-in" mode.
391 singleton_command_line->AppendSwitch(::switches::kDisableSync); 392 singleton_command_line->AppendSwitch(::switches::kDisableSync);
392 singleton_command_line->AppendSwitch(::switches::kDisableExtensions); 393 singleton_command_line->AppendSwitch(::switches::kDisableExtensions);
393 browser_defaults::bookmarks_enabled = false; 394 browser_defaults::bookmarks_enabled = false;
394 } 395 }
395 396
396 // If we're not running on real ChromeOS hardware (or under VM), and are not 397 // If we're not running on real ChromeOS hardware (or under VM), and are not
397 // showing the login manager or attempting a command line login, login with a 398 // showing the login manager or attempting a command line login, login with a
398 // stub user. 399 // stub user.
399 if (!base::chromeos::IsRunningOnChromeOS() && 400 if (!base::chromeos::IsRunningOnChromeOS() &&
400 !parsed_command_line().HasSwitch(switches::kLoginManager) && 401 !parsed_command_line().HasSwitch(::switches::kLoginManager) &&
401 !parsed_command_line().HasSwitch(switches::kLoginUser) && 402 !parsed_command_line().HasSwitch(::switches::kLoginUser) &&
402 !parsed_command_line().HasSwitch(switches::kGuestSession)) { 403 !parsed_command_line().HasSwitch(::switches::kGuestSession)) {
403 singleton_command_line->AppendSwitchASCII( 404 singleton_command_line->AppendSwitchASCII(
404 switches::kLoginUser, UserManager::kStubUser); 405 ::switches::kLoginUser, UserManager::kStubUser);
405 if (!parsed_command_line().HasSwitch(switches::kLoginProfile)) { 406 if (!parsed_command_line().HasSwitch(::switches::kLoginProfile)) {
406 // This must be kept in sync with TestingProfile::kTestUserProfileDir. 407 // This must be kept in sync with TestingProfile::kTestUserProfileDir.
407 singleton_command_line->AppendSwitchASCII( 408 singleton_command_line->AppendSwitchASCII(
408 switches::kLoginProfile, "test-user"); 409 ::switches::kLoginProfile, "test-user");
409 } 410 }
410 LOG(INFO) << "Running as stub user with profile dir: " 411 LOG(INFO) << "Running as stub user with profile dir: "
411 << singleton_command_line->GetSwitchValuePath( 412 << singleton_command_line->GetSwitchValuePath(
412 switches::kLoginProfile).value(); 413 ::switches::kLoginProfile).value();
413 } 414 }
414 415
415 // Initialize the statistics provider, which will ensure that the Chrome 416 // Initialize the statistics provider, which will ensure that the Chrome
416 // channel info is read and made available early. 417 // channel info is read and made available early.
417 system::StatisticsProvider::GetInstance()->Init(); 418 system::StatisticsProvider::GetInstance()->Init();
418 419
419 ChromeBrowserMainPartsLinux::PreEarlyInitialization(); 420 ChromeBrowserMainPartsLinux::PreEarlyInitialization();
420 } 421 }
421 422
422 void ChromeBrowserMainPartsChromeos::PreMainMessageLoopStart() { 423 void ChromeBrowserMainPartsChromeos::PreMainMessageLoopStart() {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 if (parsed_command_line().HasSwitch(::switches::kEnableContacts)) { 499 if (parsed_command_line().HasSwitch(::switches::kEnableContacts)) {
499 contact_manager_.reset(new contacts::ContactManager()); 500 contact_manager_.reset(new contacts::ContactManager());
500 contact_manager_->Init(); 501 contact_manager_->Init();
501 } 502 }
502 503
503 // There are two use cases for kLoginUser: 504 // There are two use cases for kLoginUser:
504 // 1) if passed in tandem with kLoginPassword, to drive a "StubLogin" 505 // 1) if passed in tandem with kLoginPassword, to drive a "StubLogin"
505 // 2) if passed alone, to signal that the indicated user has already 506 // 2) if passed alone, to signal that the indicated user has already
506 // logged in and we should behave accordingly. 507 // logged in and we should behave accordingly.
507 // This handles case 2. 508 // This handles case 2.
508 if (parsed_command_line().HasSwitch(switches::kLoginUser) && 509 if (parsed_command_line().HasSwitch(::switches::kLoginUser) &&
509 !parsed_command_line().HasSwitch(switches::kLoginPassword)) { 510 !parsed_command_line().HasSwitch(::switches::kLoginPassword)) {
510 std::string username = 511 std::string username =
511 parsed_command_line().GetSwitchValueASCII(switches::kLoginUser); 512 parsed_command_line().GetSwitchValueASCII(::switches::kLoginUser);
512 VLOG(1) << "Relaunching browser for user: " << username; 513 VLOG(1) << "Relaunching browser for user: " << username;
513 UserManager* user_manager = UserManager::Get(); 514 UserManager* user_manager = UserManager::Get();
514 // TODO(nkostylev): Get user username_hash (cryptohome mount point) 515 // TODO(nkostylev): Get user username_hash (cryptohome mount point)
515 // from a separate cmd line switch. 516 // from a separate cmd line switch.
516 std::string username_hash = 517 std::string username_hash =
517 parsed_command_line().GetSwitchValueASCII(switches::kLoginProfile); 518 parsed_command_line().GetSwitchValueASCII(::switches::kLoginProfile);
518 user_manager->UserLoggedIn(username, username_hash, true); 519 user_manager->UserLoggedIn(username, username_hash, true);
519 520
520 // Redirects Chrome logging to the user data dir. 521 // Redirects Chrome logging to the user data dir.
521 logging::RedirectChromeLogging(parsed_command_line()); 522 logging::RedirectChromeLogging(parsed_command_line());
522 523
523 // Initialize user policy before creating the profile so the profile 524 // Initialize user policy before creating the profile so the profile
524 // initialization code sees policy settings. 525 // initialization code sees policy settings.
525 // Guest accounts are not subject to user policy. 526 // Guest accounts are not subject to user policy.
526 if (!user_manager->IsLoggedInAsGuest()) { 527 if (!user_manager->IsLoggedInAsGuest()) {
527 g_browser_process->browser_policy_connector()->InitializeUserPolicy( 528 g_browser_process->browser_policy_connector()->InitializeUserPolicy(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 storage_monitor_ = new StorageMonitorCros(); 565 storage_monitor_ = new StorageMonitorCros();
565 566
566 // In Aura builds this will initialize ash::Shell. 567 // In Aura builds this will initialize ash::Shell.
567 ChromeBrowserMainPartsLinux::PreProfileInit(); 568 ChromeBrowserMainPartsLinux::PreProfileInit();
568 } 569 }
569 570
570 void ChromeBrowserMainPartsChromeos::PostProfileInit() { 571 void ChromeBrowserMainPartsChromeos::PostProfileInit() {
571 // -- This used to be in ChromeBrowserMainParts::PreMainMessageLoopRun() 572 // -- This used to be in ChromeBrowserMainParts::PreMainMessageLoopRun()
572 // -- just after CreateProfile(). 573 // -- just after CreateProfile().
573 574
574 if (parsed_command_line().HasSwitch(switches::kLoginUser) && 575 if (parsed_command_line().HasSwitch(::switches::kLoginUser) &&
575 !parsed_command_line().HasSwitch(switches::kLoginPassword)) { 576 !parsed_command_line().HasSwitch(::switches::kLoginPassword)) {
576 // Make sure we flip every profile to not share proxies if the user hasn't 577 // Make sure we flip every profile to not share proxies if the user hasn't
577 // specified so explicitly. 578 // specified so explicitly.
578 const PrefService::Preference* use_shared_proxies_pref = 579 const PrefService::Preference* use_shared_proxies_pref =
579 profile()->GetPrefs()->FindPreference(prefs::kUseSharedProxies); 580 profile()->GetPrefs()->FindPreference(prefs::kUseSharedProxies);
580 if (use_shared_proxies_pref->IsDefaultValue()) 581 if (use_shared_proxies_pref->IsDefaultValue())
581 profile()->GetPrefs()->SetBoolean(prefs::kUseSharedProxies, false); 582 profile()->GetPrefs()->SetBoolean(prefs::kUseSharedProxies, false);
582 583
583 // This is done in LoginUtils::OnProfileCreated during normal login. 584 // This is done in LoginUtils::OnProfileCreated during normal login.
584 LoginUtils::Get()->InitRlzDelayed(profile()); 585 LoginUtils::Get()->InitRlzDelayed(profile());
585 } 586 }
(...skipping 13 matching lines...) Expand all
599 // Start loading the machine statistics. Note: if we start loading machine 600 // Start loading the machine statistics. Note: if we start loading machine
600 // statistics early in PreEarlyInitialization() then the crossystem tool 601 // statistics early in PreEarlyInitialization() then the crossystem tool
601 // sometimes hangs for unknown reasons, see http://crbug.com/167671. 602 // sometimes hangs for unknown reasons, see http://crbug.com/167671.
602 // Also we must start loading no later than this point, because login manager 603 // Also we must start loading no later than this point, because login manager
603 // may call GetMachineStatistic() during startup, see crbug.com/170635. 604 // may call GetMachineStatistic() during startup, see crbug.com/170635.
604 system::StatisticsProvider::GetInstance()->StartLoadingMachineStatistics(); 605 system::StatisticsProvider::GetInstance()->StartLoadingMachineStatistics();
605 606
606 // Tests should be able to tune login manager before showing it. 607 // Tests should be able to tune login manager before showing it.
607 // Thus only show login manager in normal (non-testing) mode. 608 // Thus only show login manager in normal (non-testing) mode.
608 if (!parameters().ui_task || 609 if (!parameters().ui_task ||
609 parsed_command_line().HasSwitch(switches::kForceLoginManagerInTests)) { 610 parsed_command_line().HasSwitch(::switches::kForceLoginManagerInTests)) {
610 if (ShouldAutoLaunchKioskApp(parsed_command_line())) { 611 if (ShouldAutoLaunchKioskApp(parsed_command_line())) {
611 RunAutoLaunchKioskApp(); 612 RunAutoLaunchKioskApp();
612 } else { 613 } else {
613 OptionallyRunChromeOSLoginManager(parsed_command_line(), profile()); 614 OptionallyRunChromeOSLoginManager(parsed_command_line(), profile());
614 } 615 }
615 } 616 }
616 617
617 // These observers must be initialized after the profile because 618 // These observers must be initialized after the profile because
618 // they use the profile to dispatch extension events. 619 // they use the profile to dispatch extension events.
619 // 620 //
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
873 trial->AppendGroup("4GB_RAM_4GB_swap", zram_group == '4' ? 1 : 0); 874 trial->AppendGroup("4GB_RAM_4GB_swap", zram_group == '4' ? 1 : 0);
874 trial->AppendGroup("4GB_RAM_6GB_swap", zram_group == '5' ? 1 : 0); 875 trial->AppendGroup("4GB_RAM_6GB_swap", zram_group == '5' ? 1 : 0);
875 trial->AppendGroup("snow_no_swap", zram_group == '6' ? 1 : 0); 876 trial->AppendGroup("snow_no_swap", zram_group == '6' ? 1 : 0);
876 trial->AppendGroup("snow_1GB_swap", zram_group == '7' ? 1 : 0); 877 trial->AppendGroup("snow_1GB_swap", zram_group == '7' ? 1 : 0);
877 trial->AppendGroup("snow_2GB_swap", zram_group == '8' ? 1 : 0); 878 trial->AppendGroup("snow_2GB_swap", zram_group == '8' ? 1 : 0);
878 // This is necessary to start the experiment as a side effect. 879 // This is necessary to start the experiment as a side effect.
879 trial->group(); 880 trial->group();
880 } 881 }
881 882
882 } // namespace chromeos 883 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698