| 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 eb59d2b425376b72067a86eb4aafcc97e08ad401..ecadaf25b6c1fb8641a7632cb1f2bc27052471ae 100644
|
| --- a/chrome/browser/chromeos/input_method/ibus_controller_impl.h
|
| +++ b/chrome/browser/chromeos/input_method/ibus_controller_impl.h
|
| @@ -10,11 +10,16 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/process_util.h"
|
| #include "chrome/browser/chromeos/input_method/ibus_controller_base.h"
|
| #include "chrome/browser/chromeos/input_method/input_method_whitelist.h"
|
| #include "chromeos/dbus/ibus/ibus_panel_service.h"
|
|
|
| +namespace base {
|
| +class SequencedTaskRunner;
|
| +} // namespace base
|
| +
|
| namespace ui {
|
| class InputMethodIBus;
|
| } // namespace ui
|
| @@ -30,7 +35,12 @@ typedef std::vector<InputMethodProperty> InputMethodPropertyList;
|
| class IBusControllerImpl : public IBusControllerBase,
|
| public ibus::IBusPanelPropertyHandlerInterface {
|
| public:
|
| - IBusControllerImpl();
|
| + // Creates an IBusController. All public methods must be invoked in the
|
| + // context of |default_task_runner|. |worker_task_runner| will be used to
|
| + // execute potentially blocking file tasks.
|
| + IBusControllerImpl(
|
| + const scoped_refptr<base::SequencedTaskRunner>& default_task_runner,
|
| + const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner);
|
| virtual ~IBusControllerImpl();
|
|
|
| // IBusController overrides:
|
| @@ -46,9 +56,6 @@ 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,
|
| @@ -95,6 +102,13 @@ class IBusControllerImpl : public IBusControllerBase,
|
| // The injected object must be released by caller.
|
| void set_input_method_for_testing(ui::InputMethodIBus* input_method);
|
|
|
| + // Receives a notification on a worker thread and posts a call to
|
| + // IBusDaemonInitializationDone on the default task runner.
|
| + void IBusDaemonInitializationDoneWorkerCallback(
|
| + const std::string& ibus_address);
|
| +
|
| + void IBusDaemonInitializationDone(const std::string& ibus_address);
|
| +
|
| // Called when the IBusConfigClient is initialized.
|
| void OnIBusConfigClientInitialized();
|
|
|
| @@ -127,6 +141,9 @@ class IBusControllerImpl : public IBusControllerBase,
|
| // The pointer to global input method. We can inject this value for testing.
|
| ui::InputMethodIBus* input_method_;
|
|
|
| + scoped_refptr<base::SequencedTaskRunner> default_task_runner_;
|
| + scoped_refptr<base::SequencedTaskRunner> worker_task_runner_;
|
| +
|
| // Used for making callbacks for PostTask.
|
| base::WeakPtrFactory<IBusControllerImpl> weak_ptr_factory_;
|
|
|
|
|