| Index: trunk/src/chrome/browser/chromeos/login/screens/user_selection_screen.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/chromeos/login/screens/user_selection_screen.cc (revision 287633)
|
| +++ trunk/src/chrome/browser/chromeos/login/screens/user_selection_screen.cc (working copy)
|
| @@ -42,9 +42,6 @@
|
| const char kKeyMultiProfilesAllowed[] = "isMultiProfilesAllowed";
|
| const char kKeyMultiProfilesPolicy[] = "multiProfilesPolicy";
|
| const char kKeyInitialLocales[] = "initialLocales";
|
| -const char kKeyInitialLocale[] = "initialLocale";
|
| -const char kKeyInitialMultipleRecommendedLocales[] =
|
| - "initialMultipleRecommendedLocales";
|
| const char kKeyInitialKeyboardLayout[] = "initialKeyboardLayout";
|
|
|
| // Max number of users to show.
|
| @@ -53,51 +50,6 @@
|
|
|
| const int kPasswordClearTimeoutSec = 60;
|
|
|
| -void AddPublicSessionDetailsToUserDictionaryEntry(
|
| - base::DictionaryValue* user_dict,
|
| - const std::vector<std::string>* public_session_recommended_locales) {
|
| - policy::BrowserPolicyConnectorChromeOS* policy_connector =
|
| - g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
| -
|
| - if (policy_connector->IsEnterpriseManaged()) {
|
| - user_dict->SetString(kKeyEnterpriseDomain,
|
| - policy_connector->GetEnterpriseDomain());
|
| - }
|
| -
|
| - std::vector<std::string> kEmptyRecommendedLocales;
|
| - const std::vector<std::string>* recommended_locales =
|
| - public_session_recommended_locales ?
|
| - public_session_recommended_locales : &kEmptyRecommendedLocales;
|
| -
|
| - // Set |kKeyInitialLocales| to the list of available locales. This list
|
| - // consists of the recommended locales, followed by all others.
|
| - user_dict->Set(
|
| - kKeyInitialLocales,
|
| - GetUILanguageList(recommended_locales, std::string()).release());
|
| -
|
| - // Set |kKeyInitialLocale| to the initially selected locale. If the list of
|
| - // recommended locales is not empty, select its first entry. Otherwise,
|
| - // select the current UI locale.
|
| - user_dict->SetString(kKeyInitialLocale,
|
| - recommended_locales->empty() ?
|
| - g_browser_process->GetApplicationLocale() :
|
| - recommended_locales->front());
|
| -
|
| - // Set |kKeyInitialMultipleRecommendedLocales| to indicate whether the list
|
| - // of recommended locales contains at least two entries. This is used to
|
| - // decide whether the public session pod expands to its basic form (for zero
|
| - // or one recommended locales) or the advanced form (two or more recommended
|
| - // locales).
|
| - user_dict->SetBoolean(kKeyInitialMultipleRecommendedLocales,
|
| - recommended_locales->size() >= 2);
|
| -
|
| - // Set |kKeyInitialKeyboardLayout| to the current keyboard layout. This
|
| - // value will be used temporarily only because the UI immediately requests a
|
| - // list of keyboard layouts suitable for the currently selected locale.
|
| - user_dict->Set(kKeyInitialKeyboardLayout,
|
| - GetCurrentKeyboardLayout().release());
|
| -}
|
| -
|
| } // namespace
|
|
|
| UserSelectionScreen::UserSelectionScreen() : handler_(NULL) {
|
| @@ -116,10 +68,9 @@
|
| bool is_owner,
|
| bool is_signin_to_add,
|
| ScreenlockBridge::LockHandler::AuthType auth_type,
|
| - const std::vector<std::string>* public_session_recommended_locales,
|
| base::DictionaryValue* user_dict) {
|
| const std::string& user_id = user->email();
|
| - const bool is_public_session =
|
| + const bool is_public_account =
|
| user->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT;
|
| const bool is_supervised_user =
|
| user->GetType() == user_manager::USER_TYPE_SUPERVISED;
|
| @@ -127,7 +78,7 @@
|
| user_dict->SetString(kKeyUsername, user_id);
|
| user_dict->SetString(kKeyEmailAddress, user->display_email());
|
| user_dict->SetString(kKeyDisplayName, user->GetDisplayName());
|
| - user_dict->SetBoolean(kKeyPublicAccount, is_public_session);
|
| + user_dict->SetBoolean(kKeyPublicAccount, is_public_account);
|
| user_dict->SetBoolean(kKeySupervisedUser, is_supervised_user);
|
| user_dict->SetInteger(kKeyInitialAuthType, auth_type);
|
| user_dict->SetBoolean(kKeySignedIn, user->is_logged_in());
|
| @@ -155,10 +106,24 @@
|
| user_dict->SetBoolean(kKeyMultiProfilesAllowed, true);
|
| }
|
|
|
| - if (is_public_session) {
|
| - AddPublicSessionDetailsToUserDictionaryEntry(
|
| - user_dict,
|
| - public_session_recommended_locales);
|
| + if (is_public_account) {
|
| + policy::BrowserPolicyConnectorChromeOS* policy_connector =
|
| + g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
| +
|
| + if (policy_connector->IsEnterpriseManaged()) {
|
| + user_dict->SetString(kKeyEnterpriseDomain,
|
| + policy_connector->GetEnterpriseDomain());
|
| + }
|
| +
|
| + // TODO(bartfab): Initialize |most_relevant_languages| and |locale| based on
|
| + // policy.
|
| + const std::string locale = g_browser_process->GetApplicationLocale();
|
| + std::vector<std::string> most_relevant_languages;
|
| + user_dict->Set(
|
| + kKeyInitialLocales,
|
| + GetUILanguageList(&most_relevant_languages, locale).release());
|
| + user_dict->Set(kKeyInitialKeyboardLayout,
|
| + GetCurrentKeyboardLayout().release());
|
| }
|
| }
|
|
|
| @@ -312,7 +277,6 @@
|
|
|
| user_auth_type_map_.clear();
|
|
|
| - const std::vector<std::string> kEmptyRecommendedLocales;
|
| for (user_manager::UserList::const_iterator it = users_to_send.begin();
|
| it != users_to_send.end();
|
| ++it) {
|
| @@ -329,17 +293,8 @@
|
| user_auth_type_map_[user_id] = initial_auth_type;
|
|
|
| base::DictionaryValue* user_dict = new base::DictionaryValue();
|
| - const std::vector<std::string>* public_session_recommended_locales =
|
| - public_session_recommended_locales_.find(user_id) ==
|
| - public_session_recommended_locales_.end() ?
|
| - &kEmptyRecommendedLocales :
|
| - &public_session_recommended_locales_[user_id];
|
| - FillUserDictionary(*it,
|
| - is_owner,
|
| - is_signin_to_add,
|
| - initial_auth_type,
|
| - public_session_recommended_locales,
|
| - user_dict);
|
| + FillUserDictionary(
|
| + *it, is_owner, is_signin_to_add, initial_auth_type, user_dict);
|
| bool signed_in = (*it)->is_logged_in();
|
| // Single user check here is necessary because owner info might not be
|
| // available when running into login screen on first boot.
|
|
|