Commit Graph
156 Commits
Author SHA1 Message Date
hai007 aa65e11580 Automated Code Change
PiperOrigin-RevId: 696760539
2024-11-14 21:59:48 -08:00
hai007 9c81350351 Added visibility on test only target for 1st party partners.
PiperOrigin-RevId: 691116241
2024-10-29 12:22:59 -07:00
Francis Tsui b4d11ecbda Use machine name for advertisement when user not logged in.
PiperOrigin-RevId: 690479544
2024-10-27 22:52:21 -07:00
Francis Tsui 5840369ce6 Remove unused deviceInfo methods.
PiperOrigin-RevId: 688334273
2024-10-21 17:46:16 -07:00
Edwin Wu 77a75f4389 Add WEB_RTC_NON_CELLULAR enum, III
PiperOrigin-RevId: 686391802
2024-10-16 00:07:37 -07:00
Edwin Wu 7b2eddc458 Add WEB_RTC_NON_CELLULAR enum, II
PiperOrigin-RevId: 685103930
2024-10-12 00:28:58 -07:00
Guogang Li f8669cf16d Clean up logging implementations
PiperOrigin-RevId: 670714192
2024-09-03 14:48:52 -07:00
Guogang Li d5b5d92f87 Internal logging update
PiperOrigin-RevId: 669420403
2024-08-30 13:08:35 -07:00
Francis Tsui 4bca950bc7 Rename NEARBY_LOG() to NEARBY_LOG_OBSOLETE()
PiperOrigin-RevId: 667785090
2024-08-26 18:20:49 -07:00
Anay Wadhera df166289bb internal change
PiperOrigin-RevId: 667781323
2024-08-26 18:04:45 -07:00
Francis Tsui b03a383f7a Trivial replacement of NEARBY_LOG with NEARBY_LOGS.
PiperOrigin-RevId: 667740113
2024-08-26 15:34:21 -07:00
Guogang Li 2c700115ef internal fix
PiperOrigin-RevId: 666482118
2024-08-22 14:08:02 -07:00
Francis Tsui d56c1008cd Enable platform tests for Windows builds.
PiperOrigin-RevId: 658892575
2024-08-02 13:41:44 -07:00
hai007 9ea22bb1e4 Automated Code Change
PiperOrigin-RevId: 655112620
2024-07-23 04:24:22 -07:00
Guogang Li 32cee3439b Pause Bluetooth classic discovery
PiperOrigin-RevId: 647333108
2024-06-27 08:52:58 -07:00
Guogang Li 0640832025 Allowed G3 to simulated BLE device supported extended advertisement
PiperOrigin-RevId: 646503301
2024-06-25 09:20:58 -07:00
Guogang Li 7ccbfef89b internal fix
PiperOrigin-RevId: 644430280
2024-06-18 10:20:18 -07:00
Francis Tsui 3d2adf8b42 internal changes.
PiperOrigin-RevId: 642056854
2024-06-10 16:20:30 -07:00
Anay Wadhera 4aa73df657 Internal changes for stub impl
PiperOrigin-RevId: 634082976
2024-05-15 14:49:33 -07:00
Anay Wadhera fcc08df58b internal change
PiperOrigin-RevId: 634077236
2024-05-15 14:31:46 -07:00
Anay Wadhera f26d25ed01 Provide a platform abstraction for RandBytes instead of swapping headers
The `RandBytes` functions were being placed in the `crypto` namespace,
which collides with Chromium's namespace of the same name. Within,
`RandBytes` was defined with almost-the-same API. Then in Chromium
builds, the Chromium header would be used instead (though somewhat
inconsistently).

This creates a lot of pain for Chromium development as there's a
third-party repository directly depending on headers from Chromium's
source tree, and is against the third-party policies for that reason.
There are a number of other headers that mirror Chromium and are
swapped out in the Chromium build that will cause similar pain, such as:
```
include "crypto/aead.h"
include "crypto/ec_private_key.h"
include "crypto/hkdf.h"
```

This CL provides a template for how to get rid of these header swaps and
give a platform abstraction in nearby instead.

We provide a platform abstraction in `platform/crypto.h` (really in
`platform/implementation/crypto.h`) which is implemented in
`platform/implementation/shared/crypto.cc`. However that implementation
is removed by `#ifdef` when in the Chromium build.

