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

Side by Side Diff: content/browser/bluetooth/web_bluetooth_service_impl.cc

Issue 2554253002: bluetooth: web: Rename Blacklist to Blocklist (Closed)
Patch Set: Created 4 years 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 // ID Not In Map Note: 5 // ID Not In Map Note:
6 // A service, characteristic, or descriptor ID not in the corresponding 6 // A service, characteristic, or descriptor ID not in the corresponding
7 // WebBluetoothServiceImpl map [service_id_to_device_address_, 7 // WebBluetoothServiceImpl map [service_id_to_device_address_,
8 // characteristic_id_to_service_id_, descriptor_to_characteristic_] implies a 8 // characteristic_id_to_service_id_, descriptor_to_characteristic_] implies a
9 // hostile renderer because a renderer obtains the corresponding ID from this 9 // hostile renderer because a renderer obtains the corresponding ID from this
10 // class and it will be added to the map at that time. 10 // class and it will be added to the map at that time.
11 11
12 #include "content/browser/bluetooth/web_bluetooth_service_impl.h" 12 #include "content/browser/bluetooth/web_bluetooth_service_impl.h"
13 13
14 #include <algorithm> 14 #include <algorithm>
15 15
16 #include "base/strings/utf_string_conversions.h" 16 #include "base/strings/utf_string_conversions.h"
17 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
18 #include "content/browser/bluetooth/bluetooth_blacklist.h" 18 #include "content/browser/bluetooth/bluetooth_blocklist.h"
19 #include "content/browser/bluetooth/bluetooth_device_chooser_controller.h" 19 #include "content/browser/bluetooth/bluetooth_device_chooser_controller.h"
20 #include "content/browser/bluetooth/bluetooth_metrics.h" 20 #include "content/browser/bluetooth/bluetooth_metrics.h"
21 #include "content/browser/bluetooth/frame_connected_bluetooth_devices.h" 21 #include "content/browser/bluetooth/frame_connected_bluetooth_devices.h"
22 #include "content/browser/renderer_host/render_process_host_impl.h" 22 #include "content/browser/renderer_host/render_process_host_impl.h"
23 #include "content/common/bluetooth/web_bluetooth_device_id.h" 23 #include "content/common/bluetooth/web_bluetooth_device_id.h"
24 #include "content/public/browser/browser_thread.h" 24 #include "content/public/browser/browser_thread.h"
25 #include "content/public/browser/navigation_handle.h" 25 #include "content/public/browser/navigation_handle.h"
26 #include "content/public/browser/render_frame_host.h" 26 #include "content/public/browser/render_frame_host.h"
27 #include "content/public/browser/web_contents.h" 27 #include "content/public/browser/web_contents.h"
28 #include "device/bluetooth/bluetooth_adapter_factory_wrapper.h" 28 #include "device/bluetooth/bluetooth_adapter_factory_wrapper.h"
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 const RemoteServiceGetCharacteristicsCallback& callback) { 459 const RemoteServiceGetCharacteristicsCallback& callback) {
460 DCHECK_CURRENTLY_ON(BrowserThread::UI); 460 DCHECK_CURRENTLY_ON(BrowserThread::UI);
461 461
462 RecordWebBluetoothFunctionCall( 462 RecordWebBluetoothFunctionCall(
463 quantity == blink::mojom::WebBluetoothGATTQueryQuantity::SINGLE 463 quantity == blink::mojom::WebBluetoothGATTQueryQuantity::SINGLE
464 ? UMAWebBluetoothFunction::SERVICE_GET_CHARACTERISTIC 464 ? UMAWebBluetoothFunction::SERVICE_GET_CHARACTERISTIC
465 : UMAWebBluetoothFunction::SERVICE_GET_CHARACTERISTICS); 465 : UMAWebBluetoothFunction::SERVICE_GET_CHARACTERISTICS);
466 RecordGetCharacteristicsCharacteristic(quantity, characteristics_uuid); 466 RecordGetCharacteristicsCharacteristic(quantity, characteristics_uuid);
467 467
468 if (characteristics_uuid && 468 if (characteristics_uuid &&
469 BluetoothBlacklist::Get().IsExcluded(characteristics_uuid.value())) { 469 BluetoothBlocklist::Get().IsExcluded(characteristics_uuid.value())) {
470 RecordGetCharacteristicsOutcome(quantity, 470 RecordGetCharacteristicsOutcome(quantity,
471 UMAGetCharacteristicOutcome::BLACKLISTED); 471 UMAGetCharacteristicOutcome::BLOCKLISTED);
472 callback.Run( 472 callback.Run(
473 blink::mojom::WebBluetoothResult::BLACKLISTED_CHARACTERISTIC_UUID, 473 blink::mojom::WebBluetoothResult::BLOCKLISTED_CHARACTERISTIC_UUID,
474 nullptr /* characteristics */); 474 nullptr /* characteristics */);
475 return; 475 return;
476 } 476 }
477 477
478 const CacheQueryResult query_result = 478 const CacheQueryResult query_result =
479 QueryCacheForService(service_instance_id); 479 QueryCacheForService(service_instance_id);
480 480
481 if (query_result.outcome == CacheQueryOutcome::BAD_RENDERER) { 481 if (query_result.outcome == CacheQueryOutcome::BAD_RENDERER) {
482 return; 482 return;
483 } 483 }
484 484
485 if (query_result.outcome != CacheQueryOutcome::SUCCESS) { 485 if (query_result.outcome != CacheQueryOutcome::SUCCESS) {
486 RecordGetCharacteristicsOutcome(quantity, query_result.outcome); 486 RecordGetCharacteristicsOutcome(quantity, query_result.outcome);
487 callback.Run(query_result.GetWebResult(), nullptr /* characteristics */); 487 callback.Run(query_result.GetWebResult(), nullptr /* characteristics */);
488 return; 488 return;
489 } 489 }
490 490
491 std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics = 491 std::vector<device::BluetoothRemoteGattCharacteristic*> characteristics =
492 characteristics_uuid 492 characteristics_uuid
493 ? GetCharacteristicsByUUID(query_result.service, 493 ? GetCharacteristicsByUUID(query_result.service,
494 characteristics_uuid.value()) 494 characteristics_uuid.value())
495 : query_result.service->GetCharacteristics(); 495 : query_result.service->GetCharacteristics();
496 496
497 mojo::Array<blink::mojom::WebBluetoothRemoteGATTCharacteristicPtr> 497 mojo::Array<blink::mojom::WebBluetoothRemoteGATTCharacteristicPtr>
498 response_characteristics; 498 response_characteristics;
499 for (device::BluetoothRemoteGattCharacteristic* characteristic : 499 for (device::BluetoothRemoteGattCharacteristic* characteristic :
500 characteristics) { 500 characteristics) {
501 if (BluetoothBlacklist::Get().IsExcluded(characteristic->GetUUID())) { 501 if (BluetoothBlocklist::Get().IsExcluded(characteristic->GetUUID())) {
502 continue; 502 continue;
503 } 503 }
504 std::string characteristic_instance_id = characteristic->GetIdentifier(); 504 std::string characteristic_instance_id = characteristic->GetIdentifier();
505 auto insert_result = characteristic_id_to_service_id_.insert( 505 auto insert_result = characteristic_id_to_service_id_.insert(
506 std::make_pair(characteristic_instance_id, service_instance_id)); 506 std::make_pair(characteristic_instance_id, service_instance_id));
507 // If value is already in map, DCHECK it's valid. 507 // If value is already in map, DCHECK it's valid.
508 if (!insert_result.second) 508 if (!insert_result.second)
509 DCHECK(insert_result.first->second == service_instance_id); 509 DCHECK(insert_result.first->second == service_instance_id);
510 510
511 blink::mojom::WebBluetoothRemoteGATTCharacteristicPtr characteristic_ptr = 511 blink::mojom::WebBluetoothRemoteGATTCharacteristicPtr characteristic_ptr =
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 if (query_result.outcome == CacheQueryOutcome::BAD_RENDERER) { 552 if (query_result.outcome == CacheQueryOutcome::BAD_RENDERER) {
553 return; 553 return;
554 } 554 }
555 555
556 if (query_result.outcome != CacheQueryOutcome::SUCCESS) { 556 if (query_result.outcome != CacheQueryOutcome::SUCCESS) {
557 RecordCharacteristicReadValueOutcome(query_result.outcome); 557 RecordCharacteristicReadValueOutcome(query_result.outcome);
558 callback.Run(query_result.GetWebResult(), nullptr /* value */); 558 callback.Run(query_result.GetWebResult(), nullptr /* value */);
559 return; 559 return;
560 } 560 }
561 561
562 if (BluetoothBlacklist::Get().IsExcludedFromReads( 562 if (BluetoothBlocklist::Get().IsExcludedFromReads(
563 query_result.characteristic->GetUUID())) { 563 query_result.characteristic->GetUUID())) {
564 RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome::BLACKLISTED); 564 RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome::BLOCKLISTED);
565 callback.Run(blink::mojom::WebBluetoothResult::BLACKLISTED_READ, 565 callback.Run(blink::mojom::WebBluetoothResult::BLOCKLISTED_READ,
566 nullptr /* value */); 566 nullptr /* value */);
567 return; 567 return;
568 } 568 }
569 569
570 query_result.characteristic->ReadRemoteCharacteristic( 570 query_result.characteristic->ReadRemoteCharacteristic(
571 base::Bind(&WebBluetoothServiceImpl::OnReadValueSuccess, 571 base::Bind(&WebBluetoothServiceImpl::OnReadValueSuccess,
572 weak_ptr_factory_.GetWeakPtr(), callback), 572 weak_ptr_factory_.GetWeakPtr(), callback),
573 base::Bind(&WebBluetoothServiceImpl::OnReadValueFailed, 573 base::Bind(&WebBluetoothServiceImpl::OnReadValueFailed,
574 weak_ptr_factory_.GetWeakPtr(), callback)); 574 weak_ptr_factory_.GetWeakPtr(), callback));
575 } 575 }
(...skipping 20 matching lines...) Expand all
596 if (query_result.outcome == CacheQueryOutcome::BAD_RENDERER) { 596 if (query_result.outcome == CacheQueryOutcome::BAD_RENDERER) {
597 return; 597 return;
598 } 598 }
599 599
600 if (query_result.outcome != CacheQueryOutcome::SUCCESS) { 600 if (query_result.outcome != CacheQueryOutcome::SUCCESS) {
601 RecordCharacteristicWriteValueOutcome(query_result.outcome); 601 RecordCharacteristicWriteValueOutcome(query_result.outcome);
602 callback.Run(query_result.GetWebResult()); 602 callback.Run(query_result.GetWebResult());
603 return; 603 return;
604 } 604 }
605 605
606 if (BluetoothBlacklist::Get().IsExcludedFromWrites( 606 if (BluetoothBlocklist::Get().IsExcludedFromWrites(
607 query_result.characteristic->GetUUID())) { 607 query_result.characteristic->GetUUID())) {
608 RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome::BLACKLISTED); 608 RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome::BLOCKLISTED);
609 callback.Run(blink::mojom::WebBluetoothResult::BLACKLISTED_WRITE); 609 callback.Run(blink::mojom::WebBluetoothResult::BLOCKLISTED_WRITE);
610 return; 610 return;
611 } 611 }
612 612
613 query_result.characteristic->WriteRemoteCharacteristic( 613 query_result.characteristic->WriteRemoteCharacteristic(
614 value.To<std::vector<uint8_t>>(), 614 value.To<std::vector<uint8_t>>(),
615 base::Bind(&WebBluetoothServiceImpl::OnWriteValueSuccess, 615 base::Bind(&WebBluetoothServiceImpl::OnWriteValueSuccess,
616 weak_ptr_factory_.GetWeakPtr(), callback), 616 weak_ptr_factory_.GetWeakPtr(), callback),
617 base::Bind(&WebBluetoothServiceImpl::OnWriteValueFailed, 617 base::Bind(&WebBluetoothServiceImpl::OnWriteValueFailed,
618 weak_ptr_factory_.GetWeakPtr(), callback)); 618 weak_ptr_factory_.GetWeakPtr(), callback));
619 } 619 }
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 characteristic_id_to_service_id_.clear(); 1000 characteristic_id_to_service_id_.clear();
1001 service_id_to_device_address_.clear(); 1001 service_id_to_device_address_.clear();
1002 connected_devices_.reset( 1002 connected_devices_.reset(
1003 new FrameConnectedBluetoothDevices(render_frame_host_)); 1003 new FrameConnectedBluetoothDevices(render_frame_host_));
1004 allowed_devices_map_ = BluetoothAllowedDevicesMap(); 1004 allowed_devices_map_ = BluetoothAllowedDevicesMap();
1005 device_chooser_controller_.reset(); 1005 device_chooser_controller_.reset();
1006 BluetoothAdapterFactoryWrapper::Get().ReleaseAdapter(this); 1006 BluetoothAdapterFactoryWrapper::Get().ReleaseAdapter(this);
1007 } 1007 }
1008 1008
1009 } // namespace content 1009 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/bluetooth/bluetooth_metrics.h ('k') | content/public/browser/content_browser_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698