| Index: chromeos/ime/extension_ime_util.cc
|
| diff --git a/chromeos/ime/extension_ime_util.cc b/chromeos/ime/extension_ime_util.cc
|
| index 7955e52536caae6569ca3c4a917fb6f66e25ab55..7f4cdb5e3f1697765571535c50efc0999788a805 100644
|
| --- a/chromeos/ime/extension_ime_util.cc
|
| +++ b/chromeos/ime/extension_ime_util.cc
|
| @@ -52,6 +52,19 @@ std::string GetExtensionIDFromInputMethodID(
|
| return "";
|
| }
|
|
|
| +std::string GetInputMethodIDByKeyboardLayout(
|
| + const std::string& keyboard_layout_id) {
|
| + bool migrate = UseWrappedExtensionKeyboardLayouts();
|
| + if (IsKeyboardLayoutExtension(keyboard_layout_id)) {
|
| + if (migrate)
|
| + return keyboard_layout_id;
|
| + return keyboard_layout_id.substr(arraysize(kExtensionXkbIdPrefix) - 1);
|
| + }
|
| + if (migrate && StartsWithASCII(keyboard_layout_id, "xkb:", true))
|
| + return kExtensionXkbIdPrefix + keyboard_layout_id;
|
| + return keyboard_layout_id;
|
| +}
|
| +
|
| bool IsExtensionIME(const std::string& input_method_id) {
|
| return StartsWithASCII(input_method_id,
|
| kExtensionIMEPrefix,
|
| @@ -75,5 +88,11 @@ bool IsKeyboardLayoutExtension(const std::string& input_method_id) {
|
| return StartsWithASCII(input_method_id, kExtensionXkbIdPrefix, true);
|
| }
|
|
|
| +bool UseWrappedExtensionKeyboardLayouts() {
|
| + // Hard coded to true. If the wrapped extension keyboards misbehaves,
|
| + // we can easily change this to false to switch back to legacy xkb keyboards.
|
| + return true;
|
| +}
|
| +
|
| } // namespace extension_ime_util
|
| } // namespace chromeos
|
|
|