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

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_engine_ibus.cc

Issue 67313006: Delete IBusClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/input_method/input_method_engine_ibus.h" 5 #include "chrome/browser/chromeos/input_method/input_method_engine_ibus.h"
6 6
7 #define XK_MISCELLANY 7 #define XK_MISCELLANY
8 #include <X11/keysymdef.h> 8 #include <X11/keysymdef.h>
9 #include <map> 9 #include <map>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/strings/string_number_conversions.h" 13 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/string_util.h" 14 #include "base/strings/string_util.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "chromeos/dbus/dbus_thread_manager.h" 16 #include "chromeos/dbus/dbus_thread_manager.h"
17 #include "chromeos/dbus/ibus/ibus_client.h"
18 #include "chromeos/dbus/ibus/ibus_component.h" 17 #include "chromeos/dbus/ibus/ibus_component.h"
19 #include "chromeos/dbus/ibus/ibus_engine_factory_service.h" 18 #include "chromeos/dbus/ibus/ibus_engine_factory_service.h"
20 #include "chromeos/dbus/ibus/ibus_engine_service.h" 19 #include "chromeos/dbus/ibus/ibus_engine_service.h"
21 #include "chromeos/dbus/ibus/ibus_text.h" 20 #include "chromeos/dbus/ibus/ibus_text.h"
22 #include "chromeos/ime/candidate_window.h" 21 #include "chromeos/ime/candidate_window.h"
23 #include "chromeos/ime/component_extension_ime_manager.h" 22 #include "chromeos/ime/component_extension_ime_manager.h"
24 #include "chromeos/ime/extension_ime_util.h" 23 #include "chromeos/ime/extension_ime_util.h"
25 #include "chromeos/ime/ibus_keymap.h" 24 #include "chromeos/ime/ibus_keymap.h"
26 #include "chromeos/ime/input_method_manager.h" 25 #include "chromeos/ime/input_method_manager.h"
27 #include "dbus/object_path.h" 26 #include "dbus/object_path.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 IBusComponent::EngineDescription engine_desc; 104 IBusComponent::EngineDescription engine_desc;
106 engine_desc.engine_id = ibus_id_; 105 engine_desc.engine_id = ibus_id_;
107 engine_desc.display_name = description; 106 engine_desc.display_name = description;
108 engine_desc.description = description; 107 engine_desc.description = description;
109 engine_desc.language_code = (languages.empty()) ? "" : languages[0]; 108 engine_desc.language_code = (languages.empty()) ? "" : languages[0];
110 engine_desc.author = ibus_id_; 109 engine_desc.author = ibus_id_;
111 110
112 component_->mutable_engine_description()->push_back(engine_desc); 111 component_->mutable_engine_description()->push_back(engine_desc);
113 manager->AddInputMethodExtension(ibus_id_, engine_name, layouts, languages, 112 manager->AddInputMethodExtension(ibus_id_, engine_name, layouts, languages,
114 options_page, this); 113 options_page, this);
115 // If connection is avaiable, register component. If there are no connection 114 RegisterComponent();
Seigo Nonaka 2013/11/12 03:21:45 Register component is still necessary?
Hiro Komatsu 2013/11/12 04:34:24 RegisterComponent eventually calls CreateEngineHan
116 // to ibus-daemon, OnConnected callback will register component instead.
117 if (IsConnected())
118 RegisterComponent();
119 } 115 }
120 116
121 void InputMethodEngineIBus::StartIme() { 117 void InputMethodEngineIBus::StartIme() {
122 input_method::InputMethodManager* manager = 118 input_method::InputMethodManager* manager =
123 input_method::InputMethodManager::Get(); 119 input_method::InputMethodManager::Get();
124 if (manager && ibus_id_ == manager->GetCurrentInputMethod().id()) 120 if (manager && ibus_id_ == manager->GetCurrentInputMethod().id())
125 Enable(); 121 Enable();
126 } 122 }
127 123
128 bool InputMethodEngineIBus::SetComposition( 124 bool InputMethodEngineIBus::SetComposition(
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 // TODO(nona): Support item.children. 587 // TODO(nona): Support item.children.
592 } 588 }
593 589
594 void InputMethodEngineIBus::OnConnected() { 590 void InputMethodEngineIBus::OnConnected() {
595 RegisterComponent(); 591 RegisterComponent();
596 } 592 }
597 593
598 void InputMethodEngineIBus::OnDisconnected() { 594 void InputMethodEngineIBus::OnDisconnected() {
599 } 595 }
600 596
601 bool InputMethodEngineIBus::IsConnected() {
602 return DBusThreadManager::Get()->GetIBusClient() != NULL;
603 }
604
605 void InputMethodEngineIBus::RegisterComponent() { 597 void InputMethodEngineIBus::RegisterComponent() {
606 IBusClient* client = DBusThreadManager::Get()->GetIBusClient();
607 client->RegisterComponent(
608 *component_.get(),
609 base::Bind(&InputMethodEngineIBus::OnComponentRegistered,
610 weak_ptr_factory_.GetWeakPtr()),
611 base::Bind(&InputMethodEngineIBus::OnComponentRegistrationFailed,
612 weak_ptr_factory_.GetWeakPtr()));
613 }
614
615 void InputMethodEngineIBus::OnComponentRegistered() {
616 ibus_engine_factory_service_->SetCreateEngineHandler( 598 ibus_engine_factory_service_->SetCreateEngineHandler(
617 ibus_id_, 599 ibus_id_,
618 base::Bind(&InputMethodEngineIBus::CreateEngineHandler, 600 base::Bind(&InputMethodEngineIBus::CreateEngineHandler,
619 weak_ptr_factory_.GetWeakPtr())); 601 weak_ptr_factory_.GetWeakPtr()));
620 } 602 }
621 603
622 void InputMethodEngineIBus::OnComponentRegistrationFailed() {
623 DVLOG(1) << "Failed to register input method components.";
624 // TODO(nona): Implement error handling.
625 }
626
627 void InputMethodEngineIBus::CreateEngineHandler( 604 void InputMethodEngineIBus::CreateEngineHandler(
628 const IBusEngineFactoryService::CreateEngineResponseSender& sender) { 605 const IBusEngineFactoryService::CreateEngineResponseSender& sender) {
629 GetCurrentService()->UnsetEngine(this); 606 GetCurrentService()->UnsetEngine(this);
630 ibus_engine_service_.reset(); 607 ibus_engine_service_.reset();
631 object_path_ = ibus_engine_factory_service_->GenerateUniqueObjectPath(); 608 object_path_ = ibus_engine_factory_service_->GenerateUniqueObjectPath();
632 609
633 GetCurrentService()->SetEngine(this); 610 GetCurrentService()->SetEngine(this);
634 sender.Run(object_path_); 611 sender.Run(object_path_);
635 } 612 }
636 613
637 } // namespace chromeos 614 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698