summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authorhsumita@chromium.org <hsumita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-25 05:01:17 +0000
committerhsumita@chromium.org <hsumita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-25 05:01:17 +0000
commite1cbb1b95b4441b3f365de03cd892fee6486c214 (patch)
tree2c7bbfd993b89aae04a5b42090192a2b790ef360 /chromeos
parent4e9e1c745f10825e07491a0e3eaa96c87cceb6bc (diff)
downloadchromium_src-e1cbb1b95b4441b3f365de03cd892fee6486c214.zip
chromium_src-e1cbb1b95b4441b3f365de03cd892fee6486c214.tar.gz
chromium_src-e1cbb1b95b4441b3f365de03cd892fee6486c214.tar.bz2
Fix crash bug of IME extension API.
BUG=147526,147539,149189 Review URL: https://chromiumcodereview.appspot.com/10968056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158527 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/dbus/ibus/ibus_engine_service.cc59
-rw-r--r--chromeos/dbus/ibus/ibus_engine_service.h10
-rw-r--r--chromeos/dbus/ibus/ibus_engine_service_unittest.cc131
-rw-r--r--chromeos/dbus/ibus/mock_ibus_engine_service.cc5
-rw-r--r--chromeos/dbus/ibus/mock_ibus_engine_service.h3
5 files changed, 178 insertions, 30 deletions
diff --git a/chromeos/dbus/ibus/ibus_engine_service.cc b/chromeos/dbus/ibus/ibus_engine_service.cc
index dcfee83..06d205d 100644
--- a/chromeos/dbus/ibus/ibus_engine_service.cc
+++ b/chromeos/dbus/ibus/ibus_engine_service.cc
@@ -24,6 +24,7 @@ class IBusEngineServiceImpl : public IBusEngineService {
IBusEngineServiceImpl(dbus::Bus* bus,
const dbus::ObjectPath& object_path)
: bus_(bus),
+ engine_handler_(NULL),
object_path_(object_path),
weak_ptr_factory_(this) {
exported_object_ = bus->GetExportedObject(object_path_);
@@ -130,12 +131,15 @@ class IBusEngineServiceImpl : public IBusEngineService {
}
// IBusEngineService override.
- virtual void Initialize(IBusEngineHandlerInterface* handler) OVERRIDE {
- if (engine_handler_.get() == NULL) {
- engine_handler_.reset(handler);
- } else {
- LOG(ERROR) << "Already initialized.";
- }
+ virtual void SetEngine(IBusEngineHandlerInterface* handler) OVERRIDE {
+ DVLOG_IF(1, engine_handler_ != NULL) << "Replace engine.";
+ engine_handler_ = handler;
+ }
+
+ // IBusEngineService override.
+ virtual void UnsetEngine() OVERRIDE {
+ LOG_IF(ERROR, engine_handler_ == NULL) << "There is no engine.";
+ engine_handler_ = NULL;
}
// IBusEngineService override.
@@ -225,7 +229,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles FocusIn method call from ibus-daemon.
void FocusIn(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
- DCHECK(engine_handler_.get());
+ if (engine_handler_ == NULL)
+ return;
engine_handler_->FocusIn();
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -234,7 +239,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles FocusOut method call from ibus-daemon.
void FocusOut(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
- DCHECK(engine_handler_.get());
+ if (engine_handler_ == NULL)
+ return;
engine_handler_->FocusOut();
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -243,7 +249,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles Enable method call from ibus-daemon.
void Enable(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
- DCHECK(engine_handler_.get());
+ if (engine_handler_ == NULL)
+ return;
engine_handler_->Enable();
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -252,7 +259,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles Disable method call from ibus-daemon.
void Disable(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
- DCHECK(engine_handler_.get());
+ if (engine_handler_ == NULL)
+ return;
engine_handler_->Disable();
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -261,6 +269,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles PropertyActivate method call from ibus-daemon.
void PropertyActivate(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
std::string property_name;
if (!reader.PopString(&property_name)) {
@@ -274,7 +284,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
<< method_call->ToString();
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->PropertyActivate(
property_name,
static_cast<IBusEngineHandlerInterface::IBusPropertyState>(
@@ -286,6 +295,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles PropertyShow method call from ibus-daemon.
void PropertyShow(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
std::string property_name;
if (!reader.PopString(&property_name)) {
@@ -293,7 +304,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
<< method_call->ToString();
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->PropertyShow(property_name);
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -302,6 +312,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles PropertyHide method call from ibus-daemon.
void PropertyHide(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
std::string property_name;
if (!reader.PopString(&property_name)) {
@@ -309,7 +321,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
<< method_call->ToString();
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->PropertyHide(property_name);
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -318,6 +329,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles SetCapability method call from ibus-daemon.
void SetCapability(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
uint32 capability = 0;
if (!reader.PopUint32(&capability)) {
@@ -325,7 +338,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
<< method_call->ToString();
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->SetCapability(
static_cast<IBusEngineHandlerInterface::IBusCapability>(capability));
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
@@ -334,7 +346,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
void Reset(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
- DCHECK(engine_handler_.get());
+ if (engine_handler_ == NULL)
+ return;
engine_handler_->Reset();
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -343,6 +356,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles ProcessKeyEvent method call from ibus-daemon.
void ProcessKeyEvent(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
uint32 keysym = 0;
if (!reader.PopUint32(&keysym)) {
@@ -362,7 +377,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
<< method_call->ToString();
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->ProcessKeyEvent(
keysym, keycode, state,
base::Bind(&IBusEngineServiceImpl::KeyEventDone,
@@ -375,6 +389,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
void KeyEventDone(dbus::Response* response,
const dbus::ExportedObject::ResponseSender& response_sender,
bool consume) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageWriter writer(response);
writer.AppendBool(consume);
response_sender.Run(response);
@@ -383,6 +399,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
// Handles CandidateClicked method call from ibus-daemon.
void CandidateClicked(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
uint32 index = 0;
if (!reader.PopUint32(&index)) {
@@ -402,7 +420,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
<< method_call->ToString();
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->CandidateClicked(
index,
static_cast<IBusEngineHandlerInterface::IBusMouseButton>(button),
@@ -415,6 +432,8 @@ class IBusEngineServiceImpl : public IBusEngineService {
void SetSurroundingText(
dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender) {
+ if (engine_handler_ == NULL)
+ return;
dbus::MessageReader reader(method_call);
std::string text;
if (!reader.PopString(&text)) {
@@ -435,7 +454,6 @@ class IBusEngineServiceImpl : public IBusEngineService {
return;
}
- DCHECK(engine_handler_.get());
engine_handler_->SetSurroundingText(text, cursor_pos, anchor_pos);
dbus::Response* response = dbus::Response::FromMethodCall(method_call);
response_sender.Run(response);
@@ -453,7 +471,7 @@ class IBusEngineServiceImpl : public IBusEngineService {
dbus::Bus* bus_;
// All incoming method calls are passed on to the |engine_handler_|.
- scoped_ptr<IBusEngineHandlerInterface> engine_handler_;
+ IBusEngineHandlerInterface* engine_handler_;
dbus::ObjectPath object_path_;
scoped_refptr<dbus::ExportedObject> exported_object_;
@@ -467,7 +485,8 @@ class IBusEngineServiceStubImpl : public IBusEngineService {
IBusEngineServiceStubImpl() {}
virtual ~IBusEngineServiceStubImpl() {}
// IBusEngineService overrides.
- virtual void Initialize(IBusEngineHandlerInterface* handler) OVERRIDE {}
+ virtual void SetEngine(IBusEngineHandlerInterface* handler) OVERRIDE {}
+ virtual void UnsetEngine() OVERRIDE {}
virtual void RegisterProperties(
const ibus::IBusPropertyList& property_list) OVERRIDE {}
virtual void UpdatePreedit(const ibus::IBusText& ibus_text,
diff --git a/chromeos/dbus/ibus/ibus_engine_service.h b/chromeos/dbus/ibus/ibus_engine_service.h
index a7a11b4..f4aaba9 100644
--- a/chromeos/dbus/ibus/ibus_engine_service.h
+++ b/chromeos/dbus/ibus/ibus_engine_service.h
@@ -27,7 +27,7 @@ class IBusText;
typedef ScopedVector<IBusProperty> IBusPropertyList;
} // namespace
-// A interface to handle the engine client method call.
+// A interface to handle the engine handler method call.
class CHROMEOS_EXPORT IBusEngineHandlerInterface {
public:
typedef base::Callback<void (bool consumed)> KeyEventDoneCallback;
@@ -130,8 +130,12 @@ class CHROMEOS_EXPORT IBusEngineService {
virtual ~IBusEngineService();
- // Initializes the engine client. This class takes the ownership of |handler|.
- virtual void Initialize(IBusEngineHandlerInterface* handler) = 0;
+ // Sets a new IBus engine handler and old handler will be overridden.
+ // This class doesn't take the ownership of |handler|.
+ virtual void SetEngine(IBusEngineHandlerInterface* handler) = 0;
+
+ // Unsets the current IBus engine hanlder.
+ virtual void UnsetEngine() = 0;
// Emits RegisterProperties signal.
virtual void RegisterProperties(
diff --git a/chromeos/dbus/ibus/ibus_engine_service_unittest.cc b/chromeos/dbus/ibus/ibus_engine_service_unittest.cc
index 3800087..f7f4d93 100644
--- a/chromeos/dbus/ibus/ibus_engine_service_unittest.cc
+++ b/chromeos/dbus/ibus/ibus_engine_service_unittest.cc
@@ -476,16 +476,16 @@ class IBusEngineServiceTest : public testing::Test {
mock_bus_.get(),
dbus::ObjectPath(kObjectPath)));
- // Call Initialize to set engine handler.
- engine_handler_ = new MockIBusEngineHandler();
- service_->Initialize(engine_handler_);
+ // Set engine handler.
+ engine_handler_.reset(new MockIBusEngineHandler());
+ service_->SetEngine(engine_handler_.get());
}
protected:
// The service to be tested.
scoped_ptr<IBusEngineService> service_;
// The mock engine handler. Do not free, this is owned by IBusEngineService.
- MockIBusEngineHandler* engine_handler_;
+ scoped_ptr<MockIBusEngineHandler> engine_handler_;
// The mock bus.
scoped_refptr<dbus::MockBus> mock_bus_;
// The mock exported object.
@@ -534,6 +534,15 @@ TEST_F(IBusEngineServiceTest, FocusInTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, FocusIn()).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kFocusInMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, FocusOutTest) {
@@ -558,6 +567,15 @@ TEST_F(IBusEngineServiceTest, FocusOutTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, FocusOut()).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kFocusOutMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, EnableTest) {
@@ -582,6 +600,15 @@ TEST_F(IBusEngineServiceTest, EnableTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, Enable()).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kEnableMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, DisableTest) {
@@ -606,6 +633,15 @@ TEST_F(IBusEngineServiceTest, DisableTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, Disable()).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kDisableMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, PropertyActivateTest) {
@@ -637,6 +673,16 @@ TEST_F(IBusEngineServiceTest, PropertyActivateTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, PropertyActivate(kPropertyName,
+ kIBusPropertyState)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kPropertyActivateMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, ResetTest) {
@@ -661,6 +707,15 @@ TEST_F(IBusEngineServiceTest, ResetTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, Reset()).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kResetMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, PropertyShowTest) {
@@ -688,6 +743,15 @@ TEST_F(IBusEngineServiceTest, PropertyShowTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, PropertyShow(kPropertyName)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kPropertyShowMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, PropertyHideTest) {
@@ -715,6 +779,15 @@ TEST_F(IBusEngineServiceTest, PropertyHideTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, PropertyHide(kPropertyName)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kPropertyHideMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, SetCapabilityTest) {
@@ -743,6 +816,15 @@ TEST_F(IBusEngineServiceTest, SetCapabilityTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, SetCapability(kIBusCapability)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kSetCapabilityMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, ProcessKeyEventTest) {
@@ -779,6 +861,16 @@ TEST_F(IBusEngineServiceTest, ProcessKeyEventTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_,
+ ProcessKeyEvent(kKeySym, kKeyCode, kState, _)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kProcessKeyEventMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, DelayProcessKeyEventTest) {
@@ -818,6 +910,16 @@ TEST_F(IBusEngineServiceTest, DelayProcessKeyEventTest) {
// Call KeyEventDone callback.
message_loop_.RunAllPending();
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_,
+ ProcessKeyEvent(kKeySym, kKeyCode, kState, _)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kProcessKeyEventMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, CandidateClickedTest) {
@@ -851,6 +953,16 @@ TEST_F(IBusEngineServiceTest, CandidateClickedTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, CandidateClicked(kIndex, kIBusMouseButton,
+ kState)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kCandidateClickedMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, SetSurroundingTextTest) {
@@ -883,6 +995,16 @@ TEST_F(IBusEngineServiceTest, SetSurroundingTextTest) {
&method_call,
base::Bind(&MockResponseSender::Run,
base::Unretained(&response_sender)));
+
+ // Call exported function without engine.
+ service_->UnsetEngine();
+ EXPECT_CALL(*engine_handler_, SetSurroundingText(kText, kCursorPos,
+ kAnchorPos)).Times(0);
+ EXPECT_CALL(response_sender, Run(_)).Times(0);
+ method_callback_map_[ibus::engine::kSetSurroundingTextMethod].Run(
+ &method_call,
+ base::Bind(&MockResponseSender::Run,
+ base::Unretained(&response_sender)));
}
TEST_F(IBusEngineServiceTest, RegisterProperties) {
@@ -994,5 +1116,4 @@ TEST_F(IBusEngineServiceTest, RequireSurroundingTextTest) {
service_->RequireSurroundingText();
}
-
} // namespace chromeos
diff --git a/chromeos/dbus/ibus/mock_ibus_engine_service.cc b/chromeos/dbus/ibus/mock_ibus_engine_service.cc
index eb04082..064c25e 100644
--- a/chromeos/dbus/ibus/mock_ibus_engine_service.cc
+++ b/chromeos/dbus/ibus/mock_ibus_engine_service.cc
@@ -12,7 +12,10 @@ MockIBusEngineService::MockIBusEngineService() {
MockIBusEngineService::~MockIBusEngineService() {
}
-void MockIBusEngineService::Initialize(IBusEngineHandlerInterface* handler) {
+void MockIBusEngineService::SetEngine(IBusEngineHandlerInterface* handler) {
+}
+
+void MockIBusEngineService::UnsetEngine() {
}
void MockIBusEngineService::RegisterProperties(
diff --git a/chromeos/dbus/ibus/mock_ibus_engine_service.h b/chromeos/dbus/ibus/mock_ibus_engine_service.h
index f64aeba..ec7d407 100644
--- a/chromeos/dbus/ibus/mock_ibus_engine_service.h
+++ b/chromeos/dbus/ibus/mock_ibus_engine_service.h
@@ -16,7 +16,8 @@ class MockIBusEngineService : public IBusEngineService {
virtual ~MockIBusEngineService();
// IBusEngineService overrides.
- virtual void Initialize(IBusEngineHandlerInterface* handler) OVERRIDE;
+ virtual void SetEngine(IBusEngineHandlerInterface* handler) OVERRIDE;
+ virtual void UnsetEngine() OVERRIDE;
virtual void RegisterProperties(
const ibus::IBusPropertyList& property_list) OVERRIDE;
virtual void UpdatePreedit(const ibus::IBusText& ibus_text,