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 @@
#include "chrome/browser/chromeos/input_method/input_method_configuration.h"
#include "base/bind.h"
#include "base/chromeos/chromeos_version.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.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_manager_impl.h"
#include "chrome/browser/chromeos/input_method/input_method_persistence.h"
#include "chromeos/ime/ibus_bridge.h"
namespace chromeos {
namespace input_method {
......@@ -31,6 +33,14 @@ void OnSessionStateChange(InputMethodManagerImpl* input_method_manager_impl,
void Initialize() {
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(
scoped_ptr<InputMethodDelegate>(new InputMethodDelegateImpl));
impl->Init();
......@@ -59,6 +69,11 @@ void Shutdown() {
delete g_input_method_manager;
g_input_method_manager = NULL;
if (IBusBridge::Get()) {
// TODO(nona): Remove this condition when ibus-daemon is gone.
IBusBridge::Shutdown();
}
DVLOG(1) << "InputMethodManager shutdown";
}
......
......@@ -99,8 +99,6 @@ void IBusBridge::Shutdown() {
// static.
IBusBridge* IBusBridge::Get() {
CHECK(g_ibus_bridge)
<< "IBusBrige::Get() called before Initialized() or after Shutdown().";
return g_ibus_bridge;
}
......
......@@ -7,6 +7,7 @@
#include <string>
#include "base/basictypes.h"
#include "chromeos/chromeos_export.h"
namespace chromeos {
class IBusInputContextHandlerInterface;
......@@ -24,13 +25,13 @@ class IBusBridge {
virtual ~IBusBridge();
// Allocates the global instance. Must be called before any calls to Get().
static void Initialize();
static CHROMEOS_EXPORT void Initialize();
// Releases the global instance.
static void Shutdown();
static CHROMEOS_EXPORT void Shutdown();
// 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
// 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