Index: chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
diff --git a/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc b/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
index 0d147c137a4110a1c59da257612c7c43bb653e2d..f6178559fdad87dd1fb3b31582cd7de1da64e2ff 100644 |
--- a/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
+++ b/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
@@ -14,7 +14,6 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
-#include "chromeos/dbus/ibus/ibus_engine_factory_service.h" |
#include "chromeos/dbus/ibus/ibus_engine_service.h" |
#include "chromeos/dbus/ibus/ibus_text.h" |
#include "chromeos/ime/candidate_window.h" |
@@ -43,6 +42,7 @@ InputMethodEngineIBus::InputMethodEngineIBus() |
active_(false), |
context_id_(0), |
next_context_id_(1), |
+ is_create_engine_handler_called_(false), |
aux_text_(new IBusText()), |
aux_text_visible_(false), |
observer_(NULL), |
@@ -50,17 +50,14 @@ InputMethodEngineIBus::InputMethodEngineIBus() |
preedit_cursor_(0), |
candidate_window_(new input_method::CandidateWindow()), |
window_visible_(false), |
- ibus_engine_factory_service_(IBusEngineFactoryService::Create()), |
weak_ptr_factory_(this) {} |
InputMethodEngineIBus::~InputMethodEngineIBus() { |
input_method::InputMethodManager::Get()->RemoveInputMethodExtension(ibus_id_); |
- // Do not unset engine before removing input method extension, above function |
- // may call reset function of engine object. |
- // TODO(nona): Call Reset manually here and remove relevant code from |
- // InputMethodManager once ibus-daemon is gone. (crbug.com/158273) |
- if (!object_path_.value().empty()) { |
+ // Do not unset engine before removing input method extension, above |
+ // function may call reset function of engine object. |
+ if (is_create_engine_handler_called_) { |
GetCurrentService()->UnsetEngine(this); |
ibus_engine_service_.reset(); |
} |
@@ -580,20 +577,17 @@ void InputMethodEngineIBus::OnDisconnected() { |
} |
void InputMethodEngineIBus::RegisterComponent() { |
- ibus_engine_factory_service_->SetCreateEngineHandler( |
+ IBusBridge::Get()->SetCreateEngineHandler( |
ibus_id_, |
base::Bind(&InputMethodEngineIBus::CreateEngineHandler, |
weak_ptr_factory_.GetWeakPtr())); |
} |
-void InputMethodEngineIBus::CreateEngineHandler( |
- const IBusEngineFactoryService::CreateEngineResponseSender& sender) { |
+void InputMethodEngineIBus::CreateEngineHandler() { |
GetCurrentService()->UnsetEngine(this); |
ibus_engine_service_.reset(); |
- object_path_ = ibus_engine_factory_service_->GenerateUniqueObjectPath(); |
- |
GetCurrentService()->SetEngine(this); |
- sender.Run(object_path_); |
+ is_create_engine_handler_called_ = true; |
} |
} // namespace chromeos |