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..b8dfb71249303851057747cc387b51ff3e352af3 100644 |
--- a/chromeos/ime/extension_ime_util.cc |
+++ b/chromeos/ime/extension_ime_util.cc |
@@ -4,7 +4,9 @@ |
#include "chromeos/ime/extension_ime_util.h" |
+#include "base/command_line.h" |
#include "base/strings/string_util.h" |
+#include "chromeos/chromeos_switches.h" |
namespace chromeos { |
namespace { |
@@ -52,6 +54,19 @@ std::string GetExtensionIDFromInputMethodID( |
return ""; |
} |
+std::string GetInputMethodIDByKeyboardLayout( |
+ const std::string& keyboard_layout_id) { |
+ bool migrate = IsMigrateXkbEnabled(); |
+ 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 +90,9 @@ bool IsKeyboardLayoutExtension(const std::string& input_method_id) { |
return StartsWithASCII(input_method_id, kExtensionXkbIdPrefix, true); |
} |
+bool IsMigrateXkbEnabled() { |
Seigo Nonaka
2014/02/28 06:14:07
Sounds "UseWrappedExtensionKeyboardLayouts" clear
Shu Chen
2014/02/28 07:32:50
Done.
|
+ return CommandLine::ForCurrentProcess()->HasSwitch(switches::kMigrateXkb); |
+} |
+ |
} // namespace extension_ime_util |
} // namespace chromeos |