| OLD | NEW |
| 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/screens/user_selection_screen.h" | 5 #include "chrome/browser/chromeos/login/screens/user_selection_screen.h" |
| 6 | 6 |
| 7 #include <vector> | |
| 8 | |
| 9 #include "ash/shell.h" | 7 #include "ash/shell.h" |
| 10 #include "base/location.h" | 8 #include "base/location.h" |
| 11 #include "base/logging.h" | 9 #include "base/logging.h" |
| 12 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| 13 #include "base/values.h" | 11 #include "base/values.h" |
| 14 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
| 15 #include "chrome/browser/browser_process_platform_part.h" | 13 #include "chrome/browser/browser_process_platform_part.h" |
| 16 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" | 14 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" |
| 17 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 15 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
| 18 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" | 16 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 const std::vector<std::string>* public_session_recommended_locales) { | 57 const std::vector<std::string>* public_session_recommended_locales) { |
| 60 policy::BrowserPolicyConnectorChromeOS* policy_connector = | 58 policy::BrowserPolicyConnectorChromeOS* policy_connector = |
| 61 g_browser_process->platform_part()->browser_policy_connector_chromeos(); | 59 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| 62 | 60 |
| 63 if (policy_connector->IsEnterpriseManaged()) { | 61 if (policy_connector->IsEnterpriseManaged()) { |
| 64 user_dict->SetString(kKeyEnterpriseDomain, | 62 user_dict->SetString(kKeyEnterpriseDomain, |
| 65 policy_connector->GetEnterpriseDomain()); | 63 policy_connector->GetEnterpriseDomain()); |
| 66 } | 64 } |
| 67 | 65 |
| 68 std::vector<std::string> kEmptyRecommendedLocales; | 66 std::vector<std::string> kEmptyRecommendedLocales; |
| 69 const std::vector<std::string>* recommended_locales = | 67 const std::vector<std::string>& recommended_locales = |
| 70 public_session_recommended_locales ? | 68 public_session_recommended_locales ? |
| 71 public_session_recommended_locales : &kEmptyRecommendedLocales; | 69 *public_session_recommended_locales : kEmptyRecommendedLocales; |
| 72 | 70 |
| 73 // Set |kKeyInitialLocales| to the list of available locales. This list | 71 // Construct the list of available locales. This list consists of the |
| 74 // consists of the recommended locales, followed by all others. | 72 // recommended locales, followed by all others. |
| 75 user_dict->Set( | 73 scoped_ptr<base::ListValue> available_locales = |
| 76 kKeyInitialLocales, | 74 GetUILanguageList(&recommended_locales, std::string()); |
| 77 GetUILanguageList(recommended_locales, std::string()).release()); | |
| 78 | 75 |
| 79 // Set |kKeyInitialLocale| to the initially selected locale. If the list of | 76 // Select the the first recommended locale that is actually available or the |
| 80 // recommended locales is not empty, select its first entry. Otherwise, | 77 // current UI locale if none of them are available. |
| 81 // select the current UI locale. | 78 const std::string selected_locale = FindMostRelevantLocale( |
| 82 user_dict->SetString(kKeyInitialLocale, | 79 recommended_locales, |
| 83 recommended_locales->empty() ? | 80 *available_locales.get(), |
| 84 g_browser_process->GetApplicationLocale() : | 81 g_browser_process->GetApplicationLocale()); |
| 85 recommended_locales->front()); | 82 |
| 83 // Set |kKeyInitialLocales| to the list of available locales. |
| 84 user_dict->Set(kKeyInitialLocales, available_locales.release()); |
| 85 |
| 86 // Set |kKeyInitialLocale| to the initially selected locale. |
| 87 user_dict->SetString(kKeyInitialLocale, selected_locale); |
| 86 | 88 |
| 87 // Set |kKeyInitialMultipleRecommendedLocales| to indicate whether the list | 89 // Set |kKeyInitialMultipleRecommendedLocales| to indicate whether the list |
| 88 // of recommended locales contains at least two entries. This is used to | 90 // of recommended locales contains at least two entries. This is used to |
| 89 // decide whether the public session pod expands to its basic form (for zero | 91 // decide whether the public session pod expands to its basic form (for zero |
| 90 // or one recommended locales) or the advanced form (two or more recommended | 92 // or one recommended locales) or the advanced form (two or more recommended |
| 91 // locales). | 93 // locales). |
| 92 user_dict->SetBoolean(kKeyInitialMultipleRecommendedLocales, | 94 user_dict->SetBoolean(kKeyInitialMultipleRecommendedLocales, |
| 93 recommended_locales->size() >= 2); | 95 recommended_locales.size() >= 2); |
| 94 | 96 |
| 95 // Set |kKeyInitialKeyboardLayout| to the current keyboard layout. This | 97 // Set |kKeyInitialKeyboardLayout| to the current keyboard layout. This |
| 96 // value will be used temporarily only because the UI immediately requests a | 98 // value will be used temporarily only because the UI immediately requests a |
| 97 // list of keyboard layouts suitable for the currently selected locale. | 99 // list of keyboard layouts suitable for the currently selected locale. |
| 98 user_dict->Set(kKeyInitialKeyboardLayout, | 100 user_dict->Set(kKeyInitialKeyboardLayout, |
| 99 GetCurrentKeyboardLayout().release()); | 101 GetCurrentKeyboardLayout().release()); |
| 100 } | 102 } |
| 101 | 103 |
| 102 } // namespace | 104 } // namespace |
| 103 | 105 |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 } | 371 } |
| 370 | 372 |
| 371 ScreenlockBridge::LockHandler::AuthType UserSelectionScreen::GetAuthType( | 373 ScreenlockBridge::LockHandler::AuthType UserSelectionScreen::GetAuthType( |
| 372 const std::string& username) const { | 374 const std::string& username) const { |
| 373 if (user_auth_type_map_.find(username) == user_auth_type_map_.end()) | 375 if (user_auth_type_map_.find(username) == user_auth_type_map_.end()) |
| 374 return ScreenlockBridge::LockHandler::OFFLINE_PASSWORD; | 376 return ScreenlockBridge::LockHandler::OFFLINE_PASSWORD; |
| 375 return user_auth_type_map_.find(username)->second; | 377 return user_auth_type_map_.find(username)->second; |
| 376 } | 378 } |
| 377 | 379 |
| 378 } // namespace chromeos | 380 } // namespace chromeos |
| OLD | NEW |