| Index: chrome/browser/extensions/api/input_ime/input_ime_api.cc
|
| diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api.cc b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
|
| index 4b7644162fe3ab66b04044ac9e751992be522fcf..ec6f73693274e5e3d62e3e2faff4de753ecffbc0 100644
|
| --- a/chrome/browser/extensions/api/input_ime/input_ime_api.cc
|
| +++ b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
|
| @@ -315,8 +315,6 @@ InputImeEventRouter::GetInstance() {
|
| return Singleton<InputImeEventRouter>::get();
|
| }
|
|
|
| -void InputImeEventRouter::Init() {}
|
| -
|
| #if defined(OS_CHROMEOS)
|
| bool InputImeEventRouter::RegisterIme(
|
| Profile* profile,
|
| @@ -837,4 +835,46 @@ bool KeyEventHandled::RunImpl() {
|
| }
|
| #endif
|
|
|
| +InputImeAPI::InputImeAPI(Profile* profile)
|
| + : profile_(profile) {
|
| + registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
|
| + content::Source<Profile>(profile));
|
| + registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
|
| + content::Source<Profile>(profile));
|
| +}
|
| +
|
| +InputImeAPI::~InputImeAPI() {
|
| +}
|
| +
|
| +void InputImeAPI::Shutdown() {
|
| +}
|
| +
|
| +InputImeEventRouter* InputImeAPI::input_ime_event_router() {
|
| + return InputImeEventRouter::GetInstance();
|
| +}
|
| +
|
| +void InputImeAPI::Observe(int type,
|
| + const content::NotificationSource& source,
|
| + const content::NotificationDetails& details) {
|
| + if (type == chrome::NOTIFICATION_EXTENSION_LOADED) {
|
| + const Extension* extension =
|
| + content::Details<const Extension>(details).ptr();
|
| + 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) {
|
| + input_ime_event_router()->RegisterIme(
|
| + profile_, extension->id(), *component);
|
| + }
|
| + }
|
| + } else if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED) {
|
| + const Extension* extension =
|
| + content::Details<const UnloadedExtensionInfo>(details)->extension;
|
| + if (extension->input_components().size() > 0) {
|
| + input_ime_event_router()->UnregisterAllImes(profile_, extension->id());
|
| + }
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|