Commit a0b864d8 authored by Ryan Hansberry's avatar Ryan Hansberry Committed by Commit Bot

[CrOS Multidevice] Create a dependency from TetherService to SecureChannelClient.

Inject SecureChannelClient into TetherService, but not TetherComponent yet.
Injection into TetherComponent and subsequent SecureChannelClient usage will come
in subsequent CLs.

This change has allowed me to manually verify that SecureChannelService is correctly
registered at the login screen.

This CL features a small change to FakeSecureChannelClient needed to fix a build
error -- somehow it slipped by before.

Bug: 824568, 752273
Change-Id: I9ba2c35f2ed05ebc3c92b1817e54e8161512f6a8
Reviewed-on: https://chromium-review.googlesource.com/1100481
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567454}
parent 7b76508c
...@@ -13,12 +13,14 @@ FakeTetherService::FakeTetherService( ...@@ -13,12 +13,14 @@ FakeTetherService::FakeTetherService(
chromeos::PowerManagerClient* power_manager_client, chromeos::PowerManagerClient* power_manager_client,
cryptauth::CryptAuthService* cryptauth_service, cryptauth::CryptAuthService* cryptauth_service,
chromeos::device_sync::DeviceSyncClient* device_sync_client, chromeos::device_sync::DeviceSyncClient* device_sync_client,
chromeos::secure_channel::SecureChannelClient* secure_channel_client,
chromeos::NetworkStateHandler* network_state_handler, chromeos::NetworkStateHandler* network_state_handler,
session_manager::SessionManager* session_manager) session_manager::SessionManager* session_manager)
: TetherService(profile, : TetherService(profile,
power_manager_client, power_manager_client,
cryptauth_service, cryptauth_service,
device_sync_client, device_sync_client,
secure_channel_client,
network_state_handler, network_state_handler,
session_manager) {} session_manager) {}
......
...@@ -12,12 +12,14 @@ ...@@ -12,12 +12,14 @@
// chromeos::switches::kTetherStub for more details. // chromeos::switches::kTetherStub for more details.
class FakeTetherService : public TetherService { class FakeTetherService : public TetherService {
public: public:
FakeTetherService(Profile* profile, FakeTetherService(
chromeos::PowerManagerClient* power_manager_client, Profile* profile,
cryptauth::CryptAuthService* cryptauth_service, chromeos::PowerManagerClient* power_manager_client,
chromeos::device_sync::DeviceSyncClient* device_sync_client, cryptauth::CryptAuthService* cryptauth_service,
chromeos::NetworkStateHandler* network_state_handler, chromeos::device_sync::DeviceSyncClient* device_sync_client,
session_manager::SessionManager* session_manager); chromeos::secure_channel::SecureChannelClient* secure_channel_client,
chromeos::NetworkStateHandler* network_state_handler,
session_manager::SessionManager* session_manager);
// TetherService: // TetherService:
void StartTetherIfPossible() override; void StartTetherIfPossible() override;
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include "chromeos/network/network_connect.h" #include "chromeos/network/network_connect.h"
#include "chromeos/network/network_type_pattern.h" #include "chromeos/network/network_type_pattern.h"
#include "chromeos/services/device_sync/public/cpp/device_sync_client.h" #include "chromeos/services/device_sync/public/cpp/device_sync_client.h"
#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h"
#include "components/cryptauth/cryptauth_enrollment_manager.h" #include "components/cryptauth/cryptauth_enrollment_manager.h"
#include "components/cryptauth/cryptauth_service.h" #include "components/cryptauth/cryptauth_service.h"
#include "components/cryptauth/remote_device_provider_impl.h" #include "components/cryptauth/remote_device_provider_impl.h"
...@@ -128,12 +129,14 @@ TetherService::TetherService( ...@@ -128,12 +129,14 @@ TetherService::TetherService(
chromeos::PowerManagerClient* power_manager_client, chromeos::PowerManagerClient* power_manager_client,
cryptauth::CryptAuthService* cryptauth_service, cryptauth::CryptAuthService* cryptauth_service,
chromeos::device_sync::DeviceSyncClient* device_sync_client, chromeos::device_sync::DeviceSyncClient* device_sync_client,
chromeos::secure_channel::SecureChannelClient* secure_channel_client,
chromeos::NetworkStateHandler* network_state_handler, chromeos::NetworkStateHandler* network_state_handler,
session_manager::SessionManager* session_manager) session_manager::SessionManager* session_manager)
: profile_(profile), : profile_(profile),
power_manager_client_(power_manager_client), power_manager_client_(power_manager_client),
cryptauth_service_(cryptauth_service), cryptauth_service_(cryptauth_service),
device_sync_client_(device_sync_client), device_sync_client_(device_sync_client),
secure_channel_client_(secure_channel_client),
network_state_handler_(network_state_handler), network_state_handler_(network_state_handler),
session_manager_(session_manager), session_manager_(session_manager),
notification_presenter_( notification_presenter_(
......
...@@ -28,6 +28,9 @@ class NetworkStateHandler; ...@@ -28,6 +28,9 @@ class NetworkStateHandler;
namespace device_sync { namespace device_sync {
class DeviceSyncClient; class DeviceSyncClient;
} // namespace device_sync } // namespace device_sync
namespace secure_channel {
class SecureChannelClient;
} // namespace secure_channel
namespace tether { namespace tether {
class GmsCoreNotificationsStateTracker; class GmsCoreNotificationsStateTracker;
class GmsCoreNotificationsStateTrackerImpl; class GmsCoreNotificationsStateTrackerImpl;
...@@ -61,12 +64,14 @@ class TetherService : public KeyedService, ...@@ -61,12 +64,14 @@ class TetherService : public KeyedService,
public chromeos::NetworkStateHandlerObserver, public chromeos::NetworkStateHandlerObserver,
public chromeos::tether::TetherComponent::Observer { public chromeos::tether::TetherComponent::Observer {
public: public:
TetherService(Profile* profile, TetherService(
chromeos::PowerManagerClient* power_manager_client, Profile* profile,
cryptauth::CryptAuthService* cryptauth_service, chromeos::PowerManagerClient* power_manager_client,
chromeos::device_sync::DeviceSyncClient* device_sync_client, cryptauth::CryptAuthService* cryptauth_service,
chromeos::NetworkStateHandler* network_state_handler, chromeos::device_sync::DeviceSyncClient* device_sync_client,
session_manager::SessionManager* session_manager); chromeos::secure_channel::SecureChannelClient* secure_channel_client,
chromeos::NetworkStateHandler* network_state_handler,
session_manager::SessionManager* session_manager);
~TetherService() override; ~TetherService() override;
// Gets TetherService instance. // Gets TetherService instance.
...@@ -262,6 +267,7 @@ class TetherService : public KeyedService, ...@@ -262,6 +267,7 @@ class TetherService : public KeyedService,
chromeos::PowerManagerClient* power_manager_client_; chromeos::PowerManagerClient* power_manager_client_;
cryptauth::CryptAuthService* cryptauth_service_; cryptauth::CryptAuthService* cryptauth_service_;
chromeos::device_sync::DeviceSyncClient* device_sync_client_; chromeos::device_sync::DeviceSyncClient* device_sync_client_;
chromeos::secure_channel::SecureChannelClient* secure_channel_client_;
chromeos::NetworkStateHandler* network_state_handler_; chromeos::NetworkStateHandler* network_state_handler_;
session_manager::SessionManager* session_manager_; session_manager::SessionManager* session_manager_;
std::unique_ptr<chromeos::tether::NotificationPresenter> std::unique_ptr<chromeos::tether::NotificationPresenter>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "chrome/browser/chromeos/cryptauth/chrome_cryptauth_service_factory.h" #include "chrome/browser/chromeos/cryptauth/chrome_cryptauth_service_factory.h"
#include "chrome/browser/chromeos/device_sync/device_sync_client_factory.h" #include "chrome/browser/chromeos/device_sync/device_sync_client_factory.h"
#include "chrome/browser/chromeos/secure_channel/secure_channel_client_provider.h"
#include "chrome/browser/chromeos/tether/fake_tether_service.h" #include "chrome/browser/chromeos/tether/fake_tether_service.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
...@@ -56,6 +57,8 @@ KeyedService* TetherServiceFactory::BuildServiceInstanceFor( ...@@ -56,6 +57,8 @@ KeyedService* TetherServiceFactory::BuildServiceInstanceFor(
Profile::FromBrowserContext(context)), Profile::FromBrowserContext(context)),
chromeos::device_sync::DeviceSyncClientFactory::GetForProfile( chromeos::device_sync::DeviceSyncClientFactory::GetForProfile(
Profile::FromBrowserContext(context)), Profile::FromBrowserContext(context)),
chromeos::secure_channel::SecureChannelClientProvider::GetInstance()
->GetClient(),
chromeos::NetworkHandler::Get()->network_state_handler(), chromeos::NetworkHandler::Get()->network_state_handler(),
session_manager::SessionManager::Get()); session_manager::SessionManager::Get());
...@@ -75,6 +78,8 @@ KeyedService* TetherServiceFactory::BuildServiceInstanceFor( ...@@ -75,6 +78,8 @@ KeyedService* TetherServiceFactory::BuildServiceInstanceFor(
Profile::FromBrowserContext(context)), Profile::FromBrowserContext(context)),
chromeos::device_sync::DeviceSyncClientFactory::GetForProfile( chromeos::device_sync::DeviceSyncClientFactory::GetForProfile(
Profile::FromBrowserContext(context)), Profile::FromBrowserContext(context)),
chromeos::secure_channel::SecureChannelClientProvider::GetInstance()
->GetClient(),
chromeos::NetworkHandler::Get()->network_state_handler(), chromeos::NetworkHandler::Get()->network_state_handler(),
session_manager::SessionManager::Get()); session_manager::SessionManager::Get());
} }
......
...@@ -41,6 +41,8 @@ ...@@ -41,6 +41,8 @@
#include "chromeos/network/network_type_pattern.h" #include "chromeos/network/network_type_pattern.h"
#include "chromeos/services/device_sync/public/cpp/device_sync_client_impl.h" #include "chromeos/services/device_sync/public/cpp/device_sync_client_impl.h"
#include "chromeos/services/device_sync/public/cpp/fake_device_sync_client.h" #include "chromeos/services/device_sync/public/cpp/fake_device_sync_client.h"
#include "chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h"
#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl.h"
#include "components/cryptauth/cryptauth_device_manager.h" #include "components/cryptauth/cryptauth_device_manager.h"
#include "components/cryptauth/cryptauth_enroller.h" #include "components/cryptauth/cryptauth_enroller.h"
#include "components/cryptauth/cryptauth_enrollment_manager.h" #include "components/cryptauth/cryptauth_enrollment_manager.h"
...@@ -106,16 +108,19 @@ class MockExtendedBluetoothAdapter : public device::MockBluetoothAdapter { ...@@ -106,16 +108,19 @@ class MockExtendedBluetoothAdapter : public device::MockBluetoothAdapter {
class TestTetherService : public TetherService { class TestTetherService : public TetherService {
public: public:
TestTetherService(Profile* profile, TestTetherService(
chromeos::PowerManagerClient* power_manager_client, Profile* profile,
cryptauth::CryptAuthService* cryptauth_service, chromeos::PowerManagerClient* power_manager_client,
chromeos::device_sync::DeviceSyncClient* device_sync_client, cryptauth::CryptAuthService* cryptauth_service,
chromeos::NetworkStateHandler* network_state_handler, chromeos::device_sync::DeviceSyncClient* device_sync_client,
session_manager::SessionManager* session_manager) chromeos::secure_channel::SecureChannelClient* secure_channel_client,
chromeos::NetworkStateHandler* network_state_handler,
session_manager::SessionManager* session_manager)
: TetherService(profile, : TetherService(profile,
power_manager_client, power_manager_client,
cryptauth_service, cryptauth_service,
device_sync_client, device_sync_client,
secure_channel_client,
network_state_handler, network_state_handler,
session_manager) {} session_manager) {}
~TestTetherService() override {} ~TestTetherService() override {}
...@@ -259,6 +264,22 @@ class FakeDeviceSyncClientImplFactory ...@@ -259,6 +264,22 @@ class FakeDeviceSyncClientImplFactory
} }
}; };
class FakeSecureChannelClientImplFactory
: public chromeos::secure_channel::SecureChannelClientImpl::Factory {
public:
FakeSecureChannelClientImplFactory() = default;
~FakeSecureChannelClientImplFactory() override = default;
// chromeos::secure_channel::SecureChannelClientImpl::Factory:
std::unique_ptr<chromeos::secure_channel::SecureChannelClient> BuildInstance(
service_manager::Connector* connector,
scoped_refptr<base::TaskRunner> task_runner) override {
return std::make_unique<
chromeos::secure_channel::FakeSecureChannelClient>();
}
};
} // namespace } // namespace
class TetherServiceTest : public chromeos::NetworkStateTest { class TetherServiceTest : public chromeos::NetworkStateTest {
...@@ -289,12 +310,18 @@ class TetherServiceTest : public chromeos::NetworkStateTest { ...@@ -289,12 +310,18 @@ class TetherServiceTest : public chromeos::NetworkStateTest {
fake_device_sync_client_ = fake_device_sync_client_ =
std::make_unique<chromeos::device_sync::FakeDeviceSyncClient>(); std::make_unique<chromeos::device_sync::FakeDeviceSyncClient>();
fake_device_sync_client_impl_factory_ = fake_device_sync_client_impl_factory_ =
std::make_unique<FakeDeviceSyncClientImplFactory>(); std::make_unique<FakeDeviceSyncClientImplFactory>();
chromeos::device_sync::DeviceSyncClientImpl::Factory::SetInstanceForTesting( chromeos::device_sync::DeviceSyncClientImpl::Factory::SetInstanceForTesting(
fake_device_sync_client_impl_factory_.get()); fake_device_sync_client_impl_factory_.get());
fake_secure_channel_client_ =
std::make_unique<chromeos::secure_channel::FakeSecureChannelClient>();
fake_secure_channel_client_impl_factory_ =
std::make_unique<FakeSecureChannelClientImplFactory>();
chromeos::secure_channel::SecureChannelClientImpl::Factory::
SetInstanceForTesting(fake_secure_channel_client_impl_factory_.get());
fake_cryptauth_service_ = fake_cryptauth_service_ =
std::make_unique<cryptauth::FakeCryptAuthService>(); std::make_unique<cryptauth::FakeCryptAuthService>();
fake_enrollment_manager_ = fake_enrollment_manager_ =
...@@ -338,6 +365,8 @@ class TetherServiceTest : public chromeos::NetworkStateTest { ...@@ -338,6 +365,8 @@ class TetherServiceTest : public chromeos::NetworkStateTest {
chromeos::device_sync::DeviceSyncClientImpl::Factory::SetInstanceForTesting( chromeos::device_sync::DeviceSyncClientImpl::Factory::SetInstanceForTesting(
nullptr); nullptr);
chromeos::secure_channel::SecureChannelClientImpl::Factory::
SetInstanceForTesting(nullptr);
ShutdownTetherService(); ShutdownTetherService();
...@@ -375,7 +404,8 @@ class TetherServiceTest : public chromeos::NetworkStateTest { ...@@ -375,7 +404,8 @@ class TetherServiceTest : public chromeos::NetworkStateTest {
tether_service_ = base::WrapUnique(new TestTetherService( tether_service_ = base::WrapUnique(new TestTetherService(
profile_.get(), fake_power_manager_client_.get(), profile_.get(), fake_power_manager_client_.get(),
fake_cryptauth_service_.get(), fake_device_sync_client_.get(), fake_cryptauth_service_.get(), fake_device_sync_client_.get(),
network_state_handler(), nullptr /* session_manager */)); fake_secure_channel_client_.get(), network_state_handler(),
nullptr /* session_manager */));
fake_notification_presenter_ = fake_notification_presenter_ =
new chromeos::tether::FakeNotificationPresenter(); new chromeos::tether::FakeNotificationPresenter();
...@@ -487,6 +517,10 @@ class TetherServiceTest : public chromeos::NetworkStateTest { ...@@ -487,6 +517,10 @@ class TetherServiceTest : public chromeos::NetworkStateTest {
fake_device_sync_client_; fake_device_sync_client_;
std::unique_ptr<FakeDeviceSyncClientImplFactory> std::unique_ptr<FakeDeviceSyncClientImplFactory>
fake_device_sync_client_impl_factory_; fake_device_sync_client_impl_factory_;
std::unique_ptr<chromeos::secure_channel::SecureChannelClient>
fake_secure_channel_client_;
std::unique_ptr<FakeSecureChannelClientImplFactory>
fake_secure_channel_client_impl_factory_;
std::unique_ptr<cryptauth::FakeCryptAuthService> fake_cryptauth_service_; std::unique_ptr<cryptauth::FakeCryptAuthService> fake_cryptauth_service_;
std::unique_ptr<cryptauth::FakeCryptAuthEnrollmentManager> std::unique_ptr<cryptauth::FakeCryptAuthEnrollmentManager>
fake_enrollment_manager_; fake_enrollment_manager_;
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include "chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h" #include "chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h"
#include "chromeos/services/secure_channel/public/cpp/client/connection_attempt.h"
#include "components/cryptauth/remote_device_ref.h" #include "components/cryptauth/remote_device_ref.h"
namespace chromeos { namespace chromeos {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/macros.h" #include "base/macros.h"
#include "chromeos/services/secure_channel/public/cpp/client/connection_attempt.h"
#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h" #include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h"
#include "chromeos/services/secure_channel/public/cpp/shared/authenticated_channel.h" #include "chromeos/services/secure_channel/public/cpp/shared/authenticated_channel.h"
......
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