summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshuchen@chromium.org <shuchen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-03 12:20:33 +0000
committershuchen@chromium.org <shuchen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-03 12:20:33 +0000
commit9dd9d35c1d70ad44fcd24c24c7cdfb9c47052eca (patch)
tree0a8952717724183cbf0cf54dec0c8167e2e97cea
parentb73f855ce8e7380ee133dd0b77cf3ef94d4d36c1 (diff)
downloadchromium_src-9dd9d35c1d70ad44fcd24c24c7cdfb9c47052eca.zip
chromium_src-9dd9d35c1d70ad44fcd24c24c7cdfb9c47052eca.tar.gz
chromium_src-9dd9d35c1d70ad44fcd24c24c7cdfb9c47052eca.tar.bz2
[IME] Remove the flag g_use_wrapped_extension_keyboard_layouts, and clean up the scattered & hard-coded extension IDs.
BUG=379437,379449 TEST=None Review URL: https://codereview.chromium.org/309623005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274480 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/extensions/input_method_api.cc3
-rw-r--r--chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc4
-rw-r--r--chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc29
-rw-r--r--chrome/browser/chromeos/input_method/input_method_manager_impl.cc22
-rw-r--r--chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc342
-rw-r--r--chrome/browser/chromeos/input_method/input_method_util.cc118
-rw-r--r--chrome/browser/chromeos/input_method/input_method_util_unittest.cc79
-rw-r--r--chrome/browser/chromeos/input_method/mode_indicator_browsertest.cc4
-rw-r--r--chrome/browser/chromeos/login/oobe_localization_browsertest.cc6
-rw-r--r--chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc32
-rw-r--r--chromeos/ime/extension_ime_util.cc76
-rw-r--r--chromeos/ime/extension_ime_util.h44
12 files changed, 327 insertions, 432 deletions
diff --git a/chrome/browser/chromeos/extensions/input_method_api.cc b/chrome/browser/chromeos/extensions/input_method_api.cc
index 5380fb6..582f8e1 100644
--- a/chrome/browser/chromeos/extensions/input_method_api.cc
+++ b/chrome/browser/chromeos/extensions/input_method_api.cc
@@ -80,8 +80,7 @@ InputMethodAPI::~InputMethodAPI() {
// static
std::string InputMethodAPI::GetInputMethodForXkb(const std::string& xkb_id) {
std::string xkb_prefix =
- chromeos::extension_ime_util::GetInputMethodIDByKeyboardLayout(
- kXkbPrefix);
+ chromeos::extension_ime_util::GetInputMethodIDByEngineID(kXkbPrefix);
size_t prefix_length = xkb_prefix.length();
DCHECK(xkb_id.substr(0, prefix_length) == xkb_prefix);
return xkb_id.substr(prefix_length);
diff --git a/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc b/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
index 5ae8790..5fa5e5b 100644
--- a/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
+++ b/chrome/browser/chromeos/extensions/input_method_apitest_chromeos.cc
@@ -58,7 +58,7 @@ class SetInputMethodListener : public content::NotificationObserver {
std::vector<std::string> keyboard_layouts;
keyboard_layouts.push_back(
- chromeos::extension_ime_util::GetInputMethodIDByKeyboardLayout(
+ chromeos::extension_ime_util::GetInputMethodIDByEngineID(
kInitialInputMethodOnLoginScreen));
manager->EnableLoginLayouts(kLoginScreenUILanguage, keyboard_layouts);
return;
@@ -68,7 +68,7 @@ class SetInputMethodListener : public content::NotificationObserver {
base::StringPrintf("%s:%s", kSetInputMethodMessage, kNewInputMethod);
if (content == expected_message) {
chromeos::input_method::InputMethodManager::Get()->ChangeInputMethod(
- chromeos::extension_ime_util::GetInputMethodIDByKeyboardLayout(
+ chromeos::extension_ime_util::GetInputMethodIDByEngineID(
base::StringPrintf("xkb:%s", kNewInputMethod)));
scoped_refptr<extensions::TestSendMessageFunction> function =
diff --git a/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc b/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc
index deac95a..4db6df6 100644
--- a/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc
+++ b/chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc
@@ -14,6 +14,7 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/extension_constants.h"
#include "chrome/common/extensions/extension_file_util.h"
+#include "chromeos/ime/extension_ime_util.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/extension.h"
@@ -32,56 +33,56 @@ struct WhitelistedComponentExtensionIME {
} whitelisted_component_extension[] = {
{
// ChromeOS Hangul Input.
- "bdgdidmhaijohebebipajioienkglgfo",
+ extension_ime_util::kHangulExtensionId,
"/usr/share/chromeos-assets/input_methods/hangul",
},
+ {
+ // Official Google Japanese Input.
+ extension_ime_util::kMozcExtensionId,
+ "/usr/share/chromeos-assets/input_methods/nacl_mozc",
+ },
#if defined(OFFICIAL_BUILD)
{
// Official Google XKB Input.
- "jkghodnilhceideoidjikpgommlajknk",
+ extension_ime_util::kXkbExtensionId,
"/usr/share/chromeos-assets/input_methods/google_xkb",
},
{
// Official Google Keyboards Input.
- "habcdindjejkmepknlhkkloncjcpcnbf",
+ extension_ime_util::kM17nExtensionId,
"/usr/share/chromeos-assets/input_methods/google_keyboards",
},
{
// Google input tools.
- "gjaehgfemfahhmlgpdfknkhdnemmolop",
+ extension_ime_util::kT13nExtensionId,
"/usr/share/chromeos-assets/input_methods/input_tools",
},
#else
{
// Open-sourced ChromeOS xkb extension.
- "fgoepimhcoialccpbmpnnblemnepkkao",
+ extension_ime_util::kXkbExtensionId,
"/usr/share/chromeos-assets/input_methods/xkb",
},
{
// Open-sourced ChromeOS Keyboards extension.
- "jhffeifommiaekmbkkjlpmilogcfdohp",
+ extension_ime_util::kM17nExtensionId,
"/usr/share/chromeos-assets/input_methods/keyboard_layouts",
},
{
// Open-sourced Pinyin Chinese Input Method.
- "cpgalbafkoofkjmaeonnfijgpfennjjn",
+ extension_ime_util::kChinesePinyinExtensionId,
"/usr/share/chromeos-assets/input_methods/pinyin",
},
{
// Open-sourced Zhuyin Chinese Input Method.
- "ekbifjdfhkmdeeajnolmgdlmkllopefi",
+ extension_ime_util::kChineseZhuyinExtensionId,
"/usr/share/chromeos-assets/input_methods/zhuyin",
},
{
// Open-sourced Cangjie Chinese Input Method.
- "aeebooiibjahgpgmhkeocbeekccfknbj",
+ extension_ime_util::kChineseCangjieExtensionId,
"/usr/share/chromeos-assets/input_methods/cangjie",
},
- {
- // Open-sourced Mozc Japanese Input.
- "bbaiamgfapehflhememkfglaehiobjnk",
- "/usr/share/chromeos-assets/input_methods/nacl_mozc",
- },
#endif
{
// Braille hardware keyboard IME that works together with ChromeVox.
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
index 58ddabe..5db7991 100644
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
@@ -35,9 +35,6 @@ namespace input_method {
namespace {
-const char nacl_mozc_jp_id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_jp";
-
bool Contains(const std::vector<std::string>& container,
const std::string& value) {
return std::find(container.begin(), container.end(), value) !=
@@ -115,7 +112,7 @@ scoped_ptr<InputMethodDescriptors>
InputMethodManagerImpl::GetSupportedInputMethods() const {
scoped_ptr<InputMethodDescriptors> whitelist_imes =
whitelist_.GetSupportedInputMethods();
- if (!extension_ime_util::UseWrappedExtensionKeyboardLayouts())
+ if (!component_extension_ime_manager_->IsInitialized())
return whitelist_imes.Pass();
return scoped_ptr<InputMethodDescriptors>(new InputMethodDescriptors).Pass();
}
@@ -229,8 +226,7 @@ void InputMethodManagerImpl::EnableLoginLayouts(
// you can pass empty |initial_layout|.
ChangeInputMethod(initial_layouts.empty() ? "" :
- extension_ime_util::GetInputMethodIDByKeyboardLayout(
- initial_layouts[0]));
+ extension_ime_util::GetInputMethodIDByEngineID(initial_layouts[0]));
}
// Adds new input method to given list.
@@ -670,15 +666,19 @@ bool InputMethodManagerImpl::SwitchInputMethod(
std::vector<std::string> input_method_ids_to_switch;
switch (accelerator.key_code()) {
case ui::VKEY_CONVERT: // Henkan key on JP106 keyboard
- input_method_ids_to_switch.push_back(nacl_mozc_jp_id);
+ input_method_ids_to_switch.push_back(
+ extension_ime_util::GetInputMethodIDByEngineID("nacl_mozc_jp"));
break;
case ui::VKEY_NONCONVERT: // Muhenkan key on JP106 keyboard
- input_method_ids_to_switch.push_back("xkb:jp::jpn");
+ input_method_ids_to_switch.push_back(
+ extension_ime_util::GetInputMethodIDByEngineID("xkb:jp::jpn"));
break;
case ui::VKEY_DBE_SBCSCHAR: // ZenkakuHankaku key on JP106 keyboard
case ui::VKEY_DBE_DBCSCHAR:
- input_method_ids_to_switch.push_back(nacl_mozc_jp_id);
- input_method_ids_to_switch.push_back("xkb:jp::jpn");
+ input_method_ids_to_switch.push_back(
+ extension_ime_util::GetInputMethodIDByEngineID("nacl_mozc_jp"));
+ input_method_ids_to_switch.push_back(
+ extension_ime_util::GetInputMethodIDByEngineID("xkb:jp::jpn"));
break;
default:
NOTREACHED();
@@ -689,8 +689,6 @@ bool InputMethodManagerImpl::SwitchInputMethod(
return false;
}
- MigrateInputMethods(&input_method_ids_to_switch);
-
// Obtain the intersection of input_method_ids_to_switch and
// active_input_method_ids_. The order of IDs in active_input_method_ids_ is
// preserved.
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
index d78658b..ba24c42 100644
--- a/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
+++ b/chrome/browser/chromeos/input_method/input_method_manager_impl_unittest.cc
@@ -38,20 +38,11 @@ namespace chromeos {
namespace input_method {
namespace {
-const char kNaclMozcUsId[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_us";
-const char kNaclMozcJpId[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_jp";
-const char kExt2Engine1Id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopext2_engine1_engine_id";
-const char kExt2Engine2Id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopext2_engine2_engine_id";
-const char kXkbExtId[] =
-#if defined(OFFICIAL_BUILD)
- "jkghodnilhceideoidjikpgommlajknk";
-#else
- "fgoepimhcoialccpbmpnnblemnepkkao";
-#endif
+const char kNaclMozcUsId[] = "nacl_mozc_us";
+const char kNaclMozcJpId[] = "nacl_mozc_jp";
+const char kExt2Engine1Id[] = "ext2_engine1-t-i0-engine_id";
+const char kExt2Engine2Id[] = "ext2_engine2-t-i0-engine_id";
+const char kPinyinImeId[] = "zh-t-i0-pinyin";
// Returns true if |descriptors| contain |target|.
bool Contain(const InputMethodDescriptors& descriptors,
@@ -63,8 +54,8 @@ bool Contain(const InputMethodDescriptors& descriptors,
return false;
}
-std::string XkbId(const std::string& id) {
- return extension_ime_util::GetInputMethodIDByKeyboardLayout(id);
+std::string ImeIdFromEngineId(const std::string& id) {
+ return extension_ime_util::GetInputMethodIDByEngineID(id);
}
class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
@@ -126,13 +117,13 @@ class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
// Note, for production, these SetEngineHandler are called when
// IMEEngineHandlerInterface is initialized via
// InitializeComponentextension.
- manager_->AddInputMethodExtension(kNaclMozcUsId,
+ manager_->AddInputMethodExtension(ImeIdFromEngineId(kNaclMozcUsId),
mock_engine_handler_.get());
- manager_->AddInputMethodExtension(kNaclMozcJpId,
+ manager_->AddInputMethodExtension(ImeIdFromEngineId(kNaclMozcJpId),
mock_engine_handler_.get());
- manager_->AddInputMethodExtension(kExt2Engine1Id,
+ manager_->AddInputMethodExtension(ImeIdFromEngineId(kExt2Engine1Id),
mock_engine_handler_.get());
- manager_->AddInputMethodExtension(kExt2Engine2Id,
+ manager_->AddInputMethodExtension(ImeIdFromEngineId(kExt2Engine2Id),
mock_engine_handler_.get());
manager_->InitializeComponentExtensionForTesting(delegate.Pass());
}
@@ -141,7 +132,7 @@ class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
ime_list_.clear();
ComponentExtensionIME ext_xkb;
- ext_xkb.id = kXkbExtId;
+ ext_xkb.id = extension_ime_util::kXkbExtensionId;
ext_xkb.description = "ext_xkb_description";
ext_xkb.path = base::FilePath("ext_xkb_file_path");
@@ -218,7 +209,7 @@ class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
ime_list_.push_back(ext_xkb);
ComponentExtensionIME ext1;
- ext1.id = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+ ext1.id = extension_ime_util::kMozcExtensionId;
ext1.description = "ext1_description";
ext1.path = base::FilePath("ext1_file_path");
@@ -239,19 +230,19 @@ class InputMethodManagerImplTest : public BrowserWithTestWindowTest {
ime_list_.push_back(ext1);
ComponentExtensionIME ext2;
- ext2.id = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+ ext2.id = extension_ime_util::kT13nExtensionId;
ext2.description = "ext2_description";
ext2.path = base::FilePath("ext2_file_path");
ComponentExtensionEngine ext2_engine1;
- ext2_engine1.engine_id = "ext2_engine1_engine_id";
+ ext2_engine1.engine_id = kExt2Engine1Id;
ext2_engine1.display_name = "ext2_engine_1_display_name";
ext2_engine1.language_codes.push_back("en");
ext2_engine1.layouts.push_back("us");
ext2.engines.push_back(ext2_engine1);
ComponentExtensionEngine ext2_engine2;
- ext2_engine2.engine_id = "ext2_engine2_engine_id";
+ ext2_engine2.engine_id = kExt2Engine2Id;
ext2_engine2.display_name = "ext2_engine_2_display_name";
ext2_engine2.language_codes.push_back("en");
ext2_engine2.layouts.push_back("us(dvorak)");
@@ -366,11 +357,11 @@ TEST_F(InputMethodManagerImplTest, TestObserver) {
EXPECT_EQ(5U, manager_->GetActiveInputMethods()->size());
EXPECT_EQ(1, observer.input_method_changed_count_);
EXPECT_EQ(1, observer.input_method_menu_item_changed_count_);
- manager_->ChangeInputMethod(XkbId("xkb:us:dvorak:eng"));
+ manager_->ChangeInputMethod(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_FALSE(observer.last_show_message_);
EXPECT_EQ(2, observer.input_method_changed_count_);
EXPECT_EQ(2, observer.input_method_menu_item_changed_count_);
- manager_->ChangeInputMethod(XkbId("xkb:us:dvorak:eng"));
+ manager_->ChangeInputMethod(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_FALSE(observer.last_show_message_);
// The observer is always notified even when the same input method ID is
@@ -389,25 +380,21 @@ TEST_F(InputMethodManagerImplTest, TestObserver) {
TEST_F(InputMethodManagerImplTest, TestGetSupportedInputMethods) {
InitComponentExtension();
InputMethodDescriptors methods;
- if (extension_ime_util::UseWrappedExtensionKeyboardLayouts()) {
- methods = manager_->GetComponentExtensionIMEManager()
- ->GetXkbIMEAsInputMethodDescriptor();
- } else {
- methods = *(manager_->GetSupportedInputMethods());
- }
+ methods = manager_->GetComponentExtensionIMEManager()
+ ->GetXkbIMEAsInputMethodDescriptor();
// Try to find random 4-5 layuts and IMEs to make sure the returned list is
// correct.
const InputMethodDescriptor* id_to_find =
manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- kNaclMozcUsId);
+ ImeIdFromEngineId(kNaclMozcUsId));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:us::eng"));
+ ImeIdFromEngineId("xkb:us::eng"));
EXPECT_TRUE(Contain(methods, *id_to_find));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:us:dvorak:eng"));
+ ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(Contain(methods, *id_to_find));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:fr::fra"));
+ ImeIdFromEngineId("xkb:fr::fra"));
EXPECT_TRUE(Contain(methods, *id_to_find));
}
@@ -429,12 +416,12 @@ TEST_F(InputMethodManagerImplTest, TestEnableLayouts) {
TEST_F(InputMethodManagerImplTest, TestEnableLayoutsAndCurrentInputMethod) {
// For http://crbug.com/329061
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:se::swe"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:se::swe"));
InitComponentExtension();
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
const std::string im_id = manager_->GetCurrentInputMethod().id();
- EXPECT_EQ(XkbId("xkb:se::swe"), im_id);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:se::swe"), im_id);
}
TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) {
@@ -463,7 +450,7 @@ TEST_F(InputMethodManagerImplTest, TestEnableLayoutsNonUsHardwareKeyboard) {
manager_->GetInputMethodUtil()->GetHardwareLoginInputMethodIds());
// "xkb:us::eng" only.
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
manager_->GetActiveInputMethodIds().front());
}
@@ -503,10 +490,10 @@ TEST_F(InputMethodManagerImplTest, TestActiveInputMethods) {
EXPECT_EQ(2U, methods->size());
const InputMethodDescriptor* id_to_find =
manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:us::eng"));
+ ImeIdFromEngineId("xkb:us::eng"));
EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find));
id_to_find = manager_->GetInputMethodUtil()->GetInputMethodDescriptorFromId(
- XkbId("xkb:jp::jpn"));
+ ImeIdFromEngineId("xkb:jp::jpn"));
EXPECT_TRUE(id_to_find && Contain(*methods.get(), *id_to_find));
}
@@ -517,21 +504,21 @@ TEST_F(InputMethodManagerImplTest, TestEnableTwoLayouts) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(XkbId("xkb:us:colemak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
// Since all the IDs added avobe are keyboard layouts, Start() should not be
// called.
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin());
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), // colemak
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), // colemak
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(colemak)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
@@ -544,25 +531,25 @@ TEST_F(InputMethodManagerImplTest, TestEnableThreeLayouts) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(XkbId("xkb:us:colemak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
// Switch to Dvorak.
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin() + 1);
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(3, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), // US Qwerty
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), // US Qwerty
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
@@ -575,22 +562,22 @@ TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Switch to Mozc
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
// Disable Mozc.
ids.erase(ids.begin() + 1);
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
}
@@ -601,18 +588,18 @@ TEST_F(InputMethodManagerImplTest, TestEnableLayoutAndIme2) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Disable Dvorak.
ids.erase(ids.begin());
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[0]), // Mozc
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), // Mozc
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
@@ -624,11 +611,11 @@ TEST_F(InputMethodManagerImplTest, TestEnableImes) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kExt2Engine1Id);
+ ids.push_back(ImeIdFromEngineId(kExt2Engine1Id));
ids.push_back("mozc-dv");
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
}
@@ -656,35 +643,35 @@ TEST_F(InputMethodManagerImplTest, TestEnableLayoutsThenLock) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
// Switch to Dvorak.
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Lock screen
manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[1]), // still Dvorak
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), // still Dvorak
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Switch back to Qwerty.
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
// Unlock screen. The original state, Dvorak, is restored.
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
@@ -697,36 +684,36 @@ TEST_F(InputMethodManagerImplTest, SwitchInputMethodTest) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(kExt2Engine2Id);
- ids.push_back(kExt2Engine1Id);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId(kExt2Engine2Id));
+ ids.push_back(ImeIdFromEngineId(kExt2Engine1Id));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Switch to Mozc.
manager_->SwitchToNextInputMethod();
EXPECT_EQ(2, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Lock screen
manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods()); // Qwerty+Dvorak.
- EXPECT_EQ(XkbId("xkb:us:dvorak:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:dvorak:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
- EXPECT_EQ(XkbId("xkb:us::eng"), // The hardware keyboard layout.
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), // The hardware keyboard layout.
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
// Unlock screen. The original state, pinyin-dv, is restored.
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
EXPECT_EQ(3U, manager_->GetNumActiveInputMethods()); // Dvorak and 2 IMEs.
- EXPECT_EQ(XkbId(ids[1]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[1]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
@@ -737,10 +724,10 @@ TEST_F(InputMethodManagerImplTest, TestXkbSetting) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
- ids.push_back(XkbId("xkb:us:colemak:eng"));
- ids.push_back(kNaclMozcJpId);
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:colemak:eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcJpId));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(4U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, keyboard_->set_current_keyboard_layout_by_name_count_);
@@ -787,12 +774,12 @@ TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodProperties) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty());
- manager_->ChangeInputMethod(kNaclMozcUsId);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId));
ash::ime::InputMethodMenuItemList current_property_list;
current_property_list.push_back(ash::ime::InputMethodMenuItem(
@@ -813,8 +800,8 @@ TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodPropertiesTwoImes) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kNaclMozcUsId); // Japanese
- ids.push_back(kExt2Engine1Id); // T-Chinese
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId)); // Japanese
+ ids.push_back(ImeIdFromEngineId(kExt2Engine1Id)); // T-Chinese
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty());
@@ -830,7 +817,7 @@ TEST_F(InputMethodManagerImplTest, TestGetCurrentInputMethodPropertiesTwoImes) {
EXPECT_EQ("key-mozc",
menu_manager_->GetCurrentInputMethodMenuItemList().at(0).key);
- manager_->ChangeInputMethod(kExt2Engine1Id);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kExt2Engine1Id));
// Since the IME is changed, the property for mozc Japanese should be hidden.
EXPECT_TRUE(menu_manager_->GetCurrentInputMethodMenuItemList().empty());
@@ -849,34 +836,37 @@ TEST_F(InputMethodManagerImplTest, TestNextInputMethod) {
manager_->AddObserver(&observer);
InitComponentExtension();
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
// For http://crbug.com/19655#c11 - (1)
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
EXPECT_EQ(5U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(intl)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:dvorak:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:dvorak:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:colemak:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:colemak:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(colemak)", keyboard_->last_layout_);
manager_->SwitchToNextInputMethod();
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
manager_->RemoveObserver(&observer);
@@ -893,49 +883,55 @@ TEST_F(InputMethodManagerImplTest, TestPreviousInputMethod) {
keyup_accelerator.set_type(ui::ET_KEY_RELEASED);
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
EXPECT_EQ(5U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToNextInputMethod());
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToNextInputMethod());
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToNextInputMethod());
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:intl:eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:intl:eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(intl)", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
EXPECT_TRUE(observer.last_show_message_);
- EXPECT_EQ(XkbId("xkb:us:altgr-intl:eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us:altgr-intl:eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(altgr-intl)", keyboard_->last_layout_);
@@ -954,7 +950,7 @@ TEST_F(InputMethodManagerImplTest,
keyup_accelerator.set_type(ui::ET_KEY_RELEASED);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
@@ -967,12 +963,12 @@ TEST_F(InputMethodManagerImplTest,
}
TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithUsLayouts) {
- std::string expect_id = XkbId("xkb:us::eng");
+ std::string expect_id = ImeIdFromEngineId("xkb:us::eng");
TestObserver observer;
manager_->AddObserver(&observer);
InitComponentExtension();
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
manager_->EnableLoginLayouts("en-US", keyboard_layouts);
EXPECT_EQ(5U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(expect_id, manager_->GetCurrentInputMethod().id());
@@ -1011,30 +1007,36 @@ TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpLayout) {
keyup_accelerator.set_type(ui::ET_KEY_RELEASED);
std::vector<std::string> keyboard_layouts;
- keyboard_layouts.push_back(XkbId("xkb:us::eng"));
+ keyboard_layouts.push_back(ImeIdFromEngineId("xkb:us::eng"));
manager_->EnableLoginLayouts("ja", keyboard_layouts);
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keydown_accelerator));
EXPECT_TRUE(manager_->SwitchToPreviousInputMethod(keyup_accelerator));
- EXPECT_EQ(XkbId("xkb:us::eng"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
}
@@ -1042,48 +1044,58 @@ TEST_F(InputMethodManagerImplTest, TestSwitchInputMethodWithJpIme) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:jp::jpn"));
- ids.push_back(kNaclMozcJpId);
+ ids.push_back(ImeIdFromEngineId("xkb:jp::jpn"));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcJpId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_CONVERT, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_NONCONVERT, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
// Add Dvorak.
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
EXPECT_TRUE(manager_->SwitchInputMethod(
ui::Accelerator(ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE)));
- EXPECT_EQ(XkbId("xkb:jp::jpn"), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId("xkb:jp::jpn"),
+ manager_->GetCurrentInputMethod().id());
EXPECT_EQ("jp", keyboard_->last_layout_);
}
@@ -1093,12 +1105,11 @@ TEST_F(InputMethodManagerImplTest, TestAddRemoveExtensionInputMethods) {
InitComponentExtension();
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us:dvorak:eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us:dvorak:eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]),
- manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us(dvorak)", keyboard_->last_layout_);
// Add two Extension IMEs.
@@ -1175,11 +1186,11 @@ TEST_F(InputMethodManagerImplTest, TestAddExtensionInputThenLockScreen) {
manager_->AddObserver(&observer);
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(XkbId("xkb:us::eng"));
+ ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
EXPECT_EQ(1, observer.input_method_changed_count_);
- EXPECT_EQ(XkbId(ids[0]), manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(ids[0]), manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
// Add an Extension IME.
@@ -1219,7 +1230,7 @@ TEST_F(InputMethodManagerImplTest, TestAddExtensionInputThenLockScreen) {
// Lock the screen. This is for crosbug.com/27049.
manager_->SetState(InputMethodManager::STATE_LOCK_SCREEN);
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods()); // Qwerty. No Ext. IME
- EXPECT_EQ(XkbId("xkb:us::eng"),
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"),
manager_->GetCurrentInputMethod().id());
EXPECT_EQ("us", keyboard_->last_layout_);
@@ -1243,28 +1254,30 @@ TEST_F(InputMethodManagerImplTest,
ChangeInputMethodBeforeComponentExtensionInitialization_OneIME) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kNaclMozcUsId);
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(1U, manager_->GetNumActiveInputMethods());
- manager_->ChangeInputMethod(kNaclMozcUsId);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId));
InitComponentExtension();
- EXPECT_EQ(kNaclMozcUsId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcUsId),
+ manager_->GetCurrentInputMethod().id());
}
TEST_F(InputMethodManagerImplTest,
ChangeInputMethodBeforeComponentExtensionInitialization_TwoIME) {
manager_->SetState(InputMethodManager::STATE_BROWSER_SCREEN);
std::vector<std::string> ids;
- ids.push_back(kNaclMozcUsId);
- ids.push_back(kNaclMozcJpId);
+ ids.push_back(ImeIdFromEngineId(kNaclMozcUsId));
+ ids.push_back(ImeIdFromEngineId(kNaclMozcJpId));
EXPECT_TRUE(manager_->ReplaceEnabledInputMethods(ids));
EXPECT_EQ(2U, manager_->GetNumActiveInputMethods());
- manager_->ChangeInputMethod(kNaclMozcUsId);
- manager_->ChangeInputMethod(kNaclMozcJpId);
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcUsId));
+ manager_->ChangeInputMethod(ImeIdFromEngineId(kNaclMozcJpId));
InitComponentExtension();
- EXPECT_EQ(kNaclMozcJpId, manager_->GetCurrentInputMethod().id());
+ EXPECT_EQ(ImeIdFromEngineId(kNaclMozcJpId),
+ manager_->GetCurrentInputMethod().id());
}
TEST_F(InputMethodManagerImplTest,
@@ -1338,55 +1351,24 @@ TEST_F(InputMethodManagerImplTest,
EXPECT_EQ(ext_id2, manager_->GetCurrentInputMethod().id());
}
-TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest_1) {
- extension_ime_util::ScopedUseExtensionKeyboardFlagForTesting
- scoped_flag(true);
-
+TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest) {
std::vector<std::string> input_method_ids;
input_method_ids.push_back("xkb:us::eng");
input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
+ input_method_ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
+ input_method_ids.push_back(ImeIdFromEngineId("xkb:us::eng"));
input_method_ids.push_back("_comp_ime_asdf_pinyin");
- input_method_ids.push_back(kNaclMozcUsId);
+ input_method_ids.push_back(ImeIdFromEngineId(kPinyinImeId));
manager_->MigrateInputMethods(&input_method_ids);
ASSERT_EQ(4U, input_method_ids.size());
- EXPECT_EQ(std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng",
- input_method_ids[0]);
- EXPECT_EQ(std::string("_comp_ime_") + kXkbExtId + "xkb:fr::fra",
- input_method_ids[1]);
- EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]);
- EXPECT_EQ("_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_us",
- input_method_ids[3]);
-}
-
-TEST_F(InputMethodManagerImplTest, MigrateInputMethodTest_2) {
- extension_ime_util::ScopedUseExtensionKeyboardFlagForTesting
- scoped_flag(false);
-
- std::vector<std::string> input_method_ids;
- input_method_ids.push_back("xkb:us::eng");
- input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
- input_method_ids.push_back("xkb:fr::fra");
- input_method_ids.push_back(
- std::string("_comp_ime_") + kXkbExtId + "xkb:us::eng");
- input_method_ids.push_back("_comp_ime_asdf_pinyin");
-
- manager_->MigrateInputMethods(&input_method_ids);
-
- ASSERT_EQ(3U, input_method_ids.size());
-
- EXPECT_EQ("xkb:us::eng", input_method_ids[0]);
- EXPECT_EQ("xkb:fr::fra", input_method_ids[1]);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:us::eng"), input_method_ids[0]);
+ EXPECT_EQ(ImeIdFromEngineId("xkb:fr::fra"), input_method_ids[1]);
EXPECT_EQ("_comp_ime_asdf_pinyin", input_method_ids[2]);
+ EXPECT_EQ(ImeIdFromEngineId("zh-t-i0-pinyin"), input_method_ids[3]);
}
} // namespace input_method
diff --git a/chrome/browser/chromeos/input_method/input_method_util.cc b/chrome/browser/chromeos/input_method/input_method_util.cc
index 72ed8b4..ac42963 100644
--- a/chrome/browser/chromeos/input_method/input_method_util.cc
+++ b/chrome/browser/chromeos/input_method/input_method_util.cc
@@ -31,46 +31,26 @@ namespace {
// mapping is necessary since some input methods belong to the same language.
// For example, both "xkb:us::eng" and "xkb:us:dvorak:eng" are for US English.
const struct {
- const char* input_method_id;
+ const char* engine_id;
const char* indicator_text;
} kMappingFromIdToIndicatorText[] = {
// To distinguish from "xkb:jp::jpn"
// TODO(nona): Make following variables configurable. http://crbug.com/232260.
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_us", "\xe3\x81\x82" },
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_jp", "\xe3\x81\x82" },
- { "_comp_ime_bbaiamgfapehflhememkfglaehiobjnknacl_mozc_us", "\xe3\x81\x82" },
- { "_comp_ime_bbaiamgfapehflhememkfglaehiobjnknacl_mozc_jp", "\xe3\x81\x82" },
+ { "nacl_mozc_us", "\xe3\x81\x82" },
+ { "nacl_mozc_jp", "\xe3\x81\x82" },
// For simplified Chinese input methods
- { "pinyin", "\xe6\x8b\xbc" }, // U+62FC
- { "_comp_ime_cpgalbafkoofkjmaeonnfijgpfennjjnzh-t-i0-pinyin",
- "\xe6\x8b\xbc" },
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-pinyin",
- "\xe6\x8b\xbc" },
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-wubi-1986",
- "\xe4\xba\x94" }, // U+4E94
- { "pinyin-dv", "\xe6\x8b\xbc" },
+ { "zh-t-i0-pinyin", "\xe6\x8b\xbc" }, // U+62FC
+ { "zh-t-i0-wubi-1986", "\xe4\xba\x94" }, // U+4E94
// For traditional Chinese input methods
- { "mozc-chewing", "\xe9\x85\xb7" }, // U+9177
- { "_comp_ime_ekbifjdfhkmdeeajnolmgdlmkllopefizh-hant-t-i0-und",
- "\xE6\xB3\xA8" }, // U+6CE8
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-hant-t-i0-und",
- "\xE6\xB3\xA8" }, // U+6CE8
- { "m17n:zh:cangjie", "\xe5\x80\x89" }, // U+5009
- { "_comp_ime_aeebooiibjahgpgmhkeocbeekccfknbjzh-hant-t-i0-cangjie-1987",
- "\xe5\x80\x89" }, // U+5009
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-hant-t-i0-cangjie-1987",
- "\xe5\x80\x89" }, // U+5009
- { "m17n:zh:quick", "\xe9\x80\x9f" }, // U+901F
+ { "zh-hant-t-i0-und", "\xE6\xB3\xA8" }, // U+9177
+ { "zh-hant-t-i0-cangjie-1987", "\xe5\x80\x89" }, // U+5009
+ { "zh-hant-t-i0-cangjie-1987-x-m0-simplified", "\xe9\x80\x9f" }, // U+901F
// For Hangul input method.
- { "mozc-hangul", "\xed\x95\x9c" }, // U+D55C
- { "_comp_ime_bdgdidmhaijohebebipajioienkglgfohangul_2set", "\xed\x95\x9c" },
- { "_comp_ime_bdgdidmhaijohebebipajioienkglgfohangul_3set390",
- "\xed\x95\x9c" },
- { "_comp_ime_bdgdidmhaijohebebipajioienkglgfohangul_3setfinal",
- "\xed\x95\x9c" },
- { "_comp_ime_bdgdidmhaijohebebipajioienkglgfohangul_3setnoshift",
- "\xed\x95\x9c" },
- { "_comp_ime_bdgdidmhaijohebebipajioienkglgfohangul_romaja", "\xed\x95\x9c" },
+ { "hangul_2set", "\xed\x95\x9c" }, // U+D55C
+ { "hangul_3set390", "\xed\x95\x9c" }, // U+D55C
+ { "hangul_3setfinal", "\xed\x95\x9c" }, // U+D55C
+ { "hangul_3setnoshift", "\xed\x95\x9c" }, // U+D55C
+ { "hangul_romaja", "\xed\x95\x9c" }, // U+D55C
{ extension_misc::kBrailleImeEngineId,
// U+2803 U+2817 U+2807 (Unicode braille patterns for the letters 'brl' in
// English (and many other) braille codes.
@@ -86,28 +66,20 @@ const size_t kMappingFromIdToIndicatorTextLen =
// "Your input method has changed to..." bubble than in the status tray.
// If an entry is not found in this table the short name is used.
const struct {
- const char* input_method_id;
+ const char* engine_id;
const int resource_id;
} kMappingImeIdToMediumLenNameResourceId[] = {
- { "m17n:zh:cangjie", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
- { "m17n:zh:quick", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
- { "mozc-chewing", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
- { "mozc-hangul", IDS_LANGUAGES_MEDIUM_LEN_NAME_KOREAN },
- { "pinyin", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED },
- { "pinyin-dv", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED },
- { "_comp_ime_cpgalbafkoofkjmaeonnfijgpfennjjnzh-t-i0-pinyin",
- IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED},
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-pinyin",
- IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED },
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-wubi-1986",
- IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED },
- { "_comp_ime_ekbifjdfhkmdeeajnolmgdlmkllopefizh-hant-t-i0-und",
+ { "hangul_2set", IDS_LANGUAGES_MEDIUM_LEN_NAME_KOREAN },
+ { "hangul_3set390", IDS_LANGUAGES_MEDIUM_LEN_NAME_KOREAN },
+ { "hangul_3setfinal", IDS_LANGUAGES_MEDIUM_LEN_NAME_KOREAN },
+ { "hangul_3setnoshift", IDS_LANGUAGES_MEDIUM_LEN_NAME_KOREAN },
+ { "hangul_3setromaja", IDS_LANGUAGES_MEDIUM_LEN_NAME_KOREAN },
+ { "zh-t-i0-pinyin", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED},
+ { "zh-t-i0-wubi-1986", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_SIMPLIFIED },
+ { "zh-hant-t-i0-und", IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
+ { "zh-hant-t-i0-cangjie-1987",
IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-hant-t-i0-und",
- IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
- { "_comp_ime_aeebooiibjahgpgmhkeocbeekccfknbjzh-hant-t-i0-cangjie-1987",
- IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
- { "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-hant-t-i0-cangjie-1987",
+ { "zh-hant-t-i0-cangjie-1987-x-m0-simplified",
IDS_LANGUAGES_MEDIUM_LEN_NAME_CHINESE_TRADITIONAL },
{ extension_misc::kBrailleImeEngineId,
IDS_LANGUAGES_MEDIUM_LEN_NAME_BRAILLE },
@@ -122,22 +94,14 @@ const size_t kMappingImeIdToMediumLenNameResourceIdLen =
const struct {
const char* locale;
const char* layout;
- const char* input_method_id;
+ const char* engine_id;
} kDefaultInputMethodRecommendation[] = {
- { "ja", "us", "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_us" },
- { "ja", "jp", "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopnacl_mozc_jp" },
- { "zh-CN", "us", "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-pinyin" },
- { "zh-TW", "us",
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-hant-t-i0-und" },
-#if defined(OFFICIAL_BUILD)
- { "th", "us", "_comp_ime_habcdindjejkmepknlhkkloncjcpcnbfvkd_th" },
- { "vi", "us", "_comp_ime_habcdindjejkmepknlhkkloncjcpcnbfvkd_vi_tcvn" },
- { "vi", "us", "_comp_ime_habcdindjejkmepknlhkkloncjcpcnbfvkd_vi_tcvn" },
-#else
- { "th", "us", "_comp_ime_jhffeifommiaekmbkkjlpmilogcfdohpvkd_th" },
- { "vi", "us", "_comp_ime_jhffeifommiaekmbkkjlpmilogcfdohpvkd_vi_tcvn" },
- { "vi", "us", "_comp_ime_jhffeifommiaekmbkkjlpmilogcfdohpvkd_vi_tcvn" },
-#endif
+ { "ja", "us", "nacl_mozc_us" },
+ { "ja", "jp", "nacl_mozc_jp" },
+ { "zh-CN", "us", "zh-t-i0-pinyin" },
+ { "zh-TW", "us", "zh-hant-t-i0-und" },
+ { "th", "us", "vkd_th" },
+ { "vi", "us", "vkd_vi_tcvn" },
};
// The map from xkb layout to the indicator text.
@@ -477,8 +441,8 @@ base::string16 InputMethodUtil::GetInputMethodShortName(
base::string16 text;
// Check special cases first.
for (size_t i = 0; i < kMappingFromIdToIndicatorTextLen; ++i) {
- if (kMappingFromIdToIndicatorText[i].input_method_id ==
- input_method.id()) {
+ if (extension_ime_util::GetInputMethodIDByEngineID(
+ kMappingFromIdToIndicatorText[i].engine_id) == input_method.id()) {
text = base::UTF8ToUTF16(kMappingFromIdToIndicatorText[i].indicator_text);
break;
}
@@ -515,7 +479,8 @@ base::string16 InputMethodUtil::GetInputMethodMediumName(
// it uses the same name as the short name, unless found in a table
// for medium length names.
for (size_t i = 0; i < kMappingImeIdToMediumLenNameResourceIdLen; ++i) {
- if (kMappingImeIdToMediumLenNameResourceId[i].input_method_id ==
+ if (extension_ime_util::GetInputMethodIDByEngineID(
+ kMappingImeIdToMediumLenNameResourceId[i].engine_id) ==
input_method.id()) {
return delegate_->GetLocalizedString(
kMappingImeIdToMediumLenNameResourceId[i].resource_id);
@@ -624,7 +589,8 @@ void InputMethodUtil::GetFirstLoginInputMethodIds(
if (kDefaultInputMethodRecommendation[i].locale == language_code &&
kDefaultInputMethodRecommendation[i].layout == current_layout) {
out_input_method_ids->push_back(
- kDefaultInputMethodRecommendation[i].input_method_id);
+ extension_ime_util::GetInputMethodIDByEngineID(
+ kDefaultInputMethodRecommendation[i].engine_id));
return;
}
}
@@ -709,7 +675,7 @@ bool InputMethodUtil::MigrateInputMethods(
std::vector<std::string>& ids = *input_method_ids;
for (size_t i = 0; i < ids.size(); ++i) {
std::string id =
- extension_ime_util::GetInputMethodIDByKeyboardLayout(ids[i]);
+ extension_ime_util::GetInputMethodIDByEngineID(ids[i]);
// Migrates old ime id's to new ones.
for (size_t j = 0; j < arraysize(kExtensionIdMigrationMap); ++j) {
size_t pos = id.find(kExtensionIdMigrationMap[j][0]);
@@ -822,15 +788,13 @@ void InputMethodUtil::ResetInputMethods(const InputMethodDescriptors& imes) {
void InputMethodUtil::InitXkbInputMethodsForTesting() {
cached_hardware_layouts_.clear();
- if (!extension_ime_util::UseWrappedExtensionKeyboardLayouts())
- return;
scoped_ptr<InputMethodDescriptors> original_imes =
InputMethodWhitelist().GetSupportedInputMethods();
InputMethodDescriptors whitelist_imes;
for (size_t i = 0; i < original_imes->size(); ++i) {
const InputMethodDescriptor& ime = (*original_imes)[i];
whitelist_imes.push_back(InputMethodDescriptor(
- extension_ime_util::GetInputMethodIDByKeyboardLayout(ime.id()),
+ extension_ime_util::GetInputMethodIDByEngineID(ime.id()),
"",
ime.indicator(),
ime.keyboard_layouts(),
@@ -848,7 +812,7 @@ InputMethodDescriptor InputMethodUtil::GetFallbackInputMethodDescriptor() {
std::vector<std::string> languages;
languages.push_back("en-US");
return InputMethodDescriptor(
- extension_ime_util::GetInputMethodIDByKeyboardLayout("xkb:us::eng"),
+ extension_ime_util::GetInputMethodIDByEngineID("xkb:us::eng"),
"",
"US",
layouts,
@@ -872,7 +836,7 @@ void InputMethodUtil::ReloadInternalMaps() {
for (size_t i = 0; i < supported_input_methods_->size(); ++i) {
const InputMethodDescriptor& input_method = supported_input_methods_->at(i);
const std::string input_method_id =
- extension_ime_util::GetInputMethodIDByKeyboardLayout(input_method.id());
+ extension_ime_util::GetInputMethodIDByEngineID(input_method.id());
const std::vector<std::string>& language_codes =
input_method.language_codes();
diff --git a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
index be5be9b..83452a5 100644
--- a/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
+++ b/chrome/browser/chromeos/input_method/input_method_util_unittest.cc
@@ -27,16 +27,8 @@ namespace input_method {
namespace {
-const char pinyin_ime_id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-t-i0-pinyin";
-const char zhuyin_ime_id[] =
- "_comp_ime_gjaehgfemfahhmlgpdfknkhdnemmolopzh-hant-t-i0-und";
-const char kKeyboardExtId[] =
-#if defined(OFFICIAL_BUILD)
- "habcdindjejkmepknlhkkloncjcpcnbf";
-#else
- "jhffeifommiaekmbkkjlpmilogcfdohp";
-#endif
+const char pinyin_ime_id[] = "zh-t-i0-pinyin";
+const char zhuyin_ime_id[] = "zh-hant-t-i0-und";
class TestableInputMethodUtil : public InputMethodUtil {
public:
@@ -71,7 +63,7 @@ class InputMethodUtilTest : public testing::Test {
layouts.push_back("us");
languages.push_back("zh-CN");
- InputMethodDescriptor pinyin_ime(pinyin_ime_id,
+ InputMethodDescriptor pinyin_ime(Id(pinyin_ime_id),
"Pinyin input for testing",
"CN",
layouts,
@@ -98,7 +90,7 @@ class InputMethodUtilTest : public testing::Test {
}
std::string Id(const std::string& id) {
- return extension_ime_util::GetInputMethodIDByKeyboardLayout(id);
+ return extension_ime_util::GetInputMethodIDByEngineID(id);
}
InputMethodDescriptor GetDesc(const std::string& id,
@@ -131,14 +123,14 @@ class InputMethodUtilTest : public testing::Test {
TEST_F(InputMethodUtilTest, GetInputMethodShortNameTest) {
// Test normal cases. Two-letter language code should be returned.
{
- InputMethodDescriptor desc = GetDesc("m17n:fa:isiri", // input method id
+ InputMethodDescriptor desc = GetDesc("vkd_fa", // input method id
"us", // keyboard layout name
"fa", // language name
""); // indicator
EXPECT_EQ(ASCIIToUTF16("FA"), util_.GetInputMethodShortName(desc));
}
{
- InputMethodDescriptor desc = GetDesc("mozc-hangul", "us", "ko", "");
+ InputMethodDescriptor desc = GetDesc("hangul_2set", "us", "ko", "");
EXPECT_EQ(base::UTF8ToUTF16("\xed\x95\x9c"),
util_.GetInputMethodShortName(desc));
}
@@ -186,8 +178,7 @@ TEST_F(InputMethodUtilTest, GetInputMethodShortNameTest) {
util_.GetInputMethodShortName(desc));
}
{
- InputMethodDescriptor desc =
- GetDesc(zhuyin_ime_id, "us", "zh-TW", "");
+ InputMethodDescriptor desc = GetDesc(zhuyin_ime_id, "us", "zh-TW", "");
EXPECT_EQ(base::UTF8ToUTF16("\xE6\xB3\xA8"),
util_.GetInputMethodShortName(desc));
}
@@ -216,13 +207,8 @@ TEST_F(InputMethodUtilTest, GetInputMethodMediumNameTest) {
{
// input methods with medium name not equal to short name
const char * input_method_id[] = {
- "m17n:zh:cangjie",
- "m17n:zh:quick",
pinyin_ime_id,
zhuyin_ime_id,
- "mozc-hangul",
- pinyin_ime_id,
- pinyin_ime_id,
};
const int len = ARRAYSIZE_UNSAFE(input_method_id);
for (int i=0; i<len; ++i) {
@@ -238,21 +224,6 @@ TEST_F(InputMethodUtilTest, GetInputMethodLongNameTest) {
// For most languages input method or keyboard layout name is returned.
// See below for exceptions.
{
- InputMethodDescriptor desc = GetDesc("m17n:fa:isiri", "us", "fa", "");
- EXPECT_EQ(ASCIIToUTF16("Persian input method (ISIRI 2901 layout)"),
- util_.GetInputMethodLongName(desc));
- }
- {
- InputMethodDescriptor desc = GetDesc("mozc-hangul", "us", "ko", "");
- EXPECT_EQ(ASCIIToUTF16("Korean input method"),
- util_.GetInputMethodLongName(desc));
- }
- {
- InputMethodDescriptor desc = GetDesc("m17n:vi:tcvn", "us", "vi", "");
- EXPECT_EQ(ASCIIToUTF16("Vietnamese input method (TCVN6064)"),
- util_.GetInputMethodLongName(desc));
- }
- {
InputMethodDescriptor desc = GetDesc("xkb:jp::jpn", "jp", "ja", "");
EXPECT_EQ(ASCIIToUTF16("Japanese"),
util_.GetInputMethodLongName(desc));
@@ -270,14 +241,9 @@ TEST_F(InputMethodUtilTest, GetInputMethodLongNameTest) {
util_.GetInputMethodLongName(desc));
}
- // For Arabic, Dutch, French, German and Hindi,
+ // For Dutch, French, German and Hindi,
// "language - keyboard layout" pair is returned.
{
- InputMethodDescriptor desc = GetDesc("m17n:ar:kbd", "us", "ar", "");
- EXPECT_EQ(ASCIIToUTF16("Arabic - Standard input method"),
- util_.GetInputMethodLongName(desc));
- }
- {
InputMethodDescriptor desc = GetDesc("xkb:be::nld", "be", "nl", "");
EXPECT_EQ(ASCIIToUTF16("Dutch - Belgian"),
util_.GetInputMethodLongName(desc));
@@ -302,11 +268,6 @@ TEST_F(InputMethodUtilTest, GetInputMethodLongNameTest) {
EXPECT_EQ(ASCIIToUTF16("German - Belgian"),
util_.GetInputMethodLongName(desc));
}
- {
- InputMethodDescriptor desc = GetDesc("m17n:hi:itrans", "us", "hi", "");
- EXPECT_EQ(ASCIIToUTF16("Hindi - Standard input method"),
- util_.GetInputMethodLongName(desc));
- }
{
InputMethodDescriptor desc = GetDesc("invalid-id", "us", "xx", "");
@@ -319,13 +280,13 @@ TEST_F(InputMethodUtilTest, GetInputMethodLongNameTest) {
TEST_F(InputMethodUtilTest, TestIsValidInputMethodId) {
EXPECT_TRUE(util_.IsValidInputMethodId(Id("xkb:us:colemak:eng")));
- EXPECT_TRUE(util_.IsValidInputMethodId(pinyin_ime_id));
+ EXPECT_TRUE(util_.IsValidInputMethodId(Id(pinyin_ime_id)));
EXPECT_FALSE(util_.IsValidInputMethodId("unsupported-input-method"));
}
TEST_F(InputMethodUtilTest, TestIsKeyboardLayout) {
EXPECT_TRUE(InputMethodUtil::IsKeyboardLayout("xkb:us::eng"));
- EXPECT_FALSE(InputMethodUtil::IsKeyboardLayout(pinyin_ime_id));
+ EXPECT_FALSE(InputMethodUtil::IsKeyboardLayout(Id(pinyin_ime_id)));
}
TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) {
@@ -333,7 +294,7 @@ TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) {
EXPECT_EQ("", util_.GetKeyboardLayoutName("UNSUPPORTED_ID"));
// Supported cases (samples).
- EXPECT_EQ("us", util_.GetKeyboardLayoutName(pinyin_ime_id));
+ EXPECT_EQ("us", util_.GetKeyboardLayoutName(Id(pinyin_ime_id)));
EXPECT_EQ("es", util_.GetKeyboardLayoutName(Id("xkb:es::spa")));
EXPECT_EQ("es(cat)", util_.GetKeyboardLayoutName(Id("xkb:es:cat:cat")));
EXPECT_EQ("gb(extd)", util_.GetKeyboardLayoutName(Id("xkb:gb:extd:eng")));
@@ -346,7 +307,7 @@ TEST_F(InputMethodUtilTest, TestGetKeyboardLayoutName) {
TEST_F(InputMethodUtilTest, TestGetLanguageCodeFromInputMethodId) {
// Make sure that the -CN is added properly.
- EXPECT_EQ("zh-CN", util_.GetLanguageCodeFromInputMethodId(pinyin_ime_id));
+ EXPECT_EQ("zh-CN", util_.GetLanguageCodeFromInputMethodId(Id(pinyin_ime_id)));
}
TEST_F(InputMethodUtilTest, TestGetInputMethodDisplayNameFromId) {
@@ -359,9 +320,9 @@ TEST_F(InputMethodUtilTest, TestGetInputMethodDescriptorFromId) {
EXPECT_EQ(NULL, util_.GetInputMethodDescriptorFromId("non_existent"));
const InputMethodDescriptor* descriptor =
- util_.GetInputMethodDescriptorFromId(pinyin_ime_id);
+ util_.GetInputMethodDescriptorFromId(Id(pinyin_ime_id));
ASSERT_TRUE(NULL != descriptor); // ASSERT_NE doesn't compile.
- EXPECT_EQ(pinyin_ime_id, descriptor->id());
+ EXPECT_EQ(Id(pinyin_ime_id), descriptor->id());
EXPECT_EQ("us", descriptor->GetPreferredKeyboardLayout());
// This used to be "zh" but now we have "zh-CN" in input_methods.h,
// hence this should be zh-CN now.
@@ -420,7 +381,7 @@ TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Zh) {
util_.GetFirstLoginInputMethodIds("zh-CN", *descriptor, &input_method_ids);
ASSERT_EQ(2U, input_method_ids.size());
EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
- EXPECT_EQ(pinyin_ime_id, input_method_ids[1]); // Pinyin for US keybaord.
+ EXPECT_EQ(Id(pinyin_ime_id), input_method_ids[1]); // Pinyin for US keybaord.
}
// US keyboard + Russian UI = US keyboard + Russsian keyboard
@@ -444,7 +405,7 @@ TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_ZhTw) {
util_.GetFirstLoginInputMethodIds("zh-TW", *descriptor, &input_method_ids);
ASSERT_EQ(2U, input_method_ids.size());
EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
- EXPECT_EQ(zhuyin_ime_id, input_method_ids[1]); // Chewing.
+ EXPECT_EQ(Id(zhuyin_ime_id), input_method_ids[1]); // Chewing.
}
// US keyboard + Thai = US keyboard + kesmanee.
@@ -456,8 +417,7 @@ TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Th) {
util_.GetFirstLoginInputMethodIds("th", *descriptor, &input_method_ids);
ASSERT_EQ(2U, input_method_ids.size());
EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
- EXPECT_EQ(std::string("_comp_ime_") + kKeyboardExtId + "vkd_th",
- input_method_ids[1]); // Kesmanee.
+ EXPECT_EQ(Id("vkd_th"), input_method_ids[1]); // Kesmanee.
}
// US keyboard + Vietnamese = US keyboard + TCVN6064.
@@ -469,15 +429,14 @@ TEST_F(InputMethodUtilTest, TestGetFirstLoginInputMethodIds_Us_And_Vi) {
util_.GetFirstLoginInputMethodIds("vi", *descriptor, &input_method_ids);
ASSERT_EQ(2U, input_method_ids.size());
EXPECT_EQ(Id("xkb:us::eng"), input_method_ids[0]);
- EXPECT_EQ(std::string("_comp_ime_") + kKeyboardExtId + "vkd_vi_tcvn",
- input_method_ids[1]); // TCVN6064.
+ EXPECT_EQ(Id("vkd_vi_tcvn"), input_method_ids[1]); // TCVN6064.
}
TEST_F(InputMethodUtilTest, TestGetLanguageCodesFromInputMethodIds) {
std::vector<std::string> input_method_ids;
input_method_ids.push_back(Id("xkb:us::eng")); // English US.
input_method_ids.push_back(Id("xkb:us:dvorak:eng")); // English US Dvorak.
- input_method_ids.push_back(pinyin_ime_id); // Pinyin
+ input_method_ids.push_back(Id(pinyin_ime_id)); // Pinyin
input_method_ids.push_back(Id("xkb:fr::fra")); // French France.
std::vector<std::string> language_codes;
util_.GetLanguageCodesFromInputMethodIds(input_method_ids, &language_codes);
diff --git a/chrome/browser/chromeos/input_method/mode_indicator_browsertest.cc b/chrome/browser/chromeos/input_method/mode_indicator_browsertest.cc
index b8bf3b4..e047731 100644
--- a/chrome/browser/chromeos/input_method/mode_indicator_browsertest.cc
+++ b/chrome/browser/chromeos/input_method/mode_indicator_browsertest.cc
@@ -133,7 +133,7 @@ IN_PROC_BROWSER_TEST_F(ModeIndicatorBrowserTest, Bounds) {
std::vector<std::string> keyboard_layouts;
keyboard_layouts.push_back(
- extension_ime_util::GetInputMethodIDByKeyboardLayout("xkb:fr::fra"));
+ extension_ime_util::GetInputMethodIDByEngineID("xkb:fr::fra"));
// Add keyboard layouts to enable the mode indicator.
imm->EnableLoginLayouts("fr", keyboard_layouts);
@@ -201,7 +201,7 @@ IN_PROC_BROWSER_TEST_F(ModeIndicatorBrowserTest, NumOfWidgets) {
std::vector<std::string> keyboard_layouts;
keyboard_layouts.push_back(
- extension_ime_util::GetInputMethodIDByKeyboardLayout("xkb:fr::fra"));
+ extension_ime_util::GetInputMethodIDByEngineID("xkb:fr::fra"));
// Add keyboard layouts to enable the mode indicator.
imm->EnableLoginLayouts("fr", keyboard_layouts);
diff --git a/chrome/browser/chromeos/login/oobe_localization_browsertest.cc b/chrome/browser/chromeos/login/oobe_localization_browsertest.cc
index c9007eb..f680218 100644
--- a/chrome/browser/chromeos/login/oobe_localization_browsertest.cc
+++ b/chrome/browser/chromeos/login/oobe_localization_browsertest.cc
@@ -223,14 +223,12 @@ std::string OobeLocalizationTest::DumpOptions(const char* select_id) {
std::string TranslateXKB2Extension(const std::string& src) {
std::string result(src);
- if (!extension_ime_util::UseWrappedExtensionKeyboardLayouts())
- return result;
// Modifies the expected keyboard select control options for the new
// extension based xkb id.
size_t pos = 0;
std::string repl_old = "xkb:";
std::string repl_new =
- extension_ime_util::GetInputMethodIDByKeyboardLayout("xkb:");
+ extension_ime_util::GetInputMethodIDByEngineID("xkb:");
while ((pos = result.find(repl_old, pos)) != std::string::npos) {
result.replace(pos, repl_old.length(), repl_new);
pos += repl_new.length();
@@ -285,7 +283,7 @@ void OobeLocalizationTest::RunLocalizationTest(
// Make sure we have a fallback keyboard.
if (!VerifyOptionExists(kKeyboardSelect,
- extension_ime_util::GetInputMethodIDByKeyboardLayout(
+ extension_ime_util::GetInputMethodIDByEngineID(
kUSLayout).c_str())) {
LOG(ERROR) << "Actual value of " << kKeyboardSelect << ":\n"
<< DumpOptions(kKeyboardSelect);
diff --git a/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
index 15939c5..e19d547 100644
--- a/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
@@ -53,8 +53,6 @@ const char kJsApiNetworkOnLanguageChanged[] = "networkOnLanguageChanged";
const char kJsApiNetworkOnInputMethodChanged[] = "networkOnInputMethodChanged";
const char kJsApiNetworkOnTimezoneChanged[] = "networkOnTimezoneChanged";
-const char kUSLayout[] = "xkb:us::eng";
-
const int kDerelectDetectionTimeoutSeconds = 8 * 60 * 60; // 8 hours.
const int kDerelectIdleTimeoutSeconds = 5 * 60; // 5 minutes.
const int kOobeTimerUpdateIntervalSeconds = 5 * 60; // 5 minutes.
@@ -450,12 +448,8 @@ base::ListValue* NetworkScreenHandler::GetLanguageList() {
ComponentExtensionIMEManager* comp_manager =
manager->GetComponentExtensionIMEManager();
input_method::InputMethodDescriptors descriptors;
- if (extension_ime_util::UseWrappedExtensionKeyboardLayouts()) {
- if (comp_manager->IsInitialized())
- descriptors = comp_manager->GetXkbIMEAsInputMethodDescriptor();
- } else {
- descriptors = *(manager->GetSupportedInputMethods());
- }
+ if (comp_manager->IsInitialized())
+ descriptors = comp_manager->GetXkbIMEAsInputMethodDescriptor();
base::ListValue* languages_list =
options::CrosLanguageOptionsHandler::GetUILanguageList(descriptors);
for (size_t i = 0; i < languages_list->GetSize(); ++i) {
@@ -538,16 +532,14 @@ base::ListValue* NetworkScreenHandler::GetInputMethods() {
input_method::InputMethodManager* manager =
input_method::InputMethodManager::Get();
input_method::InputMethodUtil* util = manager->GetInputMethodUtil();
- if (extension_ime_util::UseWrappedExtensionKeyboardLayouts()) {
- ComponentExtensionIMEManager* comp_manager =
- manager->GetComponentExtensionIMEManager();
- if (!comp_manager->IsInitialized()) {
- input_method::InputMethodDescriptor fallback =
- util->GetFallbackInputMethodDescriptor();
- input_methods_list->Append(
- CreateInputMethodsEntry(fallback, fallback.id()));
- return input_methods_list;
- }
+ ComponentExtensionIMEManager* comp_manager =
+ manager->GetComponentExtensionIMEManager();
+ if (!comp_manager->IsInitialized()) {
+ input_method::InputMethodDescriptor fallback =
+ util->GetFallbackInputMethodDescriptor();
+ input_methods_list->Append(
+ CreateInputMethodsEntry(fallback, fallback.id()));
+ return input_methods_list;
}
const std::vector<std::string>& hardware_login_input_methods =
@@ -590,8 +582,8 @@ base::ListValue* NetworkScreenHandler::GetInputMethods() {
CreateInputMethodsEntry((*input_methods)[i], current_input_method_id));
}
// "xkb:us::eng" should always be in the list of available layouts.
- const std::string& us_keyboard_id =
- extension_ime_util::GetInputMethodIDByKeyboardLayout(kUSLayout);
+ const std::string us_keyboard_id =
+ util->GetFallbackInputMethodDescriptor().id();
if (input_methods_added.find(us_keyboard_id) == input_methods_added.end()) {
const input_method::InputMethodDescriptor* us_eng_descriptor =
util->GetInputMethodDescriptorFromId(us_keyboard_id);
diff --git a/chromeos/ime/extension_ime_util.cc b/chromeos/ime/extension_ime_util.cc
index 9a1ee88..474622d 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
diff --git a/chromeos/ime/extension_ime_util.h b/chromeos/ime/extension_ime_util.h
index e663229..2bfc42b 100644
--- a/chromeos/ime/extension_ime_util.h
+++ b/chromeos/ime/extension_ime_util.h
@@ -15,6 +15,26 @@ namespace chromeos {
// Extension IME related utilities.
namespace extension_ime_util {
+#if defined(OFFICIAL_BUILD)
+const char kXkbExtensionId[] = "jkghodnilhceideoidjikpgommlajknk";
+const char kM17nExtensionId[] = "habcdindjejkmepknlhkkloncjcpcnbf";
+const char kHangulExtensionId[] = "bdgdidmhaijohebebipajioienkglgfo";
+const char kMozcExtensionId[] = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+const char kT13nExtensionId[] = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+const char kChinesePinyinExtensionId[] = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+const char kChineseZhuyinExtensionId[] = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+const char kChineseCangjieExtensionId[] = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+#else
+const char kXkbExtensionId[] = "fgoepimhcoialccpbmpnnblemnepkkao";
+const char kM17nExtensionId[] = "jhffeifommiaekmbkkjlpmilogcfdohp";
+const char kHangulExtensionId[] = "bdgdidmhaijohebebipajioienkglgfo";
+const char kMozcExtensionId[] = "bbaiamgfapehflhememkfglaehiobjnk";
+const char kT13nExtensionId[] = "gjaehgfemfahhmlgpdfknkhdnemmolop";
+const char kChinesePinyinExtensionId[] = "cpgalbafkoofkjmaeonnfijgpfennjjn";
+const char kChineseZhuyinExtensionId[] = "ekbifjdfhkmdeeajnolmgdlmkllopefi";
+const char kChineseCangjieExtensionId[] = "aeebooiibjahgpgmhkeocbeekccfknbj";
+#endif
+
// Returns InputMethodID for |engine_id| in |extension_id| of extension IME.
// This function does not check |extension_id| is installed extension IME nor
// |engine_id| is really a member of |extension_id|.
@@ -33,9 +53,12 @@ std::string CHROMEOS_EXPORT GetComponentInputMethodID(
std::string CHROMEOS_EXPORT GetExtensionIDFromInputMethodID(
const std::string& input_method_id);
-// Returns InputMethodID from keyboard layout (xkb) id (e.g. xkb:fr:fra).
-std::string CHROMEOS_EXPORT GetInputMethodIDByKeyboardLayout(
- const std::string& keyboard_layout_id);
+// Returns InputMethodID from engine id (e.g. xkb:fr:fra), or returns itself if
+// the |engine_id| is not a known engine id.
+// The caller must make sure the |engine_id| is from system input methods
+// instead of 3rd party input methods.
+std::string CHROMEOS_EXPORT GetInputMethodIDByEngineID(
+ const std::string& engine_id);
// Returns true if |input_method_id| is extension IME ID. This function does not
// check |input_method_id| is installed extension IME.
@@ -58,27 +81,12 @@ bool CHROMEOS_EXPORT IsMemberOfExtension(const std::string& input_method_id,
bool CHROMEOS_EXPORT IsKeyboardLayoutExtension(
const std::string& input_method_id);
-// Returns true to use the wrapped extension keyboards instead of the legacy
-// xkb keyboards, returns false otherwise.
-bool CHROMEOS_EXPORT UseWrappedExtensionKeyboardLayouts();
-
// Gets legacy xkb id (e.g. xkb:us::eng) from the new extension based xkb id
// (e.g. _comp_ime_...xkb:us::eng). If the given id is not prefixed with
// 'xkb:', just return the same as the given id.
std::string CHROMEOS_EXPORT MaybeGetLegacyXkbId(
const std::string& input_method_id);
-// The scoped class to temporarily set the flag to use extension based xkb
-// keyboards for testing.
-class CHROMEOS_EXPORT ScopedUseExtensionKeyboardFlagForTesting {
- public:
- explicit ScopedUseExtensionKeyboardFlagForTesting(bool new_flag);
- ~ScopedUseExtensionKeyboardFlagForTesting();
-
- private:
- base::AutoReset<bool> auto_reset_;
-};
-
} // namespace extension_ime_util
} // namespace chromeos