Commit Graph
28 Commits
Author SHA1 Message Date
Francis Tsui bf9b5ccb91 Rationalize disconnection handling.
PiperOrigin-RevId: 635985141
2024-05-21 18:00:13 -07:00
Anay Wadhera 4472598508 Create advertisement class testing
PiperOrigin-RevId: 635621550
2024-05-20 17:47:22 -07:00
Francis Tsui 4ff7c1511c Break nearby_sharing_service_test into smaller targets.
PiperOrigin-RevId: 634860612
2024-05-17 12:52:25 -07:00
Francis Tsui 1097288e54 Fix threading issues in NearbySharingServiceImpl.
PiperOrigin-RevId: 634527776
2024-05-16 14:22:48 -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
Francis Tsui dbb6550c2f Remove experiments_log.proto.
PiperOrigin-RevId: 626095230
2024-04-18 11:23:46 -07:00
Eiden Kim 486b4bfaca Remove unknown files from PAYLOAD_TRANSFER offline frame
PiperOrigin-RevId: 625500482
2024-04-16 17:14:40 -07:00
Francis Tsui a8bf25d692 Create common MockEventLogger.
PiperOrigin-RevId: 624994414
2024-04-15 10:00:17 -07:00
Francis Tsui 033d88ca24 TSAN error fixes.
PiperOrigin-RevId: 623908987
2024-04-11 12:42:12 -07:00
Nick Bourdakos a08a42077c PR #2404: Add license header to all source files
Imported from GitHub PR https://github.com/google/nearby/pull/2404

Copybara import of the project:

--
a6fbb3c396321c0b9012b787323f5f2ff652fd8f by Nick Bourdakos <bourdakos1@gmail.com>:

Add license header to all source files

Merging this change closes #2404

PiperOrigin-RevId: 623540004
2024-04-10 10:40:38 -07:00
Francis Tsui 8d41593056 Internal changes.
PiperOrigin-RevId: 623002360
2024-04-08 17:56:34 -07:00
Francis Tsui 1e08b2d886 Fixed remaining filesystem calls that throws exceptions.
PiperOrigin-RevId: 620379472
2024-03-29 17:33:25 -07:00
Francis Tsui f1d3c2d740 Wrap std::filesystem calls.
PiperOrigin-RevId: 620315145
2024-03-29 12:42:04 -07:00
Francis Tsui 40e4966ab5 Fix paired key verifiation error.
PiperOrigin-RevId: 619418705
2024-03-26 22:38:08 -07:00
Francis Tsui ba52423e89 Cleanup ShareTargetInfo.
PiperOrigin-RevId: 618928076
2024-03-25 12:43:50 -07:00
Francis Tsui e5350b0e81 Change sharing service APIs to accept share target ID.
PiperOrigin-RevId: 617931356
2024-03-21 12:42:43 -07:00
Francis Tsui 1824098faa Internal changes only
PiperOrigin-RevId: 616229857
2024-03-15 13:39:48 -07:00
Francis Tsui 5859dd5513 Cleanup proto target.
PiperOrigin-RevId: 615530943
2024-03-13 13:47:22 -07:00
hai007 cf2a1eb0b1 Internal change
PiperOrigin-RevId: 613133183
2024-03-06 10:21:45 -08:00
Francis Tsui 87e9c806b2 Split transfer_metadata into separate build target.
PiperOrigin-RevId: 610597218
2024-02-26 19:14:59 -08:00
Francis Tsui d15f533721 Cleanup BUILD dependencies.
PiperOrigin-RevId: 609511614
2024-02-22 15:05:13 -08:00
Francis Tsui 3dcca3abfc Cleanup BUILD dependencies.
PiperOrigin-RevId: 609501622
2024-02-22 14:35:56 -08:00
Juliet Levesque fb1f01717f [Nearby Presence] Add authentication status to ConnectionInfo
Adds authentication status to `ConnectionInfo`, which will pass the result of the authentication to clients when the connection is complete. See go/cros-nearby-presence-np-nc-authentication for details. This will be used in follow up CL to communicate the authentication status to clients of RequestConnectionV3().

PiperOrigin-RevId: 606789503
2024-02-13 16:49:49 -08:00
Francis Tsui c2d87d28ac Add flags to github.
PiperOrigin-RevId: 603584214
2024-02-02 17:21:27 -08:00
Francis Tsui 1b91588bd3 Use filesystem::path internal UTF8 conversion.
PiperOrigin-RevId: 601880589
2024-01-26 15:19:48 -08:00
Francis Tsui 10c4f5ede4 Move SharingRpcClientFactory into SharingPlatform.
PiperOrigin-RevId: 600914923
2024-01-23 14:53:50 -08:00
Francis Tsui e2aa37ab04 Refactor RpcClient interfaces.
PiperOrigin-RevId: 600912194
2024-01-23 14:44:37 -08:00
hai007 c40a65e492 Internal change
PiperOrigin-RevId: 598901559
2024-01-16 12:54:38 -08:00