Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5615)

Unified Diff: chrome/browser/chromeos/input_method/component_extension_ime_manager_impl.cc

Issue 13459008: Support options page handling into ComponentExtensionManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix constructors. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698