| Index: chrome/browser/chromeos/input_method/ibus_controller_impl.h
|
| diff --git a/chrome/browser/chromeos/input_method/ibus_controller_impl.h b/chrome/browser/chromeos/input_method/ibus_controller_impl.h
|
| index 97de94269287b74c069f11cafb0199567b7852c4..157fddd132cb4e3ecf64890b1374e0dbeb13a4d0 100644
|
| --- a/chrome/browser/chromeos/input_method/ibus_controller_impl.h
|
| +++ b/chrome/browser/chromeos/input_method/ibus_controller_impl.h
|
| @@ -60,7 +60,17 @@ class IBusControllerImpl : public IBusControllerBase {
|
| const InputMethodProperty& new_prop,
|
| InputMethodPropertyList* prop_list);
|
|
|
| + static void IBusDaemonInitializationDone(IBusControllerImpl* controller,
|
| + const std::string& ibus_address);
|
| +
|
| private:
|
| + enum IBusDaemonStatus{
|
| + IBUS_DAEMON_INITIALIZING,
|
| + IBUS_DAEMON_RUNNING,
|
| + IBUS_DAEMON_SHUTTING_DOWN,
|
| + IBUS_DAEMON_STOP,
|
| + };
|
| +
|
| // Functions that end with Thunk are used to deal with glib callbacks.
|
| CHROMEG_CALLBACK_0(IBusControllerImpl, void, BusConnected, IBusBus*);
|
| CHROMEG_CALLBACK_0(IBusControllerImpl, void, BusDisconnected, IBusBus*);
|
| @@ -111,9 +121,11 @@ class IBusControllerImpl : public IBusControllerBase {
|
| // "update-property" D-Bus signals from ibus-daemon.
|
| void ConnectPanelServiceSignals();
|
|
|
| - // Starts ibus-daemon if it's not yet started and |should_launch_daemon_| is
|
| - // true.
|
| - bool MaybeLaunchIBusDaemon();
|
| + // Adds address file watcher in FILE thread and then calls LaunchIBusDaemon.
|
| + bool StartIBusDaemon();
|
| +
|
| + // Starts ibus-daemon.
|
| + void LaunchIBusDaemon(const std::string& ibus_address);
|
|
|
| // Launches an input method procsess specified by the given command
|
| // line. On success, returns true and stores the process handle in
|
| @@ -140,8 +152,9 @@ class IBusControllerImpl : public IBusControllerBase {
|
| IBusBus* ibus_;
|
| IBusConfig* ibus_config_;
|
|
|
| - // true when ibus-daemon should be running.
|
| - bool should_launch_daemon_;
|
| + // The current ibus_daemon address. This value is assigned at the launching
|
| + // ibus-daemon and used in bus connection initialization.
|
| + std::string ibus_daemon_address_;
|
|
|
| // The process handle of the IBus daemon. kNullProcessHandle if it's not
|
| // running.
|
| @@ -157,6 +170,12 @@ class IBusControllerImpl : public IBusControllerBase {
|
| // An object which knows all valid input methods and layout IDs.
|
| InputMethodWhitelist whitelist_;
|
|
|
| + // Represents ibus-daemon's status.
|
| + IBusDaemonStatus ibus_daemon_status_;
|
| +
|
| + // Used for making callbacks for PostTask.
|
| + base::WeakPtrFactory<IBusControllerImpl> weak_ptr_factory_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(IBusControllerImpl);
|
| };
|
|
|
|
|