diff options
author | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-16 11:51:25 +0000 |
---|---|---|
committer | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-16 11:51:25 +0000 |
commit | 165dad97b056d560f3c98d01dbe2d3ebe643ca2a (patch) | |
tree | 0893b2faefecee39c9cd047e3d9500d2c69d0970 /chromeos | |
parent | f3d079c174a7d17594638e8acbf5fb4cca9c060c (diff) | |
download | chromium_src-165dad97b056d560f3c98d01dbe2d3ebe643ca2a.zip chromium_src-165dad97b056d560f3c98d01dbe2d3ebe643ca2a.tar.gz chromium_src-165dad97b056d560f3c98d01dbe2d3ebe643ca2a.tar.bz2 |
Support options page handling into ComponentExtensionManager.
Let me split UI change for chrome://settings/languages page.
BUG=226922
TEST=ran chromeos_unittests
Review URL: https://codereview.chromium.org/13459008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194346 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r-- | chromeos/ime/component_extension_ime_manager.cc | 1 | ||||
-rw-r--r-- | chromeos/ime/component_extension_ime_manager.h | 2 | ||||
-rw-r--r-- | chromeos/ime/component_extension_ime_manager_unittest.cc | 20 | ||||
-rw-r--r-- | chromeos/ime/input_method_descriptor.cc | 15 | ||||
-rw-r--r-- | chromeos/ime/input_method_descriptor.h | 7 | ||||
-rw-r--r-- | chromeos/ime/input_method_descriptor_unittest.cc | 1 | ||||
-rw-r--r-- | chromeos/ime/input_method_whitelist.cc | 1 |
7 files changed, 24 insertions, 23 deletions
diff --git a/chromeos/ime/component_extension_ime_manager.cc b/chromeos/ime/component_extension_ime_manager.cc index e5af80d..90e5aa1 100644 --- a/chromeos/ime/component_extension_ime_manager.cc +++ b/chromeos/ime/component_extension_ime_manager.cc @@ -145,6 +145,7 @@ input_method::InputMethodDescriptors component_extension_imes_[i].engines[j].display_name, component_extension_imes_[i].engines[j].layout, component_extension_imes_[i].engines[j].language_code, + component_extension_imes_[i].options_page_url, false)); } } diff --git a/chromeos/ime/component_extension_ime_manager.h b/chromeos/ime/component_extension_ime_manager.h index bf83bde..b8dee570 100644 --- a/chromeos/ime/component_extension_ime_manager.h +++ b/chromeos/ime/component_extension_ime_manager.h @@ -15,12 +15,14 @@ namespace chromeos { // Represents a component extension IME. +// TODO(nona): Use GURL for |option_page_url| instead of string. struct CHROMEOS_EXPORT ComponentExtensionIME { ComponentExtensionIME(); ~ComponentExtensionIME(); std::string id; // extension id. std::string manifest; // the contents of manifest.json std::string description; // description of extension. + std::string options_page_url; // We can't use GURL due to deps restriction. base::FilePath path; std::vector<IBusComponent::EngineDescription> engines; }; diff --git a/chromeos/ime/component_extension_ime_manager_unittest.cc b/chromeos/ime/component_extension_ime_manager_unittest.cc index 1b7f364..65065f5 100644 --- a/chromeos/ime/component_extension_ime_manager_unittest.cc +++ b/chromeos/ime/component_extension_ime_manager_unittest.cc @@ -34,6 +34,7 @@ class ComponentExtensionIMEManagerTest : ComponentExtensionIME ext1; ext1.id = "ext1_id"; ext1.description = "ext1_description"; + ext1.options_page_url = "chrome-extension://" + ext1.id + "/options.html"; ext1.path = base::FilePath("ext1_file_path"); IBusComponent::EngineDescription ext1_engine1; @@ -90,6 +91,7 @@ class ComponentExtensionIMEManagerTest : ComponentExtensionIME ext3; ext3.id = "ext3_id"; ext3.description = "ext3_description"; + ext1.options_page_url = "chrome-extension://" + ext3.id + "/options.html"; ext3.path = base::FilePath("ext3_file_path"); IBusComponent::EngineDescription ext3_engine1; @@ -251,24 +253,6 @@ TEST_F(ComponentExtensionIMEManagerTest, GetAllIMEAsInputMethodDescriptor) { EXPECT_EQ(total_ime_size, descriptors.size()); } -TEST_F(ComponentExtensionIMEManagerTest, GetComponentExtensionIMEId) { - const char kExtensionID[] = "extension_id"; - const char kEngineID[] = "engine_id"; - const std::string ime_id = - TestableComponentExtensionIMEManager::GetComponentExtensionIMEId( - kExtensionID, kEngineID); - - EXPECT_TRUE(ComponentExtensionIMEManager::IsComponentExtensionIMEId( - ime_id)); - EXPECT_FALSE(ComponentExtensionIMEManager::IsComponentExtensionIMEId("mozc")); - EXPECT_FALSE(ComponentExtensionIMEManager::IsComponentExtensionIMEId( - extension_ime_util::GetInputMethodID(kExtensionID, kEngineID))); - EXPECT_FALSE(ComponentExtensionIMEManager::IsComponentExtensionIMEId( - extension_ime_util::GetInputMethodID(kExtensionID, "mozc"))); - EXPECT_FALSE(ComponentExtensionIMEManager::IsComponentExtensionIMEId( - extension_ime_util::GetInputMethodID("ext-id", kEngineID))); -} - } // namespace } // namespace input_method diff --git a/chromeos/ime/input_method_descriptor.cc b/chromeos/ime/input_method_descriptor.cc index 4ded598..3ed8da3 100644 --- a/chromeos/ime/input_method_descriptor.cc +++ b/chromeos/ime/input_method_descriptor.cc @@ -16,15 +16,18 @@ namespace { const char kFallbackLayout[] = "us"; } // namespace -InputMethodDescriptor::InputMethodDescriptor(const std::string& id, - const std::string& name, - const std::string& keyboard_layout, - const std::string& language_code, - bool third_party) +InputMethodDescriptor::InputMethodDescriptor( + const std::string& id, + const std::string& name, + const std::string& keyboard_layout, + const std::string& language_code, + const std::string& options_page_url, + bool third_party) : id_(id), name_(name), keyboard_layout_(keyboard_layout), language_code_(language_code), + options_page_url_(options_page_url), third_party_(third_party) { } @@ -51,6 +54,7 @@ InputMethodDescriptor::GetFallbackInputMethodDescriptor() { "", kFallbackLayout, "en-US", + "", // options page, not available. false); } @@ -60,6 +64,7 @@ std::string InputMethodDescriptor::ToString() const { << ", name=" << name() << ", keyboard_layout=" << keyboard_layout() << ", language_code=" << language_code() + << ", options_page_url=" << options_page_url() << ", third_party=" << third_party(); return stream.str(); } diff --git a/chromeos/ime/input_method_descriptor.h b/chromeos/ime/input_method_descriptor.h index 53a92a9..3717411 100644 --- a/chromeos/ime/input_method_descriptor.h +++ b/chromeos/ime/input_method_descriptor.h @@ -24,6 +24,7 @@ class CHROMEOS_EXPORT InputMethodDescriptor { const std::string& name, const std::string& keyboard_layout, const std::string& language_code, + const std::string& options_page_url, bool third_party); ~InputMethodDescriptor(); @@ -37,6 +38,7 @@ class CHROMEOS_EXPORT InputMethodDescriptor { const std::string& name() const { return name_; } const std::string& keyboard_layout() const { return keyboard_layout_; } const std::string& language_code() const { return language_code_; } + const std::string& options_page_url() const { return options_page_url_; } bool third_party() const { return third_party_; } // Returns the fallback input method descriptor (the very basic US @@ -56,6 +58,11 @@ class CHROMEOS_EXPORT InputMethodDescriptor { std::string keyboard_layout_; // Language code like "ko", "ja", "en-US", and "zh-CN". std::string language_code_; + // Options page URL e.g. + // "chrome-extension://ceaajjmckiakobniehbjpdcidfpohlin/options.html". + // We can't use GURL here due to dependency policy. This field is valid only + // for input method extension. + std::string options_page_url_; // Indicates if this is a third party ime bool third_party_; }; diff --git a/chromeos/ime/input_method_descriptor_unittest.cc b/chromeos/ime/input_method_descriptor_unittest.cc index 0b22eb9..9b77f2b 100644 --- a/chromeos/ime/input_method_descriptor_unittest.cc +++ b/chromeos/ime/input_method_descriptor_unittest.cc @@ -24,6 +24,7 @@ class InputMethodDescriptorTest : public testing::Test { "", // name "us", "language_code", + "", false); } }; diff --git a/chromeos/ime/input_method_whitelist.cc b/chromeos/ime/input_method_whitelist.cc index ba0b7b8..873948a 100644 --- a/chromeos/ime/input_method_whitelist.cc +++ b/chromeos/ime/input_method_whitelist.cc @@ -36,6 +36,7 @@ InputMethodWhitelist::GetSupportedInputMethods() const { "", kInputMethods[i].xkb_layout_id, kInputMethods[i].language_code, + "", // options page url, not available for non-extension input method. false)); } return input_methods.Pass(); |