Commit Graph
555 Commits
Author SHA1 Message Date
Nick Bourdakos 9d2cfc19c9 Add Objective-C++ GATT server wrapper
PiperOrigin-RevId: 552636264
2023-07-31 17:20:14 -07:00
Richard Levasseur 0d58ead61c Internal change
PiperOrigin-RevId: 552574409
2023-07-31 13:22:20 -07:00
Nick Bourdakos c1d74120a0 Add initial BLEv2 Bluetooth Adapter
PiperOrigin-RevId: 551922301
2023-07-28 12:32:27 -07:00
Guogang Li eb5f8aed10 Fixed WI-FI hotspot stuck issue during close
PiperOrigin-RevId: 551703821
2023-07-27 18:57:27 -07:00
Nick Bourdakos 0a13ce51f4 Make GNCBLEGATTServer thread safe
Fixes an issue where if a characteristic is created and then updated with a non-nil value, and a new characteristic under the same service is added, then when the service is re-added the old characteristic will be permanently cached and the dynamic reads will stop working.

This also eliminates the issue when characteristics are created concurrently, since service additions are batched, if the service addition fails then only one of the characteristics will know that it failed to get added.

This change also introduces the nuance of "success" does not mean the CoreBluetooth method has completed successfully, but instead means that the intended state has been recorded and the class will do its best to maintain that state. For example, a successful "start advertising" call means that we have the advertisement cached and we will start advertising as soon as we can (like BT transitions from off to on) and will do our best to keep advertising (like BT transitions from on to off to on again).

PiperOrigin-RevId: 551660634
2023-07-27 15:40:30 -07:00
Janusz Sobczak 974d4b357c Skip SDP check for FP rfcomm connection on Windows
The SDP checks fails but rfcomm connection works.
Skipping the SDP check does not seem to have any ill side effects.

PiperOrigin-RevId: 551370531
2023-07-26 18:15:44 -07:00
Nick Bourdakos a42cdc7346 Move Server Socket and its dependencies to their own files
PiperOrigin-RevId: 551330682
2023-07-26 15:21:46 -07:00
Thomas Van Lenten 7e1f286d93 Don't compile utils.mm twice.
PiperOrigin-RevId: 551315072
2023-07-26 14:25:24 -07:00
Nick Bourdakos de3f638129 Extract BLE code into its own target
PiperOrigin-RevId: 551074383
2023-07-25 20:23:59 -07:00
Janusz Sobczak c6d96b5971 Fix minor defects
Fixes use-after-free and NPE errors.

PiperOrigin-RevId: 551042892
2023-07-25 17:20:31 -07:00
Janusz Sobczak dfdb5a6405 Fix crash in BleV2MediumTest::StartScanningTmp
This fixes flakiness in the tests.

PiperOrigin-RevId: 551009093
2023-07-25 15:09:47 -07:00
Guogang Li 99c5e19f3f internal update
PiperOrigin-RevId: 550729573
2023-07-24 18:15:44 -07:00
Janusz Sobczak 225eab6505 Fix race condition in BluetoothSocket
The change is for tests only.

PiperOrigin-RevId: 550023162
2023-07-21 12:42:59 -07:00
Janusz Sobczak 2e1ed2b465 Fix wifi test flakiness
PiperOrigin-RevId: 549683201
2023-07-20 11:06:44 -07:00
Crisrael Lucero 0e44ed626d Refactor crypto/ directory into crypto_cros/ and crypto/
PiperOrigin-RevId: 549467911
2023-07-19 17:12:52 -07:00
Guogang Li e5fdddec6d internal update
PiperOrigin-RevId: 549461047
2023-07-19 16:43:10 -07:00
Janusz Sobczak 281032ee78 Fix flakiness in TaskRunnerImpl
PiperOrigin-RevId: 549119512
2023-07-18 14:55:19 -07:00
Nick Bourdakos 0f8e5283a4 Add GATT server
PiperOrigin-RevId: 549080231
2023-07-18 12:37:23 -07:00
Nick Bourdakos 96348b6ba7 Add BLE conversion utils
PiperOrigin-RevId: 547958170
2023-07-13 16:20:04 -07:00
Nick Bourdakos e0b2e176c8 Add Objective-C GATT characteristic container.
PiperOrigin-RevId: 547954006
2023-07-13 16:05:18 -07:00
Janusz Sobczak 9f42452386 Fix PCP handler cleanup
All tasks in base_pcp_handler must complete before
p2p_cluster_pcp_handler is destroyed to prevent use-after-free errors.

Added a couple of missing StopDiscovery calls.

PiperOrigin-RevId: 547931350
2023-07-13 14:56:14 -07:00
Guogang Li 33e2fdddf4 internal cleanup
PiperOrigin-RevId: 547888600
2023-07-13 12:45:54 -07:00
Janusz Sobczak 11ed2cec74 Improve timing in OfflineServiceControllerTest
Some of the tests are flaky.
Significantly increased timeouts will give us confidence that
tests are failing due to a defect and not due to a test taking a little
bit more time than usual.

PiperOrigin-RevId: 547819011
2023-07-13 09:10:35 -07:00
Anay Wadhera f95a875cde Weave port [7/n]: Introduce Weave client socket implementation
PiperOrigin-RevId: 547812816
2023-07-13 08:45:16 -07:00
Guogang Li b113f5550d Workaround for "backward reference detected" issue
PiperOrigin-RevId: 547646854
2023-07-12 17:34:04 -07:00
Janusz Sobczak d559a4a435 Fix tsan errors
Improve clean up order to prevent use-after-free errors.

