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

Side by Side Diff: device/bluetooth/bluez/bluetooth_device_bluez.cc

Issue 2799353002: Restore BLUETOOTH_LOG and convert bluetooth_adapter_bluez to use it (Closed)
Patch Set: Fix BUILD.gn Created 3 years, 8 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
« no previous file with comments | « device/bluetooth/bluez/bluetooth_adapter_bluez.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "device/bluetooth/bluez/bluetooth_device_bluez.h" 5 #include "device/bluetooth/bluez/bluetooth_device_bluez.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/metrics/histogram_macros.h" 15 #include "base/metrics/histogram_macros.h"
16 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
17 #include "base/strings/string_util.h" 17 #include "base/strings/string_util.h"
18 #include "components/device_event_log/device_event_log.h"
18 #include "dbus/bus.h" 19 #include "dbus/bus.h"
19 #include "device/bluetooth/bluetooth_socket.h" 20 #include "device/bluetooth/bluetooth_socket.h"
20 #include "device/bluetooth/bluetooth_socket_thread.h" 21 #include "device/bluetooth/bluetooth_socket_thread.h"
21 #include "device/bluetooth/bluetooth_uuid.h" 22 #include "device/bluetooth/bluetooth_uuid.h"
22 #include "device/bluetooth/bluez/bluetooth_adapter_bluez.h" 23 #include "device/bluetooth/bluez/bluetooth_adapter_bluez.h"
23 #include "device/bluetooth/bluez/bluetooth_gatt_connection_bluez.h" 24 #include "device/bluetooth/bluez/bluetooth_gatt_connection_bluez.h"
24 #include "device/bluetooth/bluez/bluetooth_pairing_bluez.h" 25 #include "device/bluetooth/bluez/bluetooth_pairing_bluez.h"
25 #include "device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.h" 26 #include "device/bluetooth/bluez/bluetooth_remote_gatt_service_bluez.h"
26 #include "device/bluetooth/bluez/bluetooth_service_record_bluez.h" 27 #include "device/bluetooth/bluez/bluetooth_service_record_bluez.h"
27 #include "device/bluetooth/bluez/bluetooth_socket_bluez.h" 28 #include "device/bluetooth/bluez/bluetooth_socket_bluez.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 if (sscanf(modalias.c_str(), "bluetooth:v%04xp%04xd%04x", &vendor_value, 73 if (sscanf(modalias.c_str(), "bluetooth:v%04xp%04xd%04x", &vendor_value,
73 &product_value, &device_value) == 3) { 74 &product_value, &device_value) == 3) {
74 source_value = BluetoothDevice::VENDOR_ID_BLUETOOTH; 75 source_value = BluetoothDevice::VENDOR_ID_BLUETOOTH;
75 } else if (sscanf(modalias.c_str(), "usb:v%04xp%04xd%04x", &vendor_value, 76 } else if (sscanf(modalias.c_str(), "usb:v%04xp%04xd%04x", &vendor_value,
76 &product_value, &device_value) == 3) { 77 &product_value, &device_value) == 3) {
77 source_value = BluetoothDevice::VENDOR_ID_USB; 78 source_value = BluetoothDevice::VENDOR_ID_USB;
78 } else { 79 } else {
79 return; 80 return;
80 } 81 }
81 82
82 if (vendor_id_source != NULL) 83 if (vendor_id_source != nullptr)
83 *vendor_id_source = source_value; 84 *vendor_id_source = source_value;
84 if (vendor_id != NULL) 85 if (vendor_id != nullptr)
85 *vendor_id = vendor_value; 86 *vendor_id = vendor_value;
86 if (product_id != NULL) 87 if (product_id != nullptr)
87 *product_id = product_value; 88 *product_id = product_value;
88 if (device_id != NULL) 89 if (device_id != nullptr)
89 *device_id = device_value; 90 *device_id = device_value;
90 } 91 }
91 92
92 void RecordPairingResult(BluetoothDevice::ConnectErrorCode error_code) { 93 void RecordPairingResult(BluetoothDevice::ConnectErrorCode error_code) {
93 UMAPairingResult pairing_result; 94 UMAPairingResult pairing_result;
94 switch (error_code) { 95 switch (error_code) {
95 case BluetoothDevice::ERROR_INPROGRESS: 96 case BluetoothDevice::ERROR_INPROGRESS:
96 pairing_result = UMA_PAIRING_RESULT_INPROGRESS; 97 pairing_result = UMA_PAIRING_RESULT_INPROGRESS;
97 break; 98 break;
98 case BluetoothDevice::ERROR_FAILED: 99 case BluetoothDevice::ERROR_FAILED:
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 socket_thread_(socket_thread), 158 socket_thread_(socket_thread),
158 weak_ptr_factory_(this) { 159 weak_ptr_factory_(this) {
159 bluez::BluezDBusManager::Get()->GetBluetoothGattServiceClient()->AddObserver( 160 bluez::BluezDBusManager::Get()->GetBluetoothGattServiceClient()->AddObserver(
160 this); 161 this);
161 162
162 // If GATT Services have already been discovered update the list of Gatt 163 // If GATT Services have already been discovered update the list of Gatt
163 // Services. 164 // Services.
164 if (IsGattServicesDiscoveryComplete()) { 165 if (IsGattServicesDiscoveryComplete()) {
165 UpdateGattServices(object_path_); 166 UpdateGattServices(object_path_);
166 } else { 167 } else {
167 VLOG(2) << "Gatt services have not been fully resolved for device " 168 BLUETOOTH_LOG(DEBUG)
168 << object_path_.value(); 169 << "Gatt services have not been fully resolved for device "
170 << object_path_.value();
169 } 171 }
170 172
171 // Update all the data that we cache within Chrome and do not pull from 173 // Update all the data that we cache within Chrome and do not pull from
172 // properties every time. TODO(xiaoyinh): Add a test for this. See 174 // properties every time. TODO(xiaoyinh): Add a test for this. See
173 // http://crbug.com/688566. 175 // http://crbug.com/688566.
174 UpdateServiceData(); 176 UpdateServiceData();
175 UpdateManufacturerData(); 177 UpdateManufacturerData();
176 UpdateAdvertisingDataFlags(); 178 UpdateAdvertisingDataFlags();
177 } 179 }
178 180
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 // IsPaired() returns true if we've connected to the device before. So we 257 // IsPaired() returns true if we've connected to the device before. So we
256 // check the dbus property directly. 258 // check the dbus property directly.
257 // TODO(crbug.com/649651): Use IsPaired once it returns true only for paired 259 // TODO(crbug.com/649651): Use IsPaired once it returns true only for paired
258 // devices. 260 // devices.
259 bluez::BluetoothDeviceClient::Properties* properties = 261 bluez::BluetoothDeviceClient::Properties* properties =
260 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties( 262 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties(
261 object_path_); 263 object_path_);
262 DCHECK(properties); 264 DCHECK(properties);
263 265
264 if (properties->paired.value()) { 266 if (properties->paired.value()) {
265 LOG(WARNING) << "Leaking connection to paired device."; 267 BLUETOOTH_LOG(ERROR) << "Leaking connection to paired device.";
266 return; 268 return;
267 } 269 }
268 270
269 Disconnect(base::Bind(&base::DoNothing), base::Bind(&base::DoNothing)); 271 Disconnect(base::Bind(&base::DoNothing), base::Bind(&base::DoNothing));
270 } 272 }
271 273
272 std::string BluetoothDeviceBlueZ::GetAddress() const { 274 std::string BluetoothDeviceBlueZ::GetAddress() const {
273 bluez::BluetoothDeviceClient::Properties* properties = 275 bluez::BluetoothDeviceClient::Properties* properties =
274 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties( 276 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties(
275 object_path_); 277 object_path_);
276 DCHECK(properties); 278 DCHECK(properties);
277 279
278 return CanonicalizeAddress(properties->address.value()); 280 return CanonicalizeAddress(properties->address.value());
279 } 281 }
280 282
281 BluetoothDevice::VendorIDSource BluetoothDeviceBlueZ::GetVendorIDSource() 283 BluetoothDevice::VendorIDSource BluetoothDeviceBlueZ::GetVendorIDSource()
282 const { 284 const {
283 VendorIDSource vendor_id_source = VENDOR_ID_UNKNOWN; 285 VendorIDSource vendor_id_source = VENDOR_ID_UNKNOWN;
284 ParseModalias(object_path_, &vendor_id_source, NULL, NULL, NULL); 286 ParseModalias(object_path_, &vendor_id_source, nullptr, nullptr, nullptr);
285 return vendor_id_source; 287 return vendor_id_source;
286 } 288 }
287 289
288 uint16_t BluetoothDeviceBlueZ::GetVendorID() const { 290 uint16_t BluetoothDeviceBlueZ::GetVendorID() const {
289 uint16_t vendor_id = 0; 291 uint16_t vendor_id = 0;
290 ParseModalias(object_path_, NULL, &vendor_id, NULL, NULL); 292 ParseModalias(object_path_, nullptr, &vendor_id, nullptr, nullptr);
291 return vendor_id; 293 return vendor_id;
292 } 294 }
293 295
294 uint16_t BluetoothDeviceBlueZ::GetProductID() const { 296 uint16_t BluetoothDeviceBlueZ::GetProductID() const {
295 uint16_t product_id = 0; 297 uint16_t product_id = 0;
296 ParseModalias(object_path_, NULL, NULL, &product_id, NULL); 298 ParseModalias(object_path_, nullptr, nullptr, &product_id, nullptr);
297 return product_id; 299 return product_id;
298 } 300 }
299 301
300 uint16_t BluetoothDeviceBlueZ::GetDeviceID() const { 302 uint16_t BluetoothDeviceBlueZ::GetDeviceID() const {
301 uint16_t device_id = 0; 303 uint16_t device_id = 0;
302 ParseModalias(object_path_, NULL, NULL, NULL, &device_id); 304 ParseModalias(object_path_, nullptr, nullptr, nullptr, &device_id);
303 return device_id; 305 return device_id;
304 } 306 }
305 307
306 uint16_t BluetoothDeviceBlueZ::GetAppearance() const { 308 uint16_t BluetoothDeviceBlueZ::GetAppearance() const {
307 bluez::BluetoothDeviceClient::Properties* properties = 309 bluez::BluetoothDeviceClient::Properties* properties =
308 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties( 310 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetProperties(
309 object_path_); 311 object_path_);
310 DCHECK(properties); 312 DCHECK(properties);
311 313
312 if (!properties->appearance.is_valid()) 314 if (!properties->appearance.is_valid())
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 bool BluetoothDeviceBlueZ::IsGattConnected() const { 354 bool BluetoothDeviceBlueZ::IsGattConnected() const {
353 // Bluez uses the same attribute for GATT Connections and Classic BT 355 // Bluez uses the same attribute for GATT Connections and Classic BT
354 // Connections. 356 // Connections.
355 return IsConnected(); 357 return IsConnected();
356 } 358 }
357 359
358 bool BluetoothDeviceBlueZ::IsConnectable() const { 360 bool BluetoothDeviceBlueZ::IsConnectable() const {
359 bluez::BluetoothInputClient::Properties* input_properties = 361 bluez::BluetoothInputClient::Properties* input_properties =
360 bluez::BluezDBusManager::Get()->GetBluetoothInputClient()->GetProperties( 362 bluez::BluezDBusManager::Get()->GetBluetoothInputClient()->GetProperties(
361 object_path_); 363 object_path_);
362 // GetProperties returns NULL when the device does not implement the given 364 // GetProperties returns nullptr when the device does not implement the given
363 // interface. Non HID devices are normally connectable. 365 // interface. Non HID devices are normally connectable.
364 if (!input_properties) 366 if (!input_properties)
365 return true; 367 return true;
366 368
367 return input_properties->reconnect_mode.value() != "device"; 369 return input_properties->reconnect_mode.value() != "device";
368 } 370 }
369 371
370 bool BluetoothDeviceBlueZ::IsConnecting() const { 372 bool BluetoothDeviceBlueZ::IsConnecting() const {
371 return num_connecting_calls_ > 0; 373 return num_connecting_calls_ > 0;
372 } 374 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 429
428 bool BluetoothDeviceBlueZ::ExpectingConfirmation() const { 430 bool BluetoothDeviceBlueZ::ExpectingConfirmation() const {
429 return pairing_.get() && pairing_->ExpectingConfirmation(); 431 return pairing_.get() && pairing_->ExpectingConfirmation();
430 } 432 }
431 433
432 void BluetoothDeviceBlueZ::GetConnectionInfo( 434 void BluetoothDeviceBlueZ::GetConnectionInfo(
433 const ConnectionInfoCallback& callback) { 435 const ConnectionInfoCallback& callback) {
434 // DBus method call should gracefully return an error if the device is not 436 // DBus method call should gracefully return an error if the device is not
435 // currently connected. 437 // currently connected.
436 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetConnInfo( 438 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetConnInfo(
437 object_path_, base::Bind(&BluetoothDeviceBlueZ::OnGetConnInfo, 439 object_path_,
438 weak_ptr_factory_.GetWeakPtr(), callback), 440 base::Bind(&BluetoothDeviceBlueZ::OnGetConnInfo,
441 weak_ptr_factory_.GetWeakPtr(), callback),
439 base::Bind(&BluetoothDeviceBlueZ::OnGetConnInfoError, 442 base::Bind(&BluetoothDeviceBlueZ::OnGetConnInfoError,
440 weak_ptr_factory_.GetWeakPtr(), callback)); 443 weak_ptr_factory_.GetWeakPtr(), callback));
441 } 444 }
442 445
443 void BluetoothDeviceBlueZ::Connect( 446 void BluetoothDeviceBlueZ::Connect(
444 BluetoothDevice::PairingDelegate* pairing_delegate, 447 BluetoothDevice::PairingDelegate* pairing_delegate,
445 const base::Closure& callback, 448 const base::Closure& callback,
446 const ConnectErrorCallback& error_callback) { 449 const ConnectErrorCallback& error_callback) {
447 if (num_connecting_calls_++ == 0) 450 if (num_connecting_calls_++ == 0)
448 adapter()->NotifyDeviceChanged(this); 451 adapter()->NotifyDeviceChanged(this);
449 452
450 VLOG(1) << object_path_.value() << ": Connecting, " << num_connecting_calls_ 453 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Connecting, "
451 << " in progress"; 454 << num_connecting_calls_ << " in progress";
452 455
453 if (IsPaired() || !pairing_delegate) { 456 if (IsPaired() || !pairing_delegate) {
454 // No need to pair, or unable to, skip straight to connection. 457 // No need to pair, or unable to, skip straight to connection.
455 ConnectInternal(false, callback, error_callback); 458 ConnectInternal(false, callback, error_callback);
456 } else { 459 } else {
457 // Initiate high-security connection with pairing. 460 // Initiate high-security connection with pairing.
458 BeginPairing(pairing_delegate); 461 BeginPairing(pairing_delegate);
459 462
460 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Pair( 463 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Pair(
461 object_path_, 464 object_path_,
462 base::Bind(&BluetoothDeviceBlueZ::OnPairDuringConnect, 465 base::Bind(&BluetoothDeviceBlueZ::OnPairDuringConnect,
463 weak_ptr_factory_.GetWeakPtr(), callback, error_callback), 466 weak_ptr_factory_.GetWeakPtr(), callback, error_callback),
464 base::Bind(&BluetoothDeviceBlueZ::OnPairDuringConnectError, 467 base::Bind(&BluetoothDeviceBlueZ::OnPairDuringConnectError,
465 weak_ptr_factory_.GetWeakPtr(), error_callback)); 468 weak_ptr_factory_.GetWeakPtr(), error_callback));
466 } 469 }
467 } 470 }
468 471
469 void BluetoothDeviceBlueZ::Pair( 472 void BluetoothDeviceBlueZ::Pair(
470 BluetoothDevice::PairingDelegate* pairing_delegate, 473 BluetoothDevice::PairingDelegate* pairing_delegate,
471 const base::Closure& callback, 474 const base::Closure& callback,
472 const ConnectErrorCallback& error_callback) { 475 const ConnectErrorCallback& error_callback) {
473 DCHECK(pairing_delegate); 476 DCHECK(pairing_delegate);
474 BeginPairing(pairing_delegate); 477 BeginPairing(pairing_delegate);
475 478
476 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Pair( 479 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Pair(
477 object_path_, base::Bind(&BluetoothDeviceBlueZ::OnPair, 480 object_path_,
478 weak_ptr_factory_.GetWeakPtr(), callback), 481 base::Bind(&BluetoothDeviceBlueZ::OnPair, weak_ptr_factory_.GetWeakPtr(),
482 callback),
479 base::Bind(&BluetoothDeviceBlueZ::OnPairError, 483 base::Bind(&BluetoothDeviceBlueZ::OnPairError,
480 weak_ptr_factory_.GetWeakPtr(), error_callback)); 484 weak_ptr_factory_.GetWeakPtr(), error_callback));
481 } 485 }
482 486
483 void BluetoothDeviceBlueZ::SetPinCode(const std::string& pincode) { 487 void BluetoothDeviceBlueZ::SetPinCode(const std::string& pincode) {
484 if (!pairing_.get()) 488 if (!pairing_.get())
485 return; 489 return;
486 490
487 pairing_->SetPinCode(pincode); 491 pairing_->SetPinCode(pincode);
488 } 492 }
(...skipping 15 matching lines...) Expand all
504 void BluetoothDeviceBlueZ::RejectPairing() { 508 void BluetoothDeviceBlueZ::RejectPairing() {
505 if (!pairing_.get()) 509 if (!pairing_.get())
506 return; 510 return;
507 511
508 pairing_->RejectPairing(); 512 pairing_->RejectPairing();
509 } 513 }
510 514
511 void BluetoothDeviceBlueZ::CancelPairing() { 515 void BluetoothDeviceBlueZ::CancelPairing() {
512 bool canceled = false; 516 bool canceled = false;
513 517
518 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": CancelPairing";
519
514 // If there is a callback in progress that we can reply to then use that 520 // If there is a callback in progress that we can reply to then use that
515 // to cancel the current pairing request. 521 // to cancel the current pairing request.
516 if (pairing_.get() && pairing_->CancelPairing()) 522 if (pairing_.get() && pairing_->CancelPairing())
517 canceled = true; 523 canceled = true;
518 524
519 // If not we have to send an explicit CancelPairing() to the device instead. 525 // If not we have to send an explicit CancelPairing() to the device instead.
520 if (!canceled) { 526 if (!canceled) {
521 VLOG(1) << object_path_.value() << ": No pairing context or callback. " 527 BLUETOOTH_LOG(DEBUG) << object_path_.value()
522 << "Sending explicit cancel"; 528 << ": No pairing context or callback. "
529 << "Sending explicit cancel";
523 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->CancelPairing( 530 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->CancelPairing(
524 object_path_, base::Bind(&base::DoNothing), 531 object_path_, base::Bind(&base::DoNothing),
525 base::Bind(&BluetoothDeviceBlueZ::OnCancelPairingError, 532 base::Bind(&BluetoothDeviceBlueZ::OnCancelPairingError,
526 weak_ptr_factory_.GetWeakPtr())); 533 weak_ptr_factory_.GetWeakPtr()));
527 } 534 }
528 535
529 // Since there is no callback to this method it's possible that the pairing 536 // Since there is no callback to this method it's possible that the pairing
530 // delegate is going to be freed before things complete (indeed it's 537 // delegate is going to be freed before things complete (indeed it's
531 // documented that this is the method you should call while freeing the 538 // documented that this is the method you should call while freeing the
532 // pairing delegate), so clear our the context holding on to it. 539 // pairing delegate), so clear our the context holding on to it.
533 EndPairing(); 540 EndPairing();
534 } 541 }
535 542
536 void BluetoothDeviceBlueZ::Disconnect(const base::Closure& callback, 543 void BluetoothDeviceBlueZ::Disconnect(const base::Closure& callback,
537 const ErrorCallback& error_callback) { 544 const ErrorCallback& error_callback) {
538 VLOG(1) << object_path_.value() << ": Disconnecting"; 545 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Disconnecting";
539 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Disconnect( 546 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Disconnect(
540 object_path_, base::Bind(&BluetoothDeviceBlueZ::OnDisconnect, 547 object_path_,
541 weak_ptr_factory_.GetWeakPtr(), callback), 548 base::Bind(&BluetoothDeviceBlueZ::OnDisconnect,
549 weak_ptr_factory_.GetWeakPtr(), callback),
542 base::Bind(&BluetoothDeviceBlueZ::OnDisconnectError, 550 base::Bind(&BluetoothDeviceBlueZ::OnDisconnectError,
543 weak_ptr_factory_.GetWeakPtr(), error_callback)); 551 weak_ptr_factory_.GetWeakPtr(), error_callback));
544 } 552 }
545 553
546 void BluetoothDeviceBlueZ::Forget(const base::Closure& callback, 554 void BluetoothDeviceBlueZ::Forget(const base::Closure& callback,
547 const ErrorCallback& error_callback) { 555 const ErrorCallback& error_callback) {
548 VLOG(1) << object_path_.value() << ": Removing device"; 556 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Removing device";
549 bluez::BluezDBusManager::Get()->GetBluetoothAdapterClient()->RemoveDevice( 557 bluez::BluezDBusManager::Get()->GetBluetoothAdapterClient()->RemoveDevice(
550 adapter()->object_path(), object_path_, callback, 558 adapter()->object_path(), object_path_, callback,
551 base::Bind(&BluetoothDeviceBlueZ::OnForgetError, 559 base::Bind(&BluetoothDeviceBlueZ::OnForgetError,
552 weak_ptr_factory_.GetWeakPtr(), error_callback)); 560 weak_ptr_factory_.GetWeakPtr(), error_callback));
553 } 561 }
554 562
555 void BluetoothDeviceBlueZ::ConnectToService( 563 void BluetoothDeviceBlueZ::ConnectToService(
556 const BluetoothUUID& uuid, 564 const BluetoothUUID& uuid,
557 const ConnectToServiceCallback& callback, 565 const ConnectToServiceCallback& callback,
558 const ConnectToServiceErrorCallback& error_callback) { 566 const ConnectToServiceErrorCallback& error_callback) {
559 VLOG(1) << object_path_.value() 567 BLUETOOTH_LOG(EVENT) << object_path_.value()
560 << ": Connecting to service: " << uuid.canonical_value(); 568 << ": Connecting to service: " << uuid.canonical_value();
561 scoped_refptr<BluetoothSocketBlueZ> socket = 569 scoped_refptr<BluetoothSocketBlueZ> socket =
562 BluetoothSocketBlueZ::CreateBluetoothSocket(ui_task_runner_, 570 BluetoothSocketBlueZ::CreateBluetoothSocket(ui_task_runner_,
563 socket_thread_); 571 socket_thread_);
564 socket->Connect(this, uuid, BluetoothSocketBlueZ::SECURITY_LEVEL_MEDIUM, 572 socket->Connect(this, uuid, BluetoothSocketBlueZ::SECURITY_LEVEL_MEDIUM,
565 base::Bind(callback, socket), error_callback); 573 base::Bind(callback, socket), error_callback);
566 } 574 }
567 575
568 void BluetoothDeviceBlueZ::ConnectToServiceInsecurely( 576 void BluetoothDeviceBlueZ::ConnectToServiceInsecurely(
569 const BluetoothUUID& uuid, 577 const BluetoothUUID& uuid,
570 const ConnectToServiceCallback& callback, 578 const ConnectToServiceCallback& callback,
571 const ConnectToServiceErrorCallback& error_callback) { 579 const ConnectToServiceErrorCallback& error_callback) {
572 VLOG(1) << object_path_.value() 580 BLUETOOTH_LOG(EVENT) << object_path_.value()
573 << ": Connecting insecurely to service: " << uuid.canonical_value(); 581 << ": Connecting insecurely to service: "
582 << uuid.canonical_value();
574 scoped_refptr<BluetoothSocketBlueZ> socket = 583 scoped_refptr<BluetoothSocketBlueZ> socket =
575 BluetoothSocketBlueZ::CreateBluetoothSocket(ui_task_runner_, 584 BluetoothSocketBlueZ::CreateBluetoothSocket(ui_task_runner_,
576 socket_thread_); 585 socket_thread_);
577 socket->Connect(this, uuid, BluetoothSocketBlueZ::SECURITY_LEVEL_LOW, 586 socket->Connect(this, uuid, BluetoothSocketBlueZ::SECURITY_LEVEL_LOW,
578 base::Bind(callback, socket), error_callback); 587 base::Bind(callback, socket), error_callback);
579 } 588 }
580 589
581 void BluetoothDeviceBlueZ::CreateGattConnection( 590 void BluetoothDeviceBlueZ::CreateGattConnection(
582 const GattConnectionCallback& callback, 591 const GattConnectionCallback& callback,
583 const ConnectErrorCallback& error_callback) { 592 const ConnectErrorCallback& error_callback) {
584 // TODO(sacomoto): Workaround to retrieve the connection for already connected 593 // TODO(sacomoto): Workaround to retrieve the connection for already connected
585 // devices. Currently, BluetoothGattConnection::Disconnect doesn't do 594 // devices. Currently, BluetoothGattConnection::Disconnect doesn't do
586 // anything, the unique underlying physical GATT connection is kept. This 595 // anything, the unique underlying physical GATT connection is kept. This
587 // should be removed once the correct behavour is implemented and the GATT 596 // should be removed once the correct behavour is implemented and the GATT
588 // connections are reference counted (see todo below). 597 // connections are reference counted (see todo below).
589 if (IsConnected()) { 598 if (IsConnected()) {
590 OnCreateGattConnection(callback); 599 OnCreateGattConnection(callback);
591 return; 600 return;
592 } 601 }
593 602
594 // TODO(crbug.com/630586): Until there is a way to create a reference counted 603 // TODO(crbug.com/630586): Until there is a way to create a reference counted
595 // GATT connection in bluetoothd, simply do a regular connect. 604 // GATT connection in bluetoothd, simply do a regular connect.
596 Connect(NULL, base::Bind(&BluetoothDeviceBlueZ::OnCreateGattConnection, 605 Connect(nullptr,
597 weak_ptr_factory_.GetWeakPtr(), callback), 606 base::Bind(&BluetoothDeviceBlueZ::OnCreateGattConnection,
607 weak_ptr_factory_.GetWeakPtr(), callback),
598 error_callback); 608 error_callback);
599 } 609 }
600 610
601 void BluetoothDeviceBlueZ::GetServiceRecords( 611 void BluetoothDeviceBlueZ::GetServiceRecords(
602 const GetServiceRecordsCallback& callback, 612 const GetServiceRecordsCallback& callback,
603 const GetServiceRecordsErrorCallback& error_callback) { 613 const GetServiceRecordsErrorCallback& error_callback) {
604 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetServiceRecords( 614 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->GetServiceRecords(
605 object_path_, callback, 615 object_path_, callback,
606 base::Bind(&BluetoothDeviceBlueZ::OnGetServiceRecordsError, 616 base::Bind(&BluetoothDeviceBlueZ::OnGetServiceRecordsError,
607 weak_ptr_factory_.GetWeakPtr(), error_callback)); 617 weak_ptr_factory_.GetWeakPtr(), error_callback));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 return pairing_.get(); 670 return pairing_.get();
661 } 671 }
662 672
663 BluetoothAdapterBlueZ* BluetoothDeviceBlueZ::adapter() const { 673 BluetoothAdapterBlueZ* BluetoothDeviceBlueZ::adapter() const {
664 return static_cast<BluetoothAdapterBlueZ*>(adapter_); 674 return static_cast<BluetoothAdapterBlueZ*>(adapter_);
665 } 675 }
666 676
667 void BluetoothDeviceBlueZ::GattServiceAdded( 677 void BluetoothDeviceBlueZ::GattServiceAdded(
668 const dbus::ObjectPath& object_path) { 678 const dbus::ObjectPath& object_path) {
669 if (GetGattService(object_path.value())) { 679 if (GetGattService(object_path.value())) {
670 VLOG(1) << "Remote GATT service already exists: " << object_path.value(); 680 BLUETOOTH_LOG(DEBUG) << "Remote GATT service already exists: "
681 << object_path.value();
671 return; 682 return;
672 } 683 }
673 684
674 bluez::BluetoothGattServiceClient::Properties* properties = 685 bluez::BluetoothGattServiceClient::Properties* properties =
675 bluez::BluezDBusManager::Get() 686 bluez::BluezDBusManager::Get()
676 ->GetBluetoothGattServiceClient() 687 ->GetBluetoothGattServiceClient()
677 ->GetProperties(object_path); 688 ->GetProperties(object_path);
678 DCHECK(properties); 689 DCHECK(properties);
679 if (properties->device.value() != object_path_) { 690 if (properties->device.value() != object_path_) {
680 VLOG(2) << "Remote GATT service does not belong to this device."; 691 BLUETOOTH_LOG(DEBUG)
692 << "Remote GATT service does not belong to this device.";
681 return; 693 return;
682 } 694 }
683 695
684 VLOG(1) << "Adding new remote GATT service for device: " << GetAddress(); 696 BLUETOOTH_LOG(EVENT) << "Adding new remote GATT service for device: "
697 << GetAddress();
685 698
686 BluetoothRemoteGattServiceBlueZ* service = 699 BluetoothRemoteGattServiceBlueZ* service =
687 new BluetoothRemoteGattServiceBlueZ(adapter(), this, object_path); 700 new BluetoothRemoteGattServiceBlueZ(adapter(), this, object_path);
688 701
689 gatt_services_[service->GetIdentifier()] = base::WrapUnique(service); 702 gatt_services_[service->GetIdentifier()] = base::WrapUnique(service);
690 DCHECK(service->object_path() == object_path); 703 DCHECK(service->object_path() == object_path);
691 DCHECK(service->GetUUID().IsValid()); 704 DCHECK(service->GetUUID().IsValid());
692 705
693 DCHECK(adapter()); 706 DCHECK(adapter());
694 adapter()->NotifyGattServiceAdded(service); 707 adapter()->NotifyGattServiceAdded(service);
695 } 708 }
696 709
697 void BluetoothDeviceBlueZ::GattServiceRemoved( 710 void BluetoothDeviceBlueZ::GattServiceRemoved(
698 const dbus::ObjectPath& object_path) { 711 const dbus::ObjectPath& object_path) {
699 auto iter = gatt_services_.find(object_path.value()); 712 auto iter = gatt_services_.find(object_path.value());
700 if (iter == gatt_services_.end()) { 713 if (iter == gatt_services_.end()) {
701 VLOG(3) << "Unknown GATT service removed: " << object_path.value(); 714 VLOG(3) << "Unknown GATT service removed: " << object_path.value();
702 return; 715 return;
703 } 716 }
704 717
705 BluetoothRemoteGattServiceBlueZ* service = 718 BluetoothRemoteGattServiceBlueZ* service =
706 static_cast<BluetoothRemoteGattServiceBlueZ*>(iter->second.get()); 719 static_cast<BluetoothRemoteGattServiceBlueZ*>(iter->second.get());
707 720
708 VLOG(1) << "Removing remote GATT service with UUID: '" 721 BLUETOOTH_LOG(EVENT) << "Removing remote GATT service with UUID: '"
709 << service->GetUUID().canonical_value() 722 << service->GetUUID().canonical_value()
710 << "' from device: " << GetAddress(); 723 << "' from device: " << GetAddress();
711 724
712 DCHECK(service->object_path() == object_path); 725 DCHECK(service->object_path() == object_path);
713 std::unique_ptr<BluetoothRemoteGattService> scoped_service = 726 std::unique_ptr<BluetoothRemoteGattService> scoped_service =
714 std::move(gatt_services_[object_path.value()]); 727 std::move(gatt_services_[object_path.value()]);
715 gatt_services_.erase(iter); 728 gatt_services_.erase(iter);
716 729
717 DCHECK(adapter()); 730 DCHECK(adapter());
718 discovery_complete_notified_.erase(service); 731 discovery_complete_notified_.erase(service);
719 adapter()->NotifyGattServiceRemoved(service); 732 adapter()->NotifyGattServiceRemoved(service);
720 } 733 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 int16_t rssi, 771 int16_t rssi,
759 int16_t transmit_power, 772 int16_t transmit_power,
760 int16_t max_transmit_power) { 773 int16_t max_transmit_power) {
761 callback.Run(ConnectionInfo(rssi, transmit_power, max_transmit_power)); 774 callback.Run(ConnectionInfo(rssi, transmit_power, max_transmit_power));
762 } 775 }
763 776
764 void BluetoothDeviceBlueZ::OnGetConnInfoError( 777 void BluetoothDeviceBlueZ::OnGetConnInfoError(
765 const ConnectionInfoCallback& callback, 778 const ConnectionInfoCallback& callback,
766 const std::string& error_name, 779 const std::string& error_name,
767 const std::string& error_message) { 780 const std::string& error_message) {
768 LOG(WARNING) << object_path_.value() 781 BLUETOOTH_LOG(ERROR) << object_path_.value()
769 << ": Failed to get connection info: " << error_name << ": " 782 << ": Failed to get connection info: " << error_name
770 << error_message; 783 << ": " << error_message;
771 callback.Run(ConnectionInfo()); 784 callback.Run(ConnectionInfo());
772 } 785 }
773 786
774 void BluetoothDeviceBlueZ::OnGetServiceRecordsError( 787 void BluetoothDeviceBlueZ::OnGetServiceRecordsError(
775 const GetServiceRecordsErrorCallback& error_callback, 788 const GetServiceRecordsErrorCallback& error_callback,
776 const std::string& error_name, 789 const std::string& error_name,
777 const std::string& error_message) { 790 const std::string& error_message) {
778 VLOG(1) << object_path_.value() 791 BLUETOOTH_LOG(EVENT) << object_path_.value()
779 << ": Failed to get service records: " << error_name << ": " 792 << ": Failed to get service records: " << error_name
780 << error_message; 793 << ": " << error_message;
781 BluetoothServiceRecordBlueZ::ErrorCode code = 794 BluetoothServiceRecordBlueZ::ErrorCode code =
782 BluetoothServiceRecordBlueZ::ErrorCode::UNKNOWN; 795 BluetoothServiceRecordBlueZ::ErrorCode::UNKNOWN;
783 if (error_name == bluetooth_device::kErrorNotConnected) { 796 if (error_name == bluetooth_device::kErrorNotConnected) {
784 code = BluetoothServiceRecordBlueZ::ErrorCode::ERROR_DEVICE_DISCONNECTED; 797 code = BluetoothServiceRecordBlueZ::ErrorCode::ERROR_DEVICE_DISCONNECTED;
785 } 798 }
786 error_callback.Run(code); 799 error_callback.Run(code);
787 } 800 }
788 801
789 void BluetoothDeviceBlueZ::ConnectInternal( 802 void BluetoothDeviceBlueZ::ConnectInternal(
790 bool after_pairing, 803 bool after_pairing,
791 const base::Closure& callback, 804 const base::Closure& callback,
792 const ConnectErrorCallback& error_callback) { 805 const ConnectErrorCallback& error_callback) {
793 VLOG(1) << object_path_.value() << ": Connecting"; 806 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Connecting";
794 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Connect( 807 bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()->Connect(
795 object_path_, 808 object_path_,
796 base::Bind(&BluetoothDeviceBlueZ::OnConnect, 809 base::Bind(&BluetoothDeviceBlueZ::OnConnect,
797 weak_ptr_factory_.GetWeakPtr(), after_pairing, callback), 810 weak_ptr_factory_.GetWeakPtr(), after_pairing, callback),
798 base::Bind(&BluetoothDeviceBlueZ::OnConnectError, 811 base::Bind(&BluetoothDeviceBlueZ::OnConnectError,
799 weak_ptr_factory_.GetWeakPtr(), after_pairing, 812 weak_ptr_factory_.GetWeakPtr(), after_pairing,
800 error_callback)); 813 error_callback));
801 } 814 }
802 815
803 void BluetoothDeviceBlueZ::OnConnect(bool after_pairing, 816 void BluetoothDeviceBlueZ::OnConnect(bool after_pairing,
804 const base::Closure& callback) { 817 const base::Closure& callback) {
805 if (--num_connecting_calls_ == 0) 818 if (--num_connecting_calls_ == 0)
806 adapter()->NotifyDeviceChanged(this); 819 adapter()->NotifyDeviceChanged(this);
807 820
808 DCHECK(num_connecting_calls_ >= 0); 821 DCHECK(num_connecting_calls_ >= 0);
809 VLOG(1) << object_path_.value() << ": Connected, " << num_connecting_calls_ 822 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Connected, "
810 << " still in progress"; 823 << num_connecting_calls_ << " still in progress";
811 824
812 SetTrusted(); 825 SetTrusted();
813 826
814 if (after_pairing) 827 if (after_pairing)
815 UMA_HISTOGRAM_ENUMERATION("Bluetooth.PairingResult", 828 UMA_HISTOGRAM_ENUMERATION("Bluetooth.PairingResult",
816 UMA_PAIRING_RESULT_SUCCESS, 829 UMA_PAIRING_RESULT_SUCCESS,
817 UMA_PAIRING_RESULT_COUNT); 830 UMA_PAIRING_RESULT_COUNT);
818 831
819 callback.Run(); 832 callback.Run();
820 } 833 }
821 834
822 void BluetoothDeviceBlueZ::OnCreateGattConnection( 835 void BluetoothDeviceBlueZ::OnCreateGattConnection(
823 const GattConnectionCallback& callback) { 836 const GattConnectionCallback& callback) {
824 std::unique_ptr<device::BluetoothGattConnection> conn( 837 std::unique_ptr<device::BluetoothGattConnection> conn(
825 new BluetoothGattConnectionBlueZ(adapter_, GetAddress(), object_path_)); 838 new BluetoothGattConnectionBlueZ(adapter_, GetAddress(), object_path_));
826 callback.Run(std::move(conn)); 839 callback.Run(std::move(conn));
827 } 840 }
828 841
829 void BluetoothDeviceBlueZ::OnConnectError( 842 void BluetoothDeviceBlueZ::OnConnectError(
830 bool after_pairing, 843 bool after_pairing,
831 const ConnectErrorCallback& error_callback, 844 const ConnectErrorCallback& error_callback,
832 const std::string& error_name, 845 const std::string& error_name,
833 const std::string& error_message) { 846 const std::string& error_message) {
834 if (--num_connecting_calls_ == 0) 847 if (--num_connecting_calls_ == 0)
835 adapter()->NotifyDeviceChanged(this); 848 adapter()->NotifyDeviceChanged(this);
836 849
837 DCHECK(num_connecting_calls_ >= 0); 850 DCHECK(num_connecting_calls_ >= 0);
838 LOG(WARNING) << object_path_.value() 851 BLUETOOTH_LOG(ERROR) << object_path_.value()
839 << ": Failed to connect device: " << error_name << ": " 852 << ": Failed to connect device: " << error_name << ": "
840 << error_message; 853 << error_message;
841 VLOG(1) << object_path_.value() << ": " << num_connecting_calls_ 854 BLUETOOTH_LOG(DEBUG) << object_path_.value() << ": " << num_connecting_calls_
842 << " still in progress"; 855 << " still in progress";
843 856
844 // Determine the error code from error_name. 857 // Determine the error code from error_name.
845 ConnectErrorCode error_code = ERROR_UNKNOWN; 858 ConnectErrorCode error_code = ERROR_UNKNOWN;
846 if (error_name == bluetooth_device::kErrorFailed) { 859 if (error_name == bluetooth_device::kErrorFailed) {
847 error_code = ERROR_FAILED; 860 error_code = ERROR_FAILED;
848 } else if (error_name == bluetooth_device::kErrorInProgress) { 861 } else if (error_name == bluetooth_device::kErrorInProgress) {
849 error_code = ERROR_INPROGRESS; 862 error_code = ERROR_INPROGRESS;
850 } else if (error_name == bluetooth_device::kErrorNotSupported) { 863 } else if (error_name == bluetooth_device::kErrorNotSupported) {
851 error_code = ERROR_UNSUPPORTED_DEVICE; 864 error_code = ERROR_UNSUPPORTED_DEVICE;
852 } 865 }
853 866
854 if (after_pairing) 867 if (after_pairing)
855 RecordPairingResult(error_code); 868 RecordPairingResult(error_code);
856 error_callback.Run(error_code); 869 error_callback.Run(error_code);
857 } 870 }
858 871
859 void BluetoothDeviceBlueZ::OnPairDuringConnect( 872 void BluetoothDeviceBlueZ::OnPairDuringConnect(
860 const base::Closure& callback, 873 const base::Closure& callback,
861 const ConnectErrorCallback& error_callback) { 874 const ConnectErrorCallback& error_callback) {
862 VLOG(1) << object_path_.value() << ": Paired"; 875 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Paired";
863 876
864 EndPairing(); 877 EndPairing();
865 878
866 ConnectInternal(true, callback, error_callback); 879 ConnectInternal(true, callback, error_callback);
867 } 880 }
868 881
869 void BluetoothDeviceBlueZ::OnPairDuringConnectError( 882 void BluetoothDeviceBlueZ::OnPairDuringConnectError(
870 const ConnectErrorCallback& error_callback, 883 const ConnectErrorCallback& error_callback,
871 const std::string& error_name, 884 const std::string& error_name,
872 const std::string& error_message) { 885 const std::string& error_message) {
873 if (--num_connecting_calls_ == 0) 886 if (--num_connecting_calls_ == 0)
874 adapter()->NotifyDeviceChanged(this); 887 adapter()->NotifyDeviceChanged(this);
875 888
876 DCHECK(num_connecting_calls_ >= 0); 889 DCHECK(num_connecting_calls_ >= 0);
877 LOG(WARNING) << object_path_.value() 890 BLUETOOTH_LOG(ERROR) << object_path_.value()
878 << ": Failed to pair device: " << error_name << ": " 891 << ": Failed to pair device: " << error_name << ": "
879 << error_message; 892 << error_message;
880 VLOG(1) << object_path_.value() << ": " << num_connecting_calls_ 893 BLUETOOTH_LOG(DEBUG) << object_path_.value() << ": " << num_connecting_calls_
881 << " still in progress"; 894 << " still in progress";
882 895
883 EndPairing(); 896 EndPairing();
884 897
885 // Determine the error code from error_name. 898 // Determine the error code from error_name.
886 ConnectErrorCode error_code = DBusErrorToConnectError(error_name); 899 ConnectErrorCode error_code = DBusErrorToConnectError(error_name);
887 900
888 RecordPairingResult(error_code); 901 RecordPairingResult(error_code);
889 error_callback.Run(error_code); 902 error_callback.Run(error_code);
890 } 903 }
891 904
892 void BluetoothDeviceBlueZ::OnPair(const base::Closure& callback) { 905 void BluetoothDeviceBlueZ::OnPair(const base::Closure& callback) {
893 VLOG(1) << object_path_.value() << ": Paired"; 906 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Paired";
894 EndPairing(); 907 EndPairing();
895 callback.Run(); 908 callback.Run();
896 } 909 }
897 910
898 void BluetoothDeviceBlueZ::OnPairError( 911 void BluetoothDeviceBlueZ::OnPairError(
899 const ConnectErrorCallback& error_callback, 912 const ConnectErrorCallback& error_callback,
900 const std::string& error_name, 913 const std::string& error_name,
901 const std::string& error_message) { 914 const std::string& error_message) {
902 LOG(WARNING) << object_path_.value() 915 BLUETOOTH_LOG(ERROR) << object_path_.value()
903 << ": Failed to pair device: " << error_name << ": " 916 << ": Failed to pair device: " << error_name << ": "
904 << error_message; 917 << error_message;
905 EndPairing(); 918 EndPairing();
906 ConnectErrorCode error_code = DBusErrorToConnectError(error_name); 919 ConnectErrorCode error_code = DBusErrorToConnectError(error_name);
907 RecordPairingResult(error_code); 920 RecordPairingResult(error_code);
908 error_callback.Run(error_code); 921 error_callback.Run(error_code);
909 } 922 }
910 923
911 void BluetoothDeviceBlueZ::OnCancelPairingError( 924 void BluetoothDeviceBlueZ::OnCancelPairingError(
912 const std::string& error_name, 925 const std::string& error_name,
913 const std::string& error_message) { 926 const std::string& error_message) {
914 LOG(WARNING) << object_path_.value() 927 BLUETOOTH_LOG(ERROR) << object_path_.value()
915 << ": Failed to cancel pairing: " << error_name << ": " 928 << ": Failed to cancel pairing: " << error_name << ": "
916 << error_message; 929 << error_message;
917 } 930 }
918 931
919 void BluetoothDeviceBlueZ::SetTrusted() { 932 void BluetoothDeviceBlueZ::SetTrusted() {
920 // Unconditionally send the property change, rather than checking the value 933 // Unconditionally send the property change, rather than checking the value
921 // first; there's no harm in doing this and it solves any race conditions 934 // first; there's no harm in doing this and it solves any race conditions
922 // with the property becoming true or false and this call happening before 935 // with the property becoming true or false and this call happening before
923 // we get the D-Bus signal about the earlier change. 936 // we get the D-Bus signal about the earlier change.
924 bluez::BluezDBusManager::Get() 937 bluez::BluezDBusManager::Get()
925 ->GetBluetoothDeviceClient() 938 ->GetBluetoothDeviceClient()
926 ->GetProperties(object_path_) 939 ->GetProperties(object_path_)
927 ->trusted.Set(true, base::Bind(&BluetoothDeviceBlueZ::OnSetTrusted, 940 ->trusted.Set(true, base::Bind(&BluetoothDeviceBlueZ::OnSetTrusted,
928 weak_ptr_factory_.GetWeakPtr())); 941 weak_ptr_factory_.GetWeakPtr()));
929 } 942 }
930 943
931 void BluetoothDeviceBlueZ::OnSetTrusted(bool success) { 944 void BluetoothDeviceBlueZ::OnSetTrusted(bool success) {
932 LOG_IF(WARNING, !success) << object_path_.value() 945 device_event_log::LogLevel log_level =
933 << ": Failed to set device as trusted"; 946 success ? device_event_log::LOG_LEVEL_DEBUG
947 : device_event_log::LOG_LEVEL_ERROR;
948 DEVICE_LOG(device_event_log::LOG_TYPE_BLUETOOTH, log_level)
949 << object_path_.value() << ": OnSetTrusted: " << success;
934 } 950 }
935 951
936 void BluetoothDeviceBlueZ::OnDisconnect(const base::Closure& callback) { 952 void BluetoothDeviceBlueZ::OnDisconnect(const base::Closure& callback) {
937 VLOG(1) << object_path_.value() << ": Disconnected"; 953 BLUETOOTH_LOG(EVENT) << object_path_.value() << ": Disconnected";
938 // Do not notify about changed device since this is already done by 954 // Do not notify about changed device since this is already done by
939 // the dbus::PropertySet and the property change callback for BlueZ. 955 // the dbus::PropertySet and the property change callback for BlueZ.
940 DidDisconnectGatt(false /* notifyDeviceChanged */); 956 DidDisconnectGatt(false /* notifyDeviceChanged */);
941 callback.Run(); 957 callback.Run();
942 } 958 }
943 959
944 void BluetoothDeviceBlueZ::OnDisconnectError( 960 void BluetoothDeviceBlueZ::OnDisconnectError(
945 const ErrorCallback& error_callback, 961 const ErrorCallback& error_callback,
946 const std::string& error_name, 962 const std::string& error_name,
947 const std::string& error_message) { 963 const std::string& error_message) {
948 LOG(WARNING) << object_path_.value() 964 BLUETOOTH_LOG(ERROR) << object_path_.value()
949 << ": Failed to disconnect device: " << error_name << ": " 965 << ": Failed to disconnect device: " << error_name
950 << error_message; 966 << ": " << error_message;
951 error_callback.Run(); 967 error_callback.Run();
952 } 968 }
953 969
954 void BluetoothDeviceBlueZ::OnForgetError(const ErrorCallback& error_callback, 970 void BluetoothDeviceBlueZ::OnForgetError(const ErrorCallback& error_callback,
955 const std::string& error_name, 971 const std::string& error_name,
956 const std::string& error_message) { 972 const std::string& error_message) {
957 LOG(WARNING) << object_path_.value() 973 BLUETOOTH_LOG(ERROR) << object_path_.value()
958 << ": Failed to remove device: " << error_name << ": " 974 << ": Failed to remove device: " << error_name << ": "
959 << error_message; 975 << error_message;
960 error_callback.Run(); 976 error_callback.Run();
961 } 977 }
962 978
963 } // namespace bluez 979 } // namespace bluez
OLDNEW
« no previous file with comments | « device/bluetooth/bluez/bluetooth_adapter_bluez.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698