Add the handlers for the IME extension API.
BUG=chromium-os:16090
TEST=None
Review URL: http://codereview.chromium.org/7351010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95052 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 336e6585..7d491513 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -34,6 +34,7 @@
#include "chrome/browser/extensions/extension_error_reporter.h"
#include "chrome/browser/extensions/extension_history_api.h"
#include "chrome/browser/extensions/extension_host.h"
+#include "chrome/browser/extensions/extension_input_ime_api.h"
#include "chrome/browser/extensions/extension_install_ui.h"
#include "chrome/browser/extensions/extension_management_api.h"
#include "chrome/browser/extensions/extension_preference_api.h"
@@ -86,16 +87,18 @@
#include "webkit/plugins/npapi/plugin_list.h"
#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/extensions/file_browser_event_router.h"
#include "chrome/browser/chromeos/extensions/input_method_event_router.h"
#include "chrome/browser/chromeos/extensions/media_player_event_router.h"
+#include "chrome/browser/chromeos/input_method/input_method_manager.h"
+#include "chrome/browser/extensions/extension_input_ime_api.h"
#include "webkit/fileapi/file_system_context.h"
#include "webkit/fileapi/file_system_mount_point_provider.h"
#include "webkit/fileapi/file_system_path_manager.h"
#endif
#if defined(OS_CHROMEOS) && defined(TOUCH_UI)
-#include "chrome/browser/chromeos/input_method/input_method_manager.h"
#include "chrome/browser/extensions/extension_input_ui_api.h"
#endif
@@ -679,6 +682,7 @@
chromeos::ExtensionInputMethodEventRouter::GetInstance();
ExtensionMediaPlayerEventRouter::GetInstance()->Init(profile_);
+ ExtensionInputImeEventRouter::GetInstance()->Init();
#endif
#if defined(OS_CHROMEOS) && defined(TOUCH_UI)
@@ -1437,13 +1441,20 @@
if (plugins_changed || nacl_modules_changed)
PluginService::GetInstance()->PurgePluginListCache(false);
-#if defined(OS_CHROMEOS) && defined(TOUCH_UI)
+#if defined(OS_CHROMEOS)
+#if defined(TOUCH_UI)
chromeos::input_method::InputMethodManager* input_method_manager =
chromeos::input_method::InputMethodManager::GetInstance();
+#endif
for (std::vector<Extension::InputComponentInfo>::const_iterator component =
extension->input_components().begin();
component != extension->input_components().end();
++component) {
+ if (component->type == Extension::INPUT_COMPONENT_TYPE_IME) {
+ ExtensionInputImeEventRouter::GetInstance()->RegisterIme(
+ profile_, extension->id(), *component);
+ }
+#if defined(TOUCH_UI)
if (component->type == Extension::INPUT_COMPONENT_TYPE_VIRTUAL_KEYBOARD &&
!component->layouts.empty()) {
const bool is_system =
@@ -1452,6 +1463,7 @@
component->layouts,
is_system);
}
+#endif
}
#endif
}