PiperOrigin-RevId: 547313964
2023-07-11 15:26:43 -07:00
Guogang Li 4a71c4d2d0 Move NS implementation to third party folder
PiperOrigin-RevId: 546966492
2023-07-10 13:39:42 -07:00
Janusz Sobczak 522ac8c13e Fix threading issues in tests
The changes make thread sanitizer happy.

PiperOrigin-RevId: 546960147
2023-07-10 13:17:12 -07:00
Anay Wadhera eff0e2d3c6 Commonize callback construction for discovery.
PiperOrigin-RevId: 546934102
2023-07-10 11:35:34 -07:00
Janusz Sobczak ca9bbd3a9c Fix several race conditions
The fixes are specific to unit test environment.

PiperOrigin-RevId: 546342096
2023-07-07 11:53:50 -07:00
Janusz Sobczak 08d157399c Fix TaskRunnerImpl::PostDelayedTask
The timers were destroyed from timer's callbacks. Moving the destruction
to a separate callback fixes the issue.

PiperOrigin-RevId: 545916450
2023-07-06 02:01:03 -07:00
Guogang Li 92a1510158 Fixed an upgrade issue
PiperOrigin-RevId: 544778015
2023-06-30 16:44:04 -07:00
Janusz Sobczak 7a99b5e0a3 Specialize ExceptionOr<bool>
ExceptionOr<T>::ok() returns true if the value is set. This can be misleading
for boolean types.
ExceptionOr<bool> result = SomeFunction();
if (result.ok()) {
 if (result.result() {
  // Case 1: SomeFunction returned true
 } else {
  // Case 2: SomeFunction returned false
} else {
  // Case 3: SomeFunction returned an exception
}
It's easy to overlook case 2.
The specialized ExceptionOr<bool>::ok() returns false in Case 2, which allows
us to write:
if (result) {
 // SomeFunction returned true
} else {
 // SomeFunction returned false or an exception
 // result.GetException() can be used if we need to handle different exceptions
 // differenty
}

PiperOrigin-RevId: 544715641
2023-06-30 11:59:43 -07:00
Guogang Li a7ad6303ec internal bug fix
PiperOrigin-RevId: 544477173
2023-06-29 15:21:11 -07:00
Qin Wang 22c3a07677 Migrate DataManager to third_party/nearby/internal
PiperOrigin-RevId: 544395891
2023-06-29 10:31:07 -07:00
Qin Wang d55caf0c4b Enable ble_medium scanning for advertisement with Fast Pair Service UUID
PiperOrigin-RevId: 544158039
2023-06-28 14:17:36 -07:00
Juliet Levesque 34128a35de [Nearby Connections] Enable Cancellation Flags
Re-enables Cancellation Flags once fixes for crashes caused by destroying the cancellation flags that are being consumed by other classes have landed.

PiperOrigin-RevId: 543857192
2023-06-27 14:46:19 -07:00
hai007 ac0af7b048 Fix g3 platform timer implementation.
PiperOrigin-RevId: 542931629
2023-06-23 12:41:41 -07:00
hai007 80ddcbe0fc Fix a crash when reading file on Windows platform.
Suspect the file was corrupted when sending to receiver side. Check if it is good first, then peek. By this way, the crash maybe avoid. For further protection, add exception protection here.

PiperOrigin-RevId: 542884209
2023-06-23 09:46:59 -07:00
Guogang Li 72af220dae Wait for all tasks completed in thread pool
PiperOrigin-RevId: 542866176
2023-06-23 08:30:37 -07:00
Guogang Li bd30b11401 Fixed crash when stopping advertising
PiperOrigin-RevId: 542580849
2023-06-22 09:23:00 -07:00
Anay Wadhera 5da4b33824 Revert "Revert incoming connections listener changes for internal breakages."
PiperOrigin-RevId: 542381558
2023-06-21 15:36:44 -07:00
Aaron Yu 7eca4d74c6 Fix __FrameHandler3::CxxCallCatchBlock crashes at Nearby Connections layer
PiperOrigin-RevId: 542085514
2023-06-20 16:43:14 -07:00
Anay Wadhera 1973b09849 Revert incoming connections listener changes for internal breakages.
PiperOrigin-RevId: 542010849
2023-06-20 12:16:10 -07:00
Nick Bourdakos 12f9512a19 Use IOS_LATEST for the test runner to prevent Xcode 14.3 issues
PiperOrigin-RevId: 541053739
2023-06-16 17:37:39 -07:00
Janusz Sobczak e46b19c798 Use the MAC address as peripheral name
We use BlePeirpheral::GetName()` as a mac address.

PiperOrigin-RevId: 541010558
2023-06-16 14:54:42 -07:00
Anay Wadhera 5737b867ed implement startlisteningforincomingconnections
PiperOrigin-RevId: 540707703
2023-06-15 15:31:08 -07:00
Guogang Li 839dd086fd Fixed crash when initializing Bluetooth watcher
PiperOrigin-RevId: 540650297
2023-06-15 12:02:49 -07:00
Juliet Levesque aee56f0729 [Nearby Connections] Add CancellationFlag::Uncancel
Add CancellationFlag::Uncancel and on calls to ClientProxy::AddCancellationFlag, if a flag is already in the map, uncancel it. This will address the case when users use NC to share/receive a file, then cancel in the middle because the wrong file was selected, and  then re-do right after. Without this change, the second share/receive process will be seen as cancelled with cancellation flags enabled. However this change will uncancel the flag which is added in RequestConnection and OnConnectionInitiated in the NS flow.

PiperOrigin-RevId: 540633470
2023-06-15 11:07:44 -07:00
Guogang Li 0c1d5e7e23 Applied flags to Wi-Fi Hotspot parameters
PiperOrigin-RevId: 540432082
2023-06-14 18:00:52 -07:00