Commit 1f3e9fb9 authored by Kyle Horimoto's avatar Kyle Horimoto Committed by Commit Bot

[CrOS PhoneHub] Add ConnectionMedium parameter to SecureChannelClient

Additionally, update all existing clients to use the kBluetoothLowEnergy
client.

This is a reland of
https://chromium-review.googlesource.com/c/chromium/src/+/2391739.

The CL originally got reverted because it used cached CQ results to
submit, but some other changes had landed since the CQ results were
cached which broke the build.

Original CL is patchset 1, and fix is in patchset 2.

Bug: 1106937
Change-Id: I72c6d0eec7e5afcfdde09a8439a10f856883732b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2392916
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: James Vecore <vecore@google.com>
Auto-Submit: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: default avatarJames Vecore <vecore@google.com>
Cr-Commit-Position: refs/heads/master@{#804323}
parent 1206dbae
......@@ -67,7 +67,8 @@ void ConnectionManagerImpl::AttemptConnection() {
connection_attempt_ = secure_channel_client_->InitiateConnectionToDevice(
*remote_device, *local_device, kPhoneHubFeatureName,
chromeos::secure_channel::ConnectionPriority::kMedium);
secure_channel::ConnectionMedium::kNearbyConnections,
secure_channel::ConnectionPriority::kMedium);
connection_attempt_->SetDelegate(this);
NotifyStatusChanged();
}
......
......@@ -80,6 +80,7 @@ void RemoteDeviceLifeCycleImpl::TransitionToState(
void RemoteDeviceLifeCycleImpl::FindConnection() {
connection_attempt_ = secure_channel_client_->ListenForConnectionFromDevice(
remote_device_, *local_device_, kSmartLockFeatureName,
chromeos::secure_channel::ConnectionMedium::kBluetoothLowEnergy,
chromeos::secure_channel::ConnectionPriority::kHigh);
connection_attempt_->SetDelegate(this);
......
......@@ -175,7 +175,8 @@ void ConnectionPreserverImpl::SetPreservedConnection(
connection_attempt_ = secure_channel_client_->ListenForConnectionFromDevice(
*remote_device, *device_sync_client_->GetLocalDeviceMetadata(),
kTetherFeature, secure_channel::ConnectionPriority::kLow);
kTetherFeature, secure_channel::ConnectionMedium::kBluetoothLowEnergy,
secure_channel::ConnectionPriority::kLow);
connection_attempt_->SetDelegate(this);
preserved_connection_timer_->Start(
......
......@@ -133,7 +133,9 @@ void MessageTransferOperation::Initialize() {
this, remote_device,
secure_channel_client_->ListenForConnectionFromDevice(
remote_device, *device_sync_client_->GetLocalDeviceMetadata(),
kTetherFeature, connection_priority_));
kTetherFeature,
secure_channel::ConnectionMedium::kBluetoothLowEnergy,
connection_priority_));
}
}
......
......@@ -14,10 +14,12 @@ FakeSecureChannelClient::ConnectionRequestArguments::ConnectionRequestArguments(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
const ConnectionPriority& connection_priority)
ConnectionMedium connection_medium,
ConnectionPriority connection_priority)
: device_to_connect(device_to_connect),
local_device(local_device),
feature(feature),
connection_medium(connection_medium),
connection_priority(connection_priority) {}
FakeSecureChannelClient::ConnectionRequestArguments::
......@@ -35,6 +37,7 @@ FakeSecureChannelClient::InitiateConnectionToDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) {
auto remote_local_pair = std::make_pair(device_to_connect, local_device);
std::unique_ptr<ConnectionAttempt> connection_attempt = std::move(
......@@ -48,6 +51,7 @@ FakeSecureChannelClient::ListenForConnectionFromDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) {
auto remote_local_pair = std::make_pair(device_to_connect, local_device);
std::unique_ptr<ConnectionAttempt> connection_attempt = std::move(
......
......@@ -26,12 +26,14 @@ class FakeSecureChannelClient : public SecureChannelClient {
ConnectionRequestArguments(multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
const ConnectionPriority& connection_priority);
ConnectionMedium connection_medium,
ConnectionPriority connection_priority);
~ConnectionRequestArguments();
multidevice::RemoteDeviceRef device_to_connect;
multidevice::RemoteDeviceRef local_device;
std::string feature;
ConnectionMedium connection_medium;
ConnectionPriority connection_priority;
private:
......@@ -121,11 +123,13 @@ class FakeSecureChannelClient : public SecureChannelClient {
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) override;
std::unique_ptr<ConnectionAttempt> ListenForConnectionFromDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) override;
private:
......
......@@ -39,7 +39,9 @@ class ConnectionAttempt;
// |local_device| but different features, those clients will share the same
// underlying connection, but their messages will be routed to the correct
// clients based on the |feature| identifier of the message.
// 4) |connection_priority|:
// 4) |connection_medium|:
// The medium (e.g., BLE) to use.
// 5) |connection_priority|:
// The priority of this connection request. Please make higher priority
// requests only when necessary.
//
......@@ -57,11 +59,13 @@ class SecureChannelClient {
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) = 0;
virtual std::unique_ptr<ConnectionAttempt> ListenForConnectionFromDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) = 0;
protected:
......
......@@ -50,6 +50,7 @@ SecureChannelClientImpl::InitiateConnectionToDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) {
auto connection_attempt = ConnectionAttemptImpl::Factory::Create();
......@@ -60,7 +61,8 @@ SecureChannelClientImpl::InitiateConnectionToDevice(
base::BindOnce(
&SecureChannelClientImpl::PerformInitiateConnectionToDevice,
weak_ptr_factory_.GetWeakPtr(), device_to_connect, local_device,
feature, connection_priority, connection_attempt->GenerateRemote()));
feature, connection_medium, connection_priority,
connection_attempt->GenerateRemote()));
return connection_attempt;
}
......@@ -70,6 +72,7 @@ SecureChannelClientImpl::ListenForConnectionFromDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) {
auto connection_attempt = ConnectionAttemptImpl::Factory::Create();
......@@ -81,7 +84,8 @@ SecureChannelClientImpl::ListenForConnectionFromDevice(
base::BindOnce(
&SecureChannelClientImpl::PerformListenForConnectionFromDevice,
weak_ptr_factory_.GetWeakPtr(), device_to_connect, local_device,
feature, connection_priority, connection_attempt->GenerateRemote()));
feature, connection_medium, connection_priority,
connection_attempt->GenerateRemote()));
return connection_attempt;
}
......@@ -90,11 +94,12 @@ void SecureChannelClientImpl::PerformInitiateConnectionToDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority,
mojo::PendingRemote<mojom::ConnectionDelegate> connection_delegate_remote) {
secure_channel_remote_->InitiateConnectionToDevice(
device_to_connect.GetRemoteDevice(), local_device.GetRemoteDevice(),
feature, ConnectionMedium::kBluetoothLowEnergy, connection_priority,
feature, connection_medium, connection_priority,
std::move(connection_delegate_remote));
}
......@@ -102,11 +107,12 @@ void SecureChannelClientImpl::PerformListenForConnectionFromDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority,
mojo::PendingRemote<mojom::ConnectionDelegate> connection_delegate_remote) {
secure_channel_remote_->ListenForConnectionFromDevice(
device_to_connect.GetRemoteDevice(), local_device.GetRemoteDevice(),
feature, ConnectionMedium::kBluetoothLowEnergy, connection_priority,
feature, connection_medium, connection_priority,
std::move(connection_delegate_remote));
}
......
......@@ -53,17 +53,20 @@ class SecureChannelClientImpl : public SecureChannelClient {
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) override;
std::unique_ptr<ConnectionAttempt> ListenForConnectionFromDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) override;
void PerformInitiateConnectionToDevice(
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority,
mojo::PendingRemote<mojom::ConnectionDelegate>
connection_delegate_remote);
......@@ -71,6 +74,7 @@ class SecureChannelClientImpl : public SecureChannelClient {
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority,
mojo::PendingRemote<mojom::ConnectionDelegate>
connection_delegate_remote);
......
......@@ -163,9 +163,11 @@ class SecureChannelClientImplTest : public testing::Test {
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) {
auto connection_attempt = client_->ListenForConnectionFromDevice(
device_to_connect, local_device, feature, connection_priority);
device_to_connect, local_device, feature, connection_medium,
connection_priority);
auto fake_connection_attempt = base::WrapUnique(
static_cast<FakeConnectionAttempt*>(connection_attempt.release()));
fake_connection_attempt->SetDelegate(
......@@ -182,9 +184,11 @@ class SecureChannelClientImplTest : public testing::Test {
multidevice::RemoteDeviceRef device_to_connect,
multidevice::RemoteDeviceRef local_device,
const std::string& feature,
ConnectionMedium connection_medium,
ConnectionPriority connection_priority) {
auto connection_attempt = client_->InitiateConnectionToDevice(
device_to_connect, local_device, feature, connection_priority);
device_to_connect, local_device, feature, connection_medium,
connection_priority);
auto fake_connection_attempt = base::WrapUnique(
static_cast<FakeConnectionAttempt*>(connection_attempt.release()));
fake_connection_attempt->SetDelegate(
......@@ -227,7 +231,8 @@ class SecureChannelClientImplTest : public testing::Test {
TEST_F(SecureChannelClientImplTest, TestInitiateConnectionToDevice) {
auto fake_connection_attempt = CallInitiateConnectionToDevice(
test_remote_device_ref_list_[1], test_remote_device_ref_list_[0],
"feature", ConnectionPriority::kLow);
"feature", ConnectionMedium::kBluetoothLowEnergy,
ConnectionPriority::kLow);
base::RunLoop run_loop;
......@@ -249,7 +254,8 @@ TEST_F(SecureChannelClientImplTest, TestInitiateConnectionToDevice) {
TEST_F(SecureChannelClientImplTest, TestInitiateConnectionToDevice_Failure) {
auto fake_connection_attempt = CallInitiateConnectionToDevice(
test_remote_device_ref_list_[1], test_remote_device_ref_list_[0],
"feature", ConnectionPriority::kLow);
"feature", ConnectionMedium::kBluetoothLowEnergy,
ConnectionPriority::kLow);
base::RunLoop run_loop;
......@@ -270,7 +276,8 @@ TEST_F(SecureChannelClientImplTest, TestInitiateConnectionToDevice_Failure) {
TEST_F(SecureChannelClientImplTest, TestListenForConnectionFromDevice) {
auto fake_connection_attempt = CallListenForConnectionFromDevice(
test_remote_device_ref_list_[1], test_remote_device_ref_list_[0],
"feature", ConnectionPriority::kLow);
"feature", ConnectionMedium::kBluetoothLowEnergy,
ConnectionPriority::kLow);
base::RunLoop run_loop;
......@@ -292,7 +299,8 @@ TEST_F(SecureChannelClientImplTest, TestListenForConnectionFromDevice) {
TEST_F(SecureChannelClientImplTest, TestListenForConnectionFromDevice_Failure) {
auto fake_connection_attempt = CallListenForConnectionFromDevice(
test_remote_device_ref_list_[1], test_remote_device_ref_list_[0],
"feature", ConnectionPriority::kLow);
"feature", ConnectionMedium::kBluetoothLowEnergy,
ConnectionPriority::kLow);
base::RunLoop run_loop;
......@@ -313,7 +321,8 @@ TEST_F(SecureChannelClientImplTest, TestListenForConnectionFromDevice_Failure) {
TEST_F(SecureChannelClientImplTest, TestMultipleConnections) {
auto fake_connection_attempt_1 = CallInitiateConnectionToDevice(
test_remote_device_ref_list_[1], test_remote_device_ref_list_[0],
"feature", ConnectionPriority::kLow);
"feature", ConnectionMedium::kBluetoothLowEnergy,
ConnectionPriority::kLow);
base::RunLoop run_loop_1;
fake_connection_attempt_1->set_on_connection_callback(
run_loop_1.QuitClosure());
......@@ -331,7 +340,8 @@ TEST_F(SecureChannelClientImplTest, TestMultipleConnections) {
auto fake_connection_attempt_2 = CallListenForConnectionFromDevice(
test_remote_device_ref_list_[2], test_remote_device_ref_list_[0],
"feature", ConnectionPriority::kLow);
"feature", ConnectionMedium::kBluetoothLowEnergy,
ConnectionPriority::kLow);
base::RunLoop run_loop_2;
fake_connection_attempt_2->set_on_connection_callback(
run_loop_2.QuitClosure());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment