summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_input_method_api.cc
diff options
context:
space:
mode:
authoryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-05 16:32:52 +0000
committeryusukes@chromium.org <yusukes@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-05 16:32:52 +0000
commit771a61858de4f2fdb386fc807354cd90c7e2f7da (patch)
tree6f800d7179a78d8c5962e318a81f3ae08e37c267 /chrome/browser/extensions/extension_input_method_api.cc
parent79ca49e4436fea5719dd53ba59eb78daf5ad9672 (diff)
downloadchromium_src-771a61858de4f2fdb386fc807354cd90c7e2f7da.zip
chromium_src-771a61858de4f2fdb386fc807354cd90c7e2f7da.tar.gz
chromium_src-771a61858de4f2fdb386fc807354cd90c7e2f7da.tar.bz2
Stop using ExtensionInputMethodEventRouter as a singleton.
This should be better since ~ExtensionInputMethodEventRouter depends on another singleton, InputMethodManager, and such dependency tend to cause a problem on shutdown. BUG=chromium-os:21283 TEST=trybot Review URL: http://codereview.chromium.org/7982052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104113 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_input_method_api.cc')
-rw-r--r--chrome/browser/extensions/extension_input_method_api.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/chrome/browser/extensions/extension_input_method_api.cc b/chrome/browser/extensions/extension_input_method_api.cc
index 60cec6e..cf2bbd2 100644
--- a/chrome/browser/extensions/extension_input_method_api.cc
+++ b/chrome/browser/extensions/extension_input_method_api.cc
@@ -7,6 +7,8 @@
#include "base/values.h"
#include "chrome/browser/chromeos/input_method/input_method_manager.h"
#include "chrome/browser/chromeos/extensions/input_method_event_router.h"
+#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/profiles/profile.h"
namespace {
@@ -21,16 +23,21 @@ GetInputMethodFunction::~GetInputMethodFunction() {
}
bool GetInputMethodFunction::RunImpl() {
- if (!chromeos::ExtensionInputMethodEventRouter::
- IsExtensionWhitelisted(extension_id())) {
+#if !defined(OS_CHROMEOS)
+ error_ = kErrorInputMethodPrivateApi;
+ return false;
+#else
+ chromeos::ExtensionInputMethodEventRouter* router =
+ profile_->GetExtensionService()->input_method_event_router();
+ if (!router->IsExtensionWhitelisted(extension_id())) {
error_ = kErrorInputMethodPrivateApi;
return false;
}
chromeos::input_method::InputMethodManager* manager =
chromeos::input_method::InputMethodManager::GetInstance();
- std::string input_method =
- chromeos::ExtensionInputMethodEventRouter::GetInputMethodForXkb(
- manager->current_input_method().id());
+ const std::string input_method =
+ router->GetInputMethodForXkb(manager->current_input_method().id());
result_.reset(Value::CreateStringValue(input_method));
return true;
+#endif
}