| 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 8d3fcc6432298ac6891096bb75786889698fc9c8..d0e0efabf450690e91582bbdf41742474778e202 100644
|
| --- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
|
| +++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
|
| @@ -112,7 +112,12 @@ void InputMethodManagerImpl::SetState(State new_state) {
|
|
|
| scoped_ptr<InputMethodDescriptors>
|
| InputMethodManagerImpl::GetSupportedInputMethods() const {
|
| - return whitelist_.GetSupportedInputMethods();
|
| + if (!extension_ime_util::UseWrappedExtensionKeyboardLayouts()) {
|
| + return whitelist_.GetSupportedInputMethods();
|
| + }
|
| + // Returns empty list because all the supported imes have been migrated to
|
| + // component extension imes.
|
| + return scoped_ptr<InputMethodDescriptors>(new InputMethodDescriptors).Pass();
|
| }
|
|
|
| scoped_ptr<InputMethodDescriptors>
|
| @@ -249,14 +254,10 @@ void InputMethodManagerImpl::ReconfigureIMFramework() {
|
| if (component_extension_ime_manager_->IsInitialized())
|
| LoadNecessaryComponentExtensions();
|
|
|
| - const bool need_engine =
|
| - !ContainsOnlyKeyboardLayout(active_input_method_ids_);
|
| -
|
| // Initialize candidate window controller and widgets such as
|
| // candidate window, infolist and mode indicator. Note, mode
|
| // indicator is used by only keyboard layout input methods.
|
| - if (need_engine || active_input_method_ids_.size() > 1)
|
| - MaybeInitializeCandidateWindowController();
|
| + MaybeInitializeCandidateWindowController();
|
| }
|
|
|
| bool InputMethodManagerImpl::EnableInputMethod(
|
| @@ -352,7 +353,9 @@ bool InputMethodManagerImpl::ChangeInputMethodInternal(
|
| engine->Disable();
|
|
|
| // Configure the next engine handler.
|
| - if (InputMethodUtil::IsKeyboardLayout(input_method_id_to_switch)) {
|
| + if (InputMethodUtil::IsKeyboardLayout(input_method_id_to_switch) &&
|
| + !extension_ime_util::IsKeyboardLayoutExtension(
|
| + input_method_id_to_switch)) {
|
| IMEBridge::Get()->SetCurrentEngineHandler(NULL);
|
| } else {
|
| IMEEngineHandlerInterface* next_engine =
|
| @@ -413,6 +416,7 @@ void InputMethodManagerImpl::OnComponentExtensionInitialized(
|
| component_extension_ime_manager_->GetAllIMEAsInputMethodDescriptor());
|
|
|
| LoadNecessaryComponentExtensions();
|
| + component_extension_ime_manager_->NotifyInitialized();
|
|
|
| if (!pending_input_method_.empty())
|
| ChangeInputMethodInternal(pending_input_method_, false);
|
| @@ -835,15 +839,6 @@ bool InputMethodManagerImpl::InputMethodIsActivated(
|
| return Contains(active_input_method_ids_, input_method_id);
|
| }
|
|
|
| -bool InputMethodManagerImpl::ContainsOnlyKeyboardLayout(
|
| - const std::vector<std::string>& value) {
|
| - for (size_t i = 0; i < value.size(); ++i) {
|
| - if (!InputMethodUtil::IsKeyboardLayout(value[i]))
|
| - return false;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| void InputMethodManagerImpl::MaybeInitializeCandidateWindowController() {
|
| if (candidate_window_controller_.get())
|
| return;
|
|
|