Index: chromeos/dbus/ibus/ibus_client.cc |
diff --git a/chromeos/dbus/ibus/ibus_client.cc b/chromeos/dbus/ibus/ibus_client.cc |
index 5bcf3e8d779f214ad237a80473e365bcf2c8339e..80112a80d8e591761b40bda69f0ed2e1f2cd1783 100644 |
--- a/chromeos/dbus/ibus/ibus_client.cc |
+++ b/chromeos/dbus/ibus/ibus_client.cc |
@@ -19,166 +19,6 @@ namespace chromeos { |
namespace { |
-// The IBusClient implementation. |
-class IBusClientImpl : public IBusClient { |
- public: |
- explicit IBusClientImpl(dbus::Bus* bus) |
- : proxy_(bus->GetObjectProxy(ibus::kServiceName, |
- dbus::ObjectPath(ibus::bus::kServicePath))), |
- weak_ptr_factory_(this) { |
- } |
- |
- virtual ~IBusClientImpl() {} |
- |
- // IBusClient override. |
- virtual void CreateInputContext( |
- const std::string& client_name, |
- const CreateInputContextCallback& callback, |
- const ErrorCallback& error_callback) OVERRIDE { |
- DCHECK(!callback.is_null()); |
- DCHECK(!error_callback.is_null()); |
- dbus::MethodCall method_call(ibus::bus::kServiceInterface, |
- ibus::bus::kCreateInputContextMethod); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendString(client_name); |
- proxy_->CallMethodWithErrorCallback( |
- &method_call, |
- dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
- base::Bind(&IBusClientImpl::OnCreateInputContext, |
- weak_ptr_factory_.GetWeakPtr(), |
- callback, |
- error_callback), |
- base::Bind(&IBusClientImpl::OnDBusMethodCallFail, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback)); |
- } |
- |
- // IBusClient override. |
- virtual void RegisterComponent( |
- const IBusComponent& ibus_component, |
- const RegisterComponentCallback& callback, |
- const ErrorCallback& error_callback) OVERRIDE { |
- DCHECK(!callback.is_null()); |
- DCHECK(!error_callback.is_null()); |
- dbus::MethodCall method_call(ibus::bus::kServiceInterface, |
- ibus::bus::kRegisterComponentMethod); |
- dbus::MessageWriter writer(&method_call); |
- AppendIBusComponent(ibus_component, &writer); |
- proxy_->CallMethodWithErrorCallback( |
- &method_call, |
- dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
- base::Bind(&IBusClientImpl::OnRegisterComponent, |
- weak_ptr_factory_.GetWeakPtr(), |
- callback, |
- error_callback), |
- base::Bind(&IBusClientImpl::OnDBusMethodCallFail, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback)); |
- } |
- |
- // IBusClient override. |
- virtual void SetGlobalEngine(const std::string& engine_name, |
- const ErrorCallback& error_callback) OVERRIDE { |
- DCHECK(!error_callback.is_null()); |
- dbus::MethodCall method_call(ibus::bus::kServiceInterface, |
- ibus::bus::kSetGlobalEngineMethod); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendString(engine_name); |
- proxy_->CallMethodWithErrorCallback( |
- &method_call, |
- dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
- base::Bind(&IBusClientImpl::OnSetGlobalEngine, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback), |
- base::Bind(&IBusClientImpl::OnDBusMethodCallFail, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback)); |
- } |
- |
- // IBusClient override. |
- virtual void Exit(ExitOption option, |
- const ErrorCallback& error_callback) OVERRIDE { |
- DCHECK(!error_callback.is_null()); |
- dbus::MethodCall method_call(ibus::bus::kServiceInterface, |
- ibus::bus::kExitMethod); |
- dbus::MessageWriter writer(&method_call); |
- writer.AppendBool(option == RESTART_IBUS_DAEMON); |
- proxy_->CallMethodWithErrorCallback( |
- &method_call, |
- dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
- base::Bind(&IBusClientImpl::OnExit, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback), |
- base::Bind(&IBusClientImpl::OnDBusMethodCallFail, |
- weak_ptr_factory_.GetWeakPtr(), |
- error_callback)); |
- } |
- |
- private: |
- // Handles responses of CreateInputContext method calls. |
- void OnCreateInputContext(const CreateInputContextCallback& callback, |
- const ErrorCallback& error_callback, |
- dbus::Response* response) { |
- if (!response) { |
- LOG(ERROR) << "Cannot get input context: response is NULL."; |
- error_callback.Run(); |
- return; |
- } |
- dbus::MessageReader reader(response); |
- dbus::ObjectPath object_path; |
- if (!reader.PopObjectPath(&object_path)) { |
- // The IBus message structure may be changed. |
- LOG(ERROR) << "Invalid response: " << response->ToString(); |
- error_callback.Run(); |
- return; |
- } |
- callback.Run(object_path); |
- } |
- |
- // Handles responses of RegisterComponent method calls. |
- void OnRegisterComponent(const RegisterComponentCallback& callback, |
- const ErrorCallback& error_callback, |
- dbus::Response* response) { |
- if (!response) { |
- LOG(ERROR) << "Response is NULL."; |
- error_callback.Run(); |
- return; |
- } |
- callback.Run(); |
- } |
- |
- // Handles responses of RegisterComponent method calls. |
- void OnSetGlobalEngine(const ErrorCallback& error_callback, |
- dbus::Response* response) { |
- if (!response) { |
- LOG(ERROR) << "Response is NULL."; |
- error_callback.Run(); |
- return; |
- } |
- } |
- |
- // Handles responses of RegisterComponent method calls. |
- void OnExit(const ErrorCallback& error_callback, |
- dbus::Response* response) { |
- if (!response) { |
- LOG(ERROR) << "Response is NULL."; |
- error_callback.Run(); |
- return; |
- } |
- } |
- |
- // Handles error response of RegisterComponent method call. |
- void OnDBusMethodCallFail(const ErrorCallback& error_callback, |
- dbus::ErrorResponse* response) { |
- error_callback.Run(); |
- } |
- |
- dbus::ObjectProxy* proxy_; |
- base::WeakPtrFactory<IBusClientImpl> weak_ptr_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(IBusClientImpl); |
-}; |
- |
// An implementation of IBusClient without ibus-daemon interaction. |
// Currently this class is used only on linux desktop. |
// TODO(nona): Use this on ChromeOS device once crbug.com/171351 is fixed. |
@@ -245,12 +85,7 @@ IBusClient::IBusClient() {} |
IBusClient::~IBusClient() {} |
// static |
-IBusClient* IBusClient::Create(DBusClientImplementationType type, |
- dbus::Bus* bus) { |
- if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) { |
- return new IBusClientImpl(bus); |
- } |
- DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
+IBusClient* IBusClient::Create() { |
return new IBusClientDaemonlessImpl(); |
} |