#include "content/browser/webid/digital_credentials/cross_device_transaction_impl.h"
#include <optional>
#include "base/functional/bind.h"
#include "base/functional/overloaded.h"
#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "components/device_event_log/device_event_log.h"
#include "content/browser/webid/digital_credentials/cross_device_request_dispatcher.h"
#include "content/public/browser/digital_credentials_cross_device.h"
#include "device/bluetooth/bluetooth_adapter.h"
#include "device/bluetooth/bluetooth_adapter_factory.h"
#include "device/fido/ble_adapter_manager.h"
#include "device/fido/cable/cable_discovery_data.h"
#include "device/fido/cable/fido_cable_discovery.h"
#include "device/fido/fido_constants.h"
#include "device/fido/fido_discovery_base.h"
#if BUILDFLAG(IS_MAC)
#include "base/process/process_info.h"
#endif
namespace content::digital_credentials::cross_device {
namespace {
std::optional<Error> CheckConfiguration() { … }
}
Transaction::~Transaction() = default;
std::unique_ptr<Transaction> Transaction::New(
url::Origin origin,
base::Value request,
std::array<uint8_t, device::cablev2::kQRKeySize> qr_generator_key,
device::NetworkContextFactory network_context_factory,
EventCallback event_callback,
CompletionCallback callback) { … }
TransactionImpl::TransactionImpl(
url::Origin origin,
base::Value request,
std::array<uint8_t, device::cablev2::kQRKeySize> qr_generator_key,
device::NetworkContextFactory network_context_factory,
Transaction::EventCallback event_callback,
Transaction::CompletionCallback callback)
: … { … }
TransactionImpl::~TransactionImpl() { … }
void TransactionImpl::PowerBluetoothAdapter() { … }
void TransactionImpl::AdapterPoweredChanged(device::BluetoothAdapter* adapter,
bool powered) { … }
void TransactionImpl::OnCableEvent(device::cablev2::Event event) { … }
void TransactionImpl::OnHaveAdapter(
scoped_refptr<device::BluetoothAdapter> adapter) { … }
void TransactionImpl::ConsiderPowerState() { … }
void TransactionImpl::OnHaveBluetoothPermission(
device::BluetoothAdapter::PermissionStatus status) { … }
void TransactionImpl::MaybeSignalReady() { … }
void TransactionImpl::OnHaveResponse(
base::expected<Response, RequestDispatcher::Error> response) { … }
}