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

Side by Side Diff: extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event_router.cc

Issue 1032553009: favor DCHECK_CURRENTLY_ON for better logs in extensions/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event _router.h" 5 #include "extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_event _router.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 return error_status; 180 return error_status;
181 } 181 }
182 182
183 } // namespace 183 } // namespace
184 184
185 namespace extensions { 185 namespace extensions {
186 186
187 BluetoothLowEnergyEventRouter::BluetoothLowEnergyEventRouter( 187 BluetoothLowEnergyEventRouter::BluetoothLowEnergyEventRouter(
188 content::BrowserContext* context) 188 content::BrowserContext* context)
189 : adapter_(NULL), browser_context_(context), weak_ptr_factory_(this) { 189 : adapter_(NULL), browser_context_(context), weak_ptr_factory_(this) {
190 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 190 DCHECK_CURRENTLY_ON(BrowserThread::UI);
191 DCHECK(browser_context_); 191 DCHECK(browser_context_);
192 VLOG(1) << "Initializing BluetoothLowEnergyEventRouter."; 192 VLOG(1) << "Initializing BluetoothLowEnergyEventRouter.";
193 193
194 if (!IsBluetoothSupported()) { 194 if (!IsBluetoothSupported()) {
195 VLOG(1) << "Bluetooth not supported on the current platform."; 195 VLOG(1) << "Bluetooth not supported on the current platform.";
196 return; 196 return;
197 } 197 }
198 } 198 }
199 199
200 BluetoothLowEnergyEventRouter::~BluetoothLowEnergyEventRouter() { 200 BluetoothLowEnergyEventRouter::~BluetoothLowEnergyEventRouter() {
201 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 201 DCHECK_CURRENTLY_ON(BrowserThread::UI);
202 if (!adapter_.get()) 202 if (!adapter_.get())
203 return; 203 return;
204 204
205 adapter_->RemoveObserver(this); 205 adapter_->RemoveObserver(this);
206 adapter_ = NULL; 206 adapter_ = NULL;
207 } 207 }
208 208
209 bool BluetoothLowEnergyEventRouter::IsBluetoothSupported() const { 209 bool BluetoothLowEnergyEventRouter::IsBluetoothSupported() const {
210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 210 DCHECK_CURRENTLY_ON(BrowserThread::UI);
211 return adapter_.get() || 211 return adapter_.get() ||
212 BluetoothAdapterFactory::IsBluetoothAdapterAvailable(); 212 BluetoothAdapterFactory::IsBluetoothAdapterAvailable();
213 } 213 }
214 214
215 bool BluetoothLowEnergyEventRouter::InitializeAdapterAndInvokeCallback( 215 bool BluetoothLowEnergyEventRouter::InitializeAdapterAndInvokeCallback(
216 const base::Closure& callback) { 216 const base::Closure& callback) {
217 if (!IsBluetoothSupported()) 217 if (!IsBluetoothSupported())
218 return false; 218 return false;
219 219
220 if (adapter_.get()) { 220 if (adapter_.get()) {
(...skipping 11 matching lines...) Expand all
232 bool BluetoothLowEnergyEventRouter::HasAdapter() const { 232 bool BluetoothLowEnergyEventRouter::HasAdapter() const {
233 return (adapter_.get() != NULL); 233 return (adapter_.get() != NULL);
234 } 234 }
235 235
236 void BluetoothLowEnergyEventRouter::Connect( 236 void BluetoothLowEnergyEventRouter::Connect(
237 bool persistent, 237 bool persistent,
238 const Extension* extension, 238 const Extension* extension,
239 const std::string& device_address, 239 const std::string& device_address,
240 const base::Closure& callback, 240 const base::Closure& callback,
241 const ErrorCallback& error_callback) { 241 const ErrorCallback& error_callback) {
242 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 242 DCHECK_CURRENTLY_ON(BrowserThread::UI);
243 if (!adapter_.get()) { 243 if (!adapter_.get()) {
244 VLOG(1) << "BluetoothAdapter not ready."; 244 VLOG(1) << "BluetoothAdapter not ready.";
245 error_callback.Run(kStatusErrorFailed); 245 error_callback.Run(kStatusErrorFailed);
246 return; 246 return;
247 } 247 }
248 248
249 const std::string extension_id = extension->id(); 249 const std::string extension_id = extension->id();
250 const std::string connect_id = extension_id + device_address; 250 const std::string connect_id = extension_id + device_address;
251 251
252 if (connecting_devices_.count(connect_id) != 0) { 252 if (connecting_devices_.count(connect_id) != 0) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 extension_id, 287 extension_id,
288 device_address, 288 device_address,
289 error_callback)); 289 error_callback));
290 } 290 }
291 291
292 void BluetoothLowEnergyEventRouter::Disconnect( 292 void BluetoothLowEnergyEventRouter::Disconnect(
293 const Extension* extension, 293 const Extension* extension,
294 const std::string& device_address, 294 const std::string& device_address,
295 const base::Closure& callback, 295 const base::Closure& callback,
296 const ErrorCallback& error_callback) { 296 const ErrorCallback& error_callback) {
297 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 297 DCHECK_CURRENTLY_ON(BrowserThread::UI);
298 if (!adapter_.get()) { 298 if (!adapter_.get()) {
299 VLOG(1) << "BluetoothAdapter not ready."; 299 VLOG(1) << "BluetoothAdapter not ready.";
300 error_callback.Run(kStatusErrorFailed); 300 error_callback.Run(kStatusErrorFailed);
301 return; 301 return;
302 } 302 }
303 303
304 const std::string extension_id = extension->id(); 304 const std::string extension_id = extension->id();
305 const std::string disconnect_id = extension_id + device_address; 305 const std::string disconnect_id = extension_id + device_address;
306 306
307 if (disconnecting_devices_.count(disconnect_id) != 0) { 307 if (disconnecting_devices_.count(disconnect_id) != 0) {
(...skipping 14 matching lines...) Expand all
322 base::Bind(&BluetoothLowEnergyEventRouter::OnDisconnect, 322 base::Bind(&BluetoothLowEnergyEventRouter::OnDisconnect,
323 weak_ptr_factory_.GetWeakPtr(), 323 weak_ptr_factory_.GetWeakPtr(),
324 extension_id, 324 extension_id,
325 device_address, 325 device_address,
326 callback)); 326 callback));
327 } 327 }
328 328
329 bool BluetoothLowEnergyEventRouter::GetServices( 329 bool BluetoothLowEnergyEventRouter::GetServices(
330 const std::string& device_address, 330 const std::string& device_address,
331 ServiceList* out_services) const { 331 ServiceList* out_services) const {
332 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 332 DCHECK_CURRENTLY_ON(BrowserThread::UI);
333 DCHECK(out_services); 333 DCHECK(out_services);
334 if (!adapter_.get()) { 334 if (!adapter_.get()) {
335 VLOG(1) << "BluetoothAdapter not ready."; 335 VLOG(1) << "BluetoothAdapter not ready.";
336 return false; 336 return false;
337 } 337 }
338 338
339 BluetoothDevice* device = adapter_->GetDevice(device_address); 339 BluetoothDevice* device = adapter_->GetDevice(device_address);
340 if (!device) { 340 if (!device) {
341 VLOG(1) << "Bluetooth device not found: " << device_address; 341 VLOG(1) << "Bluetooth device not found: " << device_address;
342 return false; 342 return false;
(...skipping 14 matching lines...) Expand all
357 357
358 out_services->push_back(api_service); 358 out_services->push_back(api_service);
359 } 359 }
360 360
361 return true; 361 return true;
362 } 362 }
363 363
364 BluetoothLowEnergyEventRouter::Status BluetoothLowEnergyEventRouter::GetService( 364 BluetoothLowEnergyEventRouter::Status BluetoothLowEnergyEventRouter::GetService(
365 const std::string& instance_id, 365 const std::string& instance_id,
366 apibtle::Service* out_service) const { 366 apibtle::Service* out_service) const {
367 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 367 DCHECK_CURRENTLY_ON(BrowserThread::UI);
368 DCHECK(out_service); 368 DCHECK(out_service);
369 if (!adapter_.get()) { 369 if (!adapter_.get()) {
370 VLOG(1) << "BluetoothAdapter not ready."; 370 VLOG(1) << "BluetoothAdapter not ready.";
371 return kStatusErrorFailed; 371 return kStatusErrorFailed;
372 } 372 }
373 373
374 BluetoothGattService* gatt_service = FindServiceById(instance_id); 374 BluetoothGattService* gatt_service = FindServiceById(instance_id);
375 if (!gatt_service) { 375 if (!gatt_service) {
376 VLOG(1) << "Service not found: " << instance_id; 376 VLOG(1) << "Service not found: " << instance_id;
377 return kStatusErrorNotFound; 377 return kStatusErrorNotFound;
378 } 378 }
379 379
380 PopulateService(gatt_service, out_service); 380 PopulateService(gatt_service, out_service);
381 return kStatusSuccess; 381 return kStatusSuccess;
382 } 382 }
383 383
384 BluetoothLowEnergyEventRouter::Status 384 BluetoothLowEnergyEventRouter::Status
385 BluetoothLowEnergyEventRouter::GetIncludedServices( 385 BluetoothLowEnergyEventRouter::GetIncludedServices(
386 const std::string& instance_id, 386 const std::string& instance_id,
387 ServiceList* out_services) const { 387 ServiceList* out_services) const {
388 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 388 DCHECK_CURRENTLY_ON(BrowserThread::UI);
389 DCHECK(out_services); 389 DCHECK(out_services);
390 if (!adapter_.get()) { 390 if (!adapter_.get()) {
391 VLOG(1) << "BluetoothAdapter not ready."; 391 VLOG(1) << "BluetoothAdapter not ready.";
392 return kStatusErrorFailed; 392 return kStatusErrorFailed;
393 } 393 }
394 394
395 BluetoothGattService* service = FindServiceById(instance_id); 395 BluetoothGattService* service = FindServiceById(instance_id);
396 if (!service) { 396 if (!service) {
397 VLOG(1) << "Service not found: " << instance_id; 397 VLOG(1) << "Service not found: " << instance_id;
398 return kStatusErrorNotFound; 398 return kStatusErrorNotFound;
(...skipping 16 matching lines...) Expand all
415 } 415 }
416 416
417 return kStatusSuccess; 417 return kStatusSuccess;
418 } 418 }
419 419
420 BluetoothLowEnergyEventRouter::Status 420 BluetoothLowEnergyEventRouter::Status
421 BluetoothLowEnergyEventRouter::GetCharacteristics( 421 BluetoothLowEnergyEventRouter::GetCharacteristics(
422 const Extension* extension, 422 const Extension* extension,
423 const std::string& instance_id, 423 const std::string& instance_id,
424 CharacteristicList* out_characteristics) const { 424 CharacteristicList* out_characteristics) const {
425 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 425 DCHECK_CURRENTLY_ON(BrowserThread::UI);
426 DCHECK(extension); 426 DCHECK(extension);
427 DCHECK(out_characteristics); 427 DCHECK(out_characteristics);
428 if (!adapter_.get()) { 428 if (!adapter_.get()) {
429 VLOG(1) << "BlutoothAdapter not ready."; 429 VLOG(1) << "BlutoothAdapter not ready.";
430 return kStatusErrorFailed; 430 return kStatusErrorFailed;
431 } 431 }
432 432
433 BluetoothGattService* service = FindServiceById(instance_id); 433 BluetoothGattService* service = FindServiceById(instance_id);
434 if (!service) { 434 if (!service) {
435 VLOG(1) << "Service not found: " << instance_id; 435 VLOG(1) << "Service not found: " << instance_id;
(...skipping 25 matching lines...) Expand all
461 } 461 }
462 462
463 return kStatusSuccess; 463 return kStatusSuccess;
464 } 464 }
465 465
466 BluetoothLowEnergyEventRouter::Status 466 BluetoothLowEnergyEventRouter::Status
467 BluetoothLowEnergyEventRouter::GetCharacteristic( 467 BluetoothLowEnergyEventRouter::GetCharacteristic(
468 const Extension* extension, 468 const Extension* extension,
469 const std::string& instance_id, 469 const std::string& instance_id,
470 apibtle::Characteristic* out_characteristic) const { 470 apibtle::Characteristic* out_characteristic) const {
471 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 471 DCHECK_CURRENTLY_ON(BrowserThread::UI);
472 DCHECK(extension); 472 DCHECK(extension);
473 DCHECK(out_characteristic); 473 DCHECK(out_characteristic);
474 if (!adapter_.get()) { 474 if (!adapter_.get()) {
475 VLOG(1) << "BluetoothAdapter not ready."; 475 VLOG(1) << "BluetoothAdapter not ready.";
476 return kStatusErrorFailed; 476 return kStatusErrorFailed;
477 } 477 }
478 478
479 BluetoothGattCharacteristic* characteristic = 479 BluetoothGattCharacteristic* characteristic =
480 FindCharacteristicById(instance_id); 480 FindCharacteristicById(instance_id);
481 if (!characteristic) { 481 if (!characteristic) {
(...skipping 11 matching lines...) Expand all
493 493
494 PopulateCharacteristic(characteristic, out_characteristic); 494 PopulateCharacteristic(characteristic, out_characteristic);
495 return kStatusSuccess; 495 return kStatusSuccess;
496 } 496 }
497 497
498 BluetoothLowEnergyEventRouter::Status 498 BluetoothLowEnergyEventRouter::Status
499 BluetoothLowEnergyEventRouter::GetDescriptors( 499 BluetoothLowEnergyEventRouter::GetDescriptors(
500 const Extension* extension, 500 const Extension* extension,
501 const std::string& instance_id, 501 const std::string& instance_id,
502 DescriptorList* out_descriptors) const { 502 DescriptorList* out_descriptors) const {
503 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 503 DCHECK_CURRENTLY_ON(BrowserThread::UI);
504 DCHECK(extension); 504 DCHECK(extension);
505 DCHECK(out_descriptors); 505 DCHECK(out_descriptors);
506 if (!adapter_.get()) { 506 if (!adapter_.get()) {
507 VLOG(1) << "BlutoothAdapter not ready."; 507 VLOG(1) << "BlutoothAdapter not ready.";
508 return kStatusErrorFailed; 508 return kStatusErrorFailed;
509 } 509 }
510 510
511 BluetoothGattCharacteristic* characteristic = 511 BluetoothGattCharacteristic* characteristic =
512 FindCharacteristicById(instance_id); 512 FindCharacteristicById(instance_id);
513 if (!characteristic) { 513 if (!characteristic) {
(...skipping 26 matching lines...) Expand all
540 } 540 }
541 541
542 return kStatusSuccess; 542 return kStatusSuccess;
543 } 543 }
544 544
545 BluetoothLowEnergyEventRouter::Status 545 BluetoothLowEnergyEventRouter::Status
546 BluetoothLowEnergyEventRouter::GetDescriptor( 546 BluetoothLowEnergyEventRouter::GetDescriptor(
547 const Extension* extension, 547 const Extension* extension,
548 const std::string& instance_id, 548 const std::string& instance_id,
549 core_api::bluetooth_low_energy::Descriptor* out_descriptor) const { 549 core_api::bluetooth_low_energy::Descriptor* out_descriptor) const {
550 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 550 DCHECK_CURRENTLY_ON(BrowserThread::UI);
551 DCHECK(extension); 551 DCHECK(extension);
552 DCHECK(out_descriptor); 552 DCHECK(out_descriptor);
553 if (!adapter_.get()) { 553 if (!adapter_.get()) {
554 VLOG(1) << "BluetoothAdapter not ready."; 554 VLOG(1) << "BluetoothAdapter not ready.";
555 return kStatusErrorFailed; 555 return kStatusErrorFailed;
556 } 556 }
557 557
558 BluetoothGattDescriptor* descriptor = FindDescriptorById(instance_id); 558 BluetoothGattDescriptor* descriptor = FindDescriptorById(instance_id);
559 if (!descriptor) { 559 if (!descriptor) {
560 VLOG(1) << "Descriptor not found: " << instance_id; 560 VLOG(1) << "Descriptor not found: " << instance_id;
(...skipping 10 matching lines...) Expand all
571 571
572 PopulateDescriptor(descriptor, out_descriptor); 572 PopulateDescriptor(descriptor, out_descriptor);
573 return kStatusSuccess; 573 return kStatusSuccess;
574 } 574 }
575 575
576 void BluetoothLowEnergyEventRouter::ReadCharacteristicValue( 576 void BluetoothLowEnergyEventRouter::ReadCharacteristicValue(
577 const Extension* extension, 577 const Extension* extension,
578 const std::string& instance_id, 578 const std::string& instance_id,
579 const base::Closure& callback, 579 const base::Closure& callback,
580 const ErrorCallback& error_callback) { 580 const ErrorCallback& error_callback) {
581 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 581 DCHECK_CURRENTLY_ON(BrowserThread::UI);
582 DCHECK(extension); 582 DCHECK(extension);
583 if (!adapter_.get()) { 583 if (!adapter_.get()) {
584 VLOG(1) << "BluetoothAdapter not ready."; 584 VLOG(1) << "BluetoothAdapter not ready.";
585 error_callback.Run(kStatusErrorFailed); 585 error_callback.Run(kStatusErrorFailed);
586 return; 586 return;
587 } 587 }
588 588
589 BluetoothGattCharacteristic* characteristic = 589 BluetoothGattCharacteristic* characteristic =
590 FindCharacteristicById(instance_id); 590 FindCharacteristicById(instance_id);
591 if (!characteristic) { 591 if (!characteristic) {
(...skipping 19 matching lines...) Expand all
611 weak_ptr_factory_.GetWeakPtr(), 611 weak_ptr_factory_.GetWeakPtr(),
612 error_callback)); 612 error_callback));
613 } 613 }
614 614
615 void BluetoothLowEnergyEventRouter::WriteCharacteristicValue( 615 void BluetoothLowEnergyEventRouter::WriteCharacteristicValue(
616 const Extension* extension, 616 const Extension* extension,
617 const std::string& instance_id, 617 const std::string& instance_id,
618 const std::vector<uint8>& value, 618 const std::vector<uint8>& value,
619 const base::Closure& callback, 619 const base::Closure& callback,
620 const ErrorCallback& error_callback) { 620 const ErrorCallback& error_callback) {
621 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 621 DCHECK_CURRENTLY_ON(BrowserThread::UI);
622 DCHECK(extension); 622 DCHECK(extension);
623 if (!adapter_.get()) { 623 if (!adapter_.get()) {
624 VLOG(1) << "BluetoothAdapter not ready."; 624 VLOG(1) << "BluetoothAdapter not ready.";
625 error_callback.Run(kStatusErrorFailed); 625 error_callback.Run(kStatusErrorFailed);
626 return; 626 return;
627 } 627 }
628 628
629 BluetoothGattCharacteristic* characteristic = 629 BluetoothGattCharacteristic* characteristic =
630 FindCharacteristicById(instance_id); 630 FindCharacteristicById(instance_id);
631 if (!characteristic) { 631 if (!characteristic) {
(...skipping 18 matching lines...) Expand all
650 weak_ptr_factory_.GetWeakPtr(), 650 weak_ptr_factory_.GetWeakPtr(),
651 error_callback)); 651 error_callback));
652 } 652 }
653 653
654 void BluetoothLowEnergyEventRouter::StartCharacteristicNotifications( 654 void BluetoothLowEnergyEventRouter::StartCharacteristicNotifications(
655 bool persistent, 655 bool persistent,
656 const Extension* extension, 656 const Extension* extension,
657 const std::string& instance_id, 657 const std::string& instance_id,
658 const base::Closure& callback, 658 const base::Closure& callback,
659 const ErrorCallback& error_callback) { 659 const ErrorCallback& error_callback) {
660 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 660 DCHECK_CURRENTLY_ON(BrowserThread::UI);
661 if (!adapter_.get()) { 661 if (!adapter_.get()) {
662 VLOG(1) << "BluetoothAdapter not ready."; 662 VLOG(1) << "BluetoothAdapter not ready.";
663 error_callback.Run(kStatusErrorFailed); 663 error_callback.Run(kStatusErrorFailed);
664 return; 664 return;
665 } 665 }
666 666
667 const std::string extension_id = extension->id(); 667 const std::string extension_id = extension->id();
668 const std::string session_id = extension_id + instance_id; 668 const std::string session_id = extension_id + instance_id;
669 669
670 if (pending_session_calls_.count(session_id) != 0) { 670 if (pending_session_calls_.count(session_id) != 0) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 extension_id, 715 extension_id,
716 instance_id, 716 instance_id,
717 error_callback)); 717 error_callback));
718 } 718 }
719 719
720 void BluetoothLowEnergyEventRouter::StopCharacteristicNotifications( 720 void BluetoothLowEnergyEventRouter::StopCharacteristicNotifications(
721 const Extension* extension, 721 const Extension* extension,
722 const std::string& instance_id, 722 const std::string& instance_id,
723 const base::Closure& callback, 723 const base::Closure& callback,
724 const ErrorCallback& error_callback) { 724 const ErrorCallback& error_callback) {
725 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 725 DCHECK_CURRENTLY_ON(BrowserThread::UI);
726 if (!adapter_.get()) { 726 if (!adapter_.get()) {
727 VLOG(1) << "BluetoothAdapter not ready."; 727 VLOG(1) << "BluetoothAdapter not ready.";
728 error_callback.Run(kStatusErrorFailed); 728 error_callback.Run(kStatusErrorFailed);
729 return; 729 return;
730 } 730 }
731 731
732 const std::string extension_id = extension->id(); 732 const std::string extension_id = extension->id();
733 733
734 BluetoothLowEnergyNotifySession* session = 734 BluetoothLowEnergyNotifySession* session =
735 FindNotifySession(extension_id, instance_id); 735 FindNotifySession(extension_id, instance_id);
(...skipping 10 matching lines...) Expand all
746 extension_id, 746 extension_id,
747 instance_id, 747 instance_id,
748 callback)); 748 callback));
749 } 749 }
750 750
751 void BluetoothLowEnergyEventRouter::ReadDescriptorValue( 751 void BluetoothLowEnergyEventRouter::ReadDescriptorValue(
752 const Extension* extension, 752 const Extension* extension,
753 const std::string& instance_id, 753 const std::string& instance_id,
754 const base::Closure& callback, 754 const base::Closure& callback,
755 const ErrorCallback& error_callback) { 755 const ErrorCallback& error_callback) {
756 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 756 DCHECK_CURRENTLY_ON(BrowserThread::UI);
757 DCHECK(extension); 757 DCHECK(extension);
758 if (!adapter_.get()) { 758 if (!adapter_.get()) {
759 VLOG(1) << "BluetoothAdapter not ready."; 759 VLOG(1) << "BluetoothAdapter not ready.";
760 error_callback.Run(kStatusErrorFailed); 760 error_callback.Run(kStatusErrorFailed);
761 return; 761 return;
762 } 762 }
763 763
764 BluetoothGattDescriptor* descriptor = FindDescriptorById(instance_id); 764 BluetoothGattDescriptor* descriptor = FindDescriptorById(instance_id);
765 if (!descriptor) { 765 if (!descriptor) {
766 VLOG(1) << "Descriptor not found: " << instance_id; 766 VLOG(1) << "Descriptor not found: " << instance_id;
(...skipping 18 matching lines...) Expand all
785 weak_ptr_factory_.GetWeakPtr(), 785 weak_ptr_factory_.GetWeakPtr(),
786 error_callback)); 786 error_callback));
787 } 787 }
788 788
789 void BluetoothLowEnergyEventRouter::WriteDescriptorValue( 789 void BluetoothLowEnergyEventRouter::WriteDescriptorValue(
790 const Extension* extension, 790 const Extension* extension,
791 const std::string& instance_id, 791 const std::string& instance_id,
792 const std::vector<uint8>& value, 792 const std::vector<uint8>& value,
793 const base::Closure& callback, 793 const base::Closure& callback,
794 const ErrorCallback& error_callback) { 794 const ErrorCallback& error_callback) {
795 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 795 DCHECK_CURRENTLY_ON(BrowserThread::UI);
796 DCHECK(extension); 796 DCHECK(extension);
797 if (!adapter_.get()) { 797 if (!adapter_.get()) {
798 VLOG(1) << "BluetoothAdapter not ready."; 798 VLOG(1) << "BluetoothAdapter not ready.";
799 error_callback.Run(kStatusErrorFailed); 799 error_callback.Run(kStatusErrorFailed);
800 return; 800 return;
801 } 801 }
802 802
803 BluetoothGattDescriptor* descriptor = FindDescriptorById(instance_id); 803 BluetoothGattDescriptor* descriptor = FindDescriptorById(instance_id);
804 if (!descriptor) { 804 if (!descriptor) {
805 VLOG(1) << "Descriptor not found: " << instance_id; 805 VLOG(1) << "Descriptor not found: " << instance_id;
(...skipping 21 matching lines...) Expand all
827 void BluetoothLowEnergyEventRouter::SetAdapterForTesting( 827 void BluetoothLowEnergyEventRouter::SetAdapterForTesting(
828 device::BluetoothAdapter* adapter) { 828 device::BluetoothAdapter* adapter) {
829 adapter_ = adapter; 829 adapter_ = adapter;
830 InitializeIdentifierMappings(); 830 InitializeIdentifierMappings();
831 } 831 }
832 832
833 void BluetoothLowEnergyEventRouter::GattServiceAdded( 833 void BluetoothLowEnergyEventRouter::GattServiceAdded(
834 BluetoothAdapter* adapter, 834 BluetoothAdapter* adapter,
835 BluetoothDevice* device, 835 BluetoothDevice* device,
836 BluetoothGattService* service) { 836 BluetoothGattService* service) {
837 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 837 DCHECK_CURRENTLY_ON(BrowserThread::UI);
838 DCHECK_EQ(adapter, adapter_.get()); 838 DCHECK_EQ(adapter, adapter_.get());
839 VLOG(2) << "GATT service added: " << service->GetIdentifier(); 839 VLOG(2) << "GATT service added: " << service->GetIdentifier();
840 840
841 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) == 841 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) ==
842 service_id_to_device_address_.end()); 842 service_id_to_device_address_.end());
843 843
844 service_id_to_device_address_[service->GetIdentifier()] = 844 service_id_to_device_address_[service->GetIdentifier()] =
845 device->GetAddress(); 845 device->GetAddress();
846 } 846 }
847 847
848 void BluetoothLowEnergyEventRouter::GattServiceRemoved( 848 void BluetoothLowEnergyEventRouter::GattServiceRemoved(
849 BluetoothAdapter* adapter, 849 BluetoothAdapter* adapter,
850 BluetoothDevice* device, 850 BluetoothDevice* device,
851 BluetoothGattService* service) { 851 BluetoothGattService* service) {
852 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 852 DCHECK_CURRENTLY_ON(BrowserThread::UI);
853 DCHECK_EQ(adapter, adapter_.get()); 853 DCHECK_EQ(adapter, adapter_.get());
854 VLOG(2) << "GATT service removed: " << service->GetIdentifier(); 854 VLOG(2) << "GATT service removed: " << service->GetIdentifier();
855 855
856 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) != 856 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) !=
857 service_id_to_device_address_.end()); 857 service_id_to_device_address_.end());
858 858
859 DCHECK(device->GetAddress() == 859 DCHECK(device->GetAddress() ==
860 service_id_to_device_address_[service->GetIdentifier()]); 860 service_id_to_device_address_[service->GetIdentifier()]);
861 service_id_to_device_address_.erase(service->GetIdentifier()); 861 service_id_to_device_address_.erase(service->GetIdentifier());
862 862
863 // Signal API event. 863 // Signal API event.
864 apibtle::Service api_service; 864 apibtle::Service api_service;
865 PopulateService(service, &api_service); 865 PopulateService(service, &api_service);
866 866
867 scoped_ptr<base::ListValue> args = 867 scoped_ptr<base::ListValue> args =
868 apibtle::OnServiceRemoved::Create(api_service); 868 apibtle::OnServiceRemoved::Create(api_service);
869 scoped_ptr<Event> event( 869 scoped_ptr<Event> event(
870 new Event(apibtle::OnServiceRemoved::kEventName, args.Pass())); 870 new Event(apibtle::OnServiceRemoved::kEventName, args.Pass()));
871 EventRouter::Get(browser_context_)->BroadcastEvent(event.Pass()); 871 EventRouter::Get(browser_context_)->BroadcastEvent(event.Pass());
872 } 872 }
873 873
874 void BluetoothLowEnergyEventRouter::GattDiscoveryCompleteForService( 874 void BluetoothLowEnergyEventRouter::GattDiscoveryCompleteForService(
875 BluetoothAdapter* adapter, 875 BluetoothAdapter* adapter,
876 BluetoothGattService* service) { 876 BluetoothGattService* service) {
877 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 877 DCHECK_CURRENTLY_ON(BrowserThread::UI);
878 DCHECK_EQ(adapter, adapter_.get()); 878 DCHECK_EQ(adapter, adapter_.get());
879 VLOG(2) << "GATT service discovery complete: " << service->GetIdentifier(); 879 VLOG(2) << "GATT service discovery complete: " << service->GetIdentifier();
880 880
881 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) != 881 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) !=
882 service_id_to_device_address_.end()); 882 service_id_to_device_address_.end());
883 883
884 // Signal the service added event here. 884 // Signal the service added event here.
885 apibtle::Service api_service; 885 apibtle::Service api_service;
886 PopulateService(service, &api_service); 886 PopulateService(service, &api_service);
887 887
888 scoped_ptr<base::ListValue> args = 888 scoped_ptr<base::ListValue> args =
889 apibtle::OnServiceAdded::Create(api_service); 889 apibtle::OnServiceAdded::Create(api_service);
890 scoped_ptr<Event> event( 890 scoped_ptr<Event> event(
891 new Event(apibtle::OnServiceAdded::kEventName, args.Pass())); 891 new Event(apibtle::OnServiceAdded::kEventName, args.Pass()));
892 EventRouter::Get(browser_context_)->BroadcastEvent(event.Pass()); 892 EventRouter::Get(browser_context_)->BroadcastEvent(event.Pass());
893 } 893 }
894 894
895 void BluetoothLowEnergyEventRouter::GattServiceChanged( 895 void BluetoothLowEnergyEventRouter::GattServiceChanged(
896 BluetoothAdapter* adapter, 896 BluetoothAdapter* adapter,
897 BluetoothGattService* service) { 897 BluetoothGattService* service) {
898 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 898 DCHECK_CURRENTLY_ON(BrowserThread::UI);
899 DCHECK_EQ(adapter, adapter_.get()); 899 DCHECK_EQ(adapter, adapter_.get());
900 VLOG(2) << "GATT service changed: " << service->GetIdentifier(); 900 VLOG(2) << "GATT service changed: " << service->GetIdentifier();
901 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) != 901 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) !=
902 service_id_to_device_address_.end()); 902 service_id_to_device_address_.end());
903 903
904 // Signal API event. 904 // Signal API event.
905 apibtle::Service api_service; 905 apibtle::Service api_service;
906 PopulateService(service, &api_service); 906 PopulateService(service, &api_service);
907 907
908 DispatchEventToExtensionsWithPermission( 908 DispatchEventToExtensionsWithPermission(
909 apibtle::OnServiceChanged::kEventName, 909 apibtle::OnServiceChanged::kEventName,
910 service->GetUUID(), 910 service->GetUUID(),
911 "" /* characteristic_id */, 911 "" /* characteristic_id */,
912 apibtle::OnServiceChanged::Create(api_service)); 912 apibtle::OnServiceChanged::Create(api_service));
913 } 913 }
914 914
915 void BluetoothLowEnergyEventRouter::GattCharacteristicAdded( 915 void BluetoothLowEnergyEventRouter::GattCharacteristicAdded(
916 BluetoothAdapter* adapter, 916 BluetoothAdapter* adapter,
917 BluetoothGattCharacteristic* characteristic) { 917 BluetoothGattCharacteristic* characteristic) {
918 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 918 DCHECK_CURRENTLY_ON(BrowserThread::UI);
919 DCHECK_EQ(adapter, adapter_.get()); 919 DCHECK_EQ(adapter, adapter_.get());
920 VLOG(2) << "GATT characteristic added: " << characteristic->GetIdentifier(); 920 VLOG(2) << "GATT characteristic added: " << characteristic->GetIdentifier();
921 921
922 BluetoothGattService* service = characteristic->GetService(); 922 BluetoothGattService* service = characteristic->GetService();
923 DCHECK(service); 923 DCHECK(service);
924 924
925 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) == 925 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) ==
926 chrc_id_to_service_id_.end()); 926 chrc_id_to_service_id_.end());
927 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) != 927 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) !=
928 service_id_to_device_address_.end()); 928 service_id_to_device_address_.end());
929 929
930 chrc_id_to_service_id_[characteristic->GetIdentifier()] = 930 chrc_id_to_service_id_[characteristic->GetIdentifier()] =
931 service->GetIdentifier(); 931 service->GetIdentifier();
932 } 932 }
933 933
934 void BluetoothLowEnergyEventRouter::GattCharacteristicRemoved( 934 void BluetoothLowEnergyEventRouter::GattCharacteristicRemoved(
935 BluetoothAdapter* adapter, 935 BluetoothAdapter* adapter,
936 BluetoothGattCharacteristic* characteristic) { 936 BluetoothGattCharacteristic* characteristic) {
937 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 937 DCHECK_CURRENTLY_ON(BrowserThread::UI);
938 DCHECK_EQ(adapter, adapter_.get()); 938 DCHECK_EQ(adapter, adapter_.get());
939 VLOG(2) << "GATT characteristic removed: " << characteristic->GetIdentifier(); 939 VLOG(2) << "GATT characteristic removed: " << characteristic->GetIdentifier();
940 940
941 BluetoothGattService* service = characteristic->GetService(); 941 BluetoothGattService* service = characteristic->GetService();
942 DCHECK(service); 942 DCHECK(service);
943 943
944 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) != 944 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) !=
945 chrc_id_to_service_id_.end()); 945 chrc_id_to_service_id_.end());
946 DCHECK(service->GetIdentifier() == 946 DCHECK(service->GetIdentifier() ==
947 chrc_id_to_service_id_[characteristic->GetIdentifier()]); 947 chrc_id_to_service_id_[characteristic->GetIdentifier()]);
948 948
949 chrc_id_to_service_id_.erase(characteristic->GetIdentifier()); 949 chrc_id_to_service_id_.erase(characteristic->GetIdentifier());
950 } 950 }
951 951
952 void BluetoothLowEnergyEventRouter::GattDescriptorAdded( 952 void BluetoothLowEnergyEventRouter::GattDescriptorAdded(
953 BluetoothAdapter* adapter, 953 BluetoothAdapter* adapter,
954 BluetoothGattDescriptor* descriptor) { 954 BluetoothGattDescriptor* descriptor) {
955 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 955 DCHECK_CURRENTLY_ON(BrowserThread::UI);
956 DCHECK_EQ(adapter, adapter_.get()); 956 DCHECK_EQ(adapter, adapter_.get());
957 VLOG(2) << "GATT descriptor added: " << descriptor->GetIdentifier(); 957 VLOG(2) << "GATT descriptor added: " << descriptor->GetIdentifier();
958 958
959 BluetoothGattCharacteristic* characteristic = descriptor->GetCharacteristic(); 959 BluetoothGattCharacteristic* characteristic = descriptor->GetCharacteristic();
960 DCHECK(characteristic); 960 DCHECK(characteristic);
961 961
962 DCHECK(desc_id_to_chrc_id_.find(descriptor->GetIdentifier()) == 962 DCHECK(desc_id_to_chrc_id_.find(descriptor->GetIdentifier()) ==
963 desc_id_to_chrc_id_.end()); 963 desc_id_to_chrc_id_.end());
964 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) != 964 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) !=
965 chrc_id_to_service_id_.end()); 965 chrc_id_to_service_id_.end());
966 966
967 desc_id_to_chrc_id_[descriptor->GetIdentifier()] = 967 desc_id_to_chrc_id_[descriptor->GetIdentifier()] =
968 characteristic->GetIdentifier(); 968 characteristic->GetIdentifier();
969 } 969 }
970 970
971 void BluetoothLowEnergyEventRouter::GattDescriptorRemoved( 971 void BluetoothLowEnergyEventRouter::GattDescriptorRemoved(
972 BluetoothAdapter* adapter, 972 BluetoothAdapter* adapter,
973 BluetoothGattDescriptor* descriptor) { 973 BluetoothGattDescriptor* descriptor) {
974 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 974 DCHECK_CURRENTLY_ON(BrowserThread::UI);
975 DCHECK_EQ(adapter, adapter_.get()); 975 DCHECK_EQ(adapter, adapter_.get());
976 VLOG(2) << "GATT descriptor removed: " << descriptor->GetIdentifier(); 976 VLOG(2) << "GATT descriptor removed: " << descriptor->GetIdentifier();
977 977
978 BluetoothGattCharacteristic* characteristic = descriptor->GetCharacteristic(); 978 BluetoothGattCharacteristic* characteristic = descriptor->GetCharacteristic();
979 DCHECK(characteristic); 979 DCHECK(characteristic);
980 980
981 DCHECK(desc_id_to_chrc_id_.find(descriptor->GetIdentifier()) != 981 DCHECK(desc_id_to_chrc_id_.find(descriptor->GetIdentifier()) !=
982 desc_id_to_chrc_id_.end()); 982 desc_id_to_chrc_id_.end());
983 DCHECK(characteristic->GetIdentifier() == 983 DCHECK(characteristic->GetIdentifier() ==
984 desc_id_to_chrc_id_[descriptor->GetIdentifier()]); 984 desc_id_to_chrc_id_[descriptor->GetIdentifier()]);
985 985
986 desc_id_to_chrc_id_.erase(descriptor->GetIdentifier()); 986 desc_id_to_chrc_id_.erase(descriptor->GetIdentifier());
987 } 987 }
988 988
989 void BluetoothLowEnergyEventRouter::GattCharacteristicValueChanged( 989 void BluetoothLowEnergyEventRouter::GattCharacteristicValueChanged(
990 BluetoothAdapter* adapter, 990 BluetoothAdapter* adapter,
991 BluetoothGattCharacteristic* characteristic, 991 BluetoothGattCharacteristic* characteristic,
992 const std::vector<uint8>& value) { 992 const std::vector<uint8>& value) {
993 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 993 DCHECK_CURRENTLY_ON(BrowserThread::UI);
994 DCHECK_EQ(adapter, adapter_.get()); 994 DCHECK_EQ(adapter, adapter_.get());
995 VLOG(2) << "GATT characteristic value changed: " 995 VLOG(2) << "GATT characteristic value changed: "
996 << characteristic->GetIdentifier(); 996 << characteristic->GetIdentifier();
997 997
998 BluetoothGattService* service = characteristic->GetService(); 998 BluetoothGattService* service = characteristic->GetService();
999 DCHECK(service); 999 DCHECK(service);
1000 1000
1001 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) != 1001 DCHECK(service_id_to_device_address_.find(service->GetIdentifier()) !=
1002 service_id_to_device_address_.end()); 1002 service_id_to_device_address_.end());
1003 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) != 1003 DCHECK(chrc_id_to_service_id_.find(characteristic->GetIdentifier()) !=
(...skipping 13 matching lines...) Expand all
1017 apibtle::OnCharacteristicValueChanged::kEventName, 1017 apibtle::OnCharacteristicValueChanged::kEventName,
1018 service->GetUUID(), 1018 service->GetUUID(),
1019 characteristic->GetIdentifier(), 1019 characteristic->GetIdentifier(),
1020 args.Pass()); 1020 args.Pass());
1021 } 1021 }
1022 1022
1023 void BluetoothLowEnergyEventRouter::GattDescriptorValueChanged( 1023 void BluetoothLowEnergyEventRouter::GattDescriptorValueChanged(
1024 BluetoothAdapter* adapter, 1024 BluetoothAdapter* adapter,
1025 BluetoothGattDescriptor* descriptor, 1025 BluetoothGattDescriptor* descriptor,
1026 const std::vector<uint8>& value) { 1026 const std::vector<uint8>& value) {
1027 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1027 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1028 DCHECK_EQ(adapter, adapter_.get()); 1028 DCHECK_EQ(adapter, adapter_.get());
1029 VLOG(2) << "GATT descriptor value changed: " << descriptor->GetIdentifier(); 1029 VLOG(2) << "GATT descriptor value changed: " << descriptor->GetIdentifier();
1030 1030
1031 BluetoothGattCharacteristic* characteristic = descriptor->GetCharacteristic(); 1031 BluetoothGattCharacteristic* characteristic = descriptor->GetCharacteristic();
1032 DCHECK(characteristic); 1032 DCHECK(characteristic);
1033 1033
1034 DCHECK(desc_id_to_chrc_id_.find(descriptor->GetIdentifier()) != 1034 DCHECK(desc_id_to_chrc_id_.find(descriptor->GetIdentifier()) !=
1035 desc_id_to_chrc_id_.end()); 1035 desc_id_to_chrc_id_.end());
1036 DCHECK(characteristic->GetIdentifier() == 1036 DCHECK(characteristic->GetIdentifier() ==
1037 desc_id_to_chrc_id_[descriptor->GetIdentifier()]); 1037 desc_id_to_chrc_id_[descriptor->GetIdentifier()]);
(...skipping 20 matching lines...) Expand all
1058 1058
1059 // Initialize instance ID mappings for all discovered GATT objects and add 1059 // Initialize instance ID mappings for all discovered GATT objects and add
1060 // observers. 1060 // observers.
1061 InitializeIdentifierMappings(); 1061 InitializeIdentifierMappings();
1062 adapter_->AddObserver(this); 1062 adapter_->AddObserver(this);
1063 1063
1064 callback.Run(); 1064 callback.Run();
1065 } 1065 }
1066 1066
1067 void BluetoothLowEnergyEventRouter::InitializeIdentifierMappings() { 1067 void BluetoothLowEnergyEventRouter::InitializeIdentifierMappings() {
1068 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1068 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1069 DCHECK(service_id_to_device_address_.empty()); 1069 DCHECK(service_id_to_device_address_.empty());
1070 DCHECK(chrc_id_to_service_id_.empty()); 1070 DCHECK(chrc_id_to_service_id_.empty());
1071 1071
1072 // Devices 1072 // Devices
1073 BluetoothAdapter::DeviceList devices = adapter_->GetDevices(); 1073 BluetoothAdapter::DeviceList devices = adapter_->GetDevices();
1074 for (BluetoothAdapter::DeviceList::iterator iter = devices.begin(); 1074 for (BluetoothAdapter::DeviceList::iterator iter = devices.begin();
1075 iter != devices.end(); 1075 iter != devices.end();
1076 ++iter) { 1076 ++iter) {
1077 BluetoothDevice* device = *iter; 1077 BluetoothDevice* device = *iter;
1078 1078
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
1488 continue; 1488 continue;
1489 1489
1490 manager->Remove(extension_id, *iter); 1490 manager->Remove(extension_id, *iter);
1491 return true; 1491 return true;
1492 } 1492 }
1493 1493
1494 return false; 1494 return false;
1495 } 1495 }
1496 1496
1497 } // namespace extensions 1497 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698