Commit Graph
199 Commits
Author SHA1 Message Date
Guogang Li 78145f4433 Fixed crash during devices scanning
PiperOrigin-RevId: 518127975
2023-03-20 18:03:49 -07:00
hai007 d0b258971d Remove the coroutines workaround from Nearby and drop experimental/coroutines.
In Prod LLVM release branch 515643669.1 ( cl/517696539 ) the experimental coroutines implementation is dropped. The `experimental/coroutines` header is removed.

Nearby doesn't use coroutines, but it uses libraries that depend on the existence of coroutine function definitions. Specifically, WinRT needs certain coroutine function definitions in order to compile.

Ordinarily, WinRT relied on the coroutine function definitions provided in the MSVC STL' `experimental/coroutines` header. The introduction of libc++ complicated this dependency for Nearby, because libc++' `experimental/coroutines` header took the place of the MSVC version, and (correctly, for C++17) provided none of the coroutine function definitions.

To resolve these issues, we implemented a patch of WinRT. The patch provided placeholder definitions, which allowed WinRT to pass compilation. This patch was submitted in cl/495104919. The patch was necessary to enable the Nearby migration from MSVC STL to libc++.

--

The removal of `experimental/coroutines` from libc++ makes this patch unnecessary. However, the patch will not compile without libc++' `experimental/coroutines` header.

The presence of libc++' `experimental/coroutines` header had prevented the corresponding MSVC STL' header from defining the functions for which the patch makes placeholders. Without the libc++' `experimental/coroutines` header, the MSVC STL header is employed and makes these definitions. The patch then redefines these functions, which causes a compilation failure.

--

This CL makes two changes: 1) It eliminates the patch, and 2) It eliminates the libc++ `experimental/coroutines` file from the Lexan libc++ distribution. This allows Nearby to function identically before and after the release of Lexan 515643669.1.

This change prevents a break from occurring when Lexan 515643669.1 is released.

PiperOrigin-RevId: 518119913
2023-03-20 17:20:47 -07:00
Janusz Sobczak e202af3ccc Add value parameter to future listeners
Pass the Future result to listeners as a parameter.
This makes the AddListener() API a bit more convenient.

PiperOrigin-RevId: 518040156
2023-03-20 12:15:47 -07:00
Guogang Li 465a82dc1e Avoid task execution to crash thread pool
PiperOrigin-RevId: 517980691
2023-03-20 08:53:03 -07:00
Guogang Li 12156937ee Check device name before calling update callback
PiperOrigin-RevId: 517851883
2023-03-19 20:26:56 -07:00
Guogang Li 44e6ff7bb1 Avoid task execution to crash thread pool
PiperOrigin-RevId: 517558076
2023-03-17 18:58:28 -07:00
Guogang Li 700d5c9dcc Fixed crash bug in BluetoothAdapter
PiperOrigin-RevId: 517556635
2023-03-17 18:44:51 -07:00
hai007 debe65ce54 Tidy up for cl/516905639
PiperOrigin-RevId: 517279013
2023-03-16 18:08:41 -07:00
Guogang Li f7e6deb8ab internal cleanup
PiperOrigin-RevId: 517211099
2023-03-16 13:27:26 -07:00
Qin Wang 52d41aa671 Maintain on_characteristic_changed_cb in GattCharacteristicData struct
PiperOrigin-RevId: 516972294
2023-03-15 17:19:39 -07:00
hai007 4e5f5ed341 Refactor WinRT socket to Win32 socket for Hotspot Server Socket for lower latency
PiperOrigin-RevId: 516905639
2023-03-15 13:00:02 -07:00
John Carroll 999a5e4681 Drop windows/json and use google3/third_party/json instead. Update the LICENSE file.
PiperOrigin-RevId: 516383763
2023-03-13 18:44:42 -07:00
Qin Wang 1e4497d59c Add Write Type enum to specify what type of GATT write should be performed
PiperOrigin-RevId: 515487102
2023-03-09 17:28:09 -08:00
Qin Wang 7e1ca7d458 Print out GattCommunicationStatus to help with debugging
PiperOrigin-RevId: 514809824
2023-03-07 12:38:25 -08:00
Qin Wang 0c078b3528 Convet ByteArray to std::string in ble_gatt_client
PiperOrigin-RevId: 514786088
2023-03-07 11:10:34 -08:00
Qin Wang ba8d60b8a9 Implement subscription for a GATT characteristic value changed
PiperOrigin-RevId: 513960871
2023-03-06 07:08:08 -08:00
John Carroll 4b1423d94e Adding Gatt Server tests.
PiperOrigin-RevId: 513823778
2023-03-03 07:38:56 -08:00
Guogang Li 21e8a0200c Added advertising and scanning for BLE v2
PiperOrigin-RevId: 513652877
2023-03-02 15:17:25 -08:00
Guogang Li 5c9166c02d Check BLE extended feature before use it
PiperOrigin-RevId: 513637981
2023-03-02 14:20:03 -08:00
hai007 d2965024ca Move app data from %PROGRAMDATA% to %LOCALAPPDATA%
PiperOrigin-RevId: 513355549
2023-03-01 15:22:23 -08:00
Qin Wang 4727861f5d Refactor GattCharactristic to support bitwise combination of Permission and Property
PiperOrigin-RevId: 513339751
2023-03-01 14:21:04 -08:00
Guogang Li d750e54bc8 Added dummy implementation for BLE sockets
PiperOrigin-RevId: 512797910
2023-02-27 19:29:58 -08:00
Guogang Li 843a4c1a35 Added initial BLE GATT server implementation for BLE v2 support
PiperOrigin-RevId: 512666999
2023-02-27 10:35:02 -08:00
hai007 96327865cd Move the file settings_file.json location to C:\ProgramData\Google\Nearby\Connections
PiperOrigin-RevId: 512198457
2023-02-24 17:11:53 -08:00
Guogang Li d260feced5 Added BLE V2 GATT client implementation for Windows
PiperOrigin-RevId: 511635693
2023-02-22 17:05:31 -08:00
Guogang Li 070609883f Fixed the crashes in Bluetooth socket
PiperOrigin-RevId: 511615254
2023-02-22 15:37:43 -08:00
Guogang Li d41c26dd24 Added BLE v2 peripheral
PiperOrigin-RevId: 509962831
2023-02-15 16:29:11 -08:00
Guogang Li 7fd2515b4e Added utility methods to handle winrt::guid and nearby::uuid
PiperOrigin-RevId: 509583159
2023-02-14 11:10:09 -08:00
Anay Wadhera ce70894099 Internal change
PiperOrigin-RevId: 509327800
2023-02-13 14:07:45 -08:00
Aaron Yu b8627563a0 Fix bluetooth socket crash during release of resource
From the crash call stack, the app crashed at the line `windows_socket = nullptr;` This is because the previous line `windows_socket_.Close();` has already released all unmanaged resources associated with the StreamSocket object.

