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

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

Issue 10830004: Fix wrong usage of MethodCall resposne. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Same for IBusEngineService Created 8 years, 5 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"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 ibus::engine::kRequireSurroundingTextSignal); 212 ibus::engine::kRequireSurroundingTextSignal);
213 exported_object_->SendSignal(&signal); 213 exported_object_->SendSignal(&signal);
214 } 214 }
215 215
216 private: 216 private:
217 // Handles FocusIn method call from ibus-daemon. 217 // Handles FocusIn method call from ibus-daemon.
218 void FocusIn(dbus::MethodCall* method_call, 218 void FocusIn(dbus::MethodCall* method_call,
219 dbus::ExportedObject::ResponseSender response_sender) { 219 dbus::ExportedObject::ResponseSender response_sender) {
220 DCHECK(engine_handler_.get()); 220 DCHECK(engine_handler_.get());
221 engine_handler_->FocusIn(); 221 engine_handler_->FocusIn();
222 scoped_ptr<dbus::Response> response( 222 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
223 dbus::Response::FromMethodCall(method_call)); 223 response_sender.Run(response);
224 response_sender.Run(response.get());
225 } 224 }
226 225
227 // Handles FocusOut method call from ibus-daemon. 226 // Handles FocusOut method call from ibus-daemon.
228 void FocusOut(dbus::MethodCall* method_call, 227 void FocusOut(dbus::MethodCall* method_call,
229 dbus::ExportedObject::ResponseSender response_sender) { 228 dbus::ExportedObject::ResponseSender response_sender) {
230 DCHECK(engine_handler_.get()); 229 DCHECK(engine_handler_.get());
231 engine_handler_->FocusOut(); 230 engine_handler_->FocusOut();
232 scoped_ptr<dbus::Response> response( 231 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
233 dbus::Response::FromMethodCall(method_call)); 232 response_sender.Run(response);
234 response_sender.Run(response.get());
235 } 233 }
236 234
237 // Handles Enable method call from ibus-daemon. 235 // Handles Enable method call from ibus-daemon.
238 void Enable(dbus::MethodCall* method_call, 236 void Enable(dbus::MethodCall* method_call,
239 dbus::ExportedObject::ResponseSender response_sender) { 237 dbus::ExportedObject::ResponseSender response_sender) {
240 DCHECK(engine_handler_.get()); 238 DCHECK(engine_handler_.get());
241 engine_handler_->Enable(); 239 engine_handler_->Enable();
242 scoped_ptr<dbus::Response> response( 240 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
243 dbus::Response::FromMethodCall(method_call)); 241 response_sender.Run(response);
244 response_sender.Run(response.get());
245 } 242 }
246 243
247 // Handles Disable method call from ibus-daemon. 244 // Handles Disable method call from ibus-daemon.
248 void Disable(dbus::MethodCall* method_call, 245 void Disable(dbus::MethodCall* method_call,
249 dbus::ExportedObject::ResponseSender response_sender) { 246 dbus::ExportedObject::ResponseSender response_sender) {
250 DCHECK(engine_handler_.get()); 247 DCHECK(engine_handler_.get());
251 engine_handler_->Disable(); 248 engine_handler_->Disable();
252 scoped_ptr<dbus::Response> response( 249 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
253 dbus::Response::FromMethodCall(method_call)); 250 response_sender.Run(response);
254 response_sender.Run(response.get());
255 } 251 }
256 252
257 // Handles PropertyActivate method call from ibus-daemon. 253 // Handles PropertyActivate method call from ibus-daemon.
258 void PropertyActivate(dbus::MethodCall* method_call, 254 void PropertyActivate(dbus::MethodCall* method_call,
259 dbus::ExportedObject::ResponseSender response_sender) { 255 dbus::ExportedObject::ResponseSender response_sender) {
260 dbus::MessageReader reader(method_call); 256 dbus::MessageReader reader(method_call);
261 std::string property_name; 257 std::string property_name;
262 if (!reader.PopString(&property_name)) { 258 if (!reader.PopString(&property_name)) {
263 LOG(WARNING) << "PropertyActivate called with incorrect parameters: " 259 LOG(WARNING) << "PropertyActivate called with incorrect parameters: "
264 << method_call->ToString(); 260 << method_call->ToString();
265 return; 261 return;
266 } 262 }
267 uint32 property_state = 0; 263 uint32 property_state = 0;
268 if (!reader.PopUint32(&property_state)) { 264 if (!reader.PopUint32(&property_state)) {
269 LOG(WARNING) << "PropertyActivate called with incorrect parameters: " 265 LOG(WARNING) << "PropertyActivate called with incorrect parameters: "
270 << method_call->ToString(); 266 << method_call->ToString();
271 return; 267 return;
272 } 268 }
273 DCHECK(engine_handler_.get()); 269 DCHECK(engine_handler_.get());
274 engine_handler_->PropertyActivate( 270 engine_handler_->PropertyActivate(
275 property_name, 271 property_name,
276 static_cast<IBusEngineHandlerInterface::IBusPropertyState>( 272 static_cast<IBusEngineHandlerInterface::IBusPropertyState>(
277 property_state)); 273 property_state));
278 scoped_ptr<dbus::Response> response( 274 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
279 dbus::Response::FromMethodCall(method_call)); 275 response_sender.Run(response);
280 response_sender.Run(response.get());
281 } 276 }
282 277
283 // Handles PropertyShow method call from ibus-daemon. 278 // Handles PropertyShow method call from ibus-daemon.
284 void PropertyShow(dbus::MethodCall* method_call, 279 void PropertyShow(dbus::MethodCall* method_call,
285 dbus::ExportedObject::ResponseSender response_sender) { 280 dbus::ExportedObject::ResponseSender response_sender) {
286 dbus::MessageReader reader(method_call); 281 dbus::MessageReader reader(method_call);
287 std::string property_name; 282 std::string property_name;
288 if (!reader.PopString(&property_name)) { 283 if (!reader.PopString(&property_name)) {
289 LOG(WARNING) << "PropertyShow called with incorrect parameters: " 284 LOG(WARNING) << "PropertyShow called with incorrect parameters: "
290 << method_call->ToString(); 285 << method_call->ToString();
291 return; 286 return;
292 } 287 }
293 DCHECK(engine_handler_.get()); 288 DCHECK(engine_handler_.get());
294 engine_handler_->PropertyShow(property_name); 289 engine_handler_->PropertyShow(property_name);
295 scoped_ptr<dbus::Response> response( 290 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
296 dbus::Response::FromMethodCall(method_call)); 291 response_sender.Run(response);
297 response_sender.Run(response.get());
298 } 292 }
299 293
300 // Handles PropertyHide method call from ibus-daemon. 294 // Handles PropertyHide method call from ibus-daemon.
301 void PropertyHide(dbus::MethodCall* method_call, 295 void PropertyHide(dbus::MethodCall* method_call,
302 dbus::ExportedObject::ResponseSender response_sender) { 296 dbus::ExportedObject::ResponseSender response_sender) {
303 dbus::MessageReader reader(method_call); 297 dbus::MessageReader reader(method_call);
304 std::string property_name; 298 std::string property_name;
305 if (!reader.PopString(&property_name)) { 299 if (!reader.PopString(&property_name)) {
306 LOG(WARNING) << "PropertyHide called with incorrect parameters: " 300 LOG(WARNING) << "PropertyHide called with incorrect parameters: "
307 << method_call->ToString(); 301 << method_call->ToString();
308 return; 302 return;
309 } 303 }
310 DCHECK(engine_handler_.get()); 304 DCHECK(engine_handler_.get());
311 engine_handler_->PropertyHide(property_name); 305 engine_handler_->PropertyHide(property_name);
312 scoped_ptr<dbus::Response> response( 306 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
313 dbus::Response::FromMethodCall(method_call)); 307 response_sender.Run(response);
314 response_sender.Run(response.get());
315 } 308 }
316 309
317 // Handles SetCapability method call from ibus-daemon. 310 // Handles SetCapability method call from ibus-daemon.
318 void SetCapability(dbus::MethodCall* method_call, 311 void SetCapability(dbus::MethodCall* method_call,
319 dbus::ExportedObject::ResponseSender response_sender) { 312 dbus::ExportedObject::ResponseSender response_sender) {
320 dbus::MessageReader reader(method_call); 313 dbus::MessageReader reader(method_call);
321 uint32 capability = 0; 314 uint32 capability = 0;
322 if (!reader.PopUint32(&capability)) { 315 if (!reader.PopUint32(&capability)) {
323 LOG(WARNING) << "SetCapability called with incorrect parameters: " 316 LOG(WARNING) << "SetCapability called with incorrect parameters: "
324 << method_call->ToString(); 317 << method_call->ToString();
325 return; 318 return;
326 } 319 }
327 DCHECK(engine_handler_.get()); 320 DCHECK(engine_handler_.get());
328 engine_handler_->SetCapability( 321 engine_handler_->SetCapability(
329 static_cast<IBusEngineHandlerInterface::IBusCapability>(capability)); 322 static_cast<IBusEngineHandlerInterface::IBusCapability>(capability));
330 scoped_ptr<dbus::Response> response( 323 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
331 dbus::Response::FromMethodCall(method_call)); 324 response_sender.Run(response);
332 response_sender.Run(response.get());
333 } 325 }
334 326
335 void Reset(dbus::MethodCall* method_call, 327 void Reset(dbus::MethodCall* method_call,
336 dbus::ExportedObject::ResponseSender response_sender) { 328 dbus::ExportedObject::ResponseSender response_sender) {
337 DCHECK(engine_handler_.get()); 329 DCHECK(engine_handler_.get());
338 engine_handler_->Reset(); 330 engine_handler_->Reset();
339 scoped_ptr<dbus::Response> response( 331 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
340 dbus::Response::FromMethodCall(method_call)); 332 response_sender.Run(response);
341 response_sender.Run(response.get());
342 } 333 }
343 334
344 // Handles ProcessKeyEvent method call from ibus-daemon. 335 // Handles ProcessKeyEvent method call from ibus-daemon.
345 void ProcessKeyEvent(dbus::MethodCall* method_call, 336 void ProcessKeyEvent(dbus::MethodCall* method_call,
346 dbus::ExportedObject::ResponseSender response_sender) { 337 dbus::ExportedObject::ResponseSender response_sender) {
347 dbus::MessageReader reader(method_call); 338 dbus::MessageReader reader(method_call);
348 uint32 keysym = 0; 339 uint32 keysym = 0;
349 if (!reader.PopUint32(&keysym)) { 340 if (!reader.PopUint32(&keysym)) {
350 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: " 341 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: "
351 << method_call->ToString(); 342 << method_call->ToString();
352 return; 343 return;
353 } 344 }
354 uint32 keycode = 0; 345 uint32 keycode = 0;
355 if (!reader.PopUint32(&keycode)) { 346 if (!reader.PopUint32(&keycode)) {
356 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: " 347 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: "
357 << method_call->ToString(); 348 << method_call->ToString();
358 return; 349 return;
359 } 350 }
360 uint32 state = 0; 351 uint32 state = 0;
361 if (!reader.PopUint32(&state)) { 352 if (!reader.PopUint32(&state)) {
362 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: " 353 LOG(WARNING) << "ProcessKeyEvent called with incorrect parameters: "
363 << method_call->ToString(); 354 << method_call->ToString();
364 return; 355 return;
365 } 356 }
366 DCHECK(engine_handler_.get()); 357 DCHECK(engine_handler_.get());
367 bool consume = engine_handler_->ProcessKeyEvent(keysym, keycode, state); 358 bool consume = engine_handler_->ProcessKeyEvent(keysym, keycode, state);
368 scoped_ptr<dbus::Response> response( 359 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
369 dbus::Response::FromMethodCall(method_call)); 360 dbus::MessageWriter writer(response);
370 dbus::MessageWriter writer(response.get());
371 writer.AppendBool(consume); 361 writer.AppendBool(consume);
372 response_sender.Run(response.get()); 362 response_sender.Run(response);
373 } 363 }
374 364
375 // Handles CandidateClicked method call from ibus-daemon. 365 // Handles CandidateClicked method call from ibus-daemon.
376 void CandidateClicked(dbus::MethodCall* method_call, 366 void CandidateClicked(dbus::MethodCall* method_call,
377 dbus::ExportedObject::ResponseSender response_sender) { 367 dbus::ExportedObject::ResponseSender response_sender) {
378 dbus::MessageReader reader(method_call); 368 dbus::MessageReader reader(method_call);
379 uint32 index = 0; 369 uint32 index = 0;
380 if (!reader.PopUint32(&index)) { 370 if (!reader.PopUint32(&index)) {
381 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 371 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
382 << method_call->ToString(); 372 << method_call->ToString();
383 return; 373 return;
384 } 374 }
385 uint32 button = 0; 375 uint32 button = 0;
386 if (!reader.PopUint32(&button)) { 376 if (!reader.PopUint32(&button)) {
387 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 377 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
388 << method_call->ToString(); 378 << method_call->ToString();
389 return; 379 return;
390 } 380 }
391 uint32 state = 0; 381 uint32 state = 0;
392 if (!reader.PopUint32(&state)) { 382 if (!reader.PopUint32(&state)) {
393 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 383 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
394 << method_call->ToString(); 384 << method_call->ToString();
395 return; 385 return;
396 } 386 }
397 DCHECK(engine_handler_.get()); 387 DCHECK(engine_handler_.get());
398 engine_handler_->CandidateClicked( 388 engine_handler_->CandidateClicked(
399 index, 389 index,
400 static_cast<IBusEngineHandlerInterface::IBusMouseButton>(button), 390 static_cast<IBusEngineHandlerInterface::IBusMouseButton>(button),
401 state); 391 state);
402 scoped_ptr<dbus::Response> response( 392 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
403 dbus::Response::FromMethodCall(method_call)); 393 response_sender.Run(response);
404 response_sender.Run(response.get());
405 } 394 }
406 395
407 // Handles SetSurroundingText method call from ibus-daemon. 396 // Handles SetSurroundingText method call from ibus-daemon.
408 void SetSurroundingText( 397 void SetSurroundingText(
409 dbus::MethodCall* method_call, 398 dbus::MethodCall* method_call,
410 dbus::ExportedObject::ResponseSender response_sender) { 399 dbus::ExportedObject::ResponseSender response_sender) {
411 dbus::MessageReader reader(method_call); 400 dbus::MessageReader reader(method_call);
412 std::string text; 401 std::string text;
413 if (!reader.PopString(&text)) { 402 if (!reader.PopString(&text)) {
414 LOG(WARNING) << "SetSurroundingText called with incorrect parameters: " 403 LOG(WARNING) << "SetSurroundingText called with incorrect parameters: "
415 << method_call->ToString(); 404 << method_call->ToString();
416 return; 405 return;
417 } 406 }
418 uint32 cursor_pos = 0; 407 uint32 cursor_pos = 0;
419 if (!reader.PopUint32(&cursor_pos)) { 408 if (!reader.PopUint32(&cursor_pos)) {
420 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 409 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
421 << method_call->ToString(); 410 << method_call->ToString();
422 return; 411 return;
423 } 412 }
424 uint32 anchor_pos = 0; 413 uint32 anchor_pos = 0;
425 if (!reader.PopUint32(&anchor_pos)) { 414 if (!reader.PopUint32(&anchor_pos)) {
426 LOG(WARNING) << "CandidateClicked called with incorrect parameters: " 415 LOG(WARNING) << "CandidateClicked called with incorrect parameters: "
427 << method_call->ToString(); 416 << method_call->ToString();
428 return; 417 return;
429 } 418 }
430 419
431 DCHECK(engine_handler_.get()); 420 DCHECK(engine_handler_.get());
432 engine_handler_->SetSurroundingText(text, cursor_pos, anchor_pos); 421 engine_handler_->SetSurroundingText(text, cursor_pos, anchor_pos);
433 scoped_ptr<dbus::Response> response( 422 dbus::Response* response = dbus::Response::FromMethodCall(method_call);
434 dbus::Response::FromMethodCall(method_call)); 423 response_sender.Run(response);
435 response_sender.Run(response.get());
436 } 424 }
437 425
438 // Called when the method call is exported. 426 // Called when the method call is exported.
439 void OnMethodExported(const std::string& interface_name, 427 void OnMethodExported(const std::string& interface_name,
440 const std::string& method_name, 428 const std::string& method_name,
441 bool success) { 429 bool success) {
442 LOG_IF(WARNING, !success) << "Failed to export " 430 LOG_IF(WARNING, !success) << "Failed to export "
443 << interface_name << "." << method_name; 431 << interface_name << "." << method_name;
444 } 432 }
445 433
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 DBusClientImplementationType type, 479 DBusClientImplementationType type,
492 dbus::Bus* bus, 480 dbus::Bus* bus,
493 const dbus::ObjectPath& object_path) { 481 const dbus::ObjectPath& object_path) {
494 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 482 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
495 return new IBusEngineServiceImpl(bus, object_path); 483 return new IBusEngineServiceImpl(bus, object_path);
496 else 484 else
497 return new IBusEngineServiceStubImpl(); 485 return new IBusEngineServiceStubImpl();
498 } 486 }
499 487
500 } // namespace chromeos 488 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/ibus/ibus_engine_factory_service_unittest.cc ('k') | chromeos/dbus/ibus/ibus_engine_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698