Then, in the Chromium repo, we will add (separately) an implementation
of the same abstraction in `//third_party/nearby/platform_impl` with GN
rules to include it in the build. It will replace the implementation
from the nearby repo.

Copybara import of the project:

--
6ca8099 by danakj <danakj@chromium.org>:

Provide a platform abstraction for RandBytes instead of swapping headers

The `RandBytes` functions were being placed in the `crypto` namespace,
which collides with Chromium's namespace of the same name. Within,
`RandBytes` was defined with almost-the-same API. Then in Chromium
builds, the Chromium header would be used instead (though somewhat
inconsistently).

This creates a lot of pain for Chromium development as there's a
third-party repository directly depending on headers from Chromium's
source tree, and is against the third-party policies for that reason.
There are a number of other headers that mirror Chromium and are
swapped out in the Chromium build that will cause similar pain, such as:
```
include "crypto/aead.h"
include "crypto/ec_private_key.h"
include "crypto/hkdf.h"
```

This CL provides a template for how to get rid of these header swaps and
give a platform abstraction in nearby instead.

We provide a platform abstraction in `platform/crypto.h` (really in
`platform/implementation/crypto.h`) which is implemented in
`platform/implementation/shared/crypto.cc`. However that implementation
is removed by `#ifdef` when in the Chromium build.

Then, in the Chromium repo, we will add (separately) an implementation
of the same abstraction in `//third_party/nearby/platform_impl` with GN
rules to include it in the build. It will replace the implementation
from the nearby repo.

--
9c2654b by danakj <danakj@chromium.org>:

Remove CryptoSpan, use absl::Span

The header swapping of Chromium crypto libraries is
problematic, but absl::Span will convert to base::span
so there's no need for the typedef even without
removing the header swapping yet.

--
df1135d by danakj <danakj@chromium.org>:

Add missing files

--
ab18a15 by danakj <danakj@chromium.org>:

Remove the random_unittest.cc from Swift build

The file moved, so the Swift package needs its path
updated.

--
2038f78 by danakj <danakj@chromium.org>:

Combine crypto unittests into crypto_test.cc

--
f7ad176 by danakj <danakj@chromium.org>:

Add stdint and stddef includes for uint8_t and size_t

--
9f04590 by danakj <danakj@chromium.org>:

Mark the shared crypto implementation compatable_with non_prod

--
18eeafd by danakj <danakj@chromium.org>:

Add IWYU pragma for crypto implementation

PiperOrigin-RevId: 632150866
2024-05-09 08:02:50 -07:00
Ryan Hansberry cc84b6f4a4 Make credential refill asynchronous
Fixes a ChromeOS-deadlock during credential refill. The
previous logic blocked the IO thread that ChromeOS is using
to listen for responses from its CredentialStorage layer,
thus preventing it from signaling the latch.

Given that CheckCredentialsAndRefillIfNeeded is meant to
be async (given its continuation-passing style), this CL
avoids any thread trickiness by removing any latch-waiting
within the function. The nice side-effect of this is breaking
up the function into 3 smaller functions, which should
hopefully make it a bit more readable.

//.../g3/credential_storage_impl.cc has its mutex locks
removed -- they otherwise cause deadlocks, and are now
unnecessary.

This CL introduces a CHECK_EQ to ensure that the number of
remaining valid (not-expired) credentials is equal across the
shared and local list. This actually exposed a bug in the
credential_manager_impl_test.cc -- the test was only expiring
a public credential, and not its corresponding private credential.
Thus, the test is also updated in this CL to correctly mark
the first credential of the shared and local list as expired.

PiperOrigin-RevId: 631822135
2024-05-08 09:14:53 -07:00
Hai Shang 17df967296 replace secrect_id to id inside presence credential manager
PiperOrigin-RevId: 630558485
2024-05-03 19:28:48 -07:00
Ryan Hansberry 5c933e5b9c [Device Provider] Add FakeDeviceProvider for testing
Create a FakeDeviceProvider class which will be used in testing for NearbyPresence
and NearbyConnections. To assist with testing PresenceService will store a NearbyDeviceProvider base class instead of the implementation specific PresenceDeviceProvider.

