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 0e36d43325b661edfcd1096a05ab7735d4085d50..4ee01b948361246e4d95f7d0348250b1defd0b32 100644 |
--- a/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
+++ b/chrome/browser/chromeos/input_method/input_method_engine_ibus.cc |
@@ -61,9 +61,13 @@ InputMethodEngineIBus::InputMethodEngineIBus() |
} |
InputMethodEngineIBus::~InputMethodEngineIBus() { |
- if (object_path_.IsValid()) |
- GetCurrentService()->UnsetEngine(); |
input_method::GetInputMethodManager()->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) |
+ GetCurrentService()->UnsetEngine(this); |
} |
void InputMethodEngineIBus::Initialize( |