| Index: chrome/browser/chromeos/login/existing_user_controller.cc
|
| diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc
|
| index 1efdcdb8f1a9e94abab9428d0b65e12edb4176a9..7a1179f6725f66dc339dd8bcebad32895158cc05 100644
|
| --- a/chrome/browser/chromeos/login/existing_user_controller.cc
|
| +++ b/chrome/browser/chromeos/login/existing_user_controller.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chrome/browser/chromeos/login/existing_user_controller.h"
|
|
|
| +#include <vector>
|
| +
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| #include "base/command_line.h"
|
| @@ -29,6 +31,7 @@
|
| #include "chrome/browser/chromeos/login/wizard_controller.h"
|
| #include "chrome/browser/google/google_util.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| +#include "chrome/browser/prefs/session_startup_pref.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/browser/ui/dialog_style.h"
|
| #include "chrome/browser/ui/views/window.h"
|
| @@ -407,6 +410,7 @@ void ExistingUserController::OnProfilePrepared(Profile* profile) {
|
| // TODO(nkostylev): May add login UI implementation callback call.
|
| if (!ready_for_browser_launch_) {
|
| // Add the appropriate first-login URL.
|
| + std::vector<std::string> start_urls;
|
| PrefService* prefs = g_browser_process->local_state();
|
| const std::string current_locale =
|
| StringToLowerASCII(prefs->GetString(prefs::kApplicationLocale));
|
| @@ -420,7 +424,7 @@ void ExistingUserController::OnProfilePrepared(Profile* profile) {
|
| url = kGetStartedOwnerURLPattern;
|
| start_url = base::StringPrintf(url, current_locale.c_str());
|
| }
|
| - CommandLine::ForCurrentProcess()->AppendArg(start_url);
|
| + start_urls.push_back(start_url);
|
|
|
| ServicesCustomizationDocument* customization =
|
| ServicesCustomizationDocument::GetInstance();
|
| @@ -430,7 +434,7 @@ void ExistingUserController::OnProfilePrepared(Profile* profile) {
|
| std::string initial_start_page =
|
| customization->GetInitialStartPage(locale);
|
| if (!initial_start_page.empty())
|
| - CommandLine::ForCurrentProcess()->AppendArg(initial_start_page);
|
| + start_urls.push_back(initial_start_page);
|
| customization->ApplyCustomization();
|
| }
|
|
|
| @@ -438,9 +442,15 @@ void ExistingUserController::OnProfilePrepared(Profile* profile) {
|
| // If we have a two factor error and and this is a new user,
|
| // load the personal settings page.
|
| // TODO(stevenjb): direct the user to a lightweight sync login page.
|
| - CommandLine::ForCurrentProcess()->AppendArg(kSettingsSyncLoginURL);
|
| + start_urls.push_back(kSettingsSyncLoginURL);
|
| }
|
|
|
| + // Don't specify start URLs if the administrator has configured the start
|
| + // URLs via policy.
|
| + if (!SessionStartupPref::TypeIsManaged(profile->GetPrefs())) {
|
| + for (size_t i = 0; i < start_urls.size(); ++i)
|
| + CommandLine::ForCurrentProcess()->AppendArg(start_urls[i]);
|
| + }
|
| #ifndef NDEBUG
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kOobeSkipPostLogin)) {
|
|
|