Index: ui/base/ime/chromeos/ime_keyboard_ozone.cc |
diff --git a/ui/base/ime/chromeos/ime_keyboard_ozone.cc b/ui/base/ime/chromeos/ime_keyboard_ozone.cc |
index 8aa09e08b51131b1873e101a7fc2e68be049f947..c4103951bea87a070816207fe233300b3a550fb8 100644 |
--- a/ui/base/ime/chromeos/ime_keyboard_ozone.cc |
+++ b/ui/base/ime/chromeos/ime_keyboard_ozone.cc |
@@ -4,16 +4,38 @@ |
#include "ui/base/ime/chromeos/ime_keyboard_ozone.h" |
+#include "base/command_line.h" |
#include "ui/ozone/public/input_controller.h" |
#include "ui/ozone/public/ozone_platform.h" |
namespace chromeos { |
namespace input_method { |
-ImeKeyboardOzone::ImeKeyboardOzone(ui::InputController* input_controller) |
- : input_controller_(input_controller) { |
+namespace { |
+ |
+bool RunningInsideMash() { |
+ return base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ "mojo-platform-channel-handle"); |
+} |
+ |
+std::unique_ptr<ui::InputController> CreateStubInputControllerIfNecessary() { |
+ if (RunningInsideMash()) |
+ return ui::CreateStubInputController(); |
+ return nullptr; |
} |
+} // namespace |
+ |
+// TODO(kylechar/moshayedi): Revisit creating the stub InputController after |
+// mus+ash IME plan exists. |
+ImeKeyboardOzone::ImeKeyboardOzone() |
+ : stub_controller_(CreateStubInputControllerIfNecessary()), |
+ input_controller_( |
+ stub_controller_ |
+ ? stub_controller_.get() |
+ : ui::OzonePlatform::GetInstance()->GetInputController()) { |
+ DCHECK(input_controller_); |
+} |
ImeKeyboardOzone::~ImeKeyboardOzone() { |
} |
@@ -65,8 +87,7 @@ bool ImeKeyboardOzone::GetAutoRepeatEnabled() { |
// static |
ImeKeyboard* ImeKeyboard::Create() { |
- return new ImeKeyboardOzone( |
- ui::OzonePlatform::GetInstance()->GetInputController()); |
+ return new ImeKeyboardOzone(); |
sadrul
2016/04/20 17:51:19
Can we change the code that creates this? InputMet
kylechar
2016/04/20 18:16:27
Yeah, that makes way more sense.
|
} |
} // namespace input_method |