blob: 6b1e12ce84127e10082842dd4b3841b9d95d3c36 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/secure_channel/secure_channel_client_provider.h"
#include "base/macros.h"
#include "chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl.h"
#include "content/public/common/service_manager_connection.h"
namespace chromeos {
namespace secure_channel {
SecureChannelClientProvider::SecureChannelClientProvider() = default;
SecureChannelClientProvider::~SecureChannelClientProvider() = default;
// static
SecureChannelClientProvider* SecureChannelClientProvider::GetInstance() {
return base::Singleton<SecureChannelClientProvider>::get();
}
SecureChannelClient* SecureChannelClientProvider::GetClient() {
if (!secure_channel_client_) {
// ServiceManagerConnection::GetForProcess() returns null in tests.
service_manager::Connector* connector =
content::ServiceManagerConnection::GetForProcess()
? content::ServiceManagerConnection::GetForProcess()->GetConnector()
: nullptr;
secure_channel_client_ =
SecureChannelClientImpl::Factory::Get()->BuildInstance(connector);
}
return secure_channel_client_.get();
}
} // namespace secure_channel
} // namespace chromeos