Index: chrome/browser/extensions/api/input_ime/input_ime_api_nonchromeos.cc |
diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api_nonchromeos.cc b/chrome/browser/extensions/api/input_ime/input_ime_api_nonchromeos.cc |
index 8d8778b812a0e9407f50384fa36dda1f59a20514..29a9791edc1292dfd2726fef8b5bf77c0d28dad2 100644 |
--- a/chrome/browser/extensions/api/input_ime/input_ime_api_nonchromeos.cc |
+++ b/chrome/browser/extensions/api/input_ime/input_ime_api_nonchromeos.cc |
@@ -91,6 +91,17 @@ class ImeObserverNonChromeOS : public ui::ImeObserver { |
OnCompositionBoundsChanged::kEventName, std::move(args)); |
} |
+ void OnRequestEngineSwitch() override { |
+ Browser* browser = chrome::FindLastActive(); |
+ if (!browser) |
+ return; |
+ extensions::InputImeEventRouter* router = |
+ extensions::GetInputImeEventRouter(browser->profile()); |
+ if (!router) |
+ return; |
+ ui::IMEBridge::Get()->SetCurrentEngineHandler(router->active_engine()); |
+ } |
+ |
private: |
// ImeObserver overrides. |
void DispatchEventToExtension( |