OLD | NEW |
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/ui/webui/chromeos/login/signin_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/chromeos/chromeos_version.h" | 8 #include "base/chromeos/chromeos_version.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 1014 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1025 | 1025 |
1026 void SigninScreenHandler::OnDnsCleared() { | 1026 void SigninScreenHandler::OnDnsCleared() { |
1027 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1027 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1028 dns_clear_task_running_ = false; | 1028 dns_clear_task_running_ = false; |
1029 dns_cleared_ = true; | 1029 dns_cleared_ = true; |
1030 ShowSigninScreenIfReady(); | 1030 ShowSigninScreenIfReady(); |
1031 } | 1031 } |
1032 | 1032 |
1033 // Update keyboard layout to least recently used by the user. | 1033 // Update keyboard layout to least recently used by the user. |
1034 void SigninScreenHandler::SetUserInputMethod(const std::string& username) { | 1034 void SigninScreenHandler::SetUserInputMethod(const std::string& username) { |
| 1035 UserManager* user_manager = UserManager::Get(); |
| 1036 if (user_manager->IsUserLoggedIn()) { |
| 1037 // We are on sign-in screen inside user session (adding new user to |
| 1038 // the session or on lock screen), don't switch input methods in this case. |
| 1039 // TODO(dpolukhin): adding user and sign-in should be consistent |
| 1040 // crbug.com/292774 |
| 1041 return; |
| 1042 } |
| 1043 |
1035 chromeos::input_method::InputMethodManager* const manager = | 1044 chromeos::input_method::InputMethodManager* const manager = |
1036 chromeos::input_method::InputMethodManager::Get(); | 1045 chromeos::input_method::InputMethodManager::Get(); |
1037 | 1046 |
1038 const bool succeed = SetUserInputMethodImpl(username, manager); | 1047 const bool succeed = SetUserInputMethodImpl(username, manager); |
1039 | 1048 |
1040 // This is also a case when LRU layout is set only for a few local users, | 1049 // This is also a case when LRU layout is set only for a few local users, |
1041 // thus others need to be switched to default locale. | 1050 // thus others need to be switched to default locale. |
1042 // Otherwise they will end up using another user's locale to log in. | 1051 // Otherwise they will end up using another user's locale to log in. |
1043 if (!succeed) { | 1052 if (!succeed) { |
1044 DLOG(INFO) << "SetUserInputMethod('" << username | 1053 DLOG(INFO) << "SetUserInputMethod('" << username |
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1759 rvh->ExecuteJavascriptInWebFrame( | 1768 rvh->ExecuteJavascriptInWebFrame( |
1760 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), | 1769 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), |
1761 ASCIIToUTF16(code)); | 1770 ASCIIToUTF16(code)); |
1762 | 1771 |
1763 // Test properties are cleared in HandleCompleteLogin because the form | 1772 // Test properties are cleared in HandleCompleteLogin because the form |
1764 // submission might fail and login will not be attempted after reloading | 1773 // submission might fail and login will not be attempted after reloading |
1765 // if they are cleared here. | 1774 // if they are cleared here. |
1766 } | 1775 } |
1767 | 1776 |
1768 } // namespace chromeos | 1777 } // namespace chromeos |
OLD | NEW |