https://learn.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket.close?view=winrt-22621#remarks

By RAII, assigning `windows_socket_` to nullptr is equivalent to calling `delete` on the StreamSocket allocated on the heap again, which results in null pointer exception `Exception infoEXCEPTION_ACCESS_VIOLATION_READ @0x00000000` because it has already been released in the previous line by Close().

PiperOrigin-RevId: 508454142
2023-02-09 13:05:29 -08:00
Guogang Li 5471115999 Fixed the issue of converting mac address
PiperOrigin-RevId: 508214399
2023-02-08 16:28:40 -08:00
Anay Wadhera dc8b1ef7ee Expose internal/platform windows implementation to presence and add bcrypt.lib for resolving bcrypt symbols in absl
PiperOrigin-RevId: 507834078
2023-02-07 11:13:38 -08:00
hai007 e28a1986b3 Automated visibility attribute cleanup.
PiperOrigin-RevId: 507776711
2023-02-07 07:42:26 -08:00
Guogang Li 26973fada5 Use read/write buffer in bluetooth socket
PiperOrigin-RevId: 506815067
2023-02-02 22:49:32 -08:00
Eiden Kim 3d9ce368ff Fixed crashpad db creation failure and changed root to CommonAppData. Changed captured Nearby Share Info to save to CommonAppData. Changed Clearcut root to CommonAppData.
PiperOrigin-RevId: 506528040
2023-02-01 23:15:22 -08:00
Eiden Kim db6300fcc7 Add winrt visibility to Nearby Share app.
PiperOrigin-RevId: 506232180
2023-02-01 00:23:32 -08:00
Guogang Li 0c336e12b9 Log more information for connection error in Wi-Fi hotspot
PiperOrigin-RevId: 505840790
2023-01-30 17:18:18 -08:00
Guogang Li d7d6646b5b Report device lost when advertising data changed in BLE
PiperOrigin-RevId: 505768728
2023-01-30 12:36:56 -08:00
hai007 3f135b2d0f Add Ethernet information into connection_info if Wifi is not connected
PiperOrigin-RevId: 505766130
2023-01-30 12:26:08 -08:00
hai007 3cbbecd53a Change log and crash dump locations from a per user data location to a per machine common data location.
PiperOrigin-RevId: 505711827
2023-01-30 09:14:00 -08:00
Qin Wang a0692e6306 Migrate device_info from location/nearby to third_party/nearby
PiperOrigin-RevId: 504935151
2023-01-26 14:01:11 -08:00
Janusz Sobczak f4d85f9b90 Migrate to AnyInvocable in platform code
PiperOrigin-RevId: 504104740
2023-01-23 16:04:21 -08:00
Guogang Li d3eaae1015 list IP addresses in priority
PiperOrigin-RevId: 503310798
2023-01-19 17:47:27 -08:00
Nick Bourdakos 819f816600 Refactor nearby connections clients to be organized by languages.
PiperOrigin-RevId: 503308736
2023-01-19 17:36:07 -08:00
Eiden Kim 26c752dac5 Fix folder transfer with non-English folders.
PiperOrigin-RevId: 503235989
2023-01-19 12:33:14 -08:00
Guogang Li 70412b8e3c Fixed the crash when checking IP addresses
PiperOrigin-RevId: 503048520
2023-01-18 20:14:45 -08:00
Janusz Sobczak a29be214a3 Migrate to absl::AnyInvocable in NP.
Replaces a bunch of std::function uses with absl::AnyInvocable.

PiperOrigin-RevId: 502960326
2023-01-18 13:16:29 -08:00
Guogang Li 79834a0ee0 Reduce IP check interval and put more logs for Wi-Fi hotspot
PiperOrigin-RevId: 502698293
2023-01-17 15:04:01 -08:00
hai007 ac87d5cf50 Explicitly initialize atomic value.
PiperOrigin-RevId: 501936581
2023-01-13 14:16:03 -08:00
hai007 dab0ead924 Explicitly initialize atomic value; change its type to unsigned.
PiperOrigin-RevId: 501935970
2023-01-13 14:12:44 -08:00