PiperOrigin-RevId: 625845617
2024-04-17 16:47:31 -07:00
hai007 c198af1495 Automated Code Change
PiperOrigin-RevId: 623376075
2024-04-09 22:14:22 -07:00
Francis Tsui 8d41593056 Internal changes.
PiperOrigin-RevId: 623002360
2024-04-08 17:56:34 -07:00
Francis Tsui a082f36021 Switch glog to absl::log.
PiperOrigin-RevId: 615535748
2024-03-13 14:03:23 -07:00
Francis Tsui 1072030be8 Copy sharing/internal, sharing/common and sharing/scheduling to github.
- Move Abseil pin to same as that used in Chromium.
- Disabled layering_check due to build failure in absl.

PiperOrigin-RevId: 596631921
2024-01-08 10:20:37 -08:00
Francis Tsui aea7a09a24 Switch DeviceInfo to use UTF-8 strings.
- Move conversion from native to UTF-8 into platform impl.

PiperOrigin-RevId: 592912664
2023-12-21 11:35:20 -08:00
Hai Shang 0ff449d9fc internal fix
PiperOrigin-RevId: 590025851
2023-12-11 19:05:52 -08:00
Janusz Sobczak 2c55c0cdbd Refactor Pipe implementation
* Remove Pipe classes
* Rename BasePipe to Pipe
* Hide Pipe class in anonymous namespace in pipe.cc
* Add CreatePipe static method
* Replace Payload(std::function<InputStream&()>) with Payload(std::unique_ptr<InputStream>)
* Find&Replace Pipe usages

PiperOrigin-RevId: 557276980
2023-08-15 15:53:58 -07:00
Janusz Sobczak 20db5da721 Extract SocketBase
Test only change.

Extracts a common base class for BluetoothSocket, BleSocket, BleV2Socket, WifiDirectSocket, WifiHotspotSocket and  WifiLanSocket to reduce code duplication.

PiperOrigin-RevId: 557267937
2023-08-15 15:22:06 -07:00
Guogang Li fabeff0d57 Added APIs to control device sleep
These APIs can be used to prevent device into sleep when sending supper big files.

PiperOrigin-RevId: 556809236
2023-08-14 09:05:11 -07:00
Janusz Sobczak 5393daf9f1 Merge logging and types build targets
Both "types" and "logging" build targets included "logging.h"
Merging them together avoids circular dependencies.

PiperOrigin-RevId: 555262816
2023-08-09 19:13:12 -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
Guogang Li b113f5550d Workaround for "backward reference detected" issue
PiperOrigin-RevId: 547646854
2023-07-12 17:34:04 -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
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
Qin Wang 22c3a07677 Migrate DataManager to third_party/nearby/internal
PiperOrigin-RevId: 544395891
2023-06-29 10:31:07 -07:00
hai007 ac0af7b048 Fix g3 platform timer implementation.
PiperOrigin-RevId: 542931629
2023-06-23 12:41:41 -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
Janusz Sobczak ca60afa007 Add robust gatt client
PiperOrigin-RevId: 539817203
2023-06-12 18:29:59 -07:00
Qin Wang ba740c9a5c Implement RetroactivePairingDetector
PiperOrigin-RevId: 538319791
2023-06-06 16:18:38 -07:00
Janusz Sobczak 7c9b517d76 Implement G3 GattServer::Stop
PiperOrigin-RevId: 537149080
2023-06-01 15:45:21 -07:00
Janusz Sobczak a5060a3c18 Call gatt disconnect callback in tests
PiperOrigin-RevId: 536737632
2023-05-31 09:33:52 -07:00
Chun Zhang c9884f6218 Migrate AccountManager from location/nearby to third_party/nearby
PiperOrigin-RevId: 533915507
2023-05-21 17:37:15 -07:00
Janusz Sobczak 1c9dd093f1 Fix retroactive pairing test
PiperOrigin-RevId: 532853830
2023-05-17 11:35:48 -07:00
Chun Zhang a925ed1072 Move FakeAuthenticationManager from location to third_party.
PiperOrigin-RevId: 532237745
2023-05-15 15:04:03 -07:00
Crisrael Lucero 01c8e1ed05 Convert absl::string_view to const std::string&
PiperOrigin-RevId: 531634295
2023-05-12 16:40:50 -07:00