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

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

Powered by Google App Engine
This is Rietveld 408576698