Index: chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
index 91f399329a424d4d64291328ea572ee443ee883c..ca247ab3ab1895139df1713a1a6f3418819a4777 100644 |
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc |
@@ -117,7 +117,20 @@ InputMethodManagerImpl::GetSupportedInputMethods() const { |
whitelist_.GetSupportedInputMethods(); |
if (!extension_ime_util::UseWrappedExtensionKeyboardLayouts()) |
return whitelist_imes.Pass(); |
- return scoped_ptr<InputMethodDescriptors>(new InputMethodDescriptors).Pass(); |
+ |
+ InputMethodDescriptors* input_methods = new InputMethodDescriptors; |
+ if (!component_extension_ime_manager_->IsInitialized()) { |
+ for (size_t i = 0; i < whitelist_imes->size(); ++i) { |
+ const InputMethodDescriptor& ime = (*whitelist_imes.get())[i]; |
+ input_methods->push_back(InputMethodDescriptor( |
+ extension_ime_util::GetInputMethodIDByKeyboardLayout( |
+ ime.id()), |
+ ime.name(), ime.indicator(), ime.keyboard_layouts(), |
+ ime.language_codes(), ime.is_login_keyboard(), |
+ ime.options_page_url(), ime.input_view_url())); |
+ } |
+ } |
+ return scoped_ptr<InputMethodDescriptors>(input_methods).Pass(); |
} |
scoped_ptr<InputMethodDescriptors> |
@@ -329,9 +342,7 @@ bool InputMethodManagerImpl::ChangeInputMethodInternal( |
} |
if (!component_extension_ime_manager_->IsInitialized() && |
- (!InputMethodUtil::IsKeyboardLayout(input_method_id_to_switch) || |
- extension_ime_util::IsKeyboardLayoutExtension( |
- input_method_id_to_switch))) { |
+ !InputMethodUtil::IsKeyboardLayout(input_method_id_to_switch)) { |
// We can't change input method before the initialization of |
// component extension ime manager. ChangeInputMethod will be |
// called with |pending_input_method_| when the initialization is |