summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authornona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-16 11:51:25 +0000
committernona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-16 11:51:25 +0000
commit165dad97b056d560f3c98d01dbe2d3ebe643ca2a (patch)
tree0893b2faefecee39c9cd047e3d9500d2c69d0970 /chromeos
parentf3d079c174a7d17594638e8acbf5fb4cca9c060c (diff)
downloadchromium_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.cc1
-rw-r--r--chromeos/ime/component_extension_ime_manager.h2
-rw-r--r--chromeos/ime/component_extension_ime_manager_unittest.cc20
-rw-r--r--chromeos/ime/input_method_descriptor.cc15
-rw-r--r--chromeos/ime/input_method_descriptor.h7
-rw-r--r--chromeos/ime/input_method_descriptor_unittest.cc1
-rw-r--r--chromeos/ime/input_method_whitelist.cc1
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();