| Index: chrome/common/extensions/api/input_ime/input_components_handler.cc
|
| diff --git a/chrome/common/extensions/api/input_ime/input_components_handler.cc b/chrome/common/extensions/api/input_ime/input_components_handler.cc
|
| index 67a1c95d9374a1ea12016d6fabf22f14814d0cf0..2fe6bf006708e8bc847a6fbb9b67cdbf23f3f8af 100644
|
| --- a/chrome/common/extensions/api/input_ime/input_components_handler.cc
|
| +++ b/chrome/common/extensions/api/input_ime/input_components_handler.cc
|
| @@ -64,6 +64,7 @@ bool InputComponentsHandler::Parse(Extension* extension,
|
| std::set<std::string> layouts;
|
| std::string shortcut_keycode_str;
|
| GURL input_view_url;
|
| + GURL options_page_url;
|
| bool shortcut_alt = false;
|
| bool shortcut_ctrl = false;
|
| bool shortcut_shift = false;
|
| @@ -194,6 +195,22 @@ bool InputComponentsHandler::Parse(Extension* extension,
|
| }
|
| }
|
|
|
| + // Get input_components[i].options_page_url.
|
| + // Note: 'options_page' is optional in manifest.
|
| + std::string options_page_str;
|
| + if (module_value->GetString(keys::kImeOptionsPage, &options_page_str)) {
|
| + options_page_url = extension->GetResourceURL(options_page_str);
|
| + if (!options_page_url.is_valid()) {
|
| + *error = ErrorUtils::FormatErrorMessageUTF16(
|
| + errors::kInvalidOptionsPage,
|
| + base::IntToString(i));
|
| + return false;
|
| + }
|
| + } else {
|
| + // Fall back to extension's options page for backward compatibility.
|
| + options_page_url = extensions::ManifestURL::GetOptionsPage(extension);
|
| + }
|
| +
|
| info->input_components.push_back(InputComponentInfo());
|
| info->input_components.back().name = name_str;
|
| info->input_components.back().type = type;
|
| @@ -206,8 +223,7 @@ bool InputComponentsHandler::Parse(Extension* extension,
|
| info->input_components.back().shortcut_alt = shortcut_alt;
|
| info->input_components.back().shortcut_ctrl = shortcut_ctrl;
|
| info->input_components.back().shortcut_shift = shortcut_shift;
|
| - info->input_components.back().options_page_url =
|
| - extensions::ManifestURL::GetOptionsPage(extension);
|
| + info->input_components.back().options_page_url = options_page_url;
|
| info->input_components.back().input_view_url = input_view_url;
|
| }
|
| extension->SetManifestData(keys::kInputComponents, info.release());
|
|
|