Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2827)

Unified Diff: chrome/browser/chromeos/input_method/ibus_controller_impl.h

Issue 11558017: Decouple input_method from BrowserThread (and content/). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..7b2f666662c81d509a42586cb3d58800b8fbcf68 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,9 @@ typedef std::vector<InputMethodProperty> InputMethodPropertyList;
class IBusControllerImpl : public IBusControllerBase,
public ibus::IBusPanelPropertyHandlerInterface {
public:
- IBusControllerImpl();
+ IBusControllerImpl(
Seigo Nonaka 2012/12/13 05:40:11 nit: please add comment for |default_task_runner|
+ const scoped_refptr<base::SequencedTaskRunner>& default_task_runner,
+ const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner);
virtual ~IBusControllerImpl();
// IBusController overrides:
@@ -46,9 +53,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 +99,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 +138,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_;
« no previous file with comments | « chrome/browser/chromeos/input_method/ibus_controller.cc ('k') | chrome/browser/chromeos/input_method/ibus_controller_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698