Commit 0ca00fca authored by nona@chromium.org's avatar nona@chromium.org

Calling IBusBridge::Initialize/Shutdown function.

Initialize/Shutdown IBusBridge on input method initialization/shutting down.

IBusBridge is only used for ChromeOS-Chrome on Desktop Linux.

BUG=170671
TEST=try bots.

Review URL: https://chromiumcodereview.appspot.com/12221045

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182098 0039d316-1c4b-4281-b951-d872f2087c98
parent bd8b0cb3
...@@ -5,12 +5,14 @@ ...@@ -5,12 +5,14 @@
#include "chrome/browser/chromeos/input_method/input_method_configuration.h" #include "chrome/browser/chromeos/input_method/input_method_configuration.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/chromeos/chromeos_version.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/input_method/browser_state_monitor.h" #include "chrome/browser/chromeos/input_method/browser_state_monitor.h"
#include "chrome/browser/chromeos/input_method/input_method_delegate_impl.h" #include "chrome/browser/chromeos/input_method/input_method_delegate_impl.h"
#include "chrome/browser/chromeos/input_method/input_method_manager_impl.h" #include "chrome/browser/chromeos/input_method/input_method_manager_impl.h"
#include "chrome/browser/chromeos/input_method/input_method_persistence.h" #include "chrome/browser/chromeos/input_method/input_method_persistence.h"
#include "chromeos/ime/ibus_bridge.h"
namespace chromeos { namespace chromeos {
namespace input_method { namespace input_method {
...@@ -31,6 +33,14 @@ void OnSessionStateChange(InputMethodManagerImpl* input_method_manager_impl, ...@@ -31,6 +33,14 @@ void OnSessionStateChange(InputMethodManagerImpl* input_method_manager_impl,
void Initialize() { void Initialize() {
DCHECK(!g_input_method_manager); DCHECK(!g_input_method_manager);
if (!base::chromeos::IsRunningOnChromeOS()) {
// IBusBridge is for ChromeOS on desktop Linux not for ChromeOS Devices or
// production at this moment.
// TODO(nona): Remove this condition when ibus-daemon is gone.
// (crbug.com/170671)
IBusBridge::Initialize();
}
InputMethodManagerImpl* impl = new InputMethodManagerImpl( InputMethodManagerImpl* impl = new InputMethodManagerImpl(
scoped_ptr<InputMethodDelegate>(new InputMethodDelegateImpl)); scoped_ptr<InputMethodDelegate>(new InputMethodDelegateImpl));
impl->Init(); impl->Init();
...@@ -59,6 +69,11 @@ void Shutdown() { ...@@ -59,6 +69,11 @@ void Shutdown() {
delete g_input_method_manager; delete g_input_method_manager;
g_input_method_manager = NULL; g_input_method_manager = NULL;
if (IBusBridge::Get()) {
// TODO(nona): Remove this condition when ibus-daemon is gone.
IBusBridge::Shutdown();
}
DVLOG(1) << "InputMethodManager shutdown"; DVLOG(1) << "InputMethodManager shutdown";
} }
......
...@@ -99,8 +99,6 @@ void IBusBridge::Shutdown() { ...@@ -99,8 +99,6 @@ void IBusBridge::Shutdown() {
// static. // static.
IBusBridge* IBusBridge::Get() { IBusBridge* IBusBridge::Get() {
CHECK(g_ibus_bridge)
<< "IBusBrige::Get() called before Initialized() or after Shutdown().";
return g_ibus_bridge; return g_ibus_bridge;
} }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <string> #include <string>
#include "base/basictypes.h" #include "base/basictypes.h"
#include "chromeos/chromeos_export.h"
namespace chromeos { namespace chromeos {
class IBusInputContextHandlerInterface; class IBusInputContextHandlerInterface;
...@@ -24,13 +25,13 @@ class IBusBridge { ...@@ -24,13 +25,13 @@ class IBusBridge {
virtual ~IBusBridge(); virtual ~IBusBridge();
// Allocates the global instance. Must be called before any calls to Get(). // Allocates the global instance. Must be called before any calls to Get().
static void Initialize(); static CHROMEOS_EXPORT void Initialize();
// Releases the global instance. // Releases the global instance.
static void Shutdown(); static CHROMEOS_EXPORT void Shutdown();
// Returns IBusBridge global instance. Initialize() must be called first. // Returns IBusBridge global instance. Initialize() must be called first.
static IBusBridge* Get(); static CHROMEOS_EXPORT IBusBridge* Get();
// Returns current InputContextHandler. This function returns NULL if input // Returns current InputContextHandler. This function returns NULL if input
// context is not ready to use. // context is not ready to use.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment