Index: chrome/browser/chromeos/login/session/user_session_manager.cc |
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc |
index 3f25494a1ed3cd5371dda6e53b78d884df1257e4..dd33e3830b5e9cff299fb1ec3319f69cbb3f3fd6 100644 |
--- a/chrome/browser/chromeos/login/session/user_session_manager.cc |
+++ b/chrome/browser/chromeos/login/session/user_session_manager.cc |
@@ -651,6 +651,12 @@ void UserSessionManager::OnProfileCreated(const UserContext& user_context, |
void UserSessionManager::InitProfilePreferences( |
Profile* profile, |
const UserContext& user_context) { |
+ user_manager::User* user = ProfileHelper::Get()->GetUserByProfile(profile); |
+ if (user->is_active()) { |
+ input_method::InputMethodManager* manager = |
+ input_method::InputMethodManager::Get(); |
+ manager->SetState(GetDefaultIMEState(profile)); |
+ } |
if (user_manager::UserManager::Get()->IsCurrentUserNew()) { |
SetFirstLoginPrefs(profile, |
user_context.GetPublicSessionLocale(), |
@@ -993,6 +999,11 @@ void UserSessionManager::NotifyPendingUserSessionsRestoreFinished() { |
void UserSessionManager::ActiveUserChanged( |
const user_manager::User* active_user) { |
+ Profile* profile = ProfileHelper::Get()->GetProfileByUser(active_user); |
+ // If profile has not yet been initialized, delay initialization of IME. |
+ if (!profile) |
+ return; |
+ |
input_method::InputMethodManager* manager = |
input_method::InputMethodManager::Get(); |
manager->SetState( |