Commit Graph
42 Commits
Author SHA1 Message Date
Francis Tsui 4a8d97ff5e Rename share_target_info files to share_session.
PiperOrigin-RevId: 646204158
2024-06-24 13:35:11 -07:00
Francis Tsui 822e1af2a5 Move remaining payload processing into ShareTargetInfo.
PiperOrigin-RevId: 646185948
2024-06-24 12:36:44 -07:00
Francis Tsui 02379cc0a8 Remove AttachmentInfo.
PiperOrigin-RevId: 644459879
2024-06-18 11:38:14 -07:00
Francis Tsui 23031698dd Move IntroductionFrame handing to ShareTargetInfo.
PiperOrigin-RevId: 644192822
2024-06-17 18:04:35 -07:00
Francis Tsui 9ea59a98dc Cleanup payload creation.
PiperOrigin-RevId: 644155481
2024-06-17 15:39:23 -07:00
Francis Tsui 03dba4ae8b Remove unnecessary dependencies.
PiperOrigin-RevId: 643374160
2024-06-14 09:47:55 -07:00
Francis Tsui 2d845718f2 Cleanup share target info.
PiperOrigin-RevId: 641091075
2024-06-06 18:57:08 -07:00
Francis Tsui ece828ab55 Simplify PairKeyVerificationRunner interface.
PiperOrigin-RevId: 641087956
2024-06-06 18:38:34 -07:00
Francis Tsui 3c73448dc8 Move Attachments into ShareTargetInfo.
PiperOrigin-RevId: 640597022
2024-06-05 11:48:00 -07:00
Anay Wadhera 98dc739a8a Remove extra discovery_callback parameter from UnregisterSendSurface()
PiperOrigin-RevId: 640205209
2024-06-04 10:43:21 -07:00
Anay Wadhera a882f5816d Block targets with the same vendor ID
This CL does many things:
1) Adds a new API for RegisterSendSurface to specify vendor ID and whether we should block targets with the same vendor ID.
2) Refactors the sending surface callback observer lists to maps, mirroring Android.
3) Uses WrappedShareTargetDiscoveredCallback, which wraps the passed-in `ShareTargetDiscoveredCallback` and adds blocking on vendor ID (the actual point of this CL).

PiperOrigin-RevId: 639969139
2024-06-03 17:50:47 -07:00
Francis Tsui 13504726f9 Create AttachmentContainer class.
PiperOrigin-RevId: 639137658
2024-05-31 13:37:16 -07:00
Francis Tsui aa277cc202 Switch to absl random to generate payload and attachment ids.
PiperOrigin-RevId: 638749436
2024-05-30 12:44:55 -07:00
Anay Wadhera b2efc04bb2 Introduce WrappedShareTargetDiscoveredCallback.
PiperOrigin-RevId: 638421531
2024-05-29 14:56:55 -07:00
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