| Index: chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc
|
| 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 f43c208e7de9b4b3c9033065fd8430eecbc20de0..0b607b1b433e0f211230f08410525b107374a3fa 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
|
| @@ -11,6 +11,7 @@
|
| #include "chrome/browser/extensions/extension_system.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| +#include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_file_util.h"
|
| #include "chrome/common/extensions/extension_l10n_util.h"
|
| #include "chrome/common/extensions/extension_manifest_constants.h"
|
| @@ -152,12 +153,22 @@ bool ComponentExtensionIMEManagerImpl::ReadEngineComponent(
|
| // static
|
| bool ComponentExtensionIMEManagerImpl::ReadExtensionInfo(
|
| const DictionaryValue& manifest,
|
| + const std::string& extension_id,
|
| ComponentExtensionIME* out) {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE));
|
| if (!manifest.GetString(extension_manifest_keys::kDescription,
|
| &out->description))
|
| return false;
|
| - // TODO(nona): option page handling.
|
| + std::string url_string;
|
| + if (!manifest.GetString(extension_manifest_keys::kOptionsPage, &url_string))
|
| + return true; // It's okay to return true on no option page case.
|
| +
|
| + GURL url = extensions::Extension::GetResourceURL(
|
| + extensions::Extension::GetBaseURLFromExtensionId(extension_id),
|
| + url_string);
|
| + if (!url.is_valid())
|
| + return false;
|
| + out->options_page_url = url.spec();
|
| return true;
|
| }
|
|
|
| @@ -185,7 +196,9 @@ void ComponentExtensionIMEManagerImpl::ReadComponentExtensionsInfo(
|
| if (!manifest.get())
|
| continue;
|
|
|
| - if (!ReadExtensionInfo(*manifest.get(), &component_ime))
|
| + if (!ReadExtensionInfo(*manifest.get(),
|
| + whitelisted_component_extension[i].id,
|
| + &component_ime))
|
| continue;
|
| component_ime.id = whitelisted_component_extension[i].id;
|
|
|
|
|