| Index: chromeos/ime/extension_ime_util.cc
|
| diff --git a/chromeos/ime/extension_ime_util.cc b/chromeos/ime/extension_ime_util.cc
|
| index 9a1ee887642d76049eb90809c0335eafc0bcb826..474622df28773e9271c9baf3501457eceb6b5ca1 100644
|
| --- a/chromeos/ime/extension_ime_util.cc
|
| +++ b/chromeos/ime/extension_ime_util.cc
|
| @@ -7,26 +7,22 @@
|
| #include "base/strings/string_util.h"
|
|
|
| namespace chromeos {
|
| +
|
| namespace {
|
| +
|
| const char kExtensionIMEPrefix[] = "_ext_ime_";
|
| const int kExtensionIMEPrefixLength =
|
| sizeof(kExtensionIMEPrefix) / sizeof(kExtensionIMEPrefix[0]) - 1;
|
| const char kComponentExtensionIMEPrefix[] = "_comp_ime_";
|
| -const char kPublicExtensionXkbIdPrefix[] =
|
| - "_comp_ime_fgoepimhcoialccpbmpnnblemnepkkao";
|
| -const char kInternalExtensionXkbIdPrefix[] =
|
| - "_comp_ime_jkghodnilhceideoidjikpgommlajknk";
|
| -
|
| const int kComponentExtensionIMEPrefixLength =
|
| sizeof(kComponentExtensionIMEPrefix) /
|
| sizeof(kComponentExtensionIMEPrefix[0]) - 1;
|
| const int kExtensionIdLength = 32;
|
| -// Hard coded to true. If the wrapped extension keyboards misbehaves,
|
| -// we can easily change this to false to switch back to legacy xkb keyboards.
|
| -bool g_use_wrapped_extension_keyboard_layouts = true;
|
| +
|
| } // namespace
|
|
|
| namespace extension_ime_util {
|
| +
|
| std::string GetInputMethodID(const std::string& extension_id,
|
| const std::string& engine_id) {
|
| DCHECK(!extension_id.empty());
|
| @@ -58,25 +54,36 @@ std::string GetExtensionIDFromInputMethodID(
|
| return "";
|
| }
|
|
|
| -std::string GetInputMethodIDByKeyboardLayout(
|
| - const std::string& keyboard_layout_id) {
|
| - const char* kExtensionXkbIdPrefix =
|
| -#if defined(OFFICIAL_BUILD)
|
| - kInternalExtensionXkbIdPrefix;
|
| -#else
|
| - kPublicExtensionXkbIdPrefix;
|
| -#endif
|
| - bool migrate = UseWrappedExtensionKeyboardLayouts();
|
| - if (IsKeyboardLayoutExtension(keyboard_layout_id)) {
|
| - std::string id = keyboard_layout_id.substr(
|
| - arraysize(kPublicExtensionXkbIdPrefix) - 1);
|
| - if (migrate)
|
| - return kExtensionXkbIdPrefix + id;
|
| - return id;
|
| +std::string GetInputMethodIDByEngineID(const std::string& engine_id) {
|
| + if (StartsWithASCII(engine_id, kComponentExtensionIMEPrefix, true) ||
|
| + StartsWithASCII(engine_id, kExtensionIMEPrefix, true)) {
|
| + return engine_id;
|
| + }
|
| + if (StartsWithASCII(engine_id, "xkb:", true))
|
| + return GetComponentInputMethodID(kXkbExtensionId, engine_id);
|
| + if (StartsWithASCII(engine_id, "vkd_", true))
|
| + return GetComponentInputMethodID(kM17nExtensionId, engine_id);
|
| + if (StartsWithASCII(engine_id, "nacl_mozc_", true))
|
| + return GetComponentInputMethodID(kMozcExtensionId, engine_id);
|
| + if (StartsWithASCII(engine_id, "hangul_", true))
|
| + return GetComponentInputMethodID(kHangulExtensionId, engine_id);
|
| +
|
| + if (StartsWithASCII(engine_id, "zh-", true) &&
|
| + engine_id.find("pinyin") != std::string::npos) {
|
| + return GetComponentInputMethodID(kChinesePinyinExtensionId, engine_id);
|
| + }
|
| + if (StartsWithASCII(engine_id, "zh-", true) &&
|
| + engine_id.find("zhuyin") != std::string::npos) {
|
| + return GetComponentInputMethodID(kChineseZhuyinExtensionId, engine_id);
|
| + }
|
| + if (StartsWithASCII(engine_id, "zh-", true) &&
|
| + engine_id.find("cangjie") != std::string::npos) {
|
| + return GetComponentInputMethodID(kChineseCangjieExtensionId, engine_id);
|
| }
|
| - if (migrate && StartsWithASCII(keyboard_layout_id, "xkb:", true))
|
| - return kExtensionXkbIdPrefix + keyboard_layout_id;
|
| - return keyboard_layout_id;
|
| + if (engine_id.find("-t-i0-") != std::string::npos)
|
| + return GetComponentInputMethodID(kT13nExtensionId, engine_id);
|
| +
|
| + return engine_id;
|
| }
|
|
|
| bool IsExtensionIME(const std::string& input_method_id) {
|
| @@ -99,12 +106,8 @@ bool IsMemberOfExtension(const std::string& input_method_id,
|
| }
|
|
|
| bool IsKeyboardLayoutExtension(const std::string& input_method_id) {
|
| - return StartsWithASCII(input_method_id, kPublicExtensionXkbIdPrefix, true) ||
|
| - StartsWithASCII(input_method_id, kInternalExtensionXkbIdPrefix, true);
|
| -}
|
| -
|
| -bool UseWrappedExtensionKeyboardLayouts() {
|
| - return g_use_wrapped_extension_keyboard_layouts;
|
| + std::string prefix = kComponentExtensionIMEPrefix;
|
| + return StartsWithASCII(input_method_id, prefix + kXkbExtensionId, true);
|
| }
|
|
|
| std::string MaybeGetLegacyXkbId(const std::string& input_method_id) {
|
| @@ -116,14 +119,5 @@ std::string MaybeGetLegacyXkbId(const std::string& input_method_id) {
|
| return input_method_id;
|
| }
|
|
|
| -ScopedUseExtensionKeyboardFlagForTesting::
|
| - ScopedUseExtensionKeyboardFlagForTesting(bool new_flag)
|
| - : auto_reset_(&g_use_wrapped_extension_keyboard_layouts, new_flag) {
|
| -}
|
| -
|
| -ScopedUseExtensionKeyboardFlagForTesting::
|
| - ~ScopedUseExtensionKeyboardFlagForTesting() {
|
| -}
|
| -
|
| } // namespace extension_ime_util
|
| } // namespace chromeos
|
|
|