| 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();
|
| }
|
|
|
|
|