From 05dac6b1847ddf5b95dde7302d4501e8a3d69912 Mon Sep 17 00:00:00 2001 From: Daniel Classon Date: Fri, 12 Apr 2024 12:09:41 -0700 Subject: [PATCH] [Nearby Connections] Rename async scanning flag Renames the enable_ble_v2_async_scanning_advertising flag to just enable_ble_v2_async_scanning, reflecting that scanning/advertising can be enabled independently. Work required to add async advertising is tracked in b/333408829. PiperOrigin-RevId: 624254277 --- connections/implementation/mediums/ble_v2.cc | 12 ++++----- .../implementation/mediums/ble_v2_test.cc | 27 +++++-------------- .../service_controller_router.cc | 7 ++--- internal/platform/feature_flags.h | 7 ++--- 4 files changed, 21 insertions(+), 32 deletions(-) diff --git a/connections/implementation/mediums/ble_v2.cc b/connections/implementation/mediums/ble_v2.cc index 7fd32c50..a5a8a137 100644 --- a/connections/implementation/mediums/ble_v2.cc +++ b/connections/implementation/mediums/ble_v2.cc @@ -68,7 +68,7 @@ BleV2::~BleV2() { // Destructor is not taking locks, but methods it is calling are. if (FeatureFlags::GetInstance() .GetFlags() - .enable_ble_v2_async_scanning_advertising) { + .enable_ble_v2_async_scanning) { // If using asynchronous scanning, check the corresponding map. while (!service_ids_to_scanning_sessions_.empty()) { StopScanning(service_ids_to_scanning_sessions_.begin()->first); @@ -361,7 +361,7 @@ bool BleV2::StartScanning(const std::string& service_id, PowerLevel power_level, if (FeatureFlags::GetInstance() .GetFlags() - .enable_ble_v2_async_scanning_advertising) { + .enable_ble_v2_async_scanning) { return StartAsyncScanningLocked(service_id, power_level); } @@ -438,7 +438,7 @@ bool BleV2::StopScanning(const std::string& service_id) { MutexLock lock(&mutex_); if (FeatureFlags::GetInstance() .GetFlags() - .enable_ble_v2_async_scanning_advertising) { + .enable_ble_v2_async_scanning) { return StopAsyncScanningLocked(service_id); } @@ -635,7 +635,7 @@ bool BleV2::IsAdvertisingForLegacyDeviceLocked( bool BleV2::IsScanningLocked(const std::string& service_id) const { if (FeatureFlags::GetInstance() .GetFlags() - .enable_ble_v2_async_scanning_advertising) { + .enable_ble_v2_async_scanning) { // If using asynchronous scanning, check the corresponding map. auto it = service_ids_to_scanning_sessions_.find(service_id); return it != service_ids_to_scanning_sessions_.end(); @@ -1039,7 +1039,7 @@ bool BleV2::StartAsyncScanningLocked(absl::string_view service_id, PowerLevel power_level) { CHECK(FeatureFlags::GetInstance() .GetFlags() - .enable_ble_v2_async_scanning_advertising); + .enable_ble_v2_async_scanning); // Use the asynchronous StartScanning method instead of the synchronous one. // Note: using FeatureFlags instead of NearbyFlags as there is no Mendel @@ -1129,7 +1129,7 @@ bool BleV2::StartAsyncScanningLocked(absl::string_view service_id, bool BleV2::StopAsyncScanningLocked(absl::string_view service_id) { CHECK(FeatureFlags::GetInstance() .GetFlags() - .enable_ble_v2_async_scanning_advertising); + .enable_ble_v2_async_scanning); // If using asynchronous scanning, check the corresponding map. auto scanning_session = service_ids_to_scanning_sessions_.find(service_id); if (scanning_session == service_ids_to_scanning_sessions_.end()) { diff --git a/connections/implementation/mediums/ble_v2_test.cc b/connections/implementation/mediums/ble_v2_test.cc index 58ba3845..eac8a811 100644 --- a/connections/implementation/mediums/ble_v2_test.cc +++ b/connections/implementation/mediums/ble_v2_test.cc @@ -581,8 +581,6 @@ TEST_F(BleV2Test, StartScanningDiscoverButNoPeripheralLostAfterStopScanning) { } TEST_F(BleV2Test, CanStartAndStopLegacyAdvertising) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); env_.Start(); BluetoothRadio radio_a; BleV2 ble_a{radio_a}; @@ -599,8 +597,6 @@ TEST_F(BleV2Test, CanStartAndStopLegacyAdvertising) { } TEST_F(BleV2Test, CanNotStartLegacyAdvertisingWhenRadioNotEnabled) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); env_.Start(); BluetoothRadio radio_a; BleV2 ble_a{radio_a}; @@ -614,8 +610,6 @@ TEST_F(BleV2Test, CanNotStartLegacyAdvertisingWhenRadioNotEnabled) { } TEST_F(BleV2Test, CanNotStopLegacyAdvertisingForNonExistingServiceId) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); env_.Start(); BluetoothRadio radio_a; BleV2 ble_a{radio_a}; @@ -673,8 +667,7 @@ TEST_F(BleV2Test, DuplicateStartLegacyAdvertisingReturnsFalse) { TEST_F(BleV2Test, HandleLegacyAdvertising) { env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true, - .enable_invoking_legacy_device_discovered_cb = true}}); + {FeatureFlags{.enable_invoking_legacy_device_discovered_cb = true}}); env_.Start(); BluetoothRadio radio_a; BluetoothRadio radio_b; @@ -712,8 +705,7 @@ TEST_F(BleV2Test, HandleLegacyAdvertising) { } TEST_F(BleV2Test, CanStartAsyncScanning) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); + env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}}); env_.Start(); BluetoothRadio radio_a; BluetoothRadio radio_b; @@ -748,8 +740,7 @@ TEST_F(BleV2Test, CanStartAsyncScanning) { } TEST_F(BleV2Test, StartAsyncScanningWithPlatformErrors) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); + env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}}); env_.Start(); BluetoothRadio radio_a; BluetoothRadio radio_b; @@ -804,8 +795,7 @@ TEST_F(BleV2Test, StartAsyncScanningWithPlatformErrors) { } TEST_F(BleV2Test, StartAsyncScanningDiscoverAndLostPeripheral) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); + env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}}); env_.Start(); BluetoothRadio radio_a; BluetoothRadio radio_b; @@ -854,8 +844,7 @@ TEST_F(BleV2Test, StartAsyncScanningDiscoverAndLostPeripheral) { TEST_F(BleV2Test, StartAsyncScanningDiscoverButNoPeripheralLostAfterStopScanning) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); + env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}}); env_.Start(); BluetoothRadio radio_a; BluetoothRadio radio_b; @@ -902,8 +891,7 @@ TEST_F(BleV2Test, } TEST_F(BleV2Test, CanStartStopMultipleAsyncScanningWithDifferentServiceIds) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); + env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}}); env_.Start(); BluetoothRadio radio_scanner; BluetoothRadio radio_advertiser_a; @@ -962,8 +950,7 @@ TEST_F(BleV2Test, CanStartStopMultipleAsyncScanningWithDifferentServiceIds) { } TEST_F(BleV2Test, StartMultipleAsyncScanningDiscoverAndLostPeripheral) { - env_.SetFeatureFlags( - {FeatureFlags{.enable_ble_v2_async_scanning_advertising = true}}); + env_.SetFeatureFlags({FeatureFlags{.enable_ble_v2_async_scanning = true}}); env_.Start(); BluetoothRadio radio_scanner; BluetoothRadio radio_advertiser_a; diff --git a/connections/implementation/service_controller_router.cc b/connections/implementation/service_controller_router.cc index ff176cba..0a1edb5a 100644 --- a/connections/implementation/service_controller_router.cc +++ b/connections/implementation/service_controller_router.cc @@ -98,10 +98,11 @@ ServiceControllerRouter::ServiceControllerRouter(bool enable_ble_v2) NearbyFlags::GetInstance().OverrideBoolFlagValue( config_package_nearby::nearby_connections_feature::kEnableBleV2, enable_ble_v2); - // CrOS uses the async methods for Scanning and Advertising, and has - // no support for the sync version of those methods. + // CrOS uses the async signature for Scanning and has no support for the + // sync version. + // TODO(b/333408829): Enable async advertising flag once supported. const_cast(FeatureFlags::GetInstance()) - .SetFlags({.enable_ble_v2_async_scanning_advertising = true}); + .SetFlags({.enable_ble_v2_async_scanning = true}); } } diff --git a/internal/platform/feature_flags.h b/internal/platform/feature_flags.h index 1183db05..5d18a178 100644 --- a/internal/platform/feature_flags.h +++ b/internal/platform/feature_flags.h @@ -62,9 +62,10 @@ class FeatureFlags { // requested service id before attempting to connect over rfcomm. SDP fails // on Windows when connecting to FP service id but the rfcomm is successful. bool skip_service_discovery_before_connecting_to_rfcomm = false; - // Controls enable or disable the use of async methods for StartScanning, - // StopScanning, StartAdvertising, and StopAdvertising for BLE V2. - bool enable_ble_v2_async_scanning_advertising = false; + // Controls enable or disable the use of async methods for StartScanning + // and StopScanning for BLE V2. + // TODO(b/333408829): Add flag to control async advertising. + bool enable_ble_v2_async_scanning = false; // Enable legacy device discovered callback being used inside ble v2 // DiscoverPeripheralTracker flow. bool enable_invoking_legacy_device_discovered_cb = false;