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

Side by Side Diff: chromeos/dbus/ibus/ibus_engine_service.cc

Issue 10968056: Fix crash bug of IME extension API. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix unittest. Created 8 years, 3 months 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 "chromeos/dbus/ibus/ibus_engine_service.h" 5 #include "chromeos/dbus/ibus/ibus_engine_service.h"
6 6
7 #include <string> 7 #include <string>
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "chromeos/dbus/ibus/ibus_constants.h" 10 #include "chromeos/dbus/ibus/ibus_constants.h"
11 #include "chromeos/dbus/ibus/ibus_lookup_table.h" 11 #include "chromeos/dbus/ibus/ibus_lookup_table.h"
12 #include "chromeos/dbus/ibus/ibus_property.h" 12 #include "chromeos/dbus/ibus/ibus_property.h"
13 #include "chromeos/dbus/ibus/ibus_text.h" 13 #include "chromeos/dbus/ibus/ibus_text.h"
14 #include "dbus/bus.h" 14 #include "dbus/bus.h"
15 #include "dbus/exported_object.h" 15 #include "dbus/exported_object.h"
16 #include "dbus/message.h" 16 #include "dbus/message.h"
17 #include "dbus/object_path.h" 17 #include "dbus/object_path.h"
18 #include "dbus/object_proxy.h" 18 #include "dbus/object_proxy.h"
19 19
20 namespace chromeos { 20 namespace chromeos {
21 21
22 class IBusEngineServiceImpl : public IBusEngineService { 22 class IBusEngineServiceImpl : public IBusEngineService {
23 public: 23 public:
24 IBusEngineServiceImpl(dbus::Bus* bus, 24 IBusEngineServiceImpl(dbus::Bus* bus,
25 const dbus::ObjectPath& object_path) 25 const dbus::ObjectPath& object_path)
26 : bus_(bus), 26 : bus_(bus),
27 engine_handler_(NULL),
27 object_path_(object_path), 28 object_path_(object_path),
28 weak_ptr_factory_(this) { 29 weak_ptr_factory_(this) {
29 exported_object_ = bus->GetExportedObject(object_path_); 30 exported_object_ = bus->GetExportedObject(object_path_);
30 31
31 exported_object_->ExportMethod( 32 exported_object_->ExportMethod(
32 ibus::engine::kServiceInterface, 33 ibus::engine::kServiceInterface,
33 ibus::engine::kFocusInMethod, 34 ibus::engine::kFocusInMethod,
34 base::Bind(&IBusEngineServiceImpl::FocusIn, 35 base::Bind(&IBusEngineServiceImpl::FocusIn,
35 weak_ptr_factory_.GetWeakPtr()), 36 weak_ptr_factory_.GetWeakPtr()),
36 base::Bind(&IBusEngineServiceImpl::OnMethodExported, 37 base::Bind(&IBusEngineServiceImpl::OnMethodExported,
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 weak_ptr_factory_.GetWeakPtr()), 124 weak_ptr_factory_.GetWeakPtr()),
124 base::Bind(&IBusEngineServiceImpl::OnMethodExported, 125 base::Bind(&IBusEngineServiceImpl::OnMethodExported,
125 weak_ptr_factory_.GetWeakPtr())); 126 weak_ptr_factory_.GetWeakPtr()));
126 } 127 }
127 128
128 virtual ~IBusEngineServiceImpl() { 129 virtual ~IBusEngineServiceImpl() {
129 bus_->UnregisterExportedObject(object_path_); 130 bus_->UnregisterExportedObject(object_path_);
130 } 131 }
131 132
132 // IBusEngineService override. 133 // IBusEngineService override.
133 virtual void Initialize(IBusEngineHandlerInterface* handler) OVERRIDE { 134 virtual void SetEngine(IBusEngineHandlerInterface* handler) OVERRIDE {
134 if (engine_handler_.get() == NULL) { 135 LOG_IF(ERROR, engine_handler_ == NULL) << "Override engine.";
Seigo Nonaka 2012/09/24 07:52:45 DLOG? and is the comment correct? And should we tr
hsumita 2012/09/24 08:01:16 Done.
135 engine_handler_.reset(handler); 136 engine_handler_ = handler;
136 } else {
137 LOG(ERROR) << "Already initialized.";
138 }
139 } 137 }
140 138
141 // IBusEngineService override. 139 // IBusEngineService override.
140 virtual void UnsetEngine() OVERRIDE {
141 LOG_IF(ERROR, engine_handler_ == NULL) << "There is no engine.";
142 engine_handler_ = NULL;
143 }
144
145 // IBusEngineService override.
142 virtual void RegisterProperties( 146 virtual void RegisterProperties(
143 const ibus::IBusPropertyList& property_list) OVERRIDE { 147 const ibus::IBusPropertyList& property_list) OVERRIDE {
144 dbus::Signal signal(ibus::engine::kServiceInterface, 148 dbus::Signal signal(ibus::engine::kServiceInterface,
145 ibus::engine::kRegisterPropertiesSignal); 149 ibus::engine::kRegisterPropertiesSignal);
146 dbus::MessageWriter writer(&signal); 150 dbus::MessageWriter writer(&signal);
147 AppendIBusPropertyList(property_list, &writer); 151 AppendIBusPropertyList(property_list, &writer);
148 exported_object_->SendSignal(&signal); 152 exported_object_->SendSignal(&signal);
149 } 153 }
150 154
151 // IBusEngineService override. 155 // IBusEngineService override.
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 ibus::engine::kCommitTextSignal); 222 ibus::engine::kCommitTextSignal);
219 dbus::MessageWriter writer(&signal); 223 dbus::MessageWriter writer(&signal);
220 ibus::AppendStringAsIBusText(text, &writer); 224 ibus::AppendStringAsIBusText(text, &writer);
221 exported_object_->SendSignal(&signal); 225 exported_object_->SendSignal(&signal);
222 } 226 }
223 227
224 private: 228 private:
225 // Handles FocusIn method call from ibus-daemon. 229 // Handles FocusIn method call from ibus-daemon.
226 void FocusIn(dbus::MethodCall* method_call, 230 void FocusIn(dbus::MethodCall* method_call,
227 dbus::ExportedObject::ResponseSender response_sender) { 231 dbus::ExportedObject::ResponseSender response_sender) {
228 DCHECK(engine_handler_.get()); 232 if (engine_handler_ == NULL)
233 return;
229 engine_handler_->FocusIn(); 234 engine_handler_->FocusIn();
230 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 235 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
231 response_sender.Run(response); 236 response_sender.Run(response);
232 } 237 }
233 238
234 // Handles FocusOut method call from ibus-daemon. 239 // Handles FocusOut method call from ibus-daemon.
235 void FocusOut(dbus::MethodCall* method_call, 240 void FocusOut(dbus::MethodCall* method_call,
236 dbus::ExportedObject::ResponseSender response_sender) { 241 dbus::ExportedObject::ResponseSender response_sender) {
237 DCHECK(engine_handler_.get()); 242 if (engine_handler_ == NULL)
243 return;
238 engine_handler_->FocusOut(); 244 engine_handler_->FocusOut();
239 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 245 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
240 response_sender.Run(response); 246 response_sender.Run(response);
241 } 247 }
242 248
243 // Handles Enable method call from ibus-daemon. 249 // Handles Enable method call from ibus-daemon.
244 void Enable(dbus::MethodCall* method_call, 250 void Enable(dbus::MethodCall* method_call,
245 dbus::ExportedObject::ResponseSender response_sender) { 251 dbus::ExportedObject::ResponseSender response_sender) {
246 DCHECK(engine_handler_.get()); 252 if (engine_handler_ == NULL)
253 return;
247 engine_handler_->Enable(); 254 engine_handler_->Enable();
248 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 255 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
249 response_sender.Run(response); 256 response_sender.Run(response);
250 } 257 }
251 258
252 // Handles Disable method call from ibus-daemon. 259 // Handles Disable method call from ibus-daemon.
253 void Disable(dbus::MethodCall* method_call, 260 void Disable(dbus::MethodCall* method_call,
254 dbus::ExportedObject::ResponseSender response_sender) { 261 dbus::ExportedObject::ResponseSender response_sender) {
255 DCHECK(engine_handler_.get()); 262 if (engine_handler_ == NULL)
263 return;
256 engine_handler_->Disable(); 264 engine_handler_->Disable();
257 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 265 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
258 response_sender.Run(response); 266 response_sender.Run(response);
259 } 267 }
260 268
261 // Handles PropertyActivate method call from ibus-daemon. 269 // Handles PropertyActivate method call from ibus-daemon.
262 void PropertyActivate(dbus::MethodCall* method_call, 270 void PropertyActivate(dbus::MethodCall* method_call,
263 dbus::ExportedObject::ResponseSender response_sender) { 271 dbus::ExportedObject::ResponseSender response_sender) {
272 if (engine_handler_ == NULL)
273 return;
264 dbus::MessageReader reader(method_call); 274 dbus::MessageReader reader(method_call);
265 std::string property_name; 275 std::string property_name;
266 if (!reader.PopString(&property_name)) { 276 if (!reader.PopString(&property_name)) {
267 LOG(WARNING) << "PropertyActivate called with incorrect parameters: " 277 LOG(WARNING) << "PropertyActivate called with incorrect parameters: "
268 << method_call->ToString(); 278 << method_call->ToString();
269 return; 279 return;
270 } 280 }
271 uint32 property_state = 0; 281 uint32 property_state = 0;
272 if (!reader.PopUint32(&property_state)) { 282 if (!reader.PopUint32(&property_state)) {
273 LOG(WARNING) << "PropertyActivate called with incorrect parameters: " 283 LOG(WARNING) << "PropertyActivate called with incorrect parameters: "
274 << method_call->ToString(); 284 << method_call->ToString();
275 return; 285 return;
276 } 286 }
277 DCHECK(engine_handler_.get());
278 engine_handler_->PropertyActivate( 287 engine_handler_->PropertyActivate(
279 property_name, 288 property_name,
280 static_cast<IBusEngineHandlerInterface::IBusPropertyState>( 289 static_cast<IBusEngineHandlerInterface::IBusPropertyState>(
281 property_state)); 290 property_state));
282 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 291 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
283 response_sender.Run(response); 292 response_sender.Run(response);
284 } 293 }
285 294
286 // Handles PropertyShow method call from ibus-daemon. 295 // Handles PropertyShow method call from ibus-daemon.
287 void PropertyShow(dbus::MethodCall* method_call, 296 void PropertyShow(dbus::MethodCall* method_call,
288 dbus::ExportedObject::ResponseSender response_sender) { 297 dbus::ExportedObject::ResponseSender response_sender) {
298 if (engine_handler_ == NULL)
299 return;
289 dbus::MessageReader reader(method_call); 300 dbus::MessageReader reader(method_call);
290 std::string property_name; 301 std::string property_name;
291 if (!reader.PopString(&property_name)) { 302 if (!reader.PopString(&property_name)) {
292 LOG(WARNING) << "PropertyShow called with incorrect parameters: " 303 LOG(WARNING) << "PropertyShow called with incorrect parameters: "
293 << method_call->ToString(); 304 << method_call->ToString();
294 return; 305 return;
295 } 306 }
296 DCHECK(engine_handler_.get());
297 engine_handler_->PropertyShow(property_name); 307 engine_handler_->PropertyShow(property_name);
298 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 308 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
299 response_sender.Run(response); 309 response_sender.Run(response);
300 } 310 }
301 311
302 // Handles PropertyHide method call from ibus-daemon. 312 // Handles PropertyHide method call from ibus-daemon.
303 void PropertyHide(dbus::MethodCall* method_call, 313 void PropertyHide(dbus::MethodCall* method_call,
304 dbus::ExportedObject::ResponseSender response_sender) { 314 dbus::ExportedObject::ResponseSender response_sender) {
315 if (engine_handler_ == NULL)
316 return;
305 dbus::MessageReader reader(method_call); 317 dbus::MessageReader reader(method_call);
306 std::string property_name; 318 std::string property_name;
307 if (!reader.PopString(&property_name)) { 319 if (!reader.PopString(&property_name)) {
308 LOG(WARNING) << "PropertyHide called with incorrect parameters: " 320 LOG(WARNING) << "PropertyHide called with incorrect parameters: "
309 << method_call->ToString(); 321 << method_call->ToString();
310 return; 322 return;
311 } 323 }
312 DCHECK(engine_handler_.get());
313 engine_handler_->PropertyHide(property_name); 324 engine_handler_->PropertyHide(property_name);
314 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 325 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
315 response_sender.Run(response); 326 response_sender.Run(response);
316 } 327 }
317 328
318 // Handles SetCapability method call from ibus-daemon. 329 // Handles SetCapability method call from ibus-daemon.
319 void SetCapability(dbus::MethodCall* method_call, 330 void SetCapability(dbus::MethodCall* method_call,
320 dbus::ExportedObject::ResponseSender response_sender) { 331 dbus::ExportedObject::ResponseSender response_sender) {
332 if (engine_handler_ == NULL)
333 return;
321 dbus::MessageReader reader(method_call); 334 dbus::MessageReader reader(method_call);
322 uint32 capability = 0; 335 uint32 capability = 0;
323 if (!reader.PopUint32(&capability)) { 336 if (!reader.PopUint32(&capability)) {
324 LOG(WARNING) << "SetCapability called with incorrect parameters: " 337 LOG(WARNING) << "SetCapability called with incorrect parameters: "
325 << method_call->ToString(); 338 << method_call->ToString();
326 return; 339 return;
327 } 340 }
328 DCHECK(engine_handler_.get());
329 engine_handler_->SetCapability( 341 engine_handler_->SetCapability(
330 static_cast<IBusEngineHandlerInterface::IBusCapability>(capability)); 342 static_cast<IBusEngineHandlerInterface::IBusCapability>(capability));
331 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 343 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
332 response_sender.Run(response); 344 response_sender.Run(response);
333 } 345 }
334 346
335 void Reset(dbus::MethodCall* method_call, 347 void Reset(dbus::MethodCall* method_call,
336 dbus::ExportedObject::ResponseSender response_sender) { 348 dbus::ExportedObject::ResponseSender response_sender) {
337 DCHECK(engine_handler_.get()); 349 if (engine_handler_ == NULL)
350 return;
338 engine_handler_->Reset(); 351 engine_handler_->Reset();
339 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 352 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
340 response_sender.Run(response); 353 response_sender.Run(response);
341 } 354 }
342 355
343 // Handles ProcessKeyEvent method call from ibus-daemon. 356 // Handles ProcessKeyEvent method call from ibus-daemon.
344 void ProcessKeyEvent(dbus::MethodCall* method_call, 357 void ProcessKeyEvent(dbus::MethodCall* method_call,
345 dbus::ExportedObject::ResponseSender response_sender) { 358 dbus::ExportedObject::ResponseSender response_sender) {
359 if (engine_handler_ == NULL)
360 return;
346 dbus::MessageReader reader(method_call); 361 dbus::MessageReader reader(method_call);
347 uint32 keysym = 0; 362 uint32 keysym = 0;
348 if (!reader.PopUint32(&keysym)) { 363 if (!reader.PopUint32(&keysym)) {
349 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: " 364 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: "
350 << method_call->ToString(); 365 << method_call->ToString();
351 return; 366 return;
352 } 367 }
353 uint32 keycode = 0; 368 uint32 keycode = 0;
354 if (!reader.PopUint32(&keycode)) { 369 if (!reader.PopUint32(&keycode)) {
355 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: " 370 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: "
356 << method_call->ToString(); 371 << method_call->ToString();
357 return; 372 return;
358 } 373 }
359 uint32 state = 0; 374 uint32 state = 0;
360 if (!reader.PopUint32(&state)) { 375 if (!reader.PopUint32(&state)) {
361 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: " 376 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: "
362 << method_call->ToString(); 377 << method_call->ToString();
363 return; 378 return;
364 } 379 }
365 DCHECK(engine_handler_.get());
366 engine_handler_->ProcessKeyEvent( 380 engine_handler_->ProcessKeyEvent(
367 keysym, keycode, state, 381 keysym, keycode, state,
368 base::Bind(&IBusEngineServiceImpl::KeyEventDone, 382 base::Bind(&IBusEngineServiceImpl::KeyEventDone,
369 weak_ptr_factory_.GetWeakPtr(), 383 weak_ptr_factory_.GetWeakPtr(),
370 base::Unretained( 384 base::Unretained(
371 dbus::Response::FromMethodCall(method_call)), 385 dbus::Response::FromMethodCall(method_call)),
372 response_sender)); 386 response_sender));
373 } 387 }
374 388
375 void KeyEventDone(dbus::Response* response, 389 void KeyEventDone(dbus::Response* response,
376 const dbus::ExportedObject::ResponseSender& response_sender, 390 const dbus::ExportedObject::ResponseSender& response_sender,
377 bool consume) { 391 bool consume) {
392 if (engine_handler_ == NULL)
393 return;
378 dbus::MessageWriter writer(response); 394 dbus::MessageWriter writer(response);
379 writer.AppendBool(consume); 395 writer.AppendBool(consume);
380 response_sender.Run(response); 396 response_sender.Run(response);
381 } 397 }
382 398
383 // Handles CandidateClicked method call from ibus-daemon. 399 // Handles CandidateClicked method call from ibus-daemon.
384 void CandidateClicked(dbus::MethodCall* method_call, 400 void CandidateClicked(dbus::MethodCall* method_call,
385 dbus::ExportedObject::ResponseSender response_sender) { 401 dbus::ExportedObject::ResponseSender response_sender) {
402 if (engine_handler_ == NULL)
403 return;
386 dbus::MessageReader reader(method_call); 404 dbus::MessageReader reader(method_call);
387 uint32 index = 0; 405 uint32 index = 0;
388 if (!reader.PopUint32(&index)) { 406 if (!reader.PopUint32(&index)) {
389 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 407 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
390 << method_call->ToString(); 408 << method_call->ToString();
391 return; 409 return;
392 } 410 }
393 uint32 button = 0; 411 uint32 button = 0;
394 if (!reader.PopUint32(&button)) { 412 if (!reader.PopUint32(&button)) {
395 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 413 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
396 << method_call->ToString(); 414 << method_call->ToString();
397 return; 415 return;
398 } 416 }
399 uint32 state = 0; 417 uint32 state = 0;
400 if (!reader.PopUint32(&state)) { 418 if (!reader.PopUint32(&state)) {
401 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 419 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
402 << method_call->ToString(); 420 << method_call->ToString();
403 return; 421 return;
404 } 422 }
405 DCHECK(engine_handler_.get());
406 engine_handler_->CandidateClicked( 423 engine_handler_->CandidateClicked(
407 index, 424 index,
408 static_cast<IBusEngineHandlerInterface::IBusMouseButton>(button), 425 static_cast<IBusEngineHandlerInterface::IBusMouseButton>(button),
409 state); 426 state);
410 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 427 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
411 response_sender.Run(response); 428 response_sender.Run(response);
412 } 429 }
413 430
414 // Handles SetSurroundingText method call from ibus-daemon. 431 // Handles SetSurroundingText method call from ibus-daemon.
415 void SetSurroundingText( 432 void SetSurroundingText(
416 dbus::MethodCall* method_call, 433 dbus::MethodCall* method_call,
417 dbus::ExportedObject::ResponseSender response_sender) { 434 dbus::ExportedObject::ResponseSender response_sender) {
435 if (engine_handler_ == NULL)
436 return;
418 dbus::MessageReader reader(method_call); 437 dbus::MessageReader reader(method_call);
419 std::string text; 438 std::string text;
420 if (!reader.PopString(&text)) { 439 if (!reader.PopString(&text)) {
421 LOG(WARNING) << "SetSurroundingText called with incorrect parameters: " 440 LOG(WARNING) << "SetSurroundingText called with incorrect parameters: "
422 << method_call->ToString(); 441 << method_call->ToString();
423 return; 442 return;
424 } 443 }
425 uint32 cursor_pos = 0; 444 uint32 cursor_pos = 0;
426 if (!reader.PopUint32(&cursor_pos)) { 445 if (!reader.PopUint32(&cursor_pos)) {
427 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 446 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
428 << method_call->ToString(); 447 << method_call->ToString();
429 return; 448 return;
430 } 449 }
431 uint32 anchor_pos = 0; 450 uint32 anchor_pos = 0;
432 if (!reader.PopUint32(&anchor_pos)) { 451 if (!reader.PopUint32(&anchor_pos)) {
433 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 452 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
434 << method_call->ToString(); 453 << method_call->ToString();
435 return; 454 return;
436 } 455 }
437 456
438 DCHECK(engine_handler_.get());
439 engine_handler_->SetSurroundingText(text, cursor_pos, anchor_pos); 457 engine_handler_->SetSurroundingText(text, cursor_pos, anchor_pos);
440 dbus::Response* response = dbus::Response::FromMethodCall(method_call); 458 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
441 response_sender.Run(response); 459 response_sender.Run(response);
442 } 460 }
443 461
444 // Called when the method call is exported. 462 // Called when the method call is exported.
445 void OnMethodExported(const std::string& interface_name, 463 void OnMethodExported(const std::string& interface_name,
446 const std::string& method_name, 464 const std::string& method_name,
447 bool success) { 465 bool success) {
448 LOG_IF(WARNING, !success) << "Failed to export " 466 LOG_IF(WARNING, !success) << "Failed to export "
449 << interface_name << "." << method_name; 467 << interface_name << "." << method_name;
450 } 468 }
451 469
452 // D-Bus bus object used for unregistering exported methods in dtor. 470 // D-Bus bus object used for unregistering exported methods in dtor.
453 dbus::Bus* bus_; 471 dbus::Bus* bus_;
454 472
455 // All incoming method calls are passed on to the |engine_handler_|. 473 // All incoming method calls are passed on to the |engine_handler_|.
456 scoped_ptr<IBusEngineHandlerInterface> engine_handler_; 474 IBusEngineHandlerInterface* engine_handler_;
457 475
458 dbus::ObjectPath object_path_; 476 dbus::ObjectPath object_path_;
459 scoped_refptr<dbus::ExportedObject> exported_object_; 477 scoped_refptr<dbus::ExportedObject> exported_object_;
460 base::WeakPtrFactory<IBusEngineServiceImpl> weak_ptr_factory_; 478 base::WeakPtrFactory<IBusEngineServiceImpl> weak_ptr_factory_;
461 479
462 DISALLOW_COPY_AND_ASSIGN(IBusEngineServiceImpl); 480 DISALLOW_COPY_AND_ASSIGN(IBusEngineServiceImpl);
463 }; 481 };
464 482
465 class IBusEngineServiceStubImpl : public IBusEngineService { 483 class IBusEngineServiceStubImpl : public IBusEngineService {
466 public: 484 public:
467 IBusEngineServiceStubImpl() {} 485 IBusEngineServiceStubImpl() {}
468 virtual ~IBusEngineServiceStubImpl() {} 486 virtual ~IBusEngineServiceStubImpl() {}
469 // IBusEngineService overrides. 487 // IBusEngineService overrides.
470 virtual void Initialize(IBusEngineHandlerInterface* handler) OVERRIDE {} 488 virtual void SetEngine(IBusEngineHandlerInterface* handler) OVERRIDE {}
489 virtual void UnsetEngine() OVERRIDE {}
471 virtual void RegisterProperties( 490 virtual void RegisterProperties(
472 const ibus::IBusPropertyList& property_list) OVERRIDE {} 491 const ibus::IBusPropertyList& property_list) OVERRIDE {}
473 virtual void UpdatePreedit(const ibus::IBusText& ibus_text, 492 virtual void UpdatePreedit(const ibus::IBusText& ibus_text,
474 uint32 cursor_pos, 493 uint32 cursor_pos,
475 bool is_visible, 494 bool is_visible,
476 IBusEnginePreeditFocusOutMode mode) OVERRIDE {} 495 IBusEnginePreeditFocusOutMode mode) OVERRIDE {}
477 virtual void UpdateAuxiliaryText(const ibus::IBusText& ibus_text, 496 virtual void UpdateAuxiliaryText(const ibus::IBusText& ibus_text,
478 bool is_visible) OVERRIDE {} 497 bool is_visible) OVERRIDE {}
479 virtual void UpdateLookupTable(const ibus::IBusLookupTable& lookup_table, 498 virtual void UpdateLookupTable(const ibus::IBusLookupTable& lookup_table,
480 bool is_visible) OVERRIDE {} 499 bool is_visible) OVERRIDE {}
(...skipping 18 matching lines...) Expand all
499 DBusClientImplementationType type, 518 DBusClientImplementationType type,
500 dbus::Bus* bus, 519 dbus::Bus* bus,
501 const dbus::ObjectPath& object_path) { 520 const dbus::ObjectPath& object_path) {
502 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 521 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
503 return new IBusEngineServiceImpl(bus, object_path); 522 return new IBusEngineServiceImpl(bus, object_path);
504 else 523 else
505 return new IBusEngineServiceStubImpl(); 524 return new IBusEngineServiceStubImpl();
506 } 525 }
507 526
508 } // namespace chromeos 